Commit graph

117 commits

Author SHA1 Message Date
Ying Wang
9fb3526648 Make -rpath-link work with multilib.
Change-Id: If69ea6ed6cdbb657ed4005f8217d653e29626783
2014-02-21 16:20:20 -08:00
C. Sean Young
b47c863ec7 Strip all symbols on x86
Strip all of the non-dynamic symbols on x86 targets,
instead of just the debug symbols.

Change-Id: Id799a6a8c8b0e8bf70977328e42e5efa23762f25
2014-02-19 12:53:43 -08:00
Ying Wang
5aa50c6637 Merge "Fix x86 config file to support 2nd ARCH build" 2014-02-19 18:19:22 +00:00
Colin Cross
4aa263f2be x86: set -msse2 for all builds
All supported x86 processors have SSE2.

Change-Id: Ib4a0511c456fe3185b0b902390860ad557aeedcf
2014-02-18 15:49:48 -08:00
Qiming Shi
310324d28a Fix x86 config file to support 2nd ARCH build
Change-Id: I5f6091c555b9e742303f294b7c07a981ae5c6026
Signed-off-by: Qiming Shi <qiming.shi@intel.com>
2014-02-17 17:46:48 +08:00
Stephen Hines
6d5dd2367a Fix incorrect x86 build rules.
combo/TARGET_x86*.mk mistakenly added TARGET_GLOBAL_CFLAGS to their
linker command lines. This results in clang builds not working properly,
since they strip some unknown flags from TARGET_GLOBAL_CFLAGS.

Change-Id: I60a1ff5df70305323134435e4ae107ea7acfe8ea
2014-02-13 09:24:29 -08:00
Elliott Hughes
171e940c7a Fix KERNEL_HEADERS_ARCH for mips and x86.
arm and arm64 have distinct headers, but mips and mip64, and x86 and x86_64
use headers that work for both widths. So where arm/arm64 need to handle the
second architecture case specially, all we need to do for the others is
hard-code the name. (x86_64.mk already hard-codes x86; we need to change
x86.mk for the case where we're building the 32-bit binaries for a mixed
system. mips64.mk doesn't exist yet, but when it does, it'll hard-code
just plain "mips" too.)

Change-Id: Ia6b9f77b4eb2c78729b454045875c409e0ea8197
2014-01-28 13:10:19 -08:00
Elliott Hughes
2f8dcdd961 Remove libthread_db from the default include path.
This should never have been on the default include path.

The NDK statically links its own libthread_db, so I'm removing
bionic's unused copy from devices.

Bug: 11882807
Change-Id: I49a67fe0902cc4bc178360f6c993959774d74e3a
2014-01-27 15:45:17 -08:00
Ying Wang
1d274d2686 Load compiler environment for a second arch.
This is the first step to build 32-bit libraries in a 64-bit product.
It will work like this:
1) In the product's BoardConfig.mk, define:
TARGET_2ND_ARCH, TARGET_2ND_ARCH_VARIANT, TARGET_2ND_CPU_VARIANT.
The build system uses those variables to set up an additional compiler
environment for the second arch.

2) When parsing Android.mks, the build system sets up rules to build a
module for both the 1st arch and the 2nd arch, unless it's explicitly
asked to skip so.
Android.mk will be adapted if there is additional rule of generating
source files.
The build system will accept arch-specific LOCAL_ variables, such as
LOCAL_CFLAGS_arm, LOCAL_CFLAGS_armv7-a-neon, LOCAL_CFLAGS_cortex-a15,
LOCAL_CFLAGS_aarch64 etc. Modules use such variables to set up build for
various archs at the same time.

3) Install binary of the 2nd arch by adding "<module_name>:32" to
PRODUCT_PACKAGES. All 2nd-arch libraries linked in by "<module_name>:32"
will be installed automatically.

Bug: 11654773
Change-Id: I2df63cd5463a07bf5358bee2a109f8fb9590fe30

Conflicts:
	core/combo/TARGET_linux-arm.mk
2014-01-24 13:34:26 -08:00
Elliott Hughes
dddb566eba Remove obsolete CUSTOM_KERNEL_HEADERS.
Change-Id: Id260dd351b90f065eee56e231d4c341b18c1b27f
2014-01-10 16:35:08 -08:00
Elliott Hughes
e5df095b76 Switch x86 over to uapi-only.
Bug: 11559337
Change-Id: I95aa40ec2094acdaef1d4b4d9f0dd6278cf558d1
2013-11-25 16:38:47 -08:00
The Android Open Source Project
b9041a45b1 Merge commit 'c73341006286c391ae4d268a77f5e008045d5308' into HEAD
Change-Id: I4bf7d32d65e19dfa1f0533fdd3b2295c50b13005
2013-11-22 11:06:11 -08:00
Elliott Hughes
2d9dc89962 Switch x86 to uapi headers.
We still need the 'aux' hack, but this is a good step forward.

