Commit Graph

193 Commits

Author SHA1 Message Date
Dan Albert
8f73aeea87 am 183f90f4: am 3ffcf184: Merge "Remove -Bsymbolic from builds."
* commit '183f90f40ce9e0fafa563dfaf1fb4450cb98168c':
  Remove -Bsymbolic from builds.
2014-07-08 18:55:55 +00:00
Ying Wang
e68ec71903 [DO NOT MERGE] Workaround to fix klp-modular-dev-plus-aosp build.
Change-Id: I8042b045f20b870de84ea7c4c060c3cbe1cdfe69
2014-07-02 14:26:49 -07:00
Dan Albert
50031de36e Remove -Bsymbolic from builds.
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
2014-06-13 10:24:12 -07:00
Stephen Hines
88bd5edaa4 am 15d49c3b: am 85e0dce5: am a8b65126: Merge "Add -shared to clang LDFLAGS."
* commit '15d49c3b30d320422d0209c8726eb0c5cec92d41':
  Add -shared to clang LDFLAGS.
2014-05-30 23:15:43 +00:00
Stephen Hines
a8b65126ca Merge "Add -shared to clang LDFLAGS." 2014-05-30 22:59:48 +00:00
Andrew Hsieh
4e5c08d420 am fb0a19d6: am dc41aa32: am 5c2c70de: Merge "Add -latomic to all target builds"
* commit 'fb0a19d603b0f2c00ec3491a39d37103496cbca9':
  Add -latomic to all target builds
2014-05-30 11:50:52 +00:00
Tim Murray
0f9276d4ba Add -shared to clang LDFLAGS.
TOT clang doesn't do the right thing with regards to -pie without this.

Change-Id: Ic14cfb25d96359eb18899c09ebaf1d311e937d01
2014-05-29 17:54:07 -07:00
Andrew Hsieh
4c952d72b7 Add -latomic to all target builds
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
2014-05-29 11:40:46 -07:00
Ying Wang
bccdab8737 am 65475feb: am 29267309: am 294301bb: Merge "Exclude libstdc++ and libgcc if libc++ is requested."
* commit '65475feb5999068096b287faac9199d1c8e18340':
  Exclude libstdc++ and libgcc if libc++ is requested.
2014-05-27 17:59:11 +00:00
Ying Wang
d90de32951 Exclude libstdc++ and libgcc if libc++ is requested.
Bug: 15174002
Change-Id: I24fe428c3520f76cd61f0660b59ba18a1f2d2dad
2014-05-23 16:42:37 -07:00
Andrew Hsieh
9604c0680f am a01cb054: am c581e10a: am eca0043b: Merge "Disable canonical prefixes of system headers"
* commit 'a01cb05450c6435c9cdca58534ed00eafb07f6eb':
  Disable canonical prefixes of system headers
2014-05-09 17:06:54 +00:00
Andrew Hsieh
48f239c94f Disable canonical prefixes of system headers
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
2014-05-09 22:12:49 +08:00
Ying Wang
cd88262744 am af93afce: am 0a61a603: am 3b15cdb8: Merge "Apply LOCAL_LDLIBS to target build rules too."
* commit 'af93afcec91d31d1f5afb88b83413cdc7c019e70':
  Apply LOCAL_LDLIBS to target build rules too.
2014-05-08 18:31:14 +00:00
Ying Wang
de36cd72e8 Apply LOCAL_LDLIBS to target build rules too.
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
2014-05-07 11:33:19 -07:00
Ben Cheng
19b7c4d5c9 am e4d787bf: am 7e793040: am eec11d97: Merge "Decouple platform compiler and NDK library versioning."
* commit 'e4d787bfbbde83bc4b868ed804c94118c2ea0080':
  Decouple platform compiler and NDK library versioning.
2014-04-11 17:10:37 +00:00
Ben Cheng
4de6fa4069 Decouple platform compiler and NDK library versioning.
TARGET_GCC_VERSION: select compiler from prebuilts/gcc/...
TARGET_NDK_GCC_VERSION: select libraries from prebuilts/ndk/...

