Commit Graph

339 Commits

Author SHA1 Message Date
Ying Wang 0eb35626da Add extra libgcc.a only for unbundled build.
We can save some space for platform build with this.
Previously an extra libgcc.a was put before libc.so so libraries built
against new platform can run on old platforms. This is needed only for
unbundled build.

Bug: 8805022
Bug: 8247455

Change-Id: I3c3e0092b06ec3804659d5cae048d29e0d2bf7ad
2013-05-03 14:38:36 -07:00
Dima Zavin bdbd716eff core: combo: arm: use appropriate mcpu flags for cortex-a7
Change-Id: If00577d36257e4d03f63f36b159bb2e015958d6a
Signed-off-by: Dima Zavin <dima@android.com>
2013-03-23 02:08:38 -07:00
Andrew Hsieh 79a6b76ec8 am e874f3ab: am 55c06f75: Merge "Duplicate libgcc.a in front of *so"
* commit 'e874f3ab7c3f70582f877e762c13c1943ed0e398':
  Duplicate libgcc.a in front of *so
2013-03-19 11:17:07 -07:00
Andrew Hsieh 8725b941b0 Duplicate libgcc.a in front of *so
Also see 6c7bc550ad

Change-Id: Iade6cd6b40cd4840a148098e1d8fc7a0c97e2f66
2013-03-19 07:51:52 -07:00
Ben Cheng 6c7bc550ad Link libgcc.a before shared libraries (especially libc.so).
[cherry-picked from internal master]

Change-Id: I53d19754d0d40e9ca2f3d043001cc77e39e5d795
2013-03-18 14:00:44 -07:00
Ben Cheng ea871a0649 Link libgcc.a before shared libraries (especially libc.so).
BUG: 8247455
Change-Id: Ia8816536ca95a7084e80c7f425f81658afea9609
2013-03-14 13:39:29 -07:00
Torne (Richard Coles) 71f8b245ce Don't try to group static libraries on mac.
Mac's linker doesn't support --start-group and --end-group; it scans
libraries repeatedly even without these options, so it's not necessary.

Change-Id: If22527e75470f7fa9452dc33efe4d40a60d0919a
2013-03-11 14:59:42 +00:00
Ian Rogers 25ba3b0975 am e2f7bd46: am c148cca6: Merge "Specify -msse3 on host as on target."
* commit 'e2f7bd46fc7b9aa746ae46e551727c4db0356d37':
  Specify -msse3 on host as on target.
2013-02-27 19:03:54 +00:00
Ian Rogers 35a6b4fb65 Specify -msse3 on host as on target.
Make the host and the target x86 build more uniform by using the same machine flags.
Its unlikely Android has ever been built on a machine without SSE3 support.

Bug: 8068608
Change-Id: I19635528b61bf2c6faf02c2e575b1d9bf8025d3a
2013-02-26 15:10:22 -08:00
Ying Wang 00b2811e66 resolved conflicts for merge of 40ab92d0 to master
Change-Id: I400c1655c57237687a21a017b9c2065d166e3097
2013-02-22 11:02:03 -08:00
Chris Dearman 6cc0c334fc [MIPS] Update build rules
Add  -D_FORTIFY_SOURCE=1 to the default cflags
Update build rule for executable with PRIVATE_ALL_WHOLE_STATIC_LIBRARIES
Use single dash version of -print-whatever
compile everything with relro / bind_now
Enable NX protections

Some other cleanups to reduce differences between ARM and MIPS config files

Change-Id: I30b4de449e6353b581ef7f9437a3bb9be53d5bbf
Signed-off-by: Chris Dearman <chris@mips.com>
2013-02-19 17:04:57 -08:00
Ying Wang 5938039677 am 7ce7473f: am 5e12e60b: Merge "For the current MIPS compiler __builtin___clear_cache() generates synci instruction only with -msynci option So, add -msynci to all mips32r2 makefiles. Also add msynci to the list flags not recognized by clang."
* commit '7ce7473f866fc5356291f38a3437a071ea5fd00d':
  For the current MIPS compiler __builtin___clear_cache() generates synci instruction only with -msynci option So, add -msynci to all mips32r2 makefiles. Also add msynci to the list flags not recognized by clang.
