| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This reverts commit 32e1689684682aadf1a5d5af523ccafae5907572.
Now that prebuilts/gcc/darwin-x86/aarch64/aarch64-linux-android-4.9 is also updated
Change-Id: Id95c1c4cc651c434461655e62b8f23afd56b53e4
|
|
|
|
|
|
|
|
|
| |
Add replocation-packer step for dynmic executables.
Enable it by default for arm and arm64 platforms.
Bug: http://b/18051137
Change-Id: I0c88fd31595bcea62a087f219acb9ecf9c80f2e5
|
|
|
|
|
|
| |
This reverts commit e7a1b8a0c6d5f56e415345a0aceef3afe5ff5eff.
Change-Id: I1a2185e1c68d364941e3b3e525a8c4a7a42e0cc1
|
|
|
|
|
| |
Bug: http://b/18051137
Change-Id: I277277d5f5eb450ef9b4a23cfec16d75d977eb89
|
|
|
|
|
|
| |
This reverts commit 54b22a5a706f6556cda6ef3de13b9b0bdc22e989.
Change-Id: I23613490030783fb6da678de5a25f37caebe5f97
|
|
|
|
| |
Change-Id: Icb8a4ce4d5688847cfe536eba2139cdf7f6406f3
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
| |
Bug: 18373609
Change-Id: Ia2c965fb86295858d9a97db2ec8d54d99e3d431f
|
|\
| |
| |
| | |
Change-Id: If3de742dcd2157c4690ae0eb34494dc11492054f
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| | |
Change-Id: I66360da623a6e7ac04610c3252f24ed69f7e4b1e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| |
| |
| | |
system."
* commit '9242172094691c7203ba7cf0a5e5db611ca9032b':
Move selection of C++ STL into the build system.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
| |
| |
| | |
* commit 'e99d8947c09731d71db7e95a280cf81f51f4049a':
Inhibit implicit -Bsymolic in -shared.
|
| |
| |
| |
| |
| |
| | |
Bug: 16853291
Change-Id: Id70488b077256a70137c4417f21be2c2d1d4341c
|
|\ \
| |/
| |
| |
| | |
* commit '897cd3d494272b8a6a12f0fb6d02bfe7426a309c':
Fix uses of -fPIC and -fPIE.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Change-Id: I752c9f411b0a046a15c72b4837efc1fb0503b470
|
| |
| |
| |
| |
| |
| |
| |
| | |
* 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
|
| |
| |
| |
| |
| | |
Change-Id: Iffc30e34b798896d9259ca1dfc3ff2d21683d6a4
(cherry picked from commit 5895dd13a7c96a3100048dae8fc1195abc8c9beb)
|
|/
|
|
| |
Change-Id: I752c9f411b0a046a15c72b4837efc1fb0503b470
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|\ |
|
| |
| |
| |
| |
| |
| | |
TOT clang doesn't do the right thing with regards to -pie without this.
Change-Id: Ic14cfb25d96359eb18899c09ebaf1d311e937d01
|
| |
| |
| |
| |
| |
| |
| | |
The bug which required this option has been fixed.
Bug: 11434996
Change-Id: I7ab7e2e8ba7b993281902832d01b3ee3ba9e06ef
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Bug: 15174002
Change-Id: I24fe428c3520f76cd61f0660b59ba18a1f2d2dad
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
This reverts commit 084a7f83875d030c2e4819bed386c4a16168e731.
GCC 4.9 still has stability issues (b/14160872)
Change-Id: I4d40829dbbfac0e7b6cd7eaf9924744bc5714271
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This reverts commit 1ae9b213eb5648205223e4b825f4c808a5d2ace8.
Sigh... new warnings found by 4.9 break checkbuild.
Change-Id: I46ad622fa9c8ac4fb1e15e29bb400634abc5914c
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
TARGET_GCC_VERSION: select compiler from prebuilts/gcc/...
TARGET_NDK_GCC_VERSION: select libraries from prebuilts/ndk/...
Change-Id: I4422a42cdc97aa92b40798014cba82c3c123bbd2
|
|
|
|
|
|
| |
This reverts commit 6154690d8615995b961530479ddc1a34946efe49.
Change-Id: I7427ad6ca1f74ad632229348bac31ebdbc0590ad
|
|
|
|
|
|
|
| |
Change-Id: I63e1b54947326fb5da07af7691d4729bcbf99ac1
GCC: 4.9 (which supports -fstack-protector)
Binutils: 2.24 (which supports gc-sections)
GDB: 7.7
|
|
|
|
|
|
|
| |
Now all archs use the same strip command which can be put just in
transform-to-stripped.
Change-Id: Ief79697d47ea142fc9e63e63a7e2dace9e839165
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Now we have enabled arm64 clang.
This change remvoed arm64 clang build warning and cleaned the
arm64 unknow c flags.
Change-Id: Ia583a78c6d364e603ff09df423aa34a6e03d0b9b
|
|
|
|
| |
Change-Id: I278b48bcd976afcbde8d86261da9b9b9efc9002c
|
|
|
|
|
|
|
| |
Still keep WITHOUT_CLANG, which enables both.
Bug: 13402154
Change-Id: I32cb668223997719875751bf3d64f592d6086830
|
|
|
|
| |
Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783
|