Commit graph

396 commits

Author SHA1 Message Date
Jean-Baptiste Queru
9bdc290792 am 8571ee47: am f562adc8: Merge "Force use of compatibility compilers on Apple\'s command line tools"
* commit '8571ee478ee352827ec37460d23e6e0dbb1e96db':
  Force use of compatibility compilers on Apple's command line tools
2012-05-02 14:18:28 -07:00
Jean-Baptiste Queru
9e4e3b378f Merge "TARGET_linux-arm.mk: use single slash version of -print-whatever" 2012-05-02 13:26:50 -07:00
Al Sutton
0d07c732c7 Force use of compatibility compilers on Apple's command line tools
The cc and c++ compilers included in Apple's command line tools show some
unusual behaviour which causes the build to fail in several projects under
Xcode 4.3

This patch uses the gnu compatibility gcc and g++ compilers on OS X instead
to reduce problems, and generates an error when an llvm based compiler is
detected because they currently do not generate usable emulator executables
due to them not honouring global register variables.

Change-Id: I506c22dad3dcbd41df3c7672802a675d3655e262
Signed-off-by: Al Sutton <al@funkyandroid.com>
2012-05-02 07:11:27 -07:00
Andrew Hsieh
f9613a4f73 Added BUILD_HOST_static to build statically linked executable/shared-lib
Statically linked executable/shared-lib (eg. SDK tools) are useful
in sandboxed environment.

In BUILD_HOST_static zipalign needs -lpthread indirectly:
zipalign->libutils.a->liblog.a->logd_write.c->pthread

Change-Id: I8fa91a937b728ccdf942c4ba199efb1e2e49da3d
2012-04-28 00:53:55 +08:00
Nick Kralevich
233d460f21 ARM: compile everything with relro / bind_now.
Enable relro / bind_now when compiling Android applications.
This marks certain regions of memory as read-only after linking,
making memory corruption security vulnerabilities are harder
to exploit.

See:
 * http://www.akkadia.org/drepper/nonselsec.pdf (section 6)
 * http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html

Stop using the custom linker script, which inhibits
relro / bind_now support.

Change-Id: Ie97ccdd2845886bbc2ba2fdd47eed0ff4b29b60b
2012-04-26 09:09:24 -07:00
Jean-Baptiste Queru
4e82d1fa7f On linux, always use the prebuilt host toolchain
Change-Id: I8077c4780e1e3540e5e2133cf0ffa61d474d3acc
2012-04-20 19:04:56 -07:00
Jean-Baptiste Queru
a50ef1c124 Switch to new locations of toolchains
Change-Id: I15a8be11b3d0f1985ffd97dd51a1af18e1ce7b67
2012-04-20 16:15:42 -07:00
Jing Yu
c856e31523 Workaround for a gcc-4.6 bug on -fstrict-volatile-bitfields.
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01477.html
http://gcc.gnu.org/ml/gcc-patches/2011-11/msg01390.html

-fstrict-volatile-bitfields is set on by default on gcc-4.6
for ARM target. This causes an inline asm() error. While
upstream gcc community is working on the patch, we shut
off this option temporarily.

This patch does not affect gcc-4.4.3 build.

Change-Id: Id7016dc5856a516e10f2617232945034728a74ab
2012-04-20 07:53:16 -07:00
Doug Kwan
422a3650d3 Fix build problems with gcc-4.6.x.
Change-Id: If02f18efde4cec39c97bb0e7226b008cd6b85dd4
2012-04-20 07:52:47 -07:00
Nick Kralevich
b3789be766 Revert "ARM: compile everything with relro / bind_now."
This reverts commit 020e4919e8.
2012-04-10 13:13:29 -07:00
Nick Kralevich
020e4919e8 ARM: compile everything with relro / bind_now.
Enable relro / bind_now when compiling Android applications.
This marks certain regions of memory as read-only after linking,
making memory corruption security vulnerabilities are harder
to exploit.

See:
 * http://www.akkadia.org/drepper/nonselsec.pdf (section 6)
 * http://tk-blog.blogspot.com/2009/02/relro-not-so-well-known-memory.html

Stop using the custom linker script, which inhibits
relro / bind_now support.

Change-Id: Iaebfbbb492299004f9da92b649985b6cd67d8c97
2012-04-09 12:04:32 -07:00
Jing Yu
f5172c7564 Switch default gcc toolchain from 4.4.3 to 4.6.
Switch both arm-linux-androideabi toolchainand arm-eabi toolchain.

Change-Id: I7b2771fe684853ab37e3b5b7cfe4146f9f901e02
2012-03-29 20:45:50 -07:00
Andrew Hsieh
2245d17dc8 Point to new linux prebuilt toolchain for SDK build
Change-Id: I21849119b0f3f45f950e9e6d1da0833aff381fb7
2012-03-22 09:55:36 -07:00
Andrew Hsieh
0e63fd37dd Point to new linux prebuilt toolchain for SDK build
Change-Id: I21849119b0f3f45f950e9e6d1da0833aff381fb7
2012-03-13 02:17:35 -07:00
Andrew Hsieh
ed6b815505 BUILD_HOST_64bit=1 to build host tools in 64-bit
By default we build tool in 32-bit.  This flag allow individual tool and its
dependencies to be built in 64-bit (eg. Emulator).  Fixes to resolve 64-bit
porting issues (in other git) will be submitted seperately.

Change-Id: I486cf7ddac727d3c374ed890857d497c3a69e598
2012-02-28 10:24:39 -08:00
Ying Wang
92ca609cd1 Fix bug with the HOST_AR.
Change-Id: I28ab86d3b6e7cbd4391e2640cf8e2be269b03e76
2012-02-23 16:27:43 -08:00
Kenny Root
87f4d5a926 Enable TLS register by default for ARMv7a arch
Everything that is based on ARMv7a should have a cp15 TLS register.
Enable it by default so it's not accidentally missed in newer board
configurations. In fact, this could be enabled for ARMv6 as well, but we
currently don't distinguish between ARMv5 and ARMv6 in the build system.

This can still be disabled by setting it to "false" in the board
configuration, but this shouldn't ever be needed.

Change-Id: Ic2918f32899c8bcfa482f92c98f5a192fa318470
2012-02-21 09:17:18 -08:00
Ying Wang
5dea692715 Use @rpath and @loader_path to avoid absolute path
With "-Wl,-rpath,@loader_path/../lib" the linker embeds
@loader_path/../lib as the target binary's rpath.
Here @loader_path means the path of the binary that initiates the
loading.
With "-install_name @rpath/libfoo.dylib " the linker runtime searches
libfoo.dylib in the binary's embeded rpath.

With this change you can call dlopen() without specifying the full path
of the shared library.

Change-Id: If9beb3f6f4642a377bff603bab5ba3fdb96211bf
2012-02-01 13:20:30 -08:00
Ying Wang
80469e4d6c Delete unused var.
Change-Id: Ib6c295287f064529a8b4d8ada15a9fbb73064f1e
2012-02-01 11:28:00 -08:00
Ying Wang
b4c2a64040 Set install name with absolute path for Mac host shared libraries.
Before this change, path of the install name is relative to the top dir.
That means you can execute dynamically-linked binaries only in the top dir.
With this change, you can execute dynamically-linked binaries anywhere.

