Commit graph

462 commits

Author SHA1 Message Date
Shu Zhang
453afb242c Specify -mcpu=cortex-a15 for denver CPU variants.
Change-Id: Ic27484c92a48b45148021a61420ffdd55a9dd945
2014-03-24 16:19:50 +08: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
ed56902c29 Remove arm64 clang build warning
Now we have enabled arm64 clang.
This change remvoed arm64 clang build warning and cleaned the
arm64 unknow c flags.

Change-Id: Ia583a78c6d364e603ff09df423aa34a6e03d0b9b
2014-03-18 15:58:13 -07:00
Colin Cross
db24577bbd Merge "Work in progress to enable build system support for Clang." 2014-03-15 23:54:03 +00:00
Tim Murray
b5f333bbef Work in progress to enable build system support for Clang.
Change-Id: I278b48bcd976afcbde8d86261da9b9b9efc9002c
2014-03-14 00:39:03 -07:00
Andrew Hsieh
cbe162e914 Fix HOST_TOOLCHAIN_PREFIX
Previously HOST_TOOLCHAIN_PREFIX can't accept toolchain in arch-os-*-gcc
format.  Fix it so we can try out new host toolchain, eg.

  HOST_TOOLCHAIN_PREFIX=prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/bin/x86_64-linux- make

Change-Id: Ic1092593036c41d5471e788654fb4e0991dd7e40
2014-03-12 19:27:59 +08:00
Ying Wang
ba8b377d89 Split WITHOUT_CLANG to WITHOUT_HOST_CLANG and WITHOUT_TARGET_CLANG
Still keep WITHOUT_CLANG, which enables both.

Bug: 13402154
Change-Id: I32cb668223997719875751bf3d64f592d6086830
2014-03-10 18:59:12 -07:00
Ian Rogers
aa54033b46 Define __STDC_CONSTANT_MACROS globally to work around host build differences.
Change-Id: I945128b3087b28f62467c7123b759e3514027574
2014-03-10 16:49:41 -07:00
Ian Rogers
c61a9425cd Revert "Define __STDC_LIMIT_MACROS globally to work around host build differences."
This reverts commit 668427c941.

Change-Id: I3694aad84e7499e4c6839db0bd06acf5166e4802
2014-03-10 23:27:01 +00:00
Ian Rogers
668427c941 Define __STDC_LIMIT_MACROS globally to work around host build differences.
Change-Id: I571fc5a4b35c830ca8de4dc3117aef258dffa1bd
2014-03-10 15:30:39 -07:00
Ying Wang
9fb3526648 Make -rpath-link work with multilib.
Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783
2014-02-21 16:20:20 -08:00
Ying Wang
9335001d5d Merge "Strip all symbols on x86" 2014-02-20 18:31:07 +00:00
Elliott Hughes
369b3326f3 Add missing $(combo_2nd_arch_prefix)s to mips.
Change-Id: I91a5f2d92cc964cbaeb1c07f27eb56ea1a0d53cc
2014-02-19 20:29:25 -08:00
C. Sean Young
b47c863ec7 Strip all symbols on x86
Strip all of the non-dynamic symbols on x86 targets,
instead of just the debug symbols.

Change-Id: Id799a6a8c8b0e8bf70977328e42e5efa23762f25
2014-02-19 12:53:43 -08:00
Ying Wang
5aa50c6637 Merge "Fix x86 config file to support 2nd ARCH build" 2014-02-19 18:19:22 +00:00
Ying Wang
3d9c1c1a53 Merge "Switch x86_64 to gcc-4.8" 2014-02-19 18:17:52 +00:00
Colin Cross
4aa263f2be x86: set -msse2 for all builds
All supported x86 processors have SSE2.

Change-Id: Ib4a0511c456fe3185b0b902390860ad557aeedcf
2014-02-18 15:49:48 -08:00
Pavel Chupin
c562742e0b Switch x86_64 to gcc-4.8
x86 is already on gcc-4.8

Change-Id: I39b4298b705a6ad04cdaa434261c6b0d90d552ff
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2014-02-18 17:02:36 +04:00
Qiming Shi
310324d28a Fix x86 config file to support 2nd ARCH build
Change-Id: I5f6091c555b9e742303f294b7c07a981ae5c6026
Signed-off-by: Qiming Shi <qiming.shi@intel.com>
2014-02-17 17:46:48 +08:00
Stephen Hines
6d5dd2367a Fix incorrect x86 build rules.
combo/TARGET_x86*.mk mistakenly added TARGET_GLOBAL_CFLAGS to their
linker command lines. This results in clang builds not working properly,
since they strip some unknown flags from TARGET_GLOBAL_CFLAGS.

Change-Id: I60a1ff5df70305323134435e4ae107ea7acfe8ea
2014-02-13 09:24:29 -08:00
Ben Cheng
6c5d897648 Merge "Refreshed gcc predefines __ANDROID__" 2014-02-07 21:36:46 +00:00
Ben Cheng
859c826ffc Refreshed gcc predefines __ANDROID__
Change-Id: Id76f5a7490fba8190329e5ce3c4b138976a034ce
2014-02-07 13:16:18 -08:00
Ying Wang
de9955c35e Select the arch_variant_cflags for the 2nd arch.
Change-Id: Id2f9d7073a4aae3ba0fe5e5464045761f4d42b4e
2014-02-07 10:44:10 -08:00
Elliott Hughes
8b20d5b97e Merge "Turn 64-bit-related warnings into errors on 64-bit builds." 2014-02-06 20:54:05 +00:00
Chris Dearman
1efd9e462a [MIPS64] Add mips64 target
Change-Id: Ice1621101c0d5a3314db288542ca8020e3f406bf
Signed-off-by: Duane Sand <duane.sand@imgtec.com>
2014-02-05 19:07:57 -08:00
Elliott Hughes
18042e1960 Turn 64-bit-related warnings into errors on 64-bit builds.
I don't think we can realistically turn this on for 32-bit builds any
time soon.