2013-02-15 14:48:01 -08:00
Ying Wang 5e12e60b47 Merge "For the current MIPS compiler __builtin___clear_cache() generates synci instruction only with -msynci option So, add -msynci to all mips32r2 makefiles. Also add msynci to the list flags not recognized by clang." 2013-02-15 19:33:59 +00:00
Elliott Hughes b2bbff7cba am ea852f6e: am f6b670b7: Merge "Remove more always-true ARCH_ARM_HAVE_ flags."
# Via Android Git Automerger (1) and others
* commit 'ea852f6ed3e9f251eaef4f041fbc0b09229ac924':
  Remove more always-true ARCH_ARM_HAVE_ flags.
2013-02-14 17:31:40 -08:00
Elliott Hughes 03d2aa4dd0 Remove more always-true ARCH_ARM_HAVE_ flags.
All the remaining flags appear to be actually used.

Change-Id: I0e3d84915487eda4f0e97809fc36624fef5f1848
2013-02-14 12:04:48 -08:00
Elliott Hughes 14a2d978df am d0fb6930: am 07a58f8f: Merge "Nothing uses ARCH_ARM_HAVE_CLZ or ARCH_ARM_HAVE_FFS."
# Via Android Git Automerger (1) and others
* commit 'd0fb693024b88a713fe95296db451a0e6c17ec66':
  Nothing uses ARCH_ARM_HAVE_CLZ or ARCH_ARM_HAVE_FFS.
2013-02-13 17:11:36 -08:00
Elliott Hughes d0542498a0 Nothing uses ARCH_ARM_HAVE_CLZ or ARCH_ARM_HAVE_FFS.
Because every ARM architecture we've ever supported has had both.

Change-Id: I607b56416e65073c5ac1b85fb17c092516e02573
2013-02-13 16:44:21 -08:00
Ying Wang 79e3f77996 Allow user to override the linux host toolchain.
Bug: 8181840
Change-Id: Ib2a90d33414758e95b1a3c60db62c4188944dfdd
2013-02-12 11:48:37 -08:00
Raghu Gandham 695fee31ad For the current MIPS compiler __builtin___clear_cache() generates synci instruction only with -msynci option
So, add -msynci to all mips32r2 makefiles. Also add msynci to the list flags not recognized by clang.

Change-Id: I48fd6f2b0cbe80c3cd90f453ced97a2f154f7ad3
Signed-off-by: Rocky Zhang <yan@mips.com>
2013-02-07 16:07:01 -08:00
Ying Wang b6457c223b Don't fall back to host $(CC) if the target gcc is not checked out
Error "cc1plus: error: unrecognized command line option
‘-mfloat-abi=softfp’" is much more confusing than
"...gcc: No such file or directory".
Also we don't build in Windows/Cygwin any more so we don't need the old
trick.

Change-Id: Ibbe3da67b412575e56bd6e61ef412ea5b2789fea
2013-01-30 10:33:27 -08:00
Elliott Hughes f689e21be2 am 5fb282d8: am 6463953e: am b796ce35: Merge "Remove HAVE_DLADDR from AndroidConfig.h."
# Via Android Git Automerger (2) and others
* commit '5fb282d89d00504772753acf1af63c5b422d21e2':
  Remove HAVE_DLADDR from AndroidConfig.h.
2013-01-29 13:52:05 -08:00
Elliott Hughes 2988a09f90 Remove HAVE_DLADDR from AndroidConfig.h.
Change-Id: I014ce98c61b12169e381b769af34b682df46087e
2013-01-25 15:57:40 -08:00
Ben Cheng 533aa2707e Use -mcpu=cortex-a15 for gcc arch dependent compilation.
If TARGET_CPU_VARIANT=cortex-a15 is specified in the BoardConfig.mk file.

Bug: 7961327
Change-Id: Ic459df378293237c54263f5315ac3be62dad4273
2013-01-14 14:37:44 -08:00
Andrew Hsieh 0b676b353a am dd319cef: am 26f47aba: Merge "Switch to GCC 4.7 for X86 and MIPS"
* commit 'dd319cef3f0e351f0b1621167b22eb39e86b27ad':
  Switch to GCC 4.7 for X86 and MIPS
2012-12-28 09:47:53 -08:00
Andrew Hsieh 098a5968fa Switch to GCC 4.7 for X86 and MIPS
Change-Id: I1c2021a15f53e064baf69084894c114289ef7c54
2012-12-21 09:23:05 +08:00
Ben Cheng 9c68f06a54 Merge commit 'ec4caba7' into manualmerge
Conflicts:
	CleanSpec.mk