Change-Id: I1c6441579ffb68505ea678296aceb2e66a6df1be
2012-01-31 21:04:25 -08:00
Jim Huang
5d84f1659f TARGET_linux-arm.mk: use single slash version of -print-whatever
The double slash variants are not documented in GCC manual.  Therefore,
it is better to use the single slash variants as usual.
2012-01-31 11:11:29 +08:00
Ying Wang
fcf246c989 Workaround for lack of "-Wl,--whole-archive" in MacOS's linker.
Change-Id: I2b1de0a253d341bcb7ee05fdc96bdc0d0967985e
2012-01-20 12:59:58 -08:00
Jean-Baptiste Queru
3b1dbe9302 Merge "Revert "Reference new location of SDK toolchain"" 2012-01-11 09:04:25 -08:00
Jean-Baptiste Queru
d75dbec617 Revert "Reference new location of SDK toolchain"
This reverts commit 1b834c6660.
2012-01-11 09:00:41 -08:00
Jean-Baptiste Queru
b6737c1366 Merge "Reference new location of SDK toolchain" 2012-01-11 06:36:55 -08:00
Jean-Baptiste Queru
cb8f66305c Revert "Point arm toolchain to the new gcc-4.6 one."
This reverts commit 1f87795eef.
2012-01-11 04:23:06 -08:00
Jean-Baptiste Queru
1b834c6660 Reference new location of SDK toolchain
Change-Id: If470d742a92061006d94b72f21df5c642348e179
2012-01-09 15:07:59 -08:00
Jean-Baptiste Queru
ea91f0a40e Reference x86 toolchain in its new location
Change-Id: I990b03107d1596a87a8d4cea6973735c60db4c64
2012-01-09 13:02:03 -08:00
Ying Wang
71b5cc1b8e Reference the new prebuilt ccache location.
Change-Id: I4450a8254fe82ed3a670ce653f49381d9c075c8e
2012-01-09 11:52:23 -08:00
Jing Yu
1f87795eef Point arm toolchain to the new gcc-4.6 one.
Tested build mysid-eng, sojus-eng, trygon-eng, yakju-eng.

Change-Id: I742cf9fcf2407b9098c99136d67161ecf062ac01

Conflicts:

	core/combo/TARGET_linux-arm.mk
2012-01-06 14:14:06 -08:00
Ying Wang
c7a10ddd31 Include toolchain makefile based on the current config.
So we can have the same set of module names in different host arch
/ toolchain version combinations.

Change-Id: Iec66584bf3de92aedd71a59f9dbe74b6ed025b2e
2012-01-06 11:59:30 -08:00
Al Sutton
f79ce15891 am 1964c8ed: am d8765f0f: am 80cfc37d: Partial fix for emulator under Lion.
* commit '1964c8ed2d6b1981ee991b5ecd95ab711affdf62':
  Partial fix for emulator under Lion.
2012-01-05 12:08:29 -08:00
Al Sutton
80cfc37d0f Partial fix for emulator under Lion.
Don't use -Wl,-dynamic on Lion
2012-01-04 15:16:50 -08:00
Al Sutton
a4f5991486 am 657aeac8: am 9ce06f11: Don\'t run ranlib on MacOS 10.7
* commit '657aeac8423d9e3cd31c0dffcecaad78a53d7604':
  Don't run ranlib on MacOS 10.7
2011-12-21 16:46:37 -08:00
Al Sutton
9ce06f11d6 Don't run ranlib on MacOS 10.7
Change-Id: I74f4623e6044dd804669aaa70c6e410fa8988d75
2011-12-21 13:12:33 -08:00
David 'Digit' Turner
6371da10f8 x86: Refine the way we configure the x86 build.
This is the result of a recent conversation around the x86 ABI
and its relationship with how we build platform images. Briefly:

- We want to use feature-based macros like ARCH_X86_HAVE_$FEATURE
  instead of relying on explicit compiler macros like -DUSE_$FEATURE

- We want to allow for other x86-based arch variants, e.g. if
  someone wants to build Android for a CPU that doesn't support
  the NDK x86 ABI. However, we need to ensure these are not
  tagged compatible by mistake (see check at the end of TARGET_linux-x86.mk)

- There are several flags which use is dubious now that we have
  a dedicated toolchain to build all the x86 stuff. Comment them
  as 'to be considered for removal'. We'll do the proper checks
  later.

Change-Id: I7768d7c34d73e274cbf4c09ae831b55280d6bb58
2011-12-14 18:08:47 +01:00
Bruce Beare
29371f157a am 38158161: am 3343b27c: x86: The default ATOM BSP flags need to be in sync with the NDK ABI
* commit '381581613aab988acc6f9d5b459fd4f533d8c2a5':
  x86: The default ATOM BSP flags need to be in sync with the NDK ABI
2011-12-12 15:39:05 -08:00
Bruce Beare
3343b27c53 x86: The default ATOM BSP flags need to be in sync with the NDK ABI
Change-Id: Ic741e1795c655ace1e33ae6708219f2708358090
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-12-09 13:27:08 -08:00
Jing Yu
7bf82e0171 Workaround for a gcc-4.6 bug on -fstrict-volatile-bitfields.
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg01477.html
http://gcc.gnu.org/ml/gcc-patches/2011-11/msg01390.html

-fstrict-volatile-bitfields is set on by default on gcc-4.6
for ARM target. This causes an inline asm() error. While
upstream gcc community is working on the patch, we shut
off this option temporarily.

This patch does not affect gcc-4.4.3 build.

Change-Id: Id7016dc5856a516e10f2617232945034728a74ab
2011-11-18 14:22:55 -08:00
Jim Huang
ba2c734f71 am e39ee4d5: am cb48497f: HOST_linux-x86: Avoid doubly define macro _FORTIFY_SOURCE
* commit 'e39ee4d5e043872b3ef8053678a9c6020d82d4b6':
  HOST_linux-x86: Avoid doubly define macro _FORTIFY_SOURCE
2011-11-10 21:35:56 +00:00
Jim Huang
cb48497ff2 HOST_linux-x86: Avoid doubly define macro _FORTIFY_SOURCE
While building Android with latest host gcc, it causes the following
build error:

Install: out/host/linux-x86/bin/mkbootimg
host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
<built-in>:0:0: note: this is the location of the previous definition
cc1plus: all warnings being treated as errors

In order to make build system happy, this patch does unset macro
_FORTIFY_SOURCE and then define it in host cflags.

Change-Id: Ic37a90f05081a2c3650b3335bc87e9e895900fb2
2011-11-10 13:28:13 -08:00
Nick Kralevich
d9d2e7a42c x86: enable PIE for dynamically linked executables
Compile all x86 programs on Android with -fPIE and -pie. This enables
PIE (Position Independent Executables), which helps protect Android
applications from exploitation due to memory management bugs.

Note 1: PIE *static* executables are not supported at this time and
require additional linker changes.

Note 2: This change compliments 026a85b129,
which was the exact same change, except for ARM.

Testing: Rebuilt the tree completely from scratch, and verified
that the system boots and basic functionality works in the emulator.

Change-Id: I990064c37da3d857e663b27f31fee05f689a2824
2011-11-04 13:15:24 -07:00
Nick Kralevich
4185447f2f stop using a custom linker script for static executables.
This is causing problems with making the linker relocatable.

Change-Id: I53e37fba52eabd3145130712d6e9bff074aed493
2011-11-01 12:09:29 -07:00
Jean-Baptiste Queru
e7d25da929 am 9a3dfc06: am 68eb6649: am 432f8d88: Reconcile with AOSP master
* commit '9a3dfc06b94a59bdc7005a8a944996c956527c19':
2011-10-28 15:28:28 +00:00
Jing Yu
6af4bb07e3 Merge "Fix build problems with gcc-4.6.x." 2011-10-27 10:47:40 -07:00
Conley Owens
5071047d7e Merge "HOST_linux-x86: Avoid doubly define macro _FORTIFY_SOURCE" 2011-10-27 10:36:13 -07:00
Nick Kralevich
026a85b129 enable PIE for dynamically linked executables
Compile all programs on Android with -fPIE and -pie. This enables
PIE (Position Independent Executables), which helps protect Android
applications from exploitation due to memory management bugs.

