aboutsummaryrefslogtreecommitdiff
path: root/toolchains
AgeCommit message (Collapse)Author
2015-01-16Misc fix for abcc.Lai Wei-Chih
Change-Id: I994283f8182a0162f9a02be6a9087735ec8195ff
2014-12-30Fix abcc build broken.Lai Wei-Chih
Fix build broken for abcc and use gcc-4.9 to compile 32bit/64bit device toolchains. Change-Id: If0a1054a6379a86e01659af0f539fb45b6a36330
2014-12-18Remove GCC 4.6 setup.mk and config.mkAndrew Hsieh
Change-Id: I97f14aeb71c0c0b4ff99a6dcc5d95e2d34dedea1
2014-11-12Remove clang3.3Andrew Hsieh
clang3.3 is deprecated and removed since clang3.5 becomes available, and NDK only keeps 2 most recent clang releases. Change-Id: I45f00c45dbc4d5a81898ceb4165492456dc4c66e
2014-10-16Add Clang 3.5Andrew Hsieh
Change-Id: Iaf7c272ded335041a46277e629e3f9d0b5c4b5a7
2014-10-16Misc fixes:Andrew Hsieh
1. Rename NDK_PIE_PLATFORM_LEVEL as NDK_FIRST_PIE_PLATFORM_LEVEL 2. Don't add -Wl,--version-script unless script exists 3. Don't donwload binutils-2.23 no GCC use any more 4. Exclude libgcc.a symbols from *so in platform libraries 5. split symbol each in its own line for debugging purpose 6. 64-bit unknown ABI use GCC 4.9 Change-Id: I29f554ba1a6dc6387a8cef6434cb5e85e918ce60
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