Change-Id: Idd8f8f4a896b47bd6275daeb71a24a317da4c98a
2012-12-13 11:03:58 -08:00
Ben Cheng ec4caba79c Enable lunch command to pick up new toolchain version.
Otherwise the previously exported value will be sticky and the value
defined in the TARGET makefile is ignored.

Change-Id: Icdacb8c46034b8a24a9875b7596b31d00861512a
2012-12-13 10:43:55 -08:00
Ben Cheng 914f7fd938 Enable lunch command to pick up new toolchain version.
Otherwise the previously exported value will be sticky and the value
defined in the TARGET makefile is ignored.

Change-Id: I13b9cca2d288f7ab09104c57e7cad9f23de2548a
2012-12-12 21:56:58 -08:00
Ben Cheng 02d29216c9 am b3a68f6e: am 62f1d86e: Merge "Define TARGET_GCC_VERSION in target specific make files."
* commit 'b3a68f6e002cdbc946d08a76656067d63542a98a':
  Define TARGET_GCC_VERSION in target specific make files.
2012-12-11 16:53:05 -08:00
Ben Cheng 5011dd80ee Refresh ARM toolchain to GCC 4.7 / binutils 2.22.
Change-Id: Id3689376ae4c4fc183569955b2ee98df5c069510
2012-12-11 16:41:01 -08:00
Ben Cheng 054ffd2e7c Define TARGET_GCC_VERSION in target specific make files.
So that GCC refresh can be performed in a target specific way.

Change-Id: I867e8b8fd671bef8c5af300e657a6da4fface032
2012-12-11 14:03:18 -08:00
Nick Kralevich b3f0eb16b2 am 7cd20491: am a303510f: Merge "x86: enable FORTIFY_SOURCE"
* commit '7cd204914ef59c4ce96210539489ec3e76942bb4':
  x86: enable FORTIFY_SOURCE
2012-12-11 10:35:17 -08:00
Nick Kralevich 40febcad47 x86: enable FORTIFY_SOURCE
Enable FORTIFY_SOURCE for Android x86.  This adds certain security
protections to Android programs, checking for common programming
mistakes and buffer overflows.

FORTIFY_SOURCE protections have been enabled for ARM since
a46c480e43 (Jun 4th 2012)

Change-Id: Idae6f93d37ddae605088867cd3029f12632456e1
2012-12-07 17:20:28 -08:00
Ying Wang 3482e9256b am eb98e088: am 865d851a: Merge "Remove the obsolete comments and change the misleading var name."
* commit 'eb98e088937c4568f75d965dee1ef8d5c6689213':
  Remove the obsolete comments and change the misleading var name.
2012-11-12 14:50:44 -08:00
Ying Wang eb98e08893 am 865d851a: Merge "Remove the obsolete comments and change the misleading var name."
* commit '865d851a8012e13c35d573d98770b7187d32b7f7':
  Remove the obsolete comments and change the misleading var name.
2012-11-12 14:45:59 -08:00
Ying Wang 85e8cda340 Remove the obsolete comments and change the misleading var name.
Change-Id: Ib19099cbce0133f5c7df44fa0fd80215809a1ad8
2012-11-12 14:31:20 -08:00
Andrew Hsieh e4041746d3 am abfb2522: resolved conflicts for merge of 8b3ce5a3 to stage-aosp-master
* commit 'abfb25226aabdbda7f8900e923754beb7f8cb94d':
  Use prebuilt gcc for MacOSX
2012-11-12 13:38:21 -08:00
Andrew Hsieh abfb25226a resolved conflicts for merge of 8b3ce5a3 to stage-aosp-master
Change-Id: I588a055812ddc8f4531c9d02994beb366f9aab3e
2012-11-12 12:50:03 -08:00
Andrew Hsieh e2e28f6d02 Use prebuilt gcc for MacOSX
1. Use prebuilts/gcc/darwin-x86/host/i686-apple-darwin-4.2.1
   See https://android-review.googlesource.com/#/c/46223/
2. Rewrite logic dealing with mac_sdk_version to support all
   MacOSX SDK 10.6, 10.7 and 10.8.  Note that since
   ad2342375963c2468849c1f83a97158383db6511 emulator no longer
   depends on 10.6 to build.  Since the lowest SDK among intersection
   of the "available" and the "supported" SDKs is picked, add a
   new variable MAC_SDK_VERSION for developer really want to overwrite
   it.  MAC_SDK_VERSION still has to be one of the supported, though.