Stop using the armelf.x linker script. This script hard codes the
load address of the executable, defeating the position independence
PIE requires.

Note: PIE *static* executables are not supported at this time and
require additional linker changes.

Bug: 5323301
Change-Id: Ieafcc9c4f142495847e163881889d371a59d0878
2011-10-24 11:37:37 -07:00
Jim Huang
59d296623b HOST_linux-x86: Avoid doubly define macro _FORTIFY_SOURCE
While building Android with latest host gcc, it causes the following
build error:

Install: out/host/linux-x86/bin/mkbootimg
host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
<built-in>:0:0: note: this is the location of the previous definition
cc1plus: all warnings being treated as errors

In order to make build system happy, this patch does unset macro
_FORTIFY_SOURCE and then define it in host cflags.

Change-Id: Ic37a90f05081a2c3650b3335bc87e9e895900fb2
2011-10-24 10:23:21 -07:00
Doug Kwan
2b40757725 Fix build problems with gcc-4.6.x.
Change-Id: If02f18efde4cec39c97bb0e7226b008cd6b85dd4
2011-10-13 12:28:34 -07:00
Ying Wang
45bee774eb am a1b603a5: am 4b398749: am c5033a33: Merge "x86: remove obsolete comments"
* commit 'a1b603a556e338d4899a62ea37810aff81ab7fa1':
  x86: remove obsolete comments
2011-08-29 11:05:08 -07:00
Ying Wang
a1b603a556 am 4b398749: am c5033a33: Merge "x86: remove obsolete comments"
* commit '4b3987498eb15dc654fe572aadf53396aac36479':
  x86: remove obsolete comments
2011-08-26 12:12:48 -07:00
Chih-Wei Huang
aa1c321a58 x86: remove obsolete comments
Change-Id: Ifb12892c17a50f85c7700d6413ea295a4dad7047
2011-08-03 12:16:59 +08:00
Doug Kwan
be3689e981 Conditionally disable -Wno-unused-but-set-variable for gcc-4.6.
We used to do that unconditionally but that caused lots of spurious
warnings in gcc-4.4.x about an unrecognized gcc option.

Change-Id: Idb5118b069871859e07a7efa04914ab6ed0b1372
2011-07-14 16:34:26 -07:00
Jeff Brown
e33ba4c49e Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: Ie814f4c8d3aa1e7cc7f5735822ab25542f36cf62
2011-07-11 23:51:37 -07:00
Evgeniy Stepanov
8f77c9ded3 Add .gnu_debuglink when stripping DSOs.
This is used by debug tools to find symbols for the stripped binary.
Adds ~70 bytes to each DSO, ~25000 bytes total, which is about 0.01% of the
system image.

This change only affects -eng and -userdebug builds, and does not affect -user.

Change-Id: I0c92a9e09fbc97184dea66813923568cbcc2a3fe
2011-06-28 12:47:34 +04:00
Raphael
ecb957705c resolved conflicts for merge of 732936d9 to master
Change-Id: I1fc667057aebbbef19bde746ebcc650ac0e8c35c
2011-06-23 13:52:29 -07:00
Raphael
732936d99a resolved conflicts for merge of 8508a073 to honeycomb-plus-aosp
Change-Id: I376928881adb0e9fd62fabc1e21542bf0d700ca2
2011-06-22 14:35:32 -07:00
Raphael Moll
c639c787a0 Lunch: don't use a toolchain that doesn't exist.
"lunch sdk-eng" on cygwin tries to use a gcc.exe from the
prebuild arm toolchain, but it doesn't exist. This prevents
from setting variables to point on a gcc toolchain if there
is none for the given arch.

Change-Id: I3b72220663687f9fdaacc050899aef00632f2c3c
2011-06-21 06:11:05 -07:00
Martijn Coenen
3c22287c1b Revert "x86: Enable -fstack-protector"
This reverts commit e397dcccbb.
2011-06-07 08:57:34 -07:00
David Turner
5d627263c8 am 0a2d335e: am c1705c9a: Merge "x86: Enable -fstack-protector"
* commit '0a2d335e99bae3c257c0e26fe180d00de04bebaa':
  x86: Enable -fstack-protector
2011-06-06 14:39:32 -07:00
David Turner
486ce3495c am e4778e6a: am 4272b32a: Merge "Clean up of X86 build flags"
* commit 'e4778e6ab82a40475081482f26759985deeb7f21':
  Clean up of X86 build flags
2011-06-06 12:56:15 -07:00
David Turner
0a2d335e99 am c1705c9a: Merge "x86: Enable -fstack-protector"
* commit 'c1705c9ad8da4d6c2d267e27afd6e16aa7b431b6':
  x86: Enable -fstack-protector
2011-06-06 12:27:26 -07:00
David Turner
e4778e6ab8 am 4272b32a: Merge "Clean up of X86 build flags"
* commit '4272b32a86bd22ce560e41816cece950a7af4e51':
  Clean up of X86 build flags
2011-06-06 11:33:04 -07:00
Bruce Beare
e397dcccbb x86: Enable -fstack-protector
Change-Id: I1fe10159b7a29452ecfc6ba328164948cf9950d6
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-05-26 08:53:04 -07:00
Mark D Horn
5812d7b469 Clean up of X86 build flags
Review and clean-up of both compiler and linker flags
to ensure proper usage and consistency for images, toolchain,
SDK, and NDK.

Change-Id: Ife75c32cd49b32345712dee28fa5f2283069a90e
Signed-off-by: Mark D Horn <mark.d.horn@intel.com>
Author: Bruce Beare <bruce.j.beare@intel.com>
2011-05-18 14:10:58 -07:00
Ying Wang
c6bb84159c Merge "Add LOCAL_GROUP_STATIC_LIBRARIES" 2011-04-27 09:34:13 -07:00
David Turner
cb040fbca4 am 57a477ff: am 6f9b7562: am d5565942: Merge "x86: Disable stack-protector until bionic is fixed"
* commit '57a477ff2e3dc853d24ca4ce490dbc50feeca3c8':
  x86: Disable stack-protector until bionic is fixed
2011-04-26 12:45:49 -07:00
David Turner
57a477ff2e am 6f9b7562: am d5565942: Merge "x86: Disable stack-protector until bionic is fixed"
* commit '6f9b7562e36483a7bf23833d99da6a50e57f7266':
  x86: Disable stack-protector until bionic is fixed
2011-04-26 10:24:24 -07:00
Ying Wang
fcdabd4bdb Add LOCAL_GROUP_STATIC_LIBRARIES
Set LOCAL_GROUP_STATIC_LIBRARIES := true to group the static libraries,
in case we need gcc flags "-Wl,--start-group" and "-Wl,--end-group" to
fix circular references.

Change-Id: I03c4901670112fcdd2bb0fe660b6924e5776fcf8
2011-04-25 14:22:41 -07:00
Bruce Beare
6ddd4ead92 x86: Disable stack-protector until bionic is fixed
Change-Id: I2862de5c1b02490197704f4578a8a91d0565eef0
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-04-01 09:09:18 -07:00
Raphael
2396a0db92 resolved conflicts for merge of 9b4660a1 to master
Change-Id: Ide155e276c6e994ad330a5ac1c2676a7acc1efed
2011-03-25 16:21:38 -07:00
Raphael
9b4660a1c6 resolved conflicts for merge of db0d59d1 to honeycomb-plus-aosp
Change-Id: Ie3f5b2986bc926407a7883b449441cb58ab70e30
2011-03-25 15:13:55 -07:00
Iliyan Malchev
0cafe839e0 build: pass --strip-all, not --strip-debug to strip
Option --strip-all will remove the static symbol section in addition to debug
symbols.  We do not need the static symbol table in libraries installed on the
target.

