Commit graph

503 commits

Author SHA1 Message Date
Nick Kralevich
45545761d2 arm64: restore relro/now
The bug which required this option has been fixed.

Bug: 11434996
Change-Id: I7ab7e2e8ba7b993281902832d01b3ee3ba9e06ef
2014-05-30 15:46:40 -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
Dan Albert
3805f61915 Merge "Revert "Fix for duplicate names in whole static libs"" 2014-05-27 19:41:46 +00:00
Dan Albert
3c12b5c02b Revert "Fix for duplicate names in whole static libs"
This reverts commit 0e5ce8be34.

Change-Id: I68b776cb915fd7be8299ddb2899907046dddadf3
2014-05-27 19:30:36 +00:00
Dan Albert
31101623b3 Merge "Fix for duplicate names in whole static libs" 2014-05-27 18:23:26 +00:00
Dan Albert
0e5ce8be34 Fix for duplicate names in whole static libs
_extract-and-include-single-(host|target)-whole-static-lib was written such that
only the first file of a given name would be extracted and included into the new
library. This patch iterates over each identically named archive member,
extracts them individually, and adds them to the new archive.

Bug: 15110069
Change-Id: Ia08c7be6f40bfc8403908a8808898ada479099b1
2014-05-23 18:23:47 -07: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
Ben Cheng
d033121431 Use aarch64-linux-android-4.9 for arm64 build (attempt #4)
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
2014-05-19 16:22:21 -07:00
Ying Wang
ef773d22ca Fix the missing 2nd arch prefix.
Bug: 13751317
Change-Id: Ie5a323a0a89245576dbc91271d3178574942627d
2014-05-16 16:22:32 -07:00
Ying Wang
6feb6d5607 Support host multilib build
This change basically ported our target multilib to the host side.
It supports 2 host build modes: x86 and x86_64 multilib build.
For now you need to set "BUILD_HOST_64bit=true" to switch to x86_64
multilib build. Later we'll default to x86_64 build and have a flag
to force 32-bit only build, which may be needed by SDK build.

In host module definition, like in target ones, you can use the
following
LOCAL variables to set up multilib configuration:
LOCAL_MULTILIB: can be "both", "first", "32" or "64".
It also supports the same set of arch or 32-vs-64 specific LOCAL
variables.
By default, it builds only for the first arch.

To keep path compatibility, in x86_64 build files are still output to
out/host/linux-x86; Both 32-bit and 64-bit executables are in
out/host/linux-86/bin;
In x86_64 build 32-bit shared libraries are installed to
out/host/linux-x86/lib32
and 64-bit shared libraries are installed to out/host/linux-x86/lib;
32-bit object files are output to out/host/linux-x86/obj32 and 64-bit
object files
are output to out/host/linux-x86/obj.

Bug: 13751317
Change-Id: I6044f83b7db369a33e05209e8c588eb6dc83409f
2014-05-14 16:55:04 -07:00
Andrew Hsieh
fb1f38ecba Merge "Define __USE_MINGW_ANSI_STDIO for windows build" 2014-05-13 00:53:45 +00:00
Andrew Hsieh
eca0043b86 Merge "Disable canonical prefixes of system headers" 2014-05-09 16:55:00 +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
Andrew Hsieh
d322f2a6ef Define __USE_MINGW_ANSI_STDIO for windows build
Some printf/scanf functions in Windows aren't C99 compatible.
Define __USE_MINGW_ANSI_STDIO for mingw compiler to use it's own set of
replacement libraries which are more C99-like.

Change-Id: I51dfa582971ec0487409067e8bb7fe3a44577b93
2014-05-09 11:45:13 +08:00
Nick Reuter
c43ab6edc2 javac: rename common_flags to avoid conflictions
* Currently the flag conflicts with one seen in hardware/qcom
   rename to avoid issues.

Change-Id: I876fcd6a254f349dc5260509bcddb0367a7d49d8
Signed-off-by: Nick Reuter <nreuter85@gmail.com>
2014-05-08 22:15:35 -05: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
Andrew Boie
155fc8b5fe add silvermont x86 architecture
This is used for Baytrail targets.

Change-Id: I5a2fa6dbb8217a326ee09f5ea434885718ab3f0c
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
Signed-off-by: Fengwei Yin <fengwei.yin@intel.com>
2014-04-30 01:23:25 +08:00
Elliott Hughes
847fd0311f Merge "Leave 'linux' defined on x86/x86-64, like arm." 2014-04-24 16:19:17 +00:00
Elliott Hughes
1acd8b0552 Leave 'linux' defined on mips/mips64, like arm.
Change-Id: Idf1e781c34d45d1e20b7e5542d79201ae93668fe
2014-04-23 23:24:36 -07:00
Elliott Hughes
2c8e95528c Leave 'linux' defined on x86/x86-64, like arm.
Change-Id: I53013a45c19a643a985de3f339b8b3f8f4dc39d2
2014-04-23 23:09:30 -07:00
Andrew Hsieh
dfde360b2c Switch to new host prebuilt x86_64-linux-glibc2.11-4.6
Change-Id: I763398d523bf4851a13722f72b12ec69d7a4bb4f
2014-04-23 14:47:00 -07:00
Tim Murray
d318ba66f9 Update build system for better Clang behavior on Mac.
Change-Id: I1813954681b670807d7e3faaf6d5f5a769cc5f2e
2014-04-22 09:26:22 -07:00
Ben Cheng
e76fee59fc Revert "Use aarch64-linux-android-4.9 for arm64 build (attempt #3)"
This reverts commit 084a7f8387.

GCC 4.9 still has stability issues (b/14160872)

Change-Id: I4d40829dbbfac0e7b6cd7eaf9924744bc5714271
2014-04-18 18:34:35 +00:00
Ben Cheng
084a7f8387 Use aarch64-linux-android-4.9 for arm64 build (attempt #3)
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
2014-04-16 12:18:14 -07:00
Andrew Hsieh
50536c20af Add -Wl,-maarch64linux
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
2014-04-15 11:54:06 -07:00
Narayan Kamath
22261a3f9b Merge ""desktop" linux has Posix clocks." 2014-04-15 10:58:52 +00:00
Ben Cheng
38fef38c40 Revert "Use aarch64-linux-android-4.9 for arm64 build (attempt #2)"
This reverts commit 1ae9b213eb.
Sigh... new warnings found by 4.9 break checkbuild.

Change-Id: I46ad622fa9c8ac4fb1e15e29bb400634abc5914c
2014-04-11 23:36:25 +00:00
Ben Cheng
1ae9b213eb Use aarch64-linux-android-4.9 for arm64 build (attempt #2)
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
2014-04-11 12:22:56 -07: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
Ben Cheng
13eaf184f6 Merge "Revert "Use aarch64-linux-android-4.9 for arm64 build."" 2014-04-10 17:14:57 +00:00
Ben Cheng
81892e29ff Revert "Use aarch64-linux-android-4.9 for arm64 build."
This reverts commit 6154690d86.

Change-Id: I7427ad6ca1f74ad632229348bac31ebdbc0590ad
2014-04-10 17:14:01 +00:00
Narayan Kamath
163140ceaf "desktop" linux has Posix clocks.
Change-Id: I90885a2bbb65f14f774ae72b2ca6738176bf0341
2014-04-10 17:36:53 +01:00
Ben Cheng
d957d6bbdb Merge "Use aarch64-linux-android-4.9 for arm64 build." 2014-04-10 16:33:51 +00:00
Ben Cheng
6154690d86 Use aarch64-linux-android-4.9 for arm64 build.
Change-Id: I63e1b54947326fb5da07af7691d4729bcbf99ac1
GCC: 4.9 (which supports -fstack-protector)
Binutils: 2.24 (which supports gc-sections)
GDB: 7.7
2014-04-09 15:58:08 -07:00
Ying Wang
d81d71a020 Increase the maximum javac heap size again.
Change-Id: Ic3422650ea22977f3dcfd74505cb287ff6543c2d
2014-04-09 14:27:29 -07:00
Narayan Kamath
e6243e176b Stop defining HAVE_TIMEDWAIT_MONOTONIC.
We no longer provide this function in bionic. All callers
should be moved over to pthread_condattr_setclock().

Change-Id: Iccd3384b40de423f7d5f9521b6d8073bf8bdea42
2014-04-09 16:08:09 +00:00
Narayan Kamath
c84889b80a Build with java7 by default.
All introduce a flag LEGACY_USE_JAVA6 to force java6 builds.
This is an unsupported configuration, and provided temporarily
to iron out regressions and compare build output (if required.).

- Increment the version check sequence number.
- Move a more specific check (OpenJDK vs non OpenJDK) after
  the more general version check.
- Update the link in the version check error message to the
  "initializing" page instead of the "download" page. The latter
  talks about repo, mainly.

bug: 8992787

Change-Id: I313e17b1911768d4f3bc318c4162c53dec6eaf0d

Conflicts:
	core/main.mk
2014-04-04 18:44:47 -07:00
Christopher Ferris
0c4870a4cd Merge "Specify -mcpu=cortex-a15 for denver CPU variants." 2014-03-31 19:06:28 +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
Ying Wang
01f11b2aa9 Increase the maximum javac heap size.
Java 7 needs more memory when you run some annotation tools.

Change-Id: Ia8b423244b9ce164500b24867fe2b3d10a5089ff
2014-03-26 19:23:46 -07:00
Tim Murray
02cefc93a8 Make Clang host builds hermetic on Linux.
This lays the groundwork for making builds hermetic on Darwin as well.
That will be fixed in a future patch.

bug 13435344

Change-Id: Iae82d0b9efad0598d682ff5fd4daa737aa607866
2014-03-24 19:38:47 -07:00
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