summaryrefslogtreecommitdiffstats
path: root/core/combo/TARGET_linux-arm64.mk
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Revert "Enable linker -fix-cortex-a53-843419""Andrew Hsieh2015-06-021-0/+1
| | | | | | | | This reverts commit 32e1689684682aadf1a5d5af523ccafae5907572. Now that prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 is also updated Change-Id: Id95c1c4cc651c434461655e62b8f23afd56b53e4
* Pack relocation tables for dynamic executablesDmitriy Ivanov2015-04-231-1/+1
| | | | | | | | | Add replocation-packer step for dynmic executables. Enable it by default for arm and arm64 platforms. Bug: http://b/18051137 Change-Id: I0c88fd31595bcea62a087f219acb9ecf9c80f2e5
* Revert "Pack relocation tables for all dynamic executables"Dimitry Ivanov2015-04-231-0/+2
| | | | | | This reverts commit e7a1b8a0c6d5f56e415345a0aceef3afe5ff5eff. Change-Id: I1a2185e1c68d364941e3b3e525a8c4a7a42e0cc1
* Pack relocation tables for all dynamic executablesDmitriy Ivanov2015-04-221-2/+0
| | | | | Bug: http://b/18051137 Change-Id: I277277d5f5eb450ef9b4a23cfec16d75d977eb89
* Revert "Enable linker -fix-cortex-a53-843419"Andrew Hsieh2015-04-131-1/+0
| | | | | | This reverts commit 54b22a5a706f6556cda6ef3de13b9b0bdc22e989. Change-Id: I23613490030783fb6da678de5a25f37caebe5f97
* Enable linker -fix-cortex-a53-843419Andrew Hsieh2015-04-091-0/+1
| | | | Change-Id: Icb8a4ce4d5688847cfe536eba2139cdf7f6406f3
* Turn on -Werror=implicit-function-declaration for arm64.Elliott Hughes2015-02-211-0/+1
| | | | | | | | Implicit function declarations are much more dangerous on LP64 because sizeof(int) != sizeof(void*), so any function that returns a pointer will lose its top bits, leading to relatively hard to debug crashes. Change-Id: Ia05beffb949ca747833c2e12c40daf896f7a60a5
* Emit unique linker buildid in all binaries.Dehao Chen2015-01-151-0/+1
| | | | | | | | | | | We want to store the symbol information for all android binaries in a global database. * We ingest unstripped binaries into the global database * When we collect address data from device (e.g. instruction pointer address), we want to lookup its symbol information through the global database. The key of the mapping is a unique build id, which is the same between binaries on device (stripped) and unstripped binaries. After applying this patch, the system.img size increases by 0.0047% (16.3KB). Change-Id: Id92faf2951f43a30947e8d2b690c1af6bf7e3f54
* Disable transitive symbol resolving for arm64.Ying Wang2014-12-191-0/+3
| | | | | | | | The transitive symbol resolving causes build breakage when a binary has indirect dependency on the NDK library. We only observed such behaviour in the aarch64 toolchain. Change-Id: I29e01f16bdfa3aa206cd42d6f07c764fd436873a
* Merge "Refactor transform-o-to-* definitions."Dan Albert2014-11-141-78/+1
|\
| * Refactor transform-o-to-* definitions.Dan Albert2014-11-131-78/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, there was one generic definition for each of the transform-o-to-* functions in definitions.mk, and one target specific one in each combo/TARGET_*.mk. The generic one was entirely unused, and the target specific ones were all nearly identical. Changing anything in these functions was tedious at best, and often error prone. The differences between any 32-bit arch and its 64-bit equivalent were restricted to the name of the linker, and the ARM and MIPS definitions were identical. The few differences between ARM and x86 looked to be compatibility for an old (ca. 2008) toolchain issue with --gc-sections, and a bug (LDFLAGS coming first rather than later). To simplify things, I've moved the definitions for these out of combo/TARGET_*.mk and back into definitions.mk. The differences between ARM and x86 have been scrapped. Anything that really does still need to be target specific can be handled as I have the linker: add a TARGET_FOO variable to the given target and then add it to the generic definition. Change-Id: I54dc1bffc32ac39f27f0b87247dd6a6dbaf0b162
* | Switch --hash-style to gnuDmitriy Ivanov2014-11-131-0/+1
|/ | | | | Bug: 18373609 Change-Id: Ia2c965fb86295858d9a97db2ec8d54d99e3d431f
* resolved conflicts for merge of 852fc3e6 to lmp-dev-plus-aospDan Albert2014-10-141-1/+2
|\ | | | | | | Change-Id: If3de742dcd2157c4690ae0eb34494dc11492054f
| * Link compiler-rt in the correct order.Dan Albert2014-10-141-1/+2
| | | | | | | | | | | | | | | | The compiler run-time library should always be the _last_ thing linked when building static executables. This was being done correctly for libgcc, but not when using compiler-rt. Change-Id: I0689dc35f55caad2fe74c0cbb4cbe3008ded349a
* | resolved conflicts for merge of 326f9450 to lmp-dev-plus-aospDan Albert2014-09-241-0/+5
|\ \ | |/ | | | | Change-Id: I66360da623a6e7ac04610c3252f24ed69f7e4b1e
| * Add option for generating coverage info.Dan Albert2014-09-231-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To enable building with coverage, the environment variable NATIVE_COVERAGE must be set to true. Set `LOCAL_NATIVE_COVERAGE := true` to generate coverage information for a given component. This is currently not supported for clang (b/17574078, b/17583330). If static library A is included in a binary B (dynamic or static executable, or shared library), and A is built with coverage information, B is required to link with libgcov.a. Since the make does not offer a good way to track this dependency, link libgcov.a even if LOCAL_NATIVE_COVERAGE is not set (but still guarded by NATIVE_COVERAGE). This ensures that all of the libgcov dependencies will always be resolved, and causes no change in the resulting binary if coverage is not used. Bug: 10134489 Change-Id: Id5a19f2c215e4be80e6eae27ecc19b582f2f6813
* | am 92421720: am 98f7742a: Merge "Move selection of C++ STL into the build ↵Dan Albert2014-09-191-3/+1
|\ \ | |/ | | | | | | | | | | system." * commit '9242172094691c7203ba7cf0a5e5db611ca9032b': Move selection of C++ STL into the build system.
| * Move selection of C++ STL into the build system.Dan Albert2014-09-181-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Preparing for migration from stlport to libc++. STL selection is done with LOCAL_CXX_STL (valid values are default, none, libc++, libc++_static, stlport, stlport_static, bionic). The selection of the STL is as follows: if LOCAL_CXX_STL == 'default' ifdef LOCAL_SDK_VERSION Use whatever STL the other NDK options have selected. else Use bionic's libstdc++ for target, GNU libstdc++ for host. This is compatible with the existing build options. endif else if LOCAL_CXX_STL == 'stlport' Use stlport. else if LOCAL_CXX_STL == 'libc++' Use libc++. else if LOCAL_CXX_STL == '' Don't use any STL. endif endif Bug: 15193147 Change-Id: If712ba0ae7908d8147a69e29da5c453a183d6540
* | am e99d8947: am cbc742a1: Merge "Inhibit implicit -Bsymolic in -shared."Dan Albert2014-08-081-1/+1
|\ \ | |/ | | | | | | * commit 'e99d8947c09731d71db7e95a280cf81f51f4049a': Inhibit implicit -Bsymolic in -shared.
| * Inhibit implicit -Bsymolic in -shared.Dan Albert2014-08-071-1/+1
| | | | | | | | | | | | Bug: 16853291 Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
* | am 897cd3d4: am afae9fd8: Merge "Fix uses of -fPIC and -fPIE."Dan Albert2014-08-081-2/+1
|\ \ | |/ | | | | | | * commit '897cd3d494272b8a6a12f0fb6d02bfe7426a309c': Fix uses of -fPIC and -fPIE.
| * Fix uses of -fPIC and -fPIE.Dan Albert2014-08-071-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We've been using -fPIC and -fPIE together in the global cflags all this time. These options are incompatible. The only reason we haven't been hit by this before is because of the forced -Bsymbolic in GCC. To fix this, pass -fpic when compiling objects for shared libraries and -fpie when compiling objects for executables. For static libraries, also use -fpic. We have to do this because static libraries might be included in either a shared library or an executable. Code compiled with -fpie cannot be included in a shared library, but code compiled with -fpic may be included in an executable. We've also been using -fpic and -fPIC together. These are different options, and only the latter will take effect. http://stackoverflow.com/a/967010 The final thing this fixes is that we had -f(PIC|PIE) flags being passed to link commands. These are compile time flags, and don't do anything at link time. Bug: 16823325 Change-Id: Ic76f47e63dc2c81b7e1a8058bae1b3dc8565d606
| * Refactor FDO support code to ensure arm64 can also be built with FDO.Dehao Chen2014-07-231-0/+1
| | | | | | | | Change-Id: I752c9f411b0a046a15c72b4837efc1fb0503b470
* | Update the FDO support:Dehao Chen2014-07-301-3/+0
| | | | | | | | | | | | | | | | * Explicitly check BUILD_FDO_INSTRUMENT and BUILD_FDO_OPTIMIZE with true * Remove unnecessary target_libgcov * Update the profile collection path on device so that most app can have write access Change-Id: I5c1915a12ea37b2cb3c76a27e7104e47ad636928
* | Switch NDK arm64 libraries to 4.9.Przemyslaw Szczepaniak2014-07-251-1/+1
| | | | | | | | | | Change-Id: Iffc30e34b798896d9259ca1dfc3ff2d21683d6a4 (cherry picked from commit 5895dd13a7c96a3100048dae8fc1195abc8c9beb)
* | Refactor FDO support code to ensure arm64 can also be built with FDO.Dehao Chen2014-07-231-0/+1
|/ | | | Change-Id: I752c9f411b0a046a15c72b4837efc1fb0503b470
* More consistent use of 64-bit build variable.Ying Wang2014-07-081-2/+0
| | | | | | | | Set up TARGET_IS_64_BIT and HOST_IS_64_BIT early so we don't need 2 mechanisms to judge if it's 64-bit build; Remove the unnecessary 32-bit host variables. Change-Id: I08d6d4d9ea70f91135fe2ee05463fb9a0d1cee42
* Remove -Bsymbolic from builds.Dan Albert2014-06-131-1/+0
| | | | | | | | This is causing issues when tools like asan try to wrap calls like malloc. See the referenced bug for more details. Bug: 15432753 Change-Id: I15e8eab5b773afd02dc14c78500cf8246a617718
* Merge "Add -shared to clang LDFLAGS."Stephen Hines2014-05-301-0/+1
|\
| * Add -shared to clang LDFLAGS.Tim Murray2014-05-291-0/+1
| | | | | | | | | | | | TOT clang doesn't do the right thing with regards to -pie without this. Change-Id: Ic14cfb25d96359eb18899c09ebaf1d311e937d01
* | arm64: restore relro/nowNick Kralevich2014-05-301-2/+2
| | | | | | | | | | | | | | The bug which required this option has been fixed. Bug: 11434996 Change-Id: I7ab7e2e8ba7b993281902832d01b3ee3ba9e06ef
* | Add -latomic to all target buildsAndrew Hsieh2014-05-291-0/+5
|/ | | | | | | | | | | | | Projects using stdatomic.h needs libatomic.a in case compiler can't expand all __atomic* intrinsics. eg, __atomic_is_lock_free in armeabi/mips. Adding libatomic.a globally makes more sense than adding "LOCAL_LDLIB += -latomic " in each project including <stdatomic.h>. Projects don't need atomic operations won't get redundant DT_NEEDED entry because libatomic.a is not a shared library. Change-Id: I81dbf524544c848e667e18ab5eeabff75b5063ef
* Exclude libstdc++ and libgcc if libc++ is requested.Ying Wang2014-05-231-3/+3
| | | | | Bug: 15174002 Change-Id: I24fe428c3520f76cd61f0660b59ba18a1f2d2dad
* Use aarch64-linux-android-4.9 for arm64 build (attempt #4)Ben Cheng2014-05-191-6/+5
| | | | | | | | | | | | | | | | GCC: 4.9 (which supports -fstack-protector) Binutils: 2.24 (which supports gc-sections) GDB: 7.7 NDK libraries are still picked up from prebuilts/ndk/*/4.8/* GCC has been patched to disable codegen for calling __cxa_throw_bad_array_new_length. Source code has been sync'ed against the 2014-05-14 snapshot which contains many important fixes (devirtualization, codegen, ...). Change-Id: I43229360ad0132193d5208cb0d1acba55084853c
* Disable canonical prefixes of system headersAndrew Hsieh2014-05-091-0/+2
| | | | | | | | | | | | | | | | | GCC know a few pre-defined paths (relative to its location) to search for headers, libraries, program, etc. By default GCC prefixes its own path(argv[0]) and calls realpath() which result in absolute path with all symlink, . and .. removed. It's usually good to have canonicalised paths, but absolute paths in *.d file can cause unnecessary relinking when stale entries in ccache cache hit Add -no-canonical-prefixes (gcc>=4.6) and -fno-canonical-system-headers (gcc>4.6) to disable realpath() on prefixed paths Change-Id: I58d739e61fb013015fb05a9c98b2132b307f915a
* Apply LOCAL_LDLIBS to target build rules too.Ying Wang2014-05-071-2/+4
| | | | | | | | | Use LOCAL_LDLIBS to link against prebuilt libraries (such as NDK libraries). Previously LOCAL_LDLIBS only applies to host modules and the behaviour confuses users. Change-Id: I515546d7b59ef54e8ef09050eb58ec63534c9291
* Revert "Use aarch64-linux-android-4.9 for arm64 build (attempt #3)"Ben Cheng2014-04-181-5/+6
| | | | | | | | This reverts commit 084a7f83875d030c2e4819bed386c4a16168e731. GCC 4.9 still has stability issues (b/14160872) Change-Id: I4d40829dbbfac0e7b6cd7eaf9924744bc5714271
* Use aarch64-linux-android-4.9 for arm64 build (attempt #3)Ben Cheng2014-04-161-6/+5
| | | | | | | | | | | | GCC: 4.9 (which supports -fstack-protector) Binutils: 2.24 (which supports gc-sections) GDB: 7.7 NDK libraries are still picked up from prebuilts/ndk/*/4.8/* GCC has been patched to disable codegen for calling __cxa_throw_bad_array_new_length. Change-Id: Ie0bf38357c0cf3d265d8b5dd3c2b8a8fd83b1de1
* Add -Wl,-maarch64linuxAndrew Hsieh2014-04-151-0/+1
| | | | | | | | | | | The "-maarch64linux" switch is needed before aarch64-*4.8 is rebuilt with backport of upstream patch, see https://android-review.googlesource.com/#/c/91099/ The existing ld.bfd is fine because it's configured to support aarch64linux only. ld.mcld (see https://android-review.googlesource.com/#/c/91047) needs explicit emulation switch because it supports multiple targets Change-Id: Idc1a491c5722ea9e26db917b667b1000bccc1f60
* Revert "Use aarch64-linux-android-4.9 for arm64 build (attempt #2)"Ben Cheng2014-04-111-5/+6
| | | | | | | This reverts commit 1ae9b213eb5648205223e4b825f4c808a5d2ace8. Sigh... new warnings found by 4.9 break checkbuild. Change-Id: I46ad622fa9c8ac4fb1e15e29bb400634abc5914c
* Use aarch64-linux-android-4.9 for arm64 build (attempt #2)Ben Cheng2014-04-111-6/+5
| | | | | | | | | | | | GCC: 4.9 (which supports -fstack-protector) Binutils: 2.24 (which supports gc-sections) GDB: 7.7 NDK libraries are still picked up from prebuilts/ndk/*/4.8/* GCC has been patched to disable codegen for calling __cxa_throw_bad_array_new_length. Change-Id: Ie647fc4c6b227d6bee792f04d5c2f02eb0099559
* Decouple platform compiler and NDK library versioning.Ben Cheng2014-04-101-0/+3
| | | | | | | TARGET_GCC_VERSION: select compiler from prebuilts/gcc/... TARGET_NDK_GCC_VERSION: select libraries from prebuilts/ndk/... Change-Id: I4422a42cdc97aa92b40798014cba82c3c123bbd2
* Revert "Use aarch64-linux-android-4.9 for arm64 build."Ben Cheng2014-04-101-5/+6
| | | | | | This reverts commit 6154690d8615995b961530479ddc1a34946efe49. Change-Id: I7427ad6ca1f74ad632229348bac31ebdbc0590ad
* Use aarch64-linux-android-4.9 for arm64 build.Ben Cheng2014-04-091-6/+5
| | | | | | | Change-Id: I63e1b54947326fb5da07af7691d4729bcbf99ac1 GCC: 4.9 (which supports -fstack-protector) Binutils: 2.24 (which supports gc-sections) GDB: 7.7
* Remove the unnecessary indirection of TARGET_STRIP_COMMANDYing Wang2014-03-281-1/+0
| | | | | | | Now all archs use the same strip command which can be put just in transform-to-stripped. Change-Id: Ief79697d47ea142fc9e63e63a7e2dace9e839165
* Add a method to leave the symbol table in a library.Christopher Ferris2014-03-181-6/+2
| | | | | | | | | | | | When LOCAL_STRIP_MODULE := keep_symbols is set, then the normal strip rules will be modified so that only the .debug_* sections are removed. The original symbol table is left alone. This allows the compilation of certain libraries so that libbacktrace library can provide meaningful names to functions. Bug: 12958251 Change-Id: I82bdc304a463012e29086325ccb51163464cb4a9
* Remove arm64 clang build warningYing Wang2014-03-181-3/+0
| | | | | | | | Now we have enabled arm64 clang. This change remvoed arm64 clang build warning and cleaned the arm64 unknow c flags. Change-Id: Ia583a78c6d364e603ff09df423aa34a6e03d0b9b
* Work in progress to enable build system support for Clang.Tim Murray2014-03-141-1/+1
| | | | Change-Id: I278b48bcd976afcbde8d86261da9b9b9efc9002c
* Split WITHOUT_CLANG to WITHOUT_HOST_CLANG and WITHOUT_TARGET_CLANGYing Wang2014-03-101-1/+1
| | | | | | | Still keep WITHOUT_CLANG, which enables both. Bug: 13402154 Change-Id: I32cb668223997719875751bf3d64f592d6086830
* Make -rpath-link work with multilib.Ying Wang2014-02-211-1/+1
| | | | Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783