Change-Id: I7a52d22f5b45aa727f31bfd9af796b289528caef
Signed-off-by: Iliyan Malchev <malchev@google.com>
2011-03-17 10:09:59 -07:00
Bruce Beare
2e8283d9bc x86: the -mbionic flag is needed for IA builds.
Change-Id: I00c75f37d7ea46b9f8ad3d7b2ff7094477ff0916
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-03-15 07:47:49 -07:00
David 'Digit' Turner
8c675d2293 am 16e7050c: am e9b1d0ee: am f8f95fc8: Merge "Allow win_sdk build with USE_CCACHE=1"
* commit '16e7050cbaa292c0f36275cdb4c56f357cbfa79a':
  Allow win_sdk build with USE_CCACHE=1
2011-03-15 04:13:24 -07:00
David 'Digit' Turner
16e7050cba am e9b1d0ee: am f8f95fc8: Merge "Allow win_sdk build with USE_CCACHE=1"
* commit 'e9b1d0eee715895f156c8e2601d5b1996919da6d':
  Allow win_sdk build with USE_CCACHE=1
2011-03-15 04:09:34 -07:00
David 'Digit' Turner
55aad08663 Allow win_sdk build with USE_CCACHE=1
This patch allows the Window sdk build (lunch sdk-eng; make win_sdk)
to work properly when USE_CCACHE is defined in the environment.

There is no Windows ccache prebuilt, but since we're cross-compiling
from Linux, detect it and use the linux prebuilt binary instead.

Note: Depends on https://review.source.android.com//#change,21755
      for a complete solution to the problem.

Change-Id: I0b1b59efae86ee7114225258c9ecf9f257913347
2011-03-15 01:01:32 +01:00
Iliyan Malchev
b375e71d30 build: remove prelinker build build system
This patch removes support for prelinking from the build system.  By now, the
prelinker has outlived its usefulness for several reasons.  Firstly, the
speedup that it afforded in the early days of Android is now nullified by the
speed of hardware, as well as by the presence of Zygote.  Secondly, the space
savings that come with prelinking (measued at 17MB on a recent honeycomb
stingray build) are no longer important either.  Thirdly, prelinking reduces
the effectiveness of Address-Space-Layout Randomization.  Finally, since it is
not part of the gcc suite, the prelinker needs to be maintained separately.

The patch deletes apriori, soslim, lsd, isprelinked, and iself from the source
tree.  It also removes the prelink map.

LOCAL_PRELINK_MODULE becomes a no-op.  Individual Android.mk will get cleaned
separately.  Support for prelinking will have to be removed from the recovery
code and from the dynamic loader as well.

Change-Id: I5839c9c25f7772d5183eedfe20ab924f2a7cd411
2011-03-12 14:59:46 -08:00
David Turner
1c908fa188 am b9c627c6: am 0683a773: Merge "x86: Use GCC 4.4.3"
* commit 'b9c627c6a0c6f0af57d0912175bfc739b0eb6249':
  x86: Use GCC 4.4.3
2011-03-07 13:45:59 -08:00
Bruce Beare
a17b91faa4 x86: Use GCC 4.4.3
Change-Id: I083c1afcbb98cfeb48d7bcb7681e5c34db52e767
Author:    H.J. Lu <hjl.tools@gmail.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2011-03-01 13:04:24 -08:00
Jeff Brown
bd528a82a2 Build system tweaks for Valgrind.
Added LOCAL_NO_CRT to enable building executables that do not link
to the C runtime library.

Removed support for LOCAL_MODULE_SUBDIR since it was broken
and unused.  (Was going to use it but ended up using LOCAL_MODULE_PATH
instead.)

Change-Id: Ifed4ffe17003d90370c711ea6606e2b75e841dee
2011-02-16 15:06:30 -08:00
Ben Cheng
5116e50705 Remove usused workaround.
Change-Id: I1d42d0f0dee361b98403bc87296dcbc37484ebcb
2011-02-16 12:48:38 -08:00
Jeff Brown
703e7c6d50 Build system tweaks for Valgrind.
Added LOCAL_NO_CRT to enable building executables that do not link
to the C runtime library.

Removed support for LOCAL_MODULE_SUBDIR since it was broken
and unused.  (Was going to use it but ended up using LOCAL_MODULE_PATH
instead.)

Change-Id: I3b6f5ab7e5ae6aaa7119899adccece2b4ab1cbb3
2011-02-08 16:38:56 -08:00
Ying Wang
3a7e4ccad9 Unify use of $(hide).
Change-Id: Ib7e17bbb4682caecce5812e63de872b676403d64
2011-01-28 14:14:47 -08:00
Ying Wang
f5653d1cee Regularize use of PRIVATE_CXX.
Change-Id: Ifc628c67b5fa142cec59187f89f2d39df81160b9
2011-01-27 20:08:34 -08:00
Ying Wang
80e6cce93e Correct misuse of target/host vars.
Change-Id: Ide41aeddc44ca05d85a36035c2d55ea453cfd216
2011-01-24 23:25:36 -08:00
David 'Digit' Turner
60a1e88052 Add support for custom Linux host toolchains when building the SDK.
This is needed in order to build Linux SDK binaries that can run
properly on Ubuntu 8.04 (Hardy). By default, the host toolchain
on 10.04 (Lucid) generates machine code that won't run on Hardy
due to GLibc ABI mistmatches.

Note that nothing happens if the new toolchain is not in the
prebuilt tree.

Change-Id: I914f5a303f16b6871759ce5a7178585ed3060870
2011-01-16 19:14:04 +01:00
Jing Yu
a83b769566 Remove global inline options.
The purpose of removing global inline options is to give
compiler the opportunity to do inline optimizations and inline
tunings for Android native codes.

By removing these global inline options now, the size of
almost all native libraries are reduced. And there is no
noticable performance degradation on webkit, gcstone and
skia benchmarks.

Change-Id: I31e71f51e4f29fa6286fddb89e9eab227581c7b3
2010-12-21 16:33:48 -08:00
David 'Digit' Turner
02e172e892 am efc5d814: am 15f4980d: Merge "Add support for custom Linux host toolchains when building the SDK." into gingerbread
* commit 'efc5d81428a8c7d9cf7cb7b3a5f1a8344b02a700':
  Add support for custom Linux host toolchains when building the SDK.
2010-12-14 02:45:58 -08:00
David 'Digit' Turner
efc5d81428 am 15f4980d: Merge "Add support for custom Linux host toolchains when building the SDK." into gingerbread
* commit '15f4980d510824113a4d2b71d70de9c67715f3dc':
  Add support for custom Linux host toolchains when building the SDK.
2010-12-14 02:42:10 -08:00
David 'Digit' Turner
0960ca7488 Add support for custom Linux host toolchains when building the SDK.
This is needed in order to build Linux SDK binaries that can run
properly on Ubuntu 8.04 (Hardy). By default, the host toolchain
on 10.04 (Lucid) generates machine code that won't run on Hardy
due to GLibc ABI mistmatches.

Note that nothing happens if the new toolchain is not in the
prebuilt tree.

Change-Id: I45c1f68e37e15a0032f885df1c5c0f297b3d8642
2010-12-13 11:52:03 +01:00
Jean-Baptiste Queru
cdfcc05897 am 6c7b6fb3: resolved conflicts for merge of b2028868 to gingerbread-plus-aosp
* commit '6c7b6fb3d2fda5cc5b881e01eb8bb0936ef0eeaf':
  IA: enable SSE fpmath, Separate ARCH_VARIANT and ARCH makefile settings
