Commit Graph

659 Commits

Author SHA1 Message Date
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
3e3cde556f am 4d5fa510: am 8b20d5b9: Merge "Turn 64-bit-related warnings into errors on 64-bit builds."
* commit '4d5fa510977d8d698ec75d128efc4e71173ae697':
  Turn 64-bit-related warnings into errors on 64-bit builds.
2014-02-06 21:03:37 +00:00
Elliott Hughes
8b20d5b97e Merge "Turn 64-bit-related warnings into errors on 64-bit builds." 2014-02-06 20:54:05 +00:00
Elliott Hughes
77f88ce0da am 3f040869: am efb9603a: Merge "[MIPS64] Add mips64 target"
* commit '3f0408695b23a8d21c3227ae845006381b26f666':
  [MIPS64] Add mips64 target
2014-02-06 20:29:48 +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
98255dc988 am d69ed2e2: am 054b0274: Merge topic \'arm64\'
* commit 'd69ed2e25c59803bbbbbee7c09551efb3ed0c49d':
  add support for more LOCAL_*_arch variables
  don't rename 32-bit executables to *_32
  remove 2nd arch from ARCH_ARM_* defines
2014-02-06 00:06:30 +00: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
Narayan Kamath
7201cdef71 am b1aec05a: am ad9209ad: Merge "Define __STDC_FORMAT_MACROS on Windows host builds."
* commit 'b1aec05aae44b541aa4c579f7cc700700c91bc0b':
  Define __STDC_FORMAT_MACROS on Windows host builds.
2014-01-31 16:41:26 +00:00
Ian Rogers
0e0b880c4b am eb02fa0a: am 805cb8fa: Merge "Fix the host inttypes.h problem globally."
* commit 'eb02fa0a6b87682daca29e2ffdd6d7b422acc79f':
  Fix the host inttypes.h problem globally.
2014-01-31 16:41:24 +00: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
b058eeae6a am bc528c22: am f7784e46: am 1a0e8501: am 1a731adf: Merge "Fix KERNEL_HEADERS_ARCH for mips and x86."
* commit 'bc528c22b8225e539165f5c86ea0256e57cc7206':
  Fix KERNEL_HEADERS_ARCH for mips and x86.
2014-01-28 21:54:46 +00: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
ed9f6bb384 am 23710e27: am cb1ad445: am 0d24616d: am cdd14758: Merge "Add support for TARGET_GLOBAL_UNSUPPORTED_CFLAGS"
* commit '23710e27bc23bb32dc99f35ec0c31e4185586ec0':
  Add support for TARGET_GLOBAL_UNSUPPORTED_CFLAGS
2014-01-28 02:40:00 +00: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
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
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
194c2a39be am de89397b: am 5119fcfc: am f81cc531: am d5227a83: Merge "build: rename aarch64 target to arm64"
* commit 'de89397b1636b9d77cbcdea1cfb347251e1d5b0c':
  build: rename aarch64 target to arm64
2014-01-24 21:24:54 +00: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
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
791fa6a909 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-16 15:43:47 -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
Ying Wang
2f68fddd07 am 4339ad4a: am da9ef76b: am a296a71e: am 166bc090: Merge "[MIPS] Reenable linker fatal-warnings"
* commit '4339ad4ac1e0170c7c7497c2b3480b2154fcd8ac':
  [MIPS] Reenable linker fatal-warnings
2014-01-16 01:17:22 +00:00
Chris Dearman
13eb1eb53d [MIPS] Reenable linker fatal-warnings
Change-Id: I4efbb7d0b1026b49a9b8bf968dd4752fca8a543b
2014-01-15 19:00:37 +00: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
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
978155b7d0 am 6e984e2d: am 1df8d179: am 98c72521: am ad8271a8: Merge "Add support for ALTERNATE_JAVAC"
* commit '6e984e2d8cfc3ac7affa59e8b7440c8e5fc8b16f':
  Add support for ALTERNATE_JAVAC
2014-01-10 02:42:36 +00:00
Brian Carlstrom
b6dcef8777 Add support for ALTERNATE_JAVAC
Bug: 12476356
Change-Id: Idd013031dc32a560bca76cca295bedcad55982b4
2014-01-09 15:33:23 -08:00
Elliott Hughes
c367d348fd am c5f05645: am b986ad2a: am 9464ca1b: am b8559790: Merge "Remove a non-existent directory from the include path."
* commit 'c5f05645ebde67561dc0a1735cc3eb262c37beb9':
  Remove a non-existent directory from the include path.
2013-12-21 00:05:42 +00: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
7cefbb1c78 am 112bd5ad: am 85967c7e: am d46e3f1f: am 3d3dd4a1: Merge "Fix aarch64 and x86-64 AndroidConfig.h."
* commit '112bd5ad2e57c621abbb36035e1820d7844882b9':
  Fix aarch64 and x86-64 AndroidConfig.h.
2013-12-18 23:42:20 +00: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
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
d12ee620b0 Merge "Re-enable uapi kernel headers for arm." 2013-12-17 23:06:38 +00:00
Elliott Hughes
e3e511b71a am ce0d80b0: am 07d4b794: am 861fea29: am 3fd89533: Merge "Make aarch64 more like arm wrt strict-aliasing."
* commit 'ce0d80b0aa40f8ec5456ad07fa28c8beac82ded0':
  Make aarch64 more like arm wrt strict-aliasing.
2013-12-17 15:50:12 +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
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