3. Improve mac_sdk_path detection to deal with case where Xcode
   *dmg is mounted only, not installed at /Applications.
4. Now we can retire BUILD_MAC_SDK_EXPERIMENTAL

Change-Id: I83e463556a857d527710f766de0e19e1b576151f
2012-11-12 10:44:52 -08:00
Elliott Hughes 334423b749 am d125adca: am ef9744f7: Merge "Remove manual WITH_JIT setting from build/."
* commit 'd125adca42283777f08abae3171623048fa94b8a':
  Remove manual WITH_JIT setting from build/.
2012-11-07 18:36:33 -08:00
Elliott Hughes d125adca42 am ef9744f7: Merge "Remove manual WITH_JIT setting from build/."
* commit 'ef9744f7ee4fd2315f41c58ba48906d9d79363dd':
  Remove manual WITH_JIT setting from build/.
2012-11-07 18:31:35 -08:00
Elliott Hughes 07a6db8733 Remove manual WITH_JIT setting from build/.
This is now done automatically by dalvik/, since
patch 272a54f8553e13b87bf819542ddc6701fc1232cc.

Change-Id: I57709538f20188417c014630442e897401d7ace0
2012-11-06 16:41:52 -08:00
Andrew Hsieh a5b28e2d92 am 267b07b2: am 7176e801: Merge "Add TARGET_GCC_VERSION"
* commit '267b07b2aafede64d212402c3554fc2888821c98':
  Add TARGET_GCC_VERSION
2012-10-23 17:29:45 -07:00
Andrew Hsieh 267b07b2aa am 7176e801: Merge "Add TARGET_GCC_VERSION"
* commit '7176e8013bb2e563c3e3e56af4c04c50de3a7f37':
  Add TARGET_GCC_VERSION
2012-10-23 17:15:01 -07:00
Andrew Hsieh 06b63baedc Add TARGET_GCC_VERSION
Default to 4.6, but can overwritten to something else in
prebuilts/gcc/$os/$arch/$arch-linux-android*-$ver

Change-Id: I16f99d642b8ff8e831d392261a0c536041107051
2012-10-23 12:06:01 +08:00
Nick Kralevich 24903f02c8 am 7c56556d: am d883749e: Merge "x86: add --warn-shared-textrel"
* commit '7c56556d183c7103bdd58884071fdb134eb82956':
  x86: add --warn-shared-textrel
2012-10-22 11:06:18 -07:00
Nick Kralevich 7c56556d18 am d883749e: Merge "x86: add --warn-shared-textrel"
* commit 'd883749e600a34b5eb4db542d24946b25aa5c9fb':
  x86: add --warn-shared-textrel
2012-10-22 11:04:24 -07:00
Nick Kralevich 4f2f16da14 x86: add --warn-shared-textrel
Emit a warning when the static linker detects a shared library
has text relocations. Text relocations make it harder to
share pages across processes, and make it harder to use
certain memory protection features in, for example, SELinux.

This warning will turn into an error in a future change
(via --fatal-warnings)

Change-Id: I2d169c7ce3600d02e25591f3ec15aba363730298
References: http://www.akkadia.org/drepper/textrelocs.html
2012-10-19 13:36:49 -07:00
Nick Kralevich 077007e872 arm: turn on -Wl,--fatal-warnings
Third time's the charm.  :-)

In b238210c01, we added
-Wl,--warn-shared-textrel to TARGET_GLOBAL_LDFLAGS. This generated
a warning whenever we created a shared library with a text
relocation.  At the time, we wrote:
=====
Emit a warning when the static linker detects a shared library
has text relocations. Text relocations make it harder to
share pages across processes, and make it harder to use
certain memory protection features in, for example, SELinux.
This warning will turn into an error in a future change
(via --fatal-warnings)
=====

All code which uses text relocations has either been fixed, or
we've temporarily worked around the issue so the code can still
compile.

Enable --fatal-warnings.

This reverts commit 942167dab8.

Change-Id: I578701692ead7e7cd60d73d2070a5bed366e2c6c
2012-10-19 08:40:56 -07:00
Nick Kralevich 942167dab8 Revert "arm: turn on -Wl,--fatal-warnings"
This reverts commit 3ab011bccd.
2012-10-18 14:03:49 -07:00