2010-11-19 16:56:31 -08:00
Jean-Baptiste Queru
6c7b6fb3d2 resolved conflicts for merge of b2028868 to gingerbread-plus-aosp
Change-Id: Ibe616c0bdf8e36aaee42279292a2dbe03c5643c2
2010-11-19 12:35:33 -08:00
Bruce Beare
ccec9c45d9 IA: enable SSE fpmath, Separate ARCH_VARIANT and ARCH makefile settings
Change-Id: I60b8121c92b39a60b513bc2496a1e0a21015c586
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2010-11-19 11:15:40 -08:00
Jean-Baptiste Queru
75220495d0 am 766a2a21: am 48ec6d6f: Merge "Enables x86-atom as a valid TARGET_ARCH_VARIANT for the simulator build."
* commit '766a2a2125d41e8bfb88112601a34af08f47f7f1':
  Enables x86-atom as a valid TARGET_ARCH_VARIANT for the simulator build.
2010-11-17 15:52:09 -08:00
Jean-Baptiste Queru
766a2a2125 am 48ec6d6f: Merge "Enables x86-atom as a valid TARGET_ARCH_VARIANT for the simulator build."
* commit '48ec6d6f814a70068c4632b468cd7872f34295ad':
  Enables x86-atom as a valid TARGET_ARCH_VARIANT for the simulator build.
2010-11-17 15:27:13 -08:00
Johnnie Birch
a4716b2618 Enables x86-atom as a valid TARGET_ARCH_VARIANT for the simulator build.
Change-Id: Idbceb6c7d4117fbecd35e4261330e6405666189e
2010-11-17 15:15:08 -08:00
Ben Cheng
efd2489b39 Insert directives to work around a CPU bug.
Bug: 3117632
Change-Id: I2fb58e7093984d18d2d2d21edf687206f4ddab31
2010-10-21 15:15:09 -07:00
Ying Wang
0ce72c458c am 3b008f36: am 83f69eb5: Prepend ccache to CC/CXX if necessary.
Merge commit '3b008f36956c35f58d510ad3da5090cf21a08349'

* commit '3b008f36956c35f58d510ad3da5090cf21a08349':
  Prepend ccache to CC/CXX if necessary.
2010-10-10 09:10:22 -07:00
Ying Wang
3b008f3695 am 83f69eb5: Prepend ccache to CC/CXX if necessary.
Merge commit '83f69eb5f905d47581bed141b7f5103362390339' into gingerbread-plus-aosp

* commit '83f69eb5f905d47581bed141b7f5103362390339':
  Prepend ccache to CC/CXX if necessary.
2010-10-07 13:57:29 -07:00
Ying Wang
83f69eb5f9 Prepend ccache to CC/CXX if necessary.
In case TARGET_CC is assigned with HOST_CC (eg, simulator build),
ccache will be prepended twice before this CL.
Bug: 3069576

Change-Id: I2ee44faea3a2795cf389ad6f80e4066a02b43be9
2010-10-07 10:45:02 -07:00
Jean-Baptiste Queru
f09f80d182 am 93847f53: am cc84526b: Merge "Add atom optimization flags"
Merge commit '93847f5355204635648d791098dd0210e22d53ab'

* commit '93847f5355204635648d791098dd0210e22d53ab':
  Add atom optimization flags
2010-09-10 14:52:25 -07:00
Jean-Baptiste Queru
93847f5355 am cc84526b: Merge "Add atom optimization flags"
Merge commit 'cc84526bcef5ffd7ed9abf73dc3bfc9e29784b22' into gingerbread-plus-aosp

* commit 'cc84526bcef5ffd7ed9abf73dc3bfc9e29784b22':
  Add atom optimization flags
2010-09-10 13:03:13 -07:00
Jean-Baptiste Queru
cc84526bce Merge "Add atom optimization flags" 2010-09-09 14:07:21 -07:00
Ying Wang
ac628ed792 am 2e1347c6: am fb644881: Disable new longjmp in glibc 2.11 and later.
Merge commit '2e1347c6a010c51c9ec80fd312465c1c23666ab2'

* commit '2e1347c6a010c51c9ec80fd312465c1c23666ab2':
  Disable new longjmp in glibc 2.11 and later.
2010-09-02 10:52:29 -07:00
Ying Wang
2e1347c6a0 am fb644881: Disable new longjmp in glibc 2.11 and later.
Merge commit 'fb644881b6083aa0d9d15e7aad8bfa5a429b1c37' into gingerbread-plus-aosp

* commit 'fb644881b6083aa0d9d15e7aad8bfa5a429b1c37':
  Disable new longjmp in glibc 2.11 and later.
2010-09-02 09:45:11 -07:00
Ying Wang
163fa35fe3 Disable new longjmp in glibc 2.11 and later.
Bug: 2967937
Change-Id: I7a5ef082502192f41c26a48632edfe775dea7648
2010-09-01 16:56:25 -07:00
Ying Wang
fb644881b6 Disable new longjmp in glibc 2.11 and later.
Bug: 2967937
Change-Id: I4e2a5f806ad45a01ca7f8c4d032cd29fce1d794d
2010-09-01 16:39:11 -07:00
Ying Wang
9a8732fb6c Link against Mac OSX 10.5 SDK if building on 10.6.
So that tools built on Snow Leopard (10.6) can be used on Leopard (10.5).

Change-Id: I99745ecbe2ad11feaae31d5be31c34c2e0ad7cc5
2010-08-30 11:52:50 -07:00
Ying Wang
30ac7bce54 am f3a142b8: am 7eaa4dc2: Merge "Link against Mac OSX 10.5 SDK if building on 10.6." into gingerbread
Merge commit 'f3a142b8d5b4db7299b706653f4fd2952f4e5d8c'

* commit 'f3a142b8d5b4db7299b706653f4fd2952f4e5d8c':
  Link against Mac OSX 10.5 SDK if building on 10.6.
2010-08-25 10:12:58 -07:00
Ying Wang
f3a142b8d5 am 7eaa4dc2: Merge "Link against Mac OSX 10.5 SDK if building on 10.6." into gingerbread
Merge commit '7eaa4dc2fbc3d7b3d8a0a2576a6fc14507e176a8' into gingerbread-plus-aosp

* commit '7eaa4dc2fbc3d7b3d8a0a2576a6fc14507e176a8':
  Link against Mac OSX 10.5 SDK if building on 10.6.
2010-08-25 10:10:13 -07:00
Ying Wang
d6683f08c9 Link against Mac OSX 10.5 SDK if building on 10.6.
So that tools built on Snow Leopard (10.6) can be used on Leopard (10.5).

Change-Id: I99745ecbe2ad11feaae31d5be31c34c2e0ad7cc5
2010-08-24 18:34:44 -07:00
Dima Zavin
6d98f5f4d6 core: fix paths to libm arch-specific include dirs
Change-Id: I17a1ed13af6d4955a636ad429917b683ac59a947
Signed-off-by: Dima Zavin <dima@android.com>
2010-08-05 17:46:53 -07:00
Jing Yu
9d396e37ac Make arm-linux-androideabi toolchain the default for Android build.
androideabi target is already in upstream GCC. The arm-linux-
androideabi toolchain can be built directly from upstream GCC.
Switching from old special tailored arm-eabi toolchain to the new
arm-linux-androideabi toolchain make us closer to the opensource
community and friendly to all toolchain developers.

kernel still uses arm-eabi toolchain. So we add arm-eabi toolchain
path to PATH.

The arm-linux-androideabi-4.4.x toolchain is built with the same
source as the latest arm-eabi-4.4.3 toolchain except for the
target change patches.

Change-Id: I1e5f2fe2faeee08f913f37e0ba93e84d2654a8ff
2010-07-29 19:09:12 -07:00
Chih-Wei Huang
2467fe24f0 Add atom optimization flags
To enable the optimization, set TARGET_ARCH_VARIANT := x86-atom.