Change-Id: I4422a42cdc97aa92b40798014cba82c3c123bbd2
2014-04-10 22:46:26 -07:00
Ying Wang
82784b285a am 1758fe1f: am 30dbfa43: am 1c380c13: Merge "Remove the unnecessary indirection of TARGET_STRIP_COMMAND"
* commit '1758fe1f87b58f91db569ba3c0fa406f5f37819e':
  Remove the unnecessary indirection of TARGET_STRIP_COMMAND
2014-03-31 17:43:57 +00:00
Ying Wang
ce1c596e15 Remove the unnecessary indirection of TARGET_STRIP_COMMAND
Now all archs use the same strip command which can be put just in
transform-to-stripped.

Change-Id: Ief79697d47ea142fc9e63e63a7e2dace9e839165
2014-03-28 17:25:34 -07:00
Christopher Ferris
ddb9b4042e am 10eaabfc: am a908fc96: am aea9f041: am 8b1bcc7d: Merge "Add a method to leave the symbol table in a library."
* commit '10eaabfceb715baecbcdf71ebfb4f108ce295fb6':
  Add a method to leave the symbol table in a library.
2014-03-19 18:25:22 +00:00
Christopher Ferris
a6e2f9322c Add a method to leave the symbol table in a library.
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
2014-03-18 17:34:41 -07:00
Ying Wang
d4fe0bdfcb am 9b996f80: am eb9b62e0: Merge "Make -rpath-link work with multilib."
* commit '9b996f80a95f48bae153c35bacc0360c004e5258':
  Make -rpath-link work with multilib.
2014-02-22 00:58:46 +00:00
Ying Wang
9fb3526648 Make -rpath-link work with multilib.
Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783
2014-02-21 16:20:20 -08:00
Elliott Hughes
d63d974c49 am 6fe9a949: am 69c36ee7: am 4fbf23ef: am 0a3cf1a0: Merge "Remove libthread_db from the default include path."
* commit '6fe9a94989879babb859a24fdef0b2553955cc53':
  Remove libthread_db from the default include path.
2014-01-28 01:04:55 +00:00
Elliott Hughes
2f8dcdd961 Remove libthread_db from the default include path.
This should never have been on the default include path.

The NDK statically links its own libthread_db, so I'm removing
bionic's unused copy from devices.

Bug: 11882807
Change-Id: I49a67fe0902cc4bc178360f6c993959774d74e3a
2014-01-27 15:45:17 -08:00
Colin Cross
c3256c770d build: use arm kernel headers for arm 2nd arch builds
Compiling for arm requires using the arm kernel headers and not
the aarch64 kernel headers.  Add $(combo_2nd_arch_prefix) to get
asm-$(TARGET_2ND_ARCH) when arm is the 2nd arch.

Change-Id: I15270d0ef35e48c034bf4d0d5e35b76f67b2a8e1
2014-01-24 13:41:00 -08:00
Ying Wang
6ef6519170 Set up rules to build static libraries for TARGET_2ND_ARCH
The rules for the 2nd arch are set up in the second inclusion
of static_library_internal.mk.
libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a.

Bug: 11654773
Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
2014-01-24 13:35:09 -08:00
Ying Wang
1d274d2686 Load compiler environment for a second arch.
This is the first step to build 32-bit libraries in a 64-bit product.
It will work like this:
1) In the product's BoardConfig.mk, define:
TARGET_2ND_ARCH, TARGET_2ND_ARCH_VARIANT, TARGET_2ND_CPU_VARIANT.
The build system uses those variables to set up an additional compiler
environment for the second arch.

2) When parsing Android.mks, the build system sets up rules to build a
module for both the 1st arch and the 2nd arch, unless it's explicitly
asked to skip so.
Android.mk will be adapted if there is additional rule of generating
source files.
The build system will accept arch-specific LOCAL_ variables, such as
LOCAL_CFLAGS_arm, LOCAL_CFLAGS_armv7-a-neon, LOCAL_CFLAGS_cortex-a15,
LOCAL_CFLAGS_aarch64 etc. Modules use such variables to set up build for
various archs at the same time.

3) Install binary of the 2nd arch by adding "<module_name>:32" to
PRODUCT_PACKAGES. All 2nd-arch libraries linked in by "<module_name>:32"
will be installed automatically.

Bug: 11654773
Change-Id: I2df63cd5463a07bf5358bee2a109f8fb9590fe30