Bug: 11559337
Change-Id: Ib3d79317293e1cd3d2620c38e6b472a5994ee554
2013-11-19 16:55:00 -08:00
Andrew Hsieh
8baaca5f97 Switch AOSP X86/MIPS compiler to gcc4.8
Change-Id: Ifeee2c7d696c8a8e96e52c6ca51434260bdae5f8
2013-11-15 10:25:58 +08:00
Ying Wang
77f27f1dbe Merge "Cleanup x86 and x86_64 flags" 2013-11-14 04:54:55 +00:00
Nick Kralevich
46ed4aa58b x86: turn on -Wl,--fatal-warnings
In 4f2f16da14, 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.

Bug: 11353056
Change-Id: I2f2c65352166ef0a96f54858de1556f0290fe306
2013-10-24 13:36:08 -07:00
Pavel Chupin
f0a4855574 Cleanup x86 and x86_64 flags
-mandroid, -D__ANDROID__ is on by the toolchain;
-msse3 moved to llvm_config, it seems it's required only there;
__cxa_atexit is provided by libc now;
USE_SSE2 should not be used anywhere, it's always true;
remove -mstackreallign and -mfpmath=sse as useless for x86_64;

Change-Id: Ib7739f6522c375c09de10d22616c48a493841c4c
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-15 18:15:57 +04:00
Elliott Hughes
5dec2c7703 am 1180d71c: am 2c448765: Merge "Remove explicit passing of dynamic loader name"
* commit '1180d71c3062a4f5b124ced3693a6a937ffbc13a':
  Remove explicit passing of dynamic loader name
2013-10-08 10:12:28 -07:00
Pavel Chupin
fde3c16420 Remove explicit passing of dynamic loader name
We should trust toolchain on that.

Change-Id: I20dd882d167cc84c262aef245ea2d86c17bc1785
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-08 11:35:39 +04:00
Elliott Hughes
2e840a500e am a035abc5: am 1303aa28: Merge "Remove useless x86 options that were always hardcoded on."
* commit 'a035abc55455a50da7b242dad1bca55fa28617a9':
  Remove useless x86 options that were always hardcoded on.
2013-10-04 14:42:11 -07:00
Elliott Hughes
d3f00c162b Remove useless x86 options that were always hardcoded on.
ARCH_X86_HAVE_MMX, ARCH_X86_HAVE_SSE, ARCH_X86_HAVE_SSE2,
and ARCH_X86_HAVE_SSE3 were all always on. There are no longer any makefiles
or code that are conditional on any of these, so let's just remove them
rather than encourage anyone to mess with knobs that don't work.

Change-Id: I5ee095e8041eecff4554ad4801894fbfca69093f
2013-10-04 11:45:06 -07:00
Ying Wang
6a6db9432f am ab7b53b8: am 5d92a933: Merge "x86_64: Adding new target"
* commit 'ab7b53b8e09e3d346384a5257e8f7a440a53dfc0':
  x86_64: Adding new target
2013-10-02 15:06:02 -07:00
Pavel Chupin
fd82a49e04 x86_64: Adding new target
Add x86_64 Android builds. Compiler is expected to be able to understand
-m64 code generation option.

Change-Id: I99e7337c5a5766afc5e528a481bd21631ff44dd5
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-10-02 20:58:54 +04:00
Ying Wang
4a712bfb6f resolved conflicts for merge of 70190a2b to klp-dev-plus-aosp
Change-Id: I9abcb4e258ad95912860dcae2973c4e417b05369
2013-09-19 10:15:38 -07:00
Ying Wang
b71677b17c Merge "Extend x86 to have different arch variants" 2013-09-19 16:45:16 +00:00
Negreanu Marius Adrian
ae5c0ab272 Extend x86 to have different arch variants
Author: Negreanu Marius Adrian <adrian.m.negreanu@intel.com>
Author: Andrew Boie <andrew.p.boie@intel.com>
Author: Daniel Leung <daniel.leung@intel.com>

Currently, x86 target only has generic i686 and x86-atom
as arch variants. This patch adds the ability to have
more than two arch variants. Defining a new arch variant
is similiar to ARM targets, by adding a new file in
core/combo/arch/x86. These files also define what
capabilities the targeting CPU has (e.g. having SSE2,
SSE3, etc.).

We define arch variants for Sandy Bridge, Ivy Bridge,
Haswell; upcoming arches can be easily added to this
set with future patches.

Change-Id: Iafbce10d205e860738db4a216ff603f9a84d7311
Signed-off-by: Daniel Leung <daniel.leung@intel.com>
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2013-09-18 14:14:22 -07:00
Ying Wang
c5c32d8f4a am fad629f4: am 7f2ad751: Merge "Switch x86 default compiler to multilib version"
* commit 'fad629f4dd07720b427c6a219ad93886e23ca277':
  Switch x86 default compiler to multilib version
2013-09-14 13:49:15 -07:00
Pavel Chupin
c1a5664ea3 Switch x86 default compiler to multilib version
Switch from gcc-4.7 32-bit only to gcc-4.7 multilib (32/x32/64) compiler.
Tested x86 image build on Linux and Darwin.

This bionic patch is required:
https://android-review.googlesource.com/#/c/64183

Change-Id: Ifc2c6c5d6a4a1b71a00a87af072bb7f67b1c284d
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2013-08-26 10:42:42 +04:00
Ying Wang
0634a437a3 am 3208b615: am fc8b6338: resolved conflicts for merge of d65a7da3 to jb-mr2-dev-plus-aosp
* commit '3208b615c5cde2b682c3bbbcd2bb064b14b57489':
  No need to filter out AndroidConfig.h for unbundled build
2013-08-15 14:42:57 -07:00
Ying Wang
fc8b633851 resolved conflicts for merge of d65a7da3 to jb-mr2-dev-plus-aosp
Change-Id: I14c4ddf5f02c8dec86f45bedf679bcebff1448dc
2013-08-15 12:02:30 -07:00
Ying Wang
f4723fa49b No need to filter out AndroidConfig.h for unbundled build
for now we have all AndroidConfig.hs in the build project.

Change-Id: Id713fecba1378fad81688f5937f61c779b618ac2
2013-08-15 11:01:10 -07:00
synergydev
6ecf0ef744 FDO: support linux-x86 target
Change-Id: I4a3a1d298176da109df316cf9128f19e77490bc9
2013-08-09 22:41:46 +00:00
Nick Kralevich
fb45baa7e7 x86/mips: enable _FORTIFY_SOURCE=2
Enable _FORTIFY_SOURCE=2 for x86 and MIPS.

Currently, this change is a no-op, as Android's libc doesn't
support _FORTIFY_SOURCE > 1, yet.

The ARM change was made in 316f720b91

Change-Id: Iafe90beadf9b6a41ea294b7107cf4f18141acf3a
2013-04-29 12:41:53 -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
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
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
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
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
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
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
Ying Wang
91fd1231c3 Support to build executables against the NDK
Use "LOCAL_SDK_VERSION := <number>" to build against the NDK when you
include $(BUILD_EXECUTABLE).

Bug: 7170098
Change-Id: I4cebeae3355e79a4d2f2f5549ef0613ced77e3f0
2012-10-08 14:12:41 -07:00
Andrew Hsieh
5630521aba resolved conflicts for merge of 3e91f5ad to jb-mr1-dev
Change-Id: I9b587bc6086e1edacc98879e43668001bf72f7db
2012-09-12 15:27:59 -07:00
Andrew Hsieh
c2fb2391f4 Enable stack-protector for x86
Change-Id: I7a169075ca49ab831c37625d416c1d4b026bfec3
2012-08-29 15:13:23 +08:00
Jean-Baptiste Queru
d5096c6a5c resolved conflicts for merge of 5c903372 to jb-mr1-dev
Change-Id: I4994c77a6570ce654915bfb8c5f6ee4583db86b7
2012-08-28 13:40:19 -07:00
Pavel Chupin
b205b46153 Use gold linker on x86
Patch removes fallback -fuse-ld=bfd for x86 target and
--copy-dt-needed-entries which is not supported by gold linker.

Change-Id: Ie5603f98e3f2f9d4f81678c718e39b130a75d057
Signed-off-by: Pavel Chupin <pavel.v.chupin@intel.com>
2012-08-28 13:10:18 +04:00
Ying Wang
da4bf42514 Don't include system/core/include/arch/<arch>/Android.mk for apps-only build.
Bug: 6994483
Change-Id: I76c4d96264cf94a79d59fdeb52bb37c07a9458dd
2012-08-16 16:45:01 -07:00
Andrew Hsieh
f116e9bc84 Add -fuse-ld=bfd to x86 target
Add -fuse-ld=bfd because ld.gold doesn't support "--copy-dt-needed-entries".

Change-Id: I4e78967a076b3d093dd55366f7a54f0c9f9a45d1
2012-07-25 11:06:28 -07:00
Andrew Hsieh
bae121afcd Add -fuse-ld=bfd to x86 target
Add -fuse-ld=bfd because ld.gold doesn't support "--copy-dt-needed-entries".

Change-Id: Ie6fa0a2ddfc57b650552c8cf0891f738a5be0dda
2012-07-25 11:02:52 -07:00