Change-Id: I6b7798944bb8262bd83a76712419d8a77d3c34e9
2010-07-26 10:41:38 +08:00
Jing Yu
584f5b7a84 Group needed libraries together to solve the cyclic dependence
between libc, libc_nomalloc and libgcc. When building with upcoming
arm-linux-androideabi toolchain, Symbol raise is needed by libgcc.a
and defined by libc.a or libc_nomalloc.a.which.

This patch groups libgc.a, libc_nomalloc.a and libgcc.a together, which is
a minimal group to solve this problem.

Change-Id: I27ed78c495dc53c1db7b302da8704f5e478ad893
2010-07-21 14:57:59 -07:00
Ying Wang
95318832be am 4a1addef: am 90b1d3dc: am b6a1c180: Keep the crt start/end var name of sh consistent with other archs
Merge commit '4a1addef83d6458ba41b498648a36046a27a01b8'

* commit '4a1addef83d6458ba41b498648a36046a27a01b8':
  Keep the crt start/end var name of sh consistent with other archs
2010-07-13 17:51:15 -07:00
Ying Wang
4a1addef83 am 90b1d3dc: am b6a1c180: Keep the crt start/end var name of sh consistent with other archs
Merge commit '90b1d3dcfece8eef53277cbcf0326deda9f16f09' into gingerbread-plus-aosp

* commit '90b1d3dcfece8eef53277cbcf0326deda9f16f09':
  Keep the crt start/end var name of sh consistent with other archs
2010-07-13 17:48:40 -07:00
Ying Wang
90b1d3dcfe am b6a1c180: Keep the crt start/end var name of sh consistent with other archs
Merge commit 'b6a1c1802961f40fe4736e80402f849968cd2563' into gingerbread

* commit 'b6a1c1802961f40fe4736e80402f849968cd2563':
  Keep the crt start/end var name of sh consistent with other archs
2010-07-13 17:46:29 -07:00
Ying Wang
b6a1c18029 Keep the crt start/end var name of sh consistent with other archs
So that the PRIVATE_ vars get values correctly.

Change-Id: I1eea67f02c5bab5018b3b5fd93904e1ee8643bf7
2010-07-13 17:41:14 -07:00
Ying Wang
aabbc07cb8 am 90cf34c7: am f0f60cdd: resolved conflicts for merge of 1a08100f to gingerbread
Merge commit '90cf34c72e204eb1d23f43d1fccbf2076e8ff67b'

* commit '90cf34c72e204eb1d23f43d1fccbf2076e8ff67b':
  Support to build native libraries with prebuilt NDK
2010-07-13 17:26:00 -07:00
Ying Wang
90cf34c72e am f0f60cdd: resolved conflicts for merge of 1a08100f to gingerbread
Merge commit 'f0f60cdd8f4f74b2480774887606afdebec8d891' into gingerbread-plus-aosp

* commit 'f0f60cdd8f4f74b2480774887606afdebec8d891':
  Support to build native libraries with prebuilt NDK
2010-07-13 17:24:09 -07:00
Ying Wang
f0f60cdd8f resolved conflicts for merge of 1a08100f to gingerbread
Change-Id: I9e4183a1d5c0efb13de8655b9eb7c74d50b34cd7
2010-07-13 17:21:33 -07:00
Ying Wang
1a08100fa9 Support to build native libraries with prebuilt NDK
Bug: http://b/issue?id=2811253
Change-Id: Iabd4ab8b3d7236dffe89f1939e1142e882944026
2010-07-13 16:29:18 -07:00
The Android Open Source Project
c1b24549e3 am 87f50000: merge from open-source master
Merge commit '87f500004acc7b68745bd939a473dd92e77b5c9c'

* commit '87f500004acc7b68745bd939a473dd92e77b5c9c':
  Define __ANDROID__ for x86 to be on par with ARM build requirements
2010-07-12 14:58:50 -07:00
The Android Open Source Project
87f500004a merge from open-source master
Change-Id: I0221f3903a2fc6a0fb25ae62913fdc2e9d3c3f4f
2010-07-12 14:55:52 -07:00
Bruce Beare
fe2ef85d5d Define __ANDROID__ for x86 to be on par with ARM build requirements
Change-Id: I79c8f29af1f20b694f22a39f848216022809a5c6
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
2010-07-12 13:47:41 -07:00
The Android Open Source Project
4be5c394c1 am 0fd96df4: merge from open-source master
Merge commit '0fd96df49ccecbf3628c95dabf3b94dfc27323e5'

* commit '0fd96df49ccecbf3628c95dabf3b94dfc27323e5':
  Refactor Stripper. Allow a stripper other than SOSLIM to be specified
2010-07-09 16:05:04 -07:00
The Android Open Source Project
0fd96df49c merge from open-source master
Change-Id: I40aa6f0f885ea30dd5f9918c323fa240a4830c38
2010-07-09 16:02:03 -07:00
Bruce Beare
45ac434151 Refactor Stripper. Allow a stripper other than SOSLIM to be specified
Change-Id: I61137f5bb123dc5f610af9928ed3debdf85ba74d
Signed-off-by: Bruce Beare <brucex.j.beare@intel.com>
2010-07-09 12:16:46 -07:00
Doug Kwan
baff089c37 Enable ICF link-time optimization.
Change-Id: I49af3366262bebe12dacfebe99ec742b79bf9d84
2010-06-29 11:14:42 -07:00
David 'Digit' Turner
cf937bb4d8 am 5cd0870e: am a7f9179e: Merge "Enable shared libraries to use crtbegin_so.S and crtend_so.S" into gingerbread
Merge commit '5cd0870e6215ab8c2be01a8e7b36600db323b77a'

* commit '5cd0870e6215ab8c2be01a8e7b36600db323b77a':
  Enable shared libraries to use crtbegin_so.S and crtend_so.S
2010-06-25 14:21:37 -07:00
David 'Digit' Turner
438f5f75ec Enable shared libraries to use crtbegin_so.S and crtend_so.S
This is necessary to ensure that dlclose() will properly call C++
destructors for the static objects within the shared library.

Change-Id: Ieb056042f9cda7ab120eb770b21f365cd6d64a66
2010-06-18 16:08:36 -07:00
Jing Yu
96c286daf1 am eed926c8: am ada132a8: Switch toolchain from gcc-4.4.0 to gcc-4.4.3
Merge commit 'eed926c889382073c74de43a0d15e37462623cf3'

* commit 'eed926c889382073c74de43a0d15e37462623cf3':
  Switch toolchain from gcc-4.4.0 to gcc-4.4.3
2010-06-16 20:47:01 -07:00
Jing Yu
ada132a80b Switch toolchain from gcc-4.4.0 to gcc-4.4.3
gcc-4.4.3 toolchain is based on fsf GCC-4.4.3 with numerous patches.
It reduces 3.65% code size than the prebuilt gcc-4.4.0 toolchain,
and improves 3.4% performance on Android benchmarks.

The toolchain uses gold as default linker. With gold, the toolchain
further reduces 1MB system image.

Change-Id: I55eb4df185f2932e71498fcc28428e4d1b175393
2010-06-16 20:17:19 -07:00
David 'Digit' Turner
fc7b7827fc am b6bee6f1: am 3e467785: Remove irritating warnings about \'va_list\' mangling when building C++ sources.
Merge commit 'b6bee6f17187a9eb3645e9519cca4a126d9aca21'

* commit 'b6bee6f17187a9eb3645e9519cca4a126d9aca21':
  Remove irritating warnings about 'va_list' mangling when building C++ sources.
2010-06-16 19:41:44 -07:00
David 'Digit' Turner
3e4677856f Remove irritating warnings about 'va_list' mangling when building C++ sources.
Change-Id: I6305e93515e57462e7c57af0cc41a659e4190696
2010-06-16 16:04:55 -07:00
Raphael
63c8af9aaf Fix the build: properly detect the BUILD OS version of Java, not the host one.
This matters when building Windows under Linux.