Conflicts:
	core/combo/TARGET_linux-arm.mk
2014-01-24 13:34:26 -08:00
Colin Cross
3814cbfd33 build: use arm kernel headers for arm 2nd arch builds
Compiling for arm requires using the arm kernel headers and not
the aarch64 kernel headers.  Add $(combo_2nd_arch_prefix) to get
asm-$(TARGET_2ND_ARCH) when arm is the 2nd arch.

Change-Id: I15270d0ef35e48c034bf4d0d5e35b76f67b2a8e1
2014-01-21 17:01:20 -08:00
Ying Wang
61d499b965 Set up rules to build static libraries for TARGET_2ND_ARCH
The rules for the 2nd arch are set up in the second inclusion
of static_library_internal.mk.
libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a.

Bug: 11654773
Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
2014-01-16 14:34:13 -08:00
Ying Wang
e1d44c3b4a Load compiler environment for a second arch.
This is the first step to build 32-bit libraries in a 64-bit product.
It will work like this:
1) In the product's BoardConfig.mk, define:
TARGET_2ND_ARCH, TARGET_2ND_ARCH_VARIANT, TARGET_2ND_CPU_VARIANT.
The build system uses those variables to set up an additional compiler
environment for the second arch.

2) When parsing Android.mks, the build system sets up rules to build a
module for both the 1st arch and the 2nd arch, unless it's explicitly
asked to skip so.
Android.mk will be adapted if there is additional rule of generating
source files.
The build system will accept arch-specific LOCAL_ variables, such as
LOCAL_CFLAGS_arm, LOCAL_CFLAGS_armv7-a-neon, LOCAL_CFLAGS_cortex-a15,
LOCAL_CFLAGS_aarch64 etc. Modules use such variables to set up build for
various archs at the same time.

3) Install binary of the 2nd arch by adding "<module_name>:32" to
PRODUCT_PACKAGES. All 2nd-arch libraries linked in by "<module_name>:32"
will be installed automatically.

Bug: 11654773
Change-Id: I2df63cd5463a07bf5358bee2a109f8fb9590fe30
2014-01-16 14:30:02 -08:00
Elliott Hughes
363948afb1 am 17657ec7: am 538009b2: am dda9d8ee: am 37c699c2: Merge "Remove obsolete CUSTOM_KERNEL_HEADERS."
* commit '17657ec7f71a7be5c71f3b42b217d9ec45079f3b':
  Remove obsolete CUSTOM_KERNEL_HEADERS.
2014-01-11 00:57:27 +00:00
Elliott Hughes
dddb566eba Remove obsolete CUSTOM_KERNEL_HEADERS.
Change-Id: Id260dd351b90f065eee56e231d4c341b18c1b27f
2014-01-10 16:35:08 -08:00
Christopher Ferris
d6ef972aea am 5b2d734d: am 5fb7c74a: am 7bda5aac: am d12ee620: Merge "Re-enable uapi kernel headers for arm."
* commit '5b2d734d2ce214f2fb7c91d6326ee600b1a97ceb':
  Re-enable uapi kernel headers for arm.
2013-12-17 23:22:41 +00:00
Christopher Ferris
9824ce4e1d Re-enable uapi kernel headers for arm.
Bug: 11559337
Change-Id: Ib914e5f22b10d5a74edc357d42b0dcb223185ab4
2013-12-16 13:58:39 -08:00
Christopher Ferris
68aec9bd01 am c4d168b9: am bc7064b5: am 7f36451b: am 657eadd4: Merge "Revert "Enable uapi kernel headers for arm.""
* commit 'c4d168b9d0d277255ac0473632f2c9bc103fe0f2':
  Revert "Enable uapi kernel headers for arm."
2013-12-16 18:43:24 +00:00
Christopher Ferris
e2c73b3194 Revert "Enable uapi kernel headers for arm."
This reverts commit 88c6c533e1.

Change-Id: I3cd84383c6f217bc6e627e16b2d0c7d948f8131d
2013-12-16 18:21:27 +00:00
Christopher Ferris
84c6144c52 am 675041d1: am 5e55aabc: am 9c15d111: am 84b99aad: Merge "Enable uapi kernel headers for arm."
* commit '675041d128a87378c959fd4b75bfe949a3818947':
  Enable uapi kernel headers for arm.
