Changeset 94dfb92 in mainline for tools/autotool.py


Ignore:
Timestamp:
2013-05-30T13:05:10Z (12 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9e40355e, b8e72fd1
Parents:
c90aed4 (diff), ea15a89a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge partial Clang reviving

Merge from lp:~vojtech-horky/helenos/misc revives Clang support for ia32
and amd64 - it is possible to compile HelenOS with Clang 3.2 again. The
created image fails to boot, though. For ia32, the problem is probably
in some HID driver, with amd64 it crashes before reaching GUI, still do
not know why.

Merging also minor improvement to ew.py - do not use KVM when running
amd64 on 32-bit host.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/autotool.py

    rc90aed4 r94dfb92  
    181181                print_error(["Failed to determine the value %s." % key,
    182182                             "Please contact the developers of HelenOS."])
     183
     184def get_target(config, needs_clang = False):
     185        target = None
     186        gnu_target = None
     187        clang_target = None
     188        cc_args = []
     189       
     190        if (config['PLATFORM'] == "abs32le"):
     191                check_config(config, "CROSS_TARGET")
     192                target = config['CROSS_TARGET']
     193               
     194                if (config['CROSS_TARGET'] == "arm32"):
     195                        gnu_target = "arm-linux-gnueabi"
     196               
     197                if (config['CROSS_TARGET'] == "ia32"):
     198                        gnu_target = "i686-pc-linux-gnu"
     199               
     200                if (config['CROSS_TARGET'] == "mips32"):
     201                        gnu_target = "mipsel-linux-gnu"
     202                        common['CC_ARGS'].append("-mabi=32")
     203       
     204        if (config['PLATFORM'] == "amd64"):
     205                target = config['PLATFORM']
     206                gnu_target = "amd64-linux-gnu"
     207                clang_target = "x86_64-uknown-linux"
     208       
     209        if (config['PLATFORM'] == "arm32"):
     210                target = config['PLATFORM']
     211                gnu_target = "arm-linux-gnueabi"
     212       
     213        if (config['PLATFORM'] == "ia32"):
     214                target = config['PLATFORM']
     215                gnu_target = "i686-pc-linux-gnu"
     216                clang_target = "i386-uknown-linux"
     217       
     218        if (config['PLATFORM'] == "ia64"):
     219                target = config['PLATFORM']
     220                gnu_target = "ia64-pc-linux-gnu"
     221       
     222        if (config['PLATFORM'] == "mips32"):
     223                check_config(config, "MACHINE")
     224                cc_args.append("-mabi=32")
     225               
     226                if ((config['MACHINE'] == "msim") or (config['MACHINE'] == "lmalta")):
     227                        target = config['PLATFORM']
     228                        gnu_target = "mipsel-linux-gnu"
     229               
     230                if ((config['MACHINE'] == "bmalta")):
     231                        target = "mips32eb"
     232                        gnu_target = "mips-linux-gnu"
     233       
     234        if (config['PLATFORM'] == "mips64"):
     235                check_config(config, "MACHINE")
     236                cc_args.append("-mabi=64")
     237               
     238                if (config['MACHINE'] == "msim"):
     239                        target = config['PLATFORM']
     240                        gnu_target = "mips64el-linux-gnu"
     241       
     242        if (config['PLATFORM'] == "ppc32"):
     243                target = config['PLATFORM']
     244                gnu_target = "ppc-linux-gnu"
     245       
     246        if (config['PLATFORM'] == "sparc64"):
     247                target = config['PLATFORM']
     248                gnu_target = "sparc64-linux-gnu"
     249       
     250        if (target is None) or (gnu_target is None) or (clang_target is None and needs_clang):
     251                print_error(["Failed to determine target for compiler.",
     252                             "Please contact the developers of HelenOS."])
     253       
     254        return (target, cc_args, gnu_target, clang_target)
    183255
    184256def check_app(args, name, details):
     
    642714                common['CC_ARGS'] = []
    643715                if (config['COMPILER'] == "gcc_cross"):
    644                         if (config['PLATFORM'] == "abs32le"):
    645                                 check_config(config, "CROSS_TARGET")
    646                                 target = config['CROSS_TARGET']
    647                                
    648                                 if (config['CROSS_TARGET'] == "arm32"):
    649                                         gnu_target = "arm-linux-gnueabi"
    650                                
    651                                 if (config['CROSS_TARGET'] == "ia32"):
    652                                         gnu_target = "i686-pc-linux-gnu"
    653                                
    654                                 if (config['CROSS_TARGET'] == "mips32"):
    655                                         gnu_target = "mipsel-linux-gnu"
    656                                         common['CC_ARGS'].append("-mabi=32")
    657                        
    658                         if (config['PLATFORM'] == "amd64"):
    659                                 target = config['PLATFORM']
    660                                 gnu_target = "amd64-linux-gnu"
    661                        
    662                         if (config['PLATFORM'] == "arm32"):
    663                                 target = config['PLATFORM']
    664                                 gnu_target = "arm-linux-gnueabi"
    665                        
    666                         if (config['PLATFORM'] == "ia32"):
    667                                 target = config['PLATFORM']
    668                                 gnu_target = "i686-pc-linux-gnu"
    669                        
    670                         if (config['PLATFORM'] == "ia64"):
    671                                 target = config['PLATFORM']
    672                                 gnu_target = "ia64-pc-linux-gnu"
    673                        
    674                         if (config['PLATFORM'] == "mips32"):
    675                                 check_config(config, "MACHINE")
    676                                 common['CC_ARGS'].append("-mabi=32")
    677                                
    678                                 if ((config['MACHINE'] == "msim") or (config['MACHINE'] == "lmalta")):
    679                                         target = config['PLATFORM']
    680                                         gnu_target = "mipsel-linux-gnu"
    681                                
    682                                 if ((config['MACHINE'] == "bmalta")):
    683                                         target = "mips32eb"
    684                                         gnu_target = "mips-linux-gnu"
    685                        
    686                         if (config['PLATFORM'] == "mips64"):
    687                                 check_config(config, "MACHINE")
    688                                 common['CC_ARGS'].append("-mabi=64")
    689                                
    690                                 if (config['MACHINE'] == "msim"):
    691                                         target = config['PLATFORM']
    692                                         gnu_target = "mips64el-linux-gnu"
    693                        
    694                         if (config['PLATFORM'] == "ppc32"):
    695                                 target = config['PLATFORM']
    696                                 gnu_target = "ppc-linux-gnu"
    697                        
    698                         if (config['PLATFORM'] == "sparc64"):
    699                                 target = config['PLATFORM']
    700                                 gnu_target = "sparc64-linux-gnu"
    701                        
     716                        target, cc_args, gnu_target, clang_target_unused = get_target(config)
    702717                        path = "%s/%s/bin" % (cross_prefix, target)
    703718                        prefix = "%s-" % gnu_target
     
    708723                        check_common(common, "GCC")
    709724                        common['CC'] = common['GCC']
     725                        common['CC_ARGS'].extend(cc_args)
    710726               
    711727                if (config['COMPILER'] == "gcc_native"):
     
    723739               
    724740                if (config['COMPILER'] == "clang"):
     741                        target, cc_args, gnu_target, clang_target = get_target(config, True)
     742                        path = "%s/%s/bin" % (cross_prefix, target)
     743                        prefix = "%s-" % gnu_target
     744                       
    725745                        common['CC'] = "clang"
     746                        common['CC_ARGS'].extend(cc_args)
     747                        common['CC_ARGS'].append("-target")
     748                        common['CC_ARGS'].append(clang_target)
    726749                        check_app([common['CC'], "--version"], "Clang compiler", "preferably version 1.0 or newer")
    727                         check_gcc(None, "", common, PACKAGE_GCC)
    728                         check_binutils(None, binutils_prefix, common, PACKAGE_BINUTILS)
     750                        check_gcc(path, prefix, common, PACKAGE_GCC)
     751                        check_binutils(path, prefix, common, PACKAGE_BINUTILS)
    729752               
    730753                # Platform-specific utilities
Note: See TracChangeset for help on using the changeset viewer.