Commit graph

164 commits

Author SHA1 Message Date
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