Merge "Add support for custom Linux host toolchains when building the SDK." into gingerbread
This commit is contained in:
committed by
Android (Google) Code Review
commit
15f4980d51
@@ -22,6 +22,26 @@ define get-file-size
|
|||||||
stat --format "%s" "$(1)" | tr -d '\n'
|
stat --format "%s" "$(1)" | tr -d '\n'
|
||||||
endef
|
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
|
# We build everything in 32-bit, because some host tools are
|
||||||
# 32-bit-only anyway (emulator, acc), and because it gives us
|
# 32-bit-only anyway (emulator, acc), and because it gives us
|
||||||
# more consistency between the host tools and the target.
|
# more consistency between the host tools and the target.
|
||||||
|
@@ -1051,7 +1051,7 @@ endef
|
|||||||
# it to be overriden en-masse see combo/linux-arm.make for an example.
|
# it to be overriden en-masse see combo/linux-arm.make for an example.
|
||||||
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
||||||
define transform-o-to-shared-lib-inner
|
define transform-o-to-shared-lib-inner
|
||||||
$(TARGET_CXX) \
|
$(PRIVATE_CXX) \
|
||||||
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
$(PRIVATE_TARGET_GLOBAL_LDFLAGS) \
|
||||||
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
||||||
-Wl,-rpath,\$$ORIGIN/../lib \
|
-Wl,-rpath,\$$ORIGIN/../lib \
|
||||||
@@ -1113,7 +1113,7 @@ endef
|
|||||||
|
|
||||||
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
ifneq ($(TARGET_CUSTOM_LD_COMMAND),true)
|
||||||
define transform-o-to-executable-inner
|
define transform-o-to-executable-inner
|
||||||
$(TARGET_CXX) \
|
$(PRIVATE_CXX) \
|
||||||
$(TARGET_GLOBAL_LDFLAGS) \
|
$(TARGET_GLOBAL_LDFLAGS) \
|
||||||
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
||||||
$(TARGET_GLOBAL_LD_DIRS) \
|
$(TARGET_GLOBAL_LD_DIRS) \
|
||||||
|
Reference in New Issue
Block a user