Change-Id: I1eaa4eeda4df359313f16d52605a1b8298765269
2010-06-12 11:44:48 -07:00
The Android Open Source Project
4873d8f5ca merge from open-source master
Change-Id: Id3161ac44e0eaba0184b3d2d4af43e4e40d26e90
2010-06-04 07:56:24 -07:00
Jeff Hamilton
8d09b69e2d Build host tools as 32bit on all Darwin machines.
Change-Id: I121b388056e68b787518c66a01c172bc4ffaef9b
2010-06-03 17:59:11 -05:00
Jeff Hamilton
ebc2869b8d Build host tools as 32bit on all Darwin machines.
Change-Id: I121b388056e68b787518c66a01c172bc4ffaef9b
2010-06-03 12:29:19 -05:00
Nick Kralevich
d868cad828 Add -Werror=format-security
Security hardening: don't allow code to compile which
uses format strings in an inappropriate way.  Make format
string compiler warnings into errors.

Change-Id: I1461dad589a2416420fd84ccf765983e859eea8a
2010-05-17 14:30:01 -07:00
Nick Kralevich
2915cc3e32 Enable NX protections
Add -Wa,--noexecstack and -Wl,-z,noexecstack as default
flags when compiling applications.  This enables NX
protections, which prevent code from executing on the
stack or heap.  NX protections can block a large number
of buffer overflow attacks, and is an important security
feature.

Change-Id: Iad4bab9f8664584ba6ce832a5318d07680d7a908
2010-05-05 11:09:52 -07:00
Nick Kralevich
387e4d0601 LOCAL_LDFLAGS should come after TARGET_GLOBAL_LDFLAGS
A package can define a LOCAL_LDFLAGS.  If a LOCAL_LDFLAGS
exists, it should come after the global LDFLAGS, to allow
the local flags to override the global flags.

Change-Id: I6e44c17949c1f11c808d0ed3f327d63fb51a1468
2010-04-26 14:12:19 -07:00
Colin Cross
f807c55f39 Add a new build target armv7-a-neon
Change-Id: Ib3b44e839b093974aff0d595950e6b691beee7a5
2010-03-10 16:07:14 -08:00
Colin Cross
5720bb91a4 Modify the armv7-a target arch to not use NEON
To build for a target with NEON, use armv7-a-neon

Change-Id: I70d509287b04c0faebe44faf6c8ebb28a7360ff9
2010-03-10 16:06:44 -08:00
Andy McFadden
99e087bc82 Added -lpthread to target LDFLAGS for sim-eng.
This adds "-lpthread" to TARGET_GLOBAL_LDFLAGS when TARGET_SIMULATOR
is true.  This is much easier than inserting it into individual
makefiles as needed.  Has no effect on other builds.

Should fix the sim-eng build breakage in libcameraservice.

Change-Id: I4dcd7d54b93d1be1622b8ce78a1662d28ca9f9f2
2010-03-08 12:42:46 -08:00
Andy McFadden
ef26218762 Tweak default x86 target arch variant.
Simply set the arch variant for sim-eng to be "x86".
2010-02-26 13:50:44 -08:00
Andy McFadden
16e95bb99d Build the target side of the simulator as 32-bit.
This detail got lost in my previous cleanup change 9b4a812.

Also add a comment explaining why the host side of the
simulator needs to be built in 64-bit (wxWidgets).

Change-Id: I2a867f7f80b43d53e73348b19f6ae834600295f9
2010-02-24 08:33:08 -08:00
Jean-Baptiste Queru
9b4a81237b Get rid of $(combo_target)
The only OS-ARCH combo that would have benefited from it
is linux-x86, but it explicitly used separate configurations
for the HOST_ and TARGET_ side of things.

This makes is clear which files are related to the HOST_
configuration and which ones are related to the TARGET_
configuration, and expands $(combo_target) to the only
possible/reasonable value that it could have had in every
file.

This also cleans up the simulator, by moving it in a single
place in TARGET_linux_x86 (since the only part that's special
is to use HOST_ settings even when building TARGET_ modules).

Change-Id: I2420eeb8cfe539f5807ec99cb3177ffb9f2476d5
2010-02-23 12:36:56 -08:00
Andy McFadden
e009f29590 Fix build.
The "set default variant to armv5te if none defined" in the ARM config
was applying to all architectures, but as it turns out only ARM builds
actually cared.  When I made a copy of the "set default" code to the x86
config, one or the other would win for builds that didn't specify a
variant.  Turns out x86 won, so sim and voles worked, but opal didn't.
2010-02-23 10:24:33 -08:00
Andy McFadden
8d7c2b5c6d Provide default variant for x86.
The TARGET_ARCH_VARIANT was not being set for x86.  This caused some
difficulties when x86-atom tried to include variant-specific versions
of files.
2010-02-22 12:44:04 -08:00
Dan Bornstein
16dc9c38d8 Fix the host rule for building executables on darwin-x86.
Change-Id: I573364cd0c95ce0157e21d3bb4f7e3b13c61dd70
2009-11-08 17:44:01 -08:00
Mike Reed
c4386e4112 am ebed06a2: am 65a731b7: Merge change I8dd26ee4 into eclair-mr2
Merge commit 'ebed06a259eb1c00112a4e3a9d6d721700bbaedb'

* commit 'ebed06a259eb1c00112a4e3a9d6d721700bbaedb':
  remove reference to SK_RELEASE, since that is automatically set based on NDEBUG (or its absence)
2009-11-06 11:35:02 -08:00
Mike Reed
ebed06a259 am 65a731b7: Merge change I8dd26ee4 into eclair-mr2
Merge commit '65a731b737bd6e8afa0b18176064dcc130dbb4ce' into eclair-mr2-plus-aosp

* commit '65a731b737bd6e8afa0b18176064dcc130dbb4ce':
  remove reference to SK_RELEASE, since that is automatically set based on NDEBUG (or its absence)
2009-11-06 11:24:37 -08:00
Mike Reed
8dd26ee452 remove reference to SK_RELEASE, since that is automatically set based on NDEBUG (or its absence)
i.e. if NDEBUG is defined, then SK_RELEASE will get defined in the skia config headers
2009-10-30 08:32:28 -04:00
Jean-Baptiste Queru
3ca0693894 am e93ece70: merge from open-source master
Merge commit 'e93ece70a8d9657d5d08c59db75582d0d057d3bb'

* commit 'e93ece70a8d9657d5d08c59db75582d0d057d3bb':
  Remove temporary vold logic
  added linux-sh.mk to support SuperH architecture
2009-10-14 16:16:46 -07:00
Jean-Baptiste Queru
e93ece70a8 merge from open-source master 2009-10-14 16:02:08 -07:00
Jean-Baptiste Queru
2a11836482 merge from open-source master 2009-10-14 08:18:24 -07:00
Dan Bornstein
fa477ba15e Allow WITH_JIT to be overridden in a custom buildspec.mk file.
Change-Id: I0fb7ffcfb9786f611e981d8f22f67a5ac8c9c405
2009-10-13 15:56:48 -07:00
Sriram Raman
ca02204ddb am 2bd9027d: Merge change I5bbd2294 into eclair-mr2
Merge commit '2bd9027d0a2055e56a8047c11dda7f6551b9f183'

* commit '2bd9027d0a2055e56a8047c11dda7f6551b9f183':
  For Ying Wang:
2009-10-12 12:42:05 -07:00
Sriram Raman
5bbd2294e9 For Ying Wang:
Fix "argument list too long" build error bug.
2009-10-07 16:27:38 -07:00
Jing Yu
2dcc806af5 Add FDO options to Android make system. 2009-09-21 16:31:50 -07:00
Android Code Review
9a6b73c0aa Merge change 10642
* changes:
  added linux-sh.mk to support SuperH architecture