2013-12-16 18:08:39 +00:00
Christopher Ferris
88c6c533e1 Enable uapi kernel headers for arm.
Bug: 11559337
Change-Id: Idd251338f707b7c6a08f43a79f9784c57142f43c
2013-12-16 09:12:19 -08:00
Elliott Hughes
b5fdb3a947 am 3b54d5a5: am a5b55c27: Merge "Add a "reverse AUX hack" for ARM."
* commit '3b54d5a5fc492de5b28d905d0be36be66acec791':
  Add a "reverse AUX hack" for ARM.
2013-11-25 13:50:26 -08:00
Elliott Hughes
9696acae02 Add a "reverse AUX hack" for ARM.
MIPS and x86 are almost completely switched over to uapi-only. ARM is still
currently old-only. A cleanup of the uapi headers over the weekend means
that the uapi-only <linux/kexec.h> is now in the right place, which will break
the ARM build unless the ARM build also looks in the uapi headers if it can't
find an old header.

Change-Id: Ie7a53ef2122b43cdef64b71d7b36a8381992a461
2013-11-25 12:06:25 -08:00
The Android Open Source Project
b9041a45b1 Merge commit 'c73341006286c391ae4d268a77f5e008045d5308' into HEAD
Change-Id: I4bf7d32d65e19dfa1f0533fdd3b2295c50b13005
2013-11-22 11:06:11 -08:00
Ben Cheng
818d7d04f5 Switch AOSP ARM build to use GCC 4.8.
Change-Id: I65051773153ad5bc2c093cd1313acd212eb427b1
2013-11-14 14:05:29 -08:00
Ben Cheng
670b8d2251 Switch ARM platform toolchain to GCC 4.8.
Change-Id: If08cfb2b9d86c08d3b658470440242b0af4d9916
2013-09-17 09:35:14 -07:00
Ben Cheng
e3b1fc39f9 am db4113fd: am d58df2de: Merge "Re-tighten default compiler options."
* commit 'db4113fdcce77872cc4657d74ac4136b356de928':
  Re-tighten default compiler options.
2013-08-28 11:32:25 -07:00
Ben Cheng
85ccf735e2 Re-tighten default compiler options.
Remove "-Wno-unused-parameter -Wno-unused-but-set-parameter" added for
GCC 4.8 experiment.

BUG: 10495043
(cherry picked from internal master 1cea0755f4)

Change-Id: Ifa221709b1351a9268c06872e2b667138995c3da
2013-08-28 11:17:43 -07:00
Ben Cheng
1cea0755f4 Re-tighten default compiler options.
Remove "-Wno-unused-parameter -Wno-unused-but-set-parameter" added for
GCC 4.8 experiment.

BUG: 10495043
Change-Id: I774deb09c782fe79eb473fdefd471725a1f97fd5
2013-08-28 11:06:31 -07:00
Ying Wang
0634a437a3 am 3208b615: am fc8b6338: resolved conflicts for merge of d65a7da3 to jb-mr2-dev-plus-aosp
* commit '3208b615c5cde2b682c3bbbcd2bb064b14b57489':
  No need to filter out AndroidConfig.h for unbundled build
2013-08-15 14:42:57 -07:00
Ying Wang
fc8b633851 resolved conflicts for merge of d65a7da3 to jb-mr2-dev-plus-aosp
Change-Id: I14c4ddf5f02c8dec86f45bedf679bcebff1448dc
2013-08-15 12:02:30 -07:00
Ying Wang
f4723fa49b No need to filter out AndroidConfig.h for unbundled build
for now we have all AndroidConfig.hs in the build project.

Change-Id: Id713fecba1378fad81688f5937f61c779b618ac2
2013-08-15 11:01:10 -07:00
Ben Cheng
aac3f81657 Prepare upcoming GCC 4.8 release.
o Add -Wno-unused-parameter -Wno-unused-but-set-parameter to suppress
  new warnings.
o Define GCC_COLORS to enable colorful diagnostic messages.

Change-Id: Icbd62300b0e6f39d4e514edec2431a06b4d72421
(cherry picked from internal commit ccd8e6082b)
2013-08-13 14:52:31 -07:00