aboutsummaryrefslogtreecommitdiff
path: root/toolchains
AgeCommit message (Collapse)Author
2014-06-13misc fixesAndrew Hsieh
Change-Id: I2d8d27609f1113d31590b1fb8bea68056b086769
2014-06-06Set gcc4.9 as the default compilers for 64-bitAndrew Hsieh
Support for 64-bit aarch64 and mips64 are not great in gcc4.8, and x86_64 follows suite (to use gcc4.9 as the default) for the sake of consistency. gcc-4.8 is removed from 64-bit. As a result, clang with 64-bit target now sets -gcc-toolchain to gcc-4.9 Change-Id: I47babe9bc34d041ea2a99b8839c8ca1688edb055
2014-04-18Add gcc-4.9/binutils-2.24Andrew Hsieh
Now gcc4.8 also compile with binutils-2.24 as well (from 2.23) Change-Id: I249dd4414182d2b42c231ca9dbe1e2ec960b995e
2014-04-11Initial 64-bit supportsAndrew Hsieh
Change-Id: Ie3cb416b34d97a9c42f889f9c47a0a54434e5c3e
2014-04-10Add 64-bit unknown arch support into llvm toolchain.WenHan Gu
Change-Id: Iba03f5a3b15b152daffd3653a02559775dc88963
2014-03-21Add config.mk and setup.mk for x86_64 toolchainsPavel Chupin
Requires for run-tests.sh testing Change-Id: I30773bd3643cb860d3b9522aa3db1a5b26cf4998 Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-02-10Support APP_ABI=armeabi-v7a-hardAndrew Hsieh
Add a new NDK-only ABI armeabi-v7a-hard in order to solve -mfloat-abi=hard issue. 1. Note that this is NDK-only ABI. No known devices support armeabi-v7a-hard, and they can't w/o breaking existing float-abi=softfp code 2. APP_ABI=armeabi-v7a-hard still installs libraries in libs/armeabi-v7a. As a result, armeabi-v7a-hard and armeabi-v7a can't co-exist ("make" will ignore one of the "install"), unless when _NDK_TESTING_ALL_=yes for internal testing (where lib is installed to libs/armeabi-v7a-hard) 3. Both GCC 4.6/4.8 and Clang3.3/3.4 has additional multilib option "-mfloat-abi=hard" to look for libraries in /hard sub-directory. 5be615df32ce970fcccda93cf577e9ce35b1d397 (gcc4.6,4.8) 7e8798057dc5f28b44b5608fd98fff1cba6909a2 (clang3.4) deedd8557b7d82c6931b6942bd39a00127780835 (clang3.3) 4. APP_ABI=all still expand to armeabi,armeabi-v7a,x86,mips Change-Id: I08c26bfa6580c80260185c2fef398848aebd197d
2013-12-25Merge "Add Clang/LLVM 3.4"Andrew Hsieh
2013-12-11Override the ar flags, llvm-ar does not support D option.Lai Wei-Chih
Change-Id: I662ec2ac7c1b5fdf60fc673cd7471d9c58c3a7a0
2013-12-11Add Clang/LLVM 3.4Lai Wei-Chih
Change-Id: I0f7eaf8075da4f12e7d0c4bb4e2827e5d45e73bf
2013-11-14Debugging for unknown arch.Cole Wang
Change-Id: Ic6f53ac0486db746bce99e9d13288a8d81494f86
2013-10-31Remove clang3.2, gcc4.7 and binutils-2.22Andrew Hsieh
Both clang3.2 and gcc4.7 (which uses binutils-2.22) are deprecated and will be removed from r9c Change-Id: I8101ece53fef6e2e32d393ec0fb3d1ecbee5a02a
2013-10-10Fix llvm-3.3 mac build; abcc VERBOSE adds llc timerAndrew Hsieh
Change-Id: I7e7d6e461b53012856c4fea213ae8bce7ff248e8
2013-10-07Merge "Integrate abcc codebase."Andrew Hsieh
2013-10-02Improve ndk-build output + fix double-quotes on Windows.David 'Digit' Turner
This patche slightly improves the ndk-build output for individual build steps, i.e.: BEFORE: Compile <abi> : <some details> AFTER: [abi] Compile : <some details> The reason for this is that there are some build steps which didn't include the <abi>, which is ambiguous when doing a multi-ABI build with lots of parallel jobs. Note that for ARM, 'Compile arm' or 'Compile thumb' are still being used to distinguish between 32-bit ARM and 16 or 16/32 Thumb compilation modes. This only affects Compile and Compile++ build steps. + Fix the extra-quoting issue on Windows described by https://code.google.com/p/android/issues/detail?id=60649 Change-Id: Ib0bb7587f7113d488696e1c820d89adabad3070c
2013-10-02Integrate abcc codebase.WenHan Gu
This CL needs https://android-review.googlesource.com/#/c/66545/ Integrated abcc will be used after llvm 3.3 (included) by default. If we want to build python version, we can add --use-python to build-llvm.sh. Every host-related will be put under <abcc>/host/. Every device-related will be put under <abcc>/device/. Other common-based will be put under <abcc>. The usage is just the same like before. No learning curve issue. On host, we can dump information if we use --verbose. On device, we can -DVERBOSE=1 to dump info to logcat. Also, fix one bug on run-tests.sh. We need to copy instead of soft link, otherwise the second abi won't be tested. Change-Id: Ib95a3aabb40dc85bf73f8a35254108688ac654b7
2013-09-23Add host-mvAndrew Hsieh
Also keep intermediate bc file for reproducible Change-Id: Ife135b2901d9fa6a3270a33fa622558884a28e0c
2013-09-16Add -Wl,-link-native-binary.Lai Wei-Chih
Change-Id: Ia7bdceafa17b794823f6f60a8ba97492f3f79ce4
2013-09-13Side llvm with gcc 4.8Andrew Hsieh
Since eb514a820b6ddbab7fa5baf7cdd7b23c3c170fed clang native codegen swtich to use gcc 4.8 from gcc 4.7 which is in a separate *-legacy toolchain package. Here we change llvm-3.x/*mk to use gcc 4.8 as well for consistency, and for the more important reason that MIPS/gcc 4.7 has trouble generating correct on-device llvm*.so Change-Id: Ic1a7d860fa0ccde34f4bd6734f3df32a06c2d46c
2013-07-30Remove obsolete clang3.1Andrew Hsieh
Only maintain two clang/llvm going forward (eg. 3.3 and 3.2 in r9) Change-Id: I81a9cf0416162d52cff69545194ca3bbff7f5224
2013-07-25Merge "Remove obsolete GCC 4.4.3 toolchain."Andrew Hsieh
2013-07-26Remove obsolete GCC 4.4.3 toolchain.David 'Digit' Turner
This remove the 4.4.3 toolchain from the NDK, and slightly updates documentation to not mention it anymore. Change-Id: Ia42cd54e3a4e88ba5ee3ea35d9ee3cc4b9237ca2
2013-07-25Change clang to use 4.8 as/ldAndrew Hsieh
In general it's better for clang to use more recent as/ld, and the ones comes from binutils-2.23 in gcc4.8 are newer than the ones in binutils-2.22/gcc4.7 It also help to split NDK package into "primary" which include gcc4.8/4.6 and clang3.3/3.2, and an "add-on" which includes the rest. Change-Id: I7f61c370e248a96476722942b822715c6da11b59
2013-06-09Add Clang/LLVM 3.3Andrew Hsieh
Change-Id: I97197552f7cf1292c9632ebb7d00871bfedfb8df
2013-05-28Switch to use compiler-rt for plug-in arch.Lai Wei-Chih
Need https://android-review.googlesource.com/#/c/59493/ and https://android-review.googlesource.com/#/c/59511/ Change-Id: I640ff9c62c12f46ead64113c4035b3513c7fdb3e
2013-04-25Fix llvm setup.mkLai Wei-Chih
Some behaviors are wrong in ndk tests. The origin path is: bitcode -> stripped bitcode -> native binary Let's change it to: bitcode -> native binary -> stripped native binary Change-Id: I531a2f94af077c3d32ab0910d442ec9341f123a8
2013-04-22Merge "Refine llvm-3.1/3.2 setup.mk"Andrew Hsieh
2013-04-22Refine llvm-3.1/3.2 setup.mkLai Wei-Chih
Change-Id: I69463c9d039cceca59d829e2a63f6934ace9bda6
2013-04-17Change clang to use 4.7 as/ldAndrew Hsieh
clang in NDK needs "as" and "ld" from gcc directory via option -gcc-toolchain, which used to be 4.6. Change it to use 4.7 because recent clang may generate instruction such as "vmrs APSR_nzcv,fpscr" not understood by binutils-2.21/as in gcc 4.6 directory. Change-Id: I43d0e13904625c5f8c7cbba545cc3003f0a77d80
2013-04-02Download/Build/Use GCC 4.8Andrew Hsieh
Change-Id: I230ea06de58b9765eb684f31f28444faf93e4508
2013-03-20More fix to llvm-3.?/setup.mkAndrew Hsieh
Also, build libportable w/o default hidden visibility Change-Id: Ie54cfd32e45f06295b101bad6b6343ed76188a63
2013-03-19Create/use libportable.wrap file containing lines of "--wrap=symbol"Andrew Hsieh
Change-Id: Ibad600a94612f5bfd0c36204bcf73a8d572ebf3f
2013-03-14Merge "llvm setup.mk and config.mk"Andrew Hsieh
2013-03-12llvm setup.mk and config.mkAndrew Hsieh
Change-Id: Ided7fa4c0e9cb0d0288f0032a0d6f7a5de83c2e6
2013-03-12Separate SYSROOT into SYSROOT_INC and SYSROOT_LINKAndrew Hsieh
SYSROOT_INC for headers, and SYSROOT_LINK for libraries. They point to the same directory, for now. Also remove unused TARGET_CRTBEGIN*_O and TARGET_CRTEND*_O Change-Id: Ifb60fb45cc19b2572d3497bcc1d224531a0817a1
2013-01-20Add LLVM/CLANG-3.2 toolchainAndrew Hsieh
1. Download/build llvm-3.2 clang/llvm 2. New NDK_TOOLCHAIN_VERSION=clang3.2, or simply NDK_TOOLCHAIN_VERSION=clang to picks up the most recent version of clang/llvm (3.2 at this moment) 3. Add toolchain/*clang-3.2 Change-Id: I37d250addc17f6a2499982819c4952110be18394
2012-12-12Remove __ARM_ARCH_5*__ for ARMAndrew Hsieh
ARM compiler implicitly defines __ARM_ARCH_5TE__ with -march=armv5te (default) and _ARM_ARCH_7A__ with -march=armv7-a. The -D __ARM_ARCH_5* in setup.mk may harm armv7-a when including header like endian.h which enables more feature when __ARM_ARCH_5* isn't defined. Also add testcase See http://code.google.com/p/android/issues/detail?id=21132 Change-Id: I8c81aba3a1875d957915101a8d13609194599250
2012-12-06Fix ndk-build using windows/clang3.1 with -no-canonical-prefixesAndrew Hsieh
With "-no-canonical-prefixes", clang not only doesn't resolve argv[0] to real path (which we like in favor of distribute build system), but also forget to add .exe for windows (which is bad). Explicit adding .exe to fix it. Change-Id: I18ff317b80d55eb3a6630391d916b1097b7a3e9b
2012-12-05Do not resolve to real/absolute link in GCC 4.6 / 4.7Andrew Hsieh
Add -no-canonical-prefixes to both compiler and linker in GCC 4.6/4.7 to not resolve to absolute path (ie. the GCC 4.4.3 default behavior), otherwise it may fail in distributed build system because the real path may differ from machine to machine. Change-Id: I1801bbcfc738e5d955b1ee40a5f1cd81da091ad4
2012-11-26Move debug/release-specific compile flags to setup.mkAndrew Hsieh
Move debug/release-specific clags to APP_CFLAGS when arm/thumb mode is known. Previously -Os for thumb is overriden by -O2. Change-Id: Id2c7aa030854628fcb4087056b6a9c0751efecfd
2012-11-22Fix clang 3.1 under cygwin environment.Logan Chien
Change-Id: I557c81f3dee42f17f1579bc5f868c9270b482252
2012-11-16Enhance ndk-build to use 64-bit host toolchain if availableAndrew Hsieh
This changes allow ndk-build running on 64-bit OS to search for $OS-x86_64 in $NDK/prebuilt and $NDK/toolchains/*/prebuilt/ if available. Note that 64-bit toolchains still generate 32-bit binaries for Android. Setting a new variable NDK_HOST_32BIT=1 can force 32-bit toolchain even when 64-bit is found on 64-bit systems Change-Id: I7a440b88c47f80b65290fb954c627fad41927d73
2012-11-14Remove -funswitch-loops from CFLAGS for Clang.Logan Chien
Change-Id: I34f87c0555b6a0acafaa72f67953b3805eb51ff4
2012-10-18Change default -mfpu type to 'vfpv3d16' instead of 'vfp'David 'Digit' Turner
'vfp' really corresponds to VFPv2, with 'vfpv3-d16' corresponding to the mandated minimum FPU architecture for ARMv7-A and hence armeabi-v7a. Note that 'vfpv3-d16' adds a few instructions on top of 'vfp' which relate to loading a small set of immediate values directly into FPU registers (e.g. +1.0, -1.0, etc). Any code that was previously generated with -mfpu=vfp will still work, and any code that targets 'vfpv3d16' will work on all armeabi-v7a capable devices. For more information, see the documentation comments in sources/android/cpu-features.c introduced in this patch: https://android-review.googlesource.com/#/c/44920/ Change-Id: Ice0067a23c8e5dc7cec13cd07f18183164a67730
2012-10-04Merge "Change -mfpu= back to vfp now that clang and gcc are consistent"Andrew Hsieh
2012-10-04Merge "Build GCC 4.7/binutils-2.22"Andrew Hsieh
2012-10-04Change -mfpu= back to vfp now that clang and gcc are consistentAndrew Hsieh
Now that -mfpu=vfp is consistent between clang and gcc (*1), change -mfpu=vfp for armeabi-v7a (back from vfpv3-d16) (*1) related CL: https://android-review.googlesource.com/#/c/44082 Change-Id: I4f2df0f17de1fc6eadbc8b53d19e2e78620a2dc4 https://android-review.googlesource.com/#/c/44082
2012-10-04Build GCC 4.7/binutils-2.22Andrew Hsieh
Change-Id: I87deafce18a33e564e8040b75d72b16d615e429b
2012-10-04Use -gcc-toolchain to specify the GCC toolchain.Logan Chien
Use -gcc-toolchain to specify the GCC toolchain instead of -B option. Note: -B option is not working well because Clang will choose to use /usr/bin/gcc if its version is newer than our prebuilt binaries. Change-Id: I7b53cf07323614a304875729c9a05332fd0648a6
2012-09-26Remove -fno-builtin from CFLAGS of Clang X86.Logan Chien
This flag was added due to test cases regression. However, such regression can't be reproduced any more. Thus, we can remove this flag. Change-Id: I1a789771fc2dddd6ac31cb80e0f87e6ac00ae98e