Also, fix the arm64 stack-protector hack.

Change-Id: Ie1e7c875bbc06fb21bb372b8ca99879a23ef53d4
2014-02-05 17:40:02 -08:00
Colin Cross
ec14ce578b remove 2nd arch from ARCH_ARM_* defines
Users of ARCH_ARM_* defines don't care about first vs. second arch,
set ARCH_ARM_* regardless of which arch is arm.

Change-Id: I2ae83ec5c3f839ff91a0e352c95d76ec2cbd5dc5
2014-02-04 19:44:09 -08:00
Ian Rogers
694b2b7b12 Define __STDC_FORMAT_MACROS on Windows host builds.
Change-Id: I89b54a63c3f111b8242fe9e813d94a839c484195
2014-01-29 21:37:37 -08:00
Ian Rogers
61e5059ef7 Fix the host inttypes.h problem globally.
Bug: 12708004
Change-Id: I2c75647bac304b82e150c540b9e6c5568997596d
2014-01-29 16:29:11 -08:00
Elliott Hughes
1a731adf94 Merge "Fix KERNEL_HEADERS_ARCH for mips and x86." 2014-01-28 21:23:07 +00:00
Elliott Hughes
171e940c7a Fix KERNEL_HEADERS_ARCH for mips and x86.
arm and arm64 have distinct headers, but mips and mip64, and x86 and x86_64
use headers that work for both widths. So where arm/arm64 need to handle the
second architecture case specially, all we need to do for the others is
hard-code the name. (x86_64.mk already hard-codes x86; we need to change
x86.mk for the case where we're building the 32-bit binaries for a mixed
system. mips64.mk doesn't exist yet, but when it does, it'll hard-code
just plain "mips" too.)

Change-Id: Ia6b9f77b4eb2c78729b454045875c409e0ea8197
2014-01-28 13:10:19 -08:00
Colin Cross
8f47fc379e Add support for TARGET_GLOBAL_UNSUPPORTED_CFLAGS
To ease the transition between toolchains, allow a target to specify
a list of cflags that the toolchain does not support.  These will be
filtered out of the cflags provided by the module.

Add TARGET_GLOBAL_UNSUPPORTED_CFLAGS := -fstack-protector for the
aarch64 toolchain, it does not yet suport -fstack-protector.

Change-Id: I168d0c6f131326fad305ec86fad46e6a3e03295a
2014-01-27 18:21:12 -08: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
4d2cc665ea Set up rules to build shared libraries for TARGET_2ND_ARCH
The rules for the 2nd arch are set up in the second inclusion
of shared_library_internal.mk.
Intermediate fils of libfoo of the 2nd arch will be built into
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/SHARED_LIBRARIES/libfoo_intermediates/
and the built libfoo.so will be in
$(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/lib.

Bug: 11654773
Change-Id: I58bbe5a05a65f63bce6279131552f3792000716e
2014-01-24 13:35:30 -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
4f0eb7d50c build: rename aarch64 target to arm64
Rename aarch64 build targets to arm64.  The gcc toolchain is still
aarch64.

Change-Id: Ia92d8a50824e5329cf00fd6f4f92eae112b7f3a3
2014-01-23 22:39:38 -08:00
Chris Dearman
13eb1eb53d [MIPS] Reenable linker fatal-warnings
Change-Id: I4efbb7d0b1026b49a9b8bf968dd4752fca8a543b
2014-01-15 19:00:37 +00:00
Elliott Hughes
37c699c28a Merge "Remove obsolete CUSTOM_KERNEL_HEADERS." 2014-01-11 00:41:25 +00:00
Elliott Hughes
dddb566eba Remove obsolete CUSTOM_KERNEL_HEADERS.
Change-Id: Id260dd351b90f065eee56e231d4c341b18c1b27f
2014-01-10 16:35:08 -08:00
Brian Carlstrom
b6dcef8777 Add support for ALTERNATE_JAVAC
Bug: 12476356
Change-Id: Idd013031dc32a560bca76cca295bedcad55982b4
2014-01-09 15:33:23 -08:00
Elliott Hughes
26990f5573 Remove a non-existent directory from the include path.
Brings aarch64 in line with the other architectures.

Change-Id: Iba3fd33e34e3b5bc071f55cfe09de9e55a023cf7
2013-12-20 15:37:55 -08:00
Elliott Hughes
98593a66af Fix aarch64 and x86-64 AndroidConfig.h.
_LARGEFILE_SOURCE should never be defined with bionic.
_FILE_OFFSET_BITS should be 64 on 64-bit architectures.

Change-Id: I7acf6b39a3af7782d5d7ad00f709593d96fa8522
2013-12-18 15:17:42 -08:00
Christopher Ferris
d12ee620b0 Merge "Re-enable uapi kernel headers for arm." 2013-12-17 23:06:38 +00:00
Elliott Hughes
c294779d7f Make aarch64 more like arm wrt strict-aliasing.
All thumb code compiles with -fno-strict-aliasing. Let's not make aarch64
porting any more difficult than it needs to be.

Change-Id: I94874df1217b69532c328d7c86c9961631ebde8a
2013-12-16 18:01:19 -08: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
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
88c6c533e1 Enable uapi kernel headers for arm.
Bug: 11559337
Change-Id: Idd251338f707b7c6a08f43a79f9784c57142f43c
2013-12-16 09:12:19 -08:00
Ying Wang
5859f105fa Merge "Enable NX protections" 2013-12-13 00:04:42 +00:00