Age | Commit message (Collapse) | Author |
|
Change-Id: I994283f8182a0162f9a02be6a9087735ec8195ff
|
|
Fix build broken for abcc and use gcc-4.9 to
compile 32bit/64bit device toolchains.
Change-Id: If0a1054a6379a86e01659af0f539fb45b6a36330
|
|
Change-Id: I97f14aeb71c0c0b4ff99a6dcc5d95e2d34dedea1
|
|
clang3.3 is deprecated and removed since clang3.5 becomes available,
and NDK only keeps 2 most recent clang releases.
Change-Id: I45f00c45dbc4d5a81898ceb4165492456dc4c66e
|
|
Change-Id: Iaf7c272ded335041a46277e629e3f9d0b5c4b5a7
|
|
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
|
|
Change-Id: I2d8d27609f1113d31590b1fb8bea68056b086769
|
|
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
|
|
Now gcc4.8 also compile with binutils-2.24 as well (from 2.23)
Change-Id: I249dd4414182d2b42c231ca9dbe1e2ec960b995e
|
|
Change-Id: Ie3cb416b34d97a9c42f889f9c47a0a54434e5c3e
|
|
Change-Id: Iba03f5a3b15b152daffd3653a02559775dc88963
|
|
Requires for run-tests.sh testing
Change-Id: I30773bd3643cb860d3b9522aa3db1a5b26cf4998
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
|
|
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
|
|
|
|
Change-Id: I662ec2ac7c1b5fdf60fc673cd7471d9c58c3a7a0
|
|
Change-Id: I0f7eaf8075da4f12e7d0c4bb4e2827e5d45e73bf
|
|
Change-Id: Ic6f53ac0486db746bce99e9d13288a8d81494f86
|
|
Both clang3.2 and gcc4.7 (which uses binutils-2.22) are deprecated
and will be removed from r9c
Change-Id: I8101ece53fef6e2e32d393ec0fb3d1ecbee5a02a
|
|
Change-Id: I7e7d6e461b53012856c4fea213ae8bce7ff248e8
|
|
|
|
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
|
|
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
|
|
Also keep intermediate bc file for reproducible
Change-Id: Ife135b2901d9fa6a3270a33fa622558884a28e0c
|
|
Change-Id: Ia7bdceafa17b794823f6f60a8ba97492f3f79ce4
|
|
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
|
|
Only maintain two clang/llvm going forward (eg. 3.3 and 3.2 in r9)
Change-Id: I81a9cf0416162d52cff69545194ca3bbff7f5224
|
|
|
|
This remove the 4.4.3 toolchain from the NDK, and slightly
updates documentation to not mention it anymore.
Change-Id: Ia42cd54e3a4e88ba5ee3ea35d9ee3cc4b9237ca2
|
|
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
|
|
Change-Id: I97197552f7cf1292c9632ebb7d00871bfedfb8df
|
|
Need https://android-review.googlesource.com/#/c/59493/ and
https://android-review.googlesource.com/#/c/59511/
Change-Id: I640ff9c62c12f46ead64113c4035b3513c7fdb3e
|
|
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
|
|
|
|
Change-Id: I69463c9d039cceca59d829e2a63f6934ace9bda6
|
|
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
|
|
Change-Id: I230ea06de58b9765eb684f31f28444faf93e4508
|
|
Also, build libportable w/o default hidden visibility
Change-Id: Ie54cfd32e45f06295b101bad6b6343ed76188a63
|
|
Change-Id: Ibad600a94612f5bfd0c36204bcf73a8d572ebf3f
|
|
|
|
Change-Id: Ided7fa4c0e9cb0d0288f0032a0d6f7a5de83c2e6
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Change-Id: I557c81f3dee42f17f1579bc5f868c9270b482252
|
|
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
|
|
Change-Id: I34f87c0555b6a0acafaa72f67953b3805eb51ff4
|
|
'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
|