2009-09-17 14:52:55 -07:00
Ben Cheng
db95cb4426 Enable Dalvik JIT by default for the master branch. 2009-09-09 13:03:44 -07:00
Jean-Baptiste Queru
7227ea7619 merge from donut 2009-07-29 14:56:48 -07:00
Jean-Baptiste Queru
7c07cf9a82 Merge korg/donut into korg/master
Conflicts:

	core/apicheck_msg_current.txt
	core/combo/linux-arm.mk
	core/prelink-linux-arm.map
	tools/droiddoc/src/ClassInfo.java
2009-07-25 16:58:22 -07:00
Erik Gilling
c12c518379 enable cortex branch predition errata workaround for armv7-a builds
Signed-off-by: Erik Gilling <konkers@android.com>
2009-07-17 15:58:42 -07:00
Mike Reed
582dcbd7d1 add HAVE_VFP flag 2009-07-16 15:22:57 -04:00
Mike Reed
8ce877a3ab set -fpu=neon so we can use arm_neon.h 2009-07-13 14:48:43 -04:00
Shin-ichiro KAWASAKI
ff328a9409 added linux-sh.mk to support SuperH architecture 2009-07-09 17:51:25 +09:00
Doug Zongker
b17199ee41 am 742fa575: fix problems with new image size calculations
Merge commit '742fa575d09272f1e06616fc208a1e08830c8f82'

* commit '742fa575d09272f1e06616fc208a1e08830c8f82':
  fix problems with new image size calculations
2009-07-08 13:52:20 -07:00
Doug Zongker
742fa575d0 fix problems with new image size calculations
The build servers have GNU coreutils 5.93, where stat does not output
a newline.  Ubuntu hardy has GNU coreutils 6.10, where it does.
Lacking a newline messes up the summing of the sizes.  Fix
get-file-size to remove the newline if present, and make the total
calculation in assert-max-file-size more robust.

Also, if the image was too big, it was not actually making the build
fail (because /bin/false was not the last thing called).  Fix that so
it does.
2009-07-08 12:09:04 -07:00
Patrick Scott
87c86573e0 Move the BoardConfig.mk search and inclusion to core/config.mk.
This allows TARGET_ARCH_VARIANT to be set by the vendor before we choose the
architecture in core/combo/select.mk.

Also add a primitive armv7-a.mk for turning on hardware floating point.
2009-06-23 15:28:07 -04:00
Jing Yu
b845c2fe20 Switch default toolchain to 4.4.0 in master. 2009-06-17 12:06:23 -07:00
David 'Digit' Turner
3585e95918 Fix armv5te-vfp build. Aargh 2009-05-29 22:54:40 +02:00
David 'Digit' Turner
d53c81d7c5 Rename TARGET_ARCH_VERSION to TARGET_ARCH_VARIANT +
Move arch-specific definitions into core/combo/arch/arm/<variant>.mk
2009-05-29 21:36:49 +02:00
Andy McFadden
8f51a2ad06 Added support for TARGET_ARCH_VERSION=armv5te-vfp.
This is currently a copy & paste of the armv5te parameters.  I don't
know if there's a better way to encode this, or to what extent we will
need to specialize it vs. armv5te in a future build (e.g. to enable fp
instruction use in code gen).

Currently the only effect is to select the VFP-enabled mterp sources in
Dalvik.
2009-05-28 12:47:23 -07:00
Ed Heyl
50ca1cf796 cherry-pick bd215ed974 2009-05-15 15:02:03 -07:00
Doug Kwan
bd215ed974 Rollback to gcc-4.2.1 2009-05-14 02:17:32 -07:00
Dave Bort
8acd848320 Merge commit '9528248' into master
Conflicts:
	core/combo/linux-arm.mk

Signed-off-by: Dave Bort <dbort@android.com>
2009-05-05 17:04:51 -07:00
Dave Bort
952824843b core: Don't debug native modules when TARGET_BUILD_TYPE==debug
Don't make the simulator default to debug mode.

Remove all global "debug" {C,CPP}FLAGS, which are no longer used.
2009-05-04 18:12:32 -07:00
Doug Kwan
6fa3704187 am 8c9bef6: switch compiler to gcc-4.3.1
Merge commit '8c9bef616666ee8c6d5cc9243f3d89c44d15d216'

* commit '8c9bef616666ee8c6d5cc9243f3d89c44d15d216':
  switch compiler to gcc-4.3.1
2009-04-30 18:11:11 -07:00
Doug Kwan
8c9bef6166 switch compiler to gcc-4.3.1
Switch default ARM compiler to gcc-4.3.1 for Neon support.
2009-04-30 15:04:28 -07:00
Fredrik Markström
b7990f700b Modify linux-arm.mk to support the armv4t architecture instead of armv4.
armv4 was only implemented on StrongArm and Arm8 (See http://en.wikipedia.org/wiki/ARM_architecture)
and will be more difficult to support since it does not support the bx instruction.
armv4t on the other hand is used in a wide range of cpu:s.
armv4 is also not supported by bionic or dalvik, but armv4t is.

Thumb-mode is not yet enabled since there are some unresolved abi-issues.
2009-03-25 13:20:37 +01:00
Jean-Baptiste Queru
ccf4b83b02 Merge commit 'remotes/korg/cupcake' into cupcake_to_master
Conflicts:
	core/prelink-linux-arm.map
2009-03-18 16:58:18 -07:00
The Android Open Source Project
6a5f7f068b auto import from //depot/cupcake/@136594 2009-03-05 14:34:30 -08:00
The Android Open Source Project
88b607994a auto import from //depot/cupcake/@135843 2009-03-03 19:28:42 -08:00
The Android Open Source Project
05806d7af6 auto import from //depot/cupcake/@135843 2009-03-03 18:28:14 -08:00
The Android Open Source Project
4d23ccc023 auto import from //branches/cupcake/...@132569 2009-02-20 07:38:28 -08:00
The Android Open Source Project
70b813ec57 auto import from //branches/cupcake/...@125939 2009-01-09 18:27:30 -08:00
The Android Open Source Project
4f85cc54b3 auto import from //branches/cupcake/...@125939 2009-01-09 17:50:54 -08:00
Jean-Baptiste Queru
179d2bf01a Merge commit 'remotes/korg/cupcake'
Conflicts:
	core/api/1.xml
	core/api/current.xml
	core/main.mk
2008-12-19 07:58:19 -08:00
The Android Open Source Project
dcc08f073b Code drop from //branches/cupcake/...@124589 2008-12-17 18:03:49 -08:00
Ben Leslie
e03f0237f7 This is the first set of build system changes to support
architecture versions other than ARMv5TE.

The general approach is to provide TARGET_ARCH_VERSION, to complement
TARGET_ARCH. This defaults to the current armv5te. The variable
values should match the architectures as defined by gcc.

There is a block of defines for each supported architecture version
(currently ARMv5TE and ARMv4). Each block defines a set of features
using ARCH_ARM_HAVE_<x> variables. It also specifies a set of c
preprocessor defines to pass to the compiler. Finally it defines a
default CPU. (As for architecture versions, the default CPU should
match a CPU that gcc knows about.)

Support is added for architectures that do not support THUMB. Specifically
we change the 'thumb compile' target to simply compile as ARM code
instead, and we change the interworking flag passed to the compiler.

Finally, we ensure that the system/core/include/arch/linux-arm directory
is added to the default include path, which allows the use of asm/macros.h
header file described in review #1626. The way in which this done is
considerably unclean/hacky, if someone can suggest a better way please
let me know.
2008-11-01 10:15:37 +11:00
The Android Open Source Project
b6c1cf6de7 Initial Contribution 2008-10-21 07:00:00 -07:00