Changeset 3012ae7 in mainline


Ignore:
Timestamp:
2018-08-31T14:13:06Z (5 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
Parents:
fa86fff
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-08-31 14:04:56)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-08-31 14:13:06)
Message:

-helenos target

Files:
7 edited

Legend:

Unmodified
Added
Removed
  • .gitignore

    rfa86fff r3012ae7  
    376376uspace/lib/c/test-libc
    377377uspace/lib/label/test-liblabel
     378uspace/lib/math/test-libmath
    378379uspace/lib/pcut/test-libpcut-*
    379380uspace/lib/posix/gcc.specs
  • HelenOS.config

    rfa86fff r3012ae7  
    295295
    296296% Compiler
    297 @ "gcc_cross" GNU C Compiler (cross-compiler)
     297@ "gcc_cross" GNU C Compiler (HelenOS-specific cross-compiler)
    298298@ "clang" Clang
    299 @ "gcc_helenos" GNU C Compiler (experimental HelenOS-specific cross-compiler)
    300 @ "gcc_native" GNU C Compiler (native)
    301299! COMPILER (choice)
    302300
     
    313311@ "ia32" Intel IA-32
    314312@ "mips32" MIPS 32-bit
    315 ! [PLATFORM=abs32le&(COMPILER=gcc_cross|COMPILER=gcc_helenos)] CROSS_TARGET (choice)
     313! [PLATFORM=abs32le&COMPILER=gcc_cross] CROSS_TARGET (choice)
    316314
    317315
     
    425423
    426424% Use link-time optimization
    427 ! [COMPILER=gcc_cross|COMPILER=gcc_native] CONFIG_LTO (n/y)
     425! [COMPILER=gcc_cross] CONFIG_LTO (n/y)
    428426
    429427% Kernel RCU algorithm
  • contrib/tools/random_check.sh

    rfa86fff r3012ae7  
    5050                ;;
    5151        s)
    52                 echo "COMPILER=gcc_native" >>"$PRUNE_CONFIG_FILE"
    53                 echo "COMPILER=gcc_helenos" >>"$PRUNE_CONFIG_FILE"
    5452                ;;
    5553        *|h)
  • tools/autotool.py

    rfa86fff r3012ae7  
    178178def get_target(config):
    179179        platform = None
    180         gnu_target = None
    181         helenos_target = None
    182180        target = None
    183181        cc_args = []
     
    188186
    189187                if (config['CROSS_TARGET'] == "arm32"):
    190                         gnu_target = "arm-linux-gnueabi"
    191                         helenos_target = "arm-helenos"
     188                        target = "arm-helenos"
    192189
    193190                if (config['CROSS_TARGET'] == "ia32"):
    194                         gnu_target = "i686-pc-linux-gnu"
    195                         helenos_target = "i686-helenos"
     191                        target = "i686-helenos"
    196192
    197193                if (config['CROSS_TARGET'] == "mips32"):
    198194                        cc_args.append("-mabi=32")
    199                         gnu_target = "mipsel-linux-gnu"
    200                         helenos_target = "mipsel-helenos"
     195                        target = "mipsel-helenos"
    201196
    202197        if (config['PLATFORM'] == "amd64"):
    203198                platform = config['PLATFORM']
    204                 gnu_target = "amd64-unknown-elf"
    205                 helenos_target = "amd64-helenos"
     199                target = "amd64-helenos"
    206200
    207201        if (config['PLATFORM'] == "arm32"):
    208202                platform = config['PLATFORM']
    209                 gnu_target = "arm-linux-gnueabi"
    210                 helenos_target = "arm-helenos"
     203                target = "arm-helenos"
    211204
    212205        if (config['PLATFORM'] == "ia32"):
    213206                platform = config['PLATFORM']
    214                 gnu_target = "i686-pc-linux-gnu"
    215                 helenos_target = "i686-helenos"
     207                target = "i686-helenos"
    216208
    217209        if (config['PLATFORM'] == "ia64"):
    218210                platform = config['PLATFORM']
    219                 gnu_target = "ia64-pc-linux-gnu"
    220                 helenos_target = "ia64-helenos"
     211                target = "ia64-helenos"
    221212
    222213        if (config['PLATFORM'] == "mips32"):
     
    226217                if ((config['MACHINE'] == "msim") or (config['MACHINE'] == "lmalta")):
    227218                        platform = config['PLATFORM']
    228                         gnu_target = "mipsel-linux-gnu"
    229                         helenos_target = "mipsel-helenos"
     219                        target = "mipsel-helenos"
    230220
    231221                if ((config['MACHINE'] == "bmalta")):
    232222                        platform = "mips32eb"
    233                         gnu_target = "mips-linux-gnu"
    234                         helenos_target = "mips-helenos"
     223                        target = "mips-helenos"
    235224
    236225        if (config['PLATFORM'] == "mips64"):
     
    240229                if (config['MACHINE'] == "msim"):
    241230                        platform = config['PLATFORM']
    242                         gnu_target = "mips64el-linux-gnu"
    243                         helenos_target = "mips64el-helenos"
     231                        target = "mips64el-helenos"
    244232
    245233        if (config['PLATFORM'] == "ppc32"):
    246234                platform = config['PLATFORM']
    247                 gnu_target = "ppc-linux-gnu"
    248                 helenos_target = "ppc-helenos"
     235                target = "ppc-helenos"
    249236
    250237        if (config['PLATFORM'] == "riscv64"):
    251238                platform = config['PLATFORM']
    252                 gnu_target = "riscv64-unknown-linux-gnu"
    253                 helenos_target = "riscv64-helenos"
     239                target = "riscv64-helenos"
    254240
    255241        if (config['PLATFORM'] == "sparc64"):
    256242                platform = config['PLATFORM']
    257                 gnu_target = "sparc64-linux-gnu"
    258                 helenos_target = "sparc64-helenos"
    259 
    260         if (config['COMPILER'] == "gcc_helenos"):
    261                 target = helenos_target
    262         else:
    263                 target = gnu_target
     243                target = "sparc64-helenos"
    264244
    265245        return (platform, cc_args, target)
     
    279259
    280260        sys.stderr.write("ok\n")
     261
     262def check_path_gcc(target):
     263        "Check whether GCC for a given target is present in $PATH."
     264
     265        try:
     266                subprocess.Popen([ "%s-gcc" % target, "--version" ], stdout = subprocess.PIPE, stderr = subprocess.PIPE).wait()
     267                return True
     268        except:
     269                return False
    281270
    282271def check_app_alternatives(alts, args, name, details):
     
    561550                cross_prefix = "/usr/local/cross"
    562551
    563         # HelenOS cross-compiler prefix
    564         if ('CROSS_HELENOS_PREFIX' in os.environ):
    565                 cross_helenos_prefix = os.environ['CROSS_HELENOS_PREFIX']
    566         else:
    567                 cross_helenos_prefix = "/usr/local/cross-helenos"
    568 
    569         # Prefix binutils tools on Solaris
    570         if (os.uname()[0] == "SunOS"):
    571                 binutils_prefix = "g"
    572         else:
    573                 binutils_prefix = ""
    574 
    575552        owd = sandbox_enter()
    576553
     
    593570                                     "Please contact the developers of HelenOS."])
    594571
    595                 path = "%s/%s/bin" % (cross_prefix, target)
    596 
    597                 # Compatibility with earlier toolchain paths.
    598                 if not os.path.exists(path):
    599                         if (config['COMPILER'] == "gcc_helenos"):
    600                                 check_path = "%s/%s/%s" % (cross_helenos_prefix, platform, target)
    601                                 if not os.path.exists(check_path):
    602                                         print_error(TOOLCHAIN_FAIL)
    603                                 path = "%s/%s/bin" % (cross_helenos_prefix, platform)
    604                         else:
    605                                 check_path = "%s/%s/%s" % (cross_prefix, platform, target)
    606                                 if not os.path.exists(check_path):
    607                                         print_error(TOOLCHAIN_FAIL)
    608                                 path = "%s/%s/bin" % (cross_prefix, platform)
     572                path = None
     573
     574                if not check_path_gcc(target):
     575                        path = "%s/bin" % cross_prefix
    609576
    610577                common['TARGET'] = target
     
    612579
    613580                # Compiler
    614                 if (config['COMPILER'] == "gcc_cross" or config['COMPILER'] == "gcc_helenos"):
     581                if (config['COMPILER'] == "gcc_cross"):
    615582                        check_gcc(path, prefix, common, PACKAGE_CROSS)
    616583                        check_binutils(path, prefix, common, PACKAGE_CROSS)
     
    622589                        check_common(common, "GXX")
    623590                        common['CXX'] = common['GXX']
    624 
    625                 if (config['COMPILER'] == "gcc_native"):
    626                         check_gcc(None, "", common, PACKAGE_GCC)
    627                         check_binutils(None, binutils_prefix, common, PACKAGE_BINUTILS)
    628 
    629                         check_common(common, "GCC")
    630                         common['CC'] = common['GCC']
    631                         common['CC_AUTOGEN'] = common['CC']
    632591
    633592                if (config['COMPILER'] == "clang"):
  • tools/toolchain.sh

    rfa86fff r3012ae7  
    4545
    4646REAL_INSTALL=true
    47 USE_HELENOS_TARGET=false
     47USE_HELENOS_TARGET=true
    4848
    4949check_error() {
     
    6060        echo
    6161        echo "Syntax:"
    62         echo " $0 [--no-install] [--helenos-target] <platform>"
     62        echo " $0 [--no-install] [--non-helenos-target] <platform>"
    6363        echo
    6464        echo "Possible target platforms are:"
     
    8989        echo "not want to run the script under the super user."
    9090        echo
    91         echo "The --helenos-target will build HelenOS-specific toolchain"
    92         echo "(i.e. it will use *-helenos triplet instead of *-linux-*)."
    93         echo "Using the HelenOS-specific toolchain is still an experimental"
    94         echo "feature that is not fully supported."
     91        echo "The --non-helenos-target will build non-HelenOS-specific toolchain"
     92        echo "(i.e. it will use *-linux-* triplet instead of *-helenos)."
     93        echo "Using this toolchain for building HelenOS is not supported."
    9594        echo
    9695
     
    238237        HELENOS_TARGET="${GNU_ARCH}-helenos"
    239238
    240         # TODO: Clean up this mess.
    241239        case "$1" in
    242                 "amd64")
    243                         LINUX_TARGET="${GNU_ARCH}-unknown-elf"
    244                         ;;
    245                 "ia32" | "ia64")
    246                         LINUX_TARGET="${GNU_ARCH}-pc-linux-gnu"
    247                         ;;
    248240                "arm32")
    249241                        LINUX_TARGET="${GNU_ARCH}-linux-gnueabi"
    250                         ;;
    251                 "riscv64")
    252                         LINUX_TARGET="${GNU_ARCH}-unknown-linux-gnu"
    253242                        ;;
    254243                *)
     
    283272        fi
    284273
    285         PREFIX="${CROSS_PREFIX}/${TARGET}"
     274        PREFIX="${CROSS_PREFIX}"
    286275
    287276        echo ">>> Removing previous content"
     
    408397        if $REAL_INSTALL ; then
    409398                echo ">>> Moving to the destination directory."
    410                 cleanup_dir "${PREFIX}"
    411                 echo mv "${INSTALL_DIR}/${PREFIX}" "${PREFIX}"
    412                 mv "${INSTALL_DIR}/${PREFIX}" "${PREFIX}"
     399                echo cp -r -t "${PREFIX}" "${INSTALL_DIR}/${PREFIX}/"*
     400                cp -r -t "${PREFIX}" "${INSTALL_DIR}/${PREFIX}/"*
    413401        fi
    414402
     
    429417                        shift
    430418                        ;;
    431                 --helenos-target)
    432                         USE_HELENOS_TARGET=true
     419                --non-helenos-target)
     420                        USE_HELENOS_TARGET=false
    433421                        shift
    434422                        ;;
  • tools/travis.sh

    rfa86fff r3012ae7  
    4646h_get_arch_config_space() {
    4747    cat <<'EOF_CONFIG_SPACE'
    48 amd64:amd64-unknown-elf:image.iso
    49 arm32/beagleboardxm:arm-linux-gnueabi:uImage.bin
    50 arm32/beaglebone:arm-linux-gnueabi:uImage.bin
    51 arm32/gta02:arm-linux-gnueabi:uImage.bin
    52 arm32/integratorcp:arm-linux-gnueabi:image.boot
    53 arm32/raspberrypi:arm-linux-gnueabi:uImage.bin
    54 ia32:i686-pc-linux-gnu:image.iso
    55 ia64/i460GX:ia64-pc-linux-gnu:image.boot
    56 ia64/ski:ia64-pc-linux-gnu:image.boot
    57 mips32/malta-be:mips-linux-gnu:image.boot
    58 mips32/malta-le:mipsel-linux-gnu:image.boot
    59 mips32/msim:mipsel-linux-gnu:image.boot
    60 ppc32:ppc-linux-gnu:image.iso
    61 sparc64/niagara:sparc64-linux-gnu:image.iso
    62 sparc64/ultra:sparc64-linux-gnu:image.iso
     48amd64:amd64-helenos:image.iso
     49arm32/beagleboardxm:arm-helenos:uImage.bin
     50arm32/beaglebone:arm-helenos:uImage.bin
     51arm32/gta02:arm-helenos:uImage.bin
     52arm32/integratorcp:arm-helenos:image.boot
     53arm32/raspberrypi:arm-helenos:uImage.bin
     54ia32:i686-helenos:image.iso
     55ia64/i460GX:ia64-helenos:image.boot
     56ia64/ski:ia64-helenos:image.boot
     57mips32/malta-be:mips-helenos:image.boot
     58mips32/malta-le:mipsel-helenos:image.boot
     59mips32/msim:mipsel-helenos:image.boot
     60ppc32:ppc-helenos:image.iso
     61sparc64/niagara:sparc64-helenos:image.iso
     62sparc64/ultra:sparc64-helenos:image.iso
    6363EOF_CONFIG_SPACE
    6464}
  • uspace/lib/posix/Makefile

    rfa86fff r3012ae7  
    120120        echo '# Generated file, do not modify.' >> $@.new
    121121        echo '# Do not forget to set HELENOS_EXPORT_ROOT.' >> $@.new
    122         echo 'HELENOS_CROSS_PATH="$(shell dirname "$(CC)")"' >> $@.new
     122        echo 'HELENOS_CROSS_PATH="$(shell dirname `which "$(CC)"`)"' >> $@.new
    123123        echo 'HELENOS_ARCH="$(firstword $(subst -, ,$(TARGET)))"' >> $@.new
    124124        echo 'HELENOS_TARGET="$(TARGET)"' >> $@.new
Note: See TracChangeset for help on using the changeset viewer.