diff options
author | David 'Digit' Turner <digit@google.com> | 2010-12-14 02:45:58 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-12-14 02:45:58 -0800 |
commit | 02e172e892190c1c94539594d639776c4b24efdf (patch) | |
tree | 1d9c459a2f33e6e56933842882ff353325fa7ce5 /core | |
parent | b531c0b44c28323432c92db5dd05bce78b894041 (diff) | |
parent | efc5d81428a8c7d9cf7cb7b3a5f1a8344b02a700 (diff) | |
download | build-02e172e892190c1c94539594d639776c4b24efdf.zip build-02e172e892190c1c94539594d639776c4b24efdf.tar.gz build-02e172e892190c1c94539594d639776c4b24efdf.tar.bz2 |
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.
Diffstat (limited to 'core')
-rw-r--r-- | core/combo/HOST_linux-x86.mk | 20 | ||||
-rw-r--r-- | core/definitions.mk | 4 |
2 files changed, 22 insertions, 2 deletions
diff --git a/core/combo/HOST_linux-x86.mk b/core/combo/HOST_linux-x86.mk index fa2dfe3..c871613 100644 --- a/core/combo/HOST_linux-x86.mk +++ b/core/combo/HOST_linux-x86.mk @@ -22,6 +22,26 @@ define get-file-size stat --format "%s" "$(1)" | tr -d '\n' endef +# Special case for the Linux SDK: We need to use a special cross-toolchain +# that generates machine code that will run properly on Ubuntu 8.04 (Hardy) +# By default, the code generated by the Lucid host toolchain will not run +# on previous versions of the platform, due to GLibc ABI mistmatches +# (Lucid is 2.11, Hardy is 2.7) +# +# Note that components that need to be built as 64-bit (e.g. clearsilver +# which is loaded by the 64-bit JVM through JNI), will have to use +# LOCAL_CC and LOCAL_CXX to override this. +# +ifeq ($(TARGET_PRODUCT),sdk) +HOST_SDK_TOOLCHAIN_PREFIX := prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/bin/i686-linux +# Don't do anything if the toolchain is not there +ifneq (,$(strip $(wildcard $(HOST_SDK_TOOLCHAIN_PREFIX)-gcc))) +HOST_CC := $(HOST_SDK_TOOLCHAIN_PREFIX)-gcc +HOST_CXX := $(HOST_SDK_TOOLCHAIN_PREFIX)-g++ +HOST_AR := $(HOST_SDK_TOOLCHAIN_PREFIX)-ar +endif # $(HOST_SDK_TOOLCHAIN_PREFIX)-gcc exists +endif # TARGET_PRODUCT == sdk + # We build everything in 32-bit, because some host tools are # 32-bit-only anyway (emulator, acc), and because it gives us # more consistency between the host tools and the target. diff --git a/core/definitions.mk b/core/definitions.mk index 42f6902..5c72866 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1169,7 +1169,7 @@ endef # it to be overriden en-masse see combo/linux-arm.make for an example. ifneq ($(TARGET_CUSTOM_LD_COMMAND),true) define transform-o-to-shared-lib-inner -$(TARGET_CXX) \ +$(PRIVATE_CXX) \ $(PRIVATE_TARGET_GLOBAL_LDFLAGS) \ -Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \ -Wl,-rpath,\$$ORIGIN/../lib \ @@ -1228,7 +1228,7 @@ endef ifneq ($(TARGET_CUSTOM_LD_COMMAND),true) define transform-o-to-executable-inner -$(TARGET_CXX) \ +$(PRIVATE_CXX) \ $(TARGET_GLOBAL_LDFLAGS) \ -Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \ $(TARGET_GLOBAL_LD_DIRS) \ |