am 732bdb28
: Merge "Load compiler environment for a second arch."
* commit '732bdb28f2e39cf97b22271481b2249b22add87f': Load compiler environment for a second arch.
This commit is contained in:
commit
d6c4fcabf6
11 changed files with 143 additions and 104 deletions
|
@ -30,51 +30,51 @@
|
|||
# include defines, and compiler settings for the given architecture
|
||||
# version.
|
||||
#
|
||||
ifeq ($(strip $(TARGET_ARCH_VARIANT)),)
|
||||
TARGET_ARCH_VARIANT := armv5te
|
||||
ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)),)
|
||||
TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT := armv5te
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(TARGET_GCC_VERSION_EXP)),)
|
||||
TARGET_GCC_VERSION := 4.8
|
||||
$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := 4.8
|
||||
else
|
||||
TARGET_GCC_VERSION := $(TARGET_GCC_VERSION_EXP)
|
||||
$(combo_2nd_arch_prefix)TARGET_GCC_VERSION := $(TARGET_GCC_VERSION_EXP)
|
||||
endif
|
||||
|
||||
TARGET_ARCH_SPECIFIC_MAKEFILE := $(BUILD_COMBOS)/arch/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT).mk
|
||||
TARGET_ARCH_SPECIFIC_MAKEFILE := $(BUILD_COMBOS)/arch/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT).mk
|
||||
ifeq ($(strip $(wildcard $(TARGET_ARCH_SPECIFIC_MAKEFILE))),)
|
||||
$(error Unknown ARM architecture version: $(TARGET_ARCH_VARIANT))
|
||||
$(error Unknown ARM architecture version: $(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT))
|
||||
endif
|
||||
|
||||
include $(TARGET_ARCH_SPECIFIC_MAKEFILE)
|
||||
|
||||
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
||||
ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
|
||||
TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androideabi-$(TARGET_GCC_VERSION)
|
||||
TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi-
|
||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)),)
|
||||
$(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androideabi-$($(combo_2nd_arch_prefix)TARGET_GCC_VERSION)
|
||||
$(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX := $($(combo_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi-
|
||||
endif
|
||||
|
||||
TARGET_CC := $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
|
||||
$(combo_2nd_arch_prefix)TARGET_CC := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
|
||||
$(combo_2nd_arch_prefix)TARGET_CXX := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
|
||||
$(combo_2nd_arch_prefix)TARGET_AR := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
|
||||
$(combo_2nd_arch_prefix)TARGET_OBJCOPY := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
|
||||
$(combo_2nd_arch_prefix)TARGET_LD := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
||||
$(combo_2nd_arch_prefix)TARGET_STRIP := $($(combo_2nd_arch_prefix)TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@
|
||||
$(combo_2nd_arch_prefix)TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-all $< -o $@
|
||||
else
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \
|
||||
$(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
$(combo_2nd_arch_prefix)TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-all $< -o $@ && \
|
||||
$(PRIVATE_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
endif
|
||||
|
||||
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
$(combo_2nd_arch_prefix)TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
|
||||
TARGET_arm_CFLAGS := -O2 \
|
||||
$(combo_2nd_arch_prefix)TARGET_arm_CFLAGS := -O2 \
|
||||
-fomit-frame-pointer \
|
||||
-fstrict-aliasing \
|
||||
-funswitch-loops
|
||||
|
||||
# Modules can choose to compile some source as thumb.
|
||||
TARGET_thumb_CFLAGS := -mthumb \
|
||||
$(combo_2nd_arch_prefix)TARGET_thumb_CFLAGS := -mthumb \
|
||||
-Os \
|
||||
-fomit-frame-pointer \
|
||||
-fno-strict-aliasing
|
||||
|
@ -89,13 +89,13 @@ TARGET_thumb_CFLAGS := -mthumb \
|
|||
# with -mlong-calls. When built at -O0, those libraries are
|
||||
# too big for a thumb "BL <label>" to go from one end to the other.
|
||||
ifeq ($(FORCE_ARM_DEBUGGING),true)
|
||||
TARGET_arm_CFLAGS += -fno-omit-frame-pointer -fno-strict-aliasing
|
||||
TARGET_thumb_CFLAGS += -marm -fno-omit-frame-pointer
|
||||
$(combo_2nd_arch_prefix)TARGET_arm_CFLAGS += -fno-omit-frame-pointer -fno-strict-aliasing
|
||||
$(combo_2nd_arch_prefix)TARGET_thumb_CFLAGS += -marm -fno-omit-frame-pointer
|
||||
endif
|
||||
|
||||
android_config_h := $(call select-android-config-h,linux-arm)
|
||||
|
||||
TARGET_GLOBAL_CFLAGS += \
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += \
|
||||
-msoft-float -fpic -fPIE \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
|
@ -113,8 +113,8 @@ TARGET_GLOBAL_CFLAGS += \
|
|||
# "-Wall -Werror" due to a commom idiom "ALOGV(mesg)" where ALOGV is turned
|
||||
# into no-op in some builds while mesg is defined earlier. So we explicitly
|
||||
# disable "-Wunused-but-set-variable" here.
|
||||
ifneq ($(filter 4.6 4.6.% 4.7 4.7.% 4.8, $(TARGET_GCC_VERSION)),)
|
||||
TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable -fno-builtin-sin \
|
||||
ifneq ($(filter 4.6 4.6.% 4.7 4.7.% 4.8, $($(combo_2nd_arch_prefix)TARGET_GCC_VERSION)),)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable -fno-builtin-sin \
|
||||
-fno-strict-volatile-bitfields
|
||||
endif
|
||||
|
||||
|
@ -126,9 +126,9 @@ endif
|
|||
# in their exported C++ functions). Also, GCC 4.5 has already
|
||||
# removed the warning from the compiler.
|
||||
#
|
||||
TARGET_GLOBAL_CFLAGS += -Wno-psabi
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -Wno-psabi
|
||||
|
||||
TARGET_GLOBAL_LDFLAGS += \
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS += \
|
||||
-Wl,-z,noexecstack \
|
||||
-Wl,-z,relro \
|
||||
-Wl,-z,now \
|
||||
|
@ -137,12 +137,12 @@ TARGET_GLOBAL_LDFLAGS += \
|
|||
-Wl,--icf=safe \
|
||||
$(arch_variant_ldflags)
|
||||
|
||||
TARGET_GLOBAL_CFLAGS += -mthumb-interwork
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += -mthumb-interwork
|
||||
|
||||
TARGET_GLOBAL_CPPFLAGS += -fvisibility-inlines-hidden
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS += -fvisibility-inlines-hidden
|
||||
|
||||
# More flags/options can be added here
|
||||
TARGET_RELEASE_CFLAGS := \
|
||||
$(combo_2nd_arch_prefix)TARGET_RELEASE_CFLAGS := \
|
||||
-DNDEBUG \
|
||||
-g \
|
||||
-Wstrict-aliasing=2 \
|
||||
|
@ -157,40 +157,41 @@ libthread_db_root := bionic/libthread_db
|
|||
|
||||
|
||||
## on some hosts, the target cross-compiler is not available so do not run this command
|
||||
ifneq ($(wildcard $(TARGET_CC)),)
|
||||
ifneq ($(wildcard $($(combo_2nd_arch_prefix)TARGET_CC)),)
|
||||
# We compile with the global cflags to ensure that
|
||||
# any flags which affect libgcc are correctly taken
|
||||
# into account.
|
||||
TARGET_LIBGCC := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) -print-libgcc-file-name)
|
||||
target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \
|
||||
$(combo_2nd_arch_prefix)TARGET_LIBGCC := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) \
|
||||
$($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) -print-libgcc-file-name)
|
||||
target_libgcov := $(shell $($(combo_2nd_arch_prefix)TARGET_CC) $($(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS) \
|
||||
-print-file-name=libgcov.a)
|
||||
endif
|
||||
|
||||
# Define FDO (Feedback Directed Optimization) options.
|
||||
|
||||
TARGET_FDO_CFLAGS:=
|
||||
TARGET_FDO_LIB:=
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS:=
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB:=
|
||||
|
||||
ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
||||
# Set BUILD_FDO_INSTRUMENT=true to turn on FDO instrumentation.
|
||||
# The profile will be generated on /data/local/tmp/profile on the device.
|
||||
TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
||||
TARGET_FDO_LIB := $(target_libgcov)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-generate=/data/local/tmp/profile -DANDROID_FDO
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||
else
|
||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
||||
ifeq ($(strip $(TARGET_FDO_PROFILE_PATH)),)
|
||||
TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)
|
||||
else
|
||||
ifeq ($(strip $(wildcard $(TARGET_FDO_PROFILE_PATH))),)
|
||||
$(warning Custom TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
||||
ifeq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
||||
$(warning Custom $(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH supplied, but directory does not exist. Turn off FDO.)
|
||||
endif
|
||||
endif
|
||||
|
||||
# If the FDO profile directory can't be found, then FDO is off.
|
||||
ifneq ($(strip $(wildcard $(TARGET_FDO_PROFILE_PATH))),)
|
||||
TARGET_FDO_CFLAGS := -fprofile-use=$(TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
||||
TARGET_FDO_LIB := $(target_libgcov)
|
||||
ifneq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_CFLAGS := -fprofile-use=$($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH) -DANDROID_FDO
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_LIB := $(target_libgcov)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -199,7 +200,7 @@ KERNEL_HEADERS_COMMON := $(libc_root)/kernel/uapi
|
|||
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/uapi/asm-$(TARGET_ARCH)
|
||||
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
||||
|
||||
TARGET_C_INCLUDES := \
|
||||
$(combo_2nd_arch_prefix)TARGET_C_INCLUDES := \
|
||||
$(libc_root)/arch-arm/include \
|
||||
$(libc_root)/include \
|
||||
$(libstdc++_root)/include \
|
||||
|
@ -208,20 +209,20 @@ TARGET_C_INCLUDES := \
|
|||
$(libm_root)/include/arm \
|
||||
$(libthread_db_root)/include
|
||||
|
||||
TARGET_CRTBEGIN_STATIC_O := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o
|
||||
TARGET_CRTBEGIN_DYNAMIC_O := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o
|
||||
TARGET_CRTEND_O := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o
|
||||
$(combo_2nd_arch_prefix)TARGET_CRTBEGIN_STATIC_O := $($(combo_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_static.o
|
||||
$(combo_2nd_arch_prefix)TARGET_CRTBEGIN_DYNAMIC_O := $($(combo_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_dynamic.o
|
||||
$(combo_2nd_arch_prefix)TARGET_CRTEND_O := $($(combo_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_android.o
|
||||
|
||||
TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
|
||||
TARGET_CRTEND_SO_O := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
|
||||
$(combo_2nd_arch_prefix)TARGET_CRTBEGIN_SO_O := $($(combo_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtbegin_so.o
|
||||
$(combo_2nd_arch_prefix)TARGET_CRTEND_SO_O := $($(combo_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)/crtend_so.o
|
||||
|
||||
TARGET_STRIP_MODULE:=true
|
||||
$(combo_2nd_arch_prefix)TARGET_STRIP_MODULE:=true
|
||||
|
||||
TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
|
||||
$(combo_2nd_arch_prefix)TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
|
||||
|
||||
TARGET_CUSTOM_LD_COMMAND := true
|
||||
$(combo_2nd_arch_prefix)TARGET_CUSTOM_LD_COMMAND := true
|
||||
|
||||
define transform-o-to-shared-lib-inner
|
||||
define $(combo_2nd_arch_prefix)transform-o-to-shared-lib-inner
|
||||
$(hide) $(PRIVATE_CXX) \
|
||||
-nostdlib -Wl,-soname,$(notdir $@) \
|
||||
-Wl,--gc-sections \
|
||||
|
@ -245,7 +246,7 @@ $(hide) $(PRIVATE_CXX) \
|
|||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_SO_O))
|
||||
endef
|
||||
|
||||
define transform-o-to-executable-inner
|
||||
define $(combo_2nd_arch_prefix)transform-o-to-executable-inner
|
||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -fPIE -pie \
|
||||
-Wl,-dynamic-linker,/system/bin/linker \
|
||||
-Wl,--gc-sections \
|
||||
|
@ -270,7 +271,7 @@ $(hide) $(PRIVATE_CXX) -nostdlib -Bdynamic -fPIE -pie \
|
|||
$(if $(filter true,$(PRIVATE_NO_CRT)),,$(PRIVATE_TARGET_CRTEND_O))
|
||||
endef
|
||||
|
||||
define transform-o-to-static-executable-inner
|
||||
define $(combo_2nd_arch_prefix)transform-o-to-static-executable-inner
|
||||
$(hide) $(PRIVATE_CXX) -nostdlib -Bstatic \
|
||||
-Wl,--gc-sections \
|
||||
-o $@ \
|
||||
|
|
|
@ -65,10 +65,10 @@ TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
|
|||
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-all $< -o $@
|
||||
else
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \
|
||||
$(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-all $< -o $@ && \
|
||||
$(PRIVATE_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
endif
|
||||
|
||||
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
|
|
|
@ -60,10 +60,10 @@ TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
|
|||
TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
||||
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-all $< -o $@
|
||||
else
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \
|
||||
$(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-all $< -o $@ && \
|
||||
$(PRIVATE_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
endif
|
||||
|
||||
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
|
|
|
@ -54,10 +54,10 @@ TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
|||
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
|
||||
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-debug $< -o $@
|
||||
else
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@ && \
|
||||
$(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-debug $< -o $@ && \
|
||||
$(PRIVATE_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
endif
|
||||
|
||||
ifneq ($(wildcard $(TARGET_CC)),)
|
||||
|
|
|
@ -56,10 +56,10 @@ TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
|||
TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX)
|
||||
|
||||
ifeq ($(TARGET_BUILD_VARIANT),user)
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-debug $< -o $@
|
||||
else
|
||||
TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@ && \
|
||||
$(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
TARGET_STRIP_COMMAND = $(PRIVATE_STRIP) --strip-debug $< -o $@ && \
|
||||
$(PRIVATE_OBJCOPY) --add-gnu-debuglink=$< $@
|
||||
endif
|
||||
|
||||
ifneq ($(wildcard $(TARGET_CC)),)
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# Configuration for Linux on ARM.
|
||||
# Generating binaries for the ARMv7-a architecture and higher with NEON
|
||||
#
|
||||
ARCH_ARM_HAVE_ARMV7A := true
|
||||
ARCH_ARM_HAVE_VFP := true
|
||||
ARCH_ARM_HAVE_VFP_D32 := true
|
||||
ARCH_ARM_HAVE_NEON := true
|
||||
$(combo_2nd_arch_prefix)ARCH_ARM_HAVE_ARMV7A := true
|
||||
$(combo_2nd_arch_prefix)ARCH_ARM_HAVE_VFP := true
|
||||
$(combo_2nd_arch_prefix)ARCH_ARM_HAVE_VFP_D32 := true
|
||||
$(combo_2nd_arch_prefix)ARCH_ARM_HAVE_NEON := true
|
||||
|
||||
ifeq ($(TARGET_CPU_VARIANT),$(filter $(TARGET_CPU_VARIANT),cortex-a15 krait))
|
||||
arch_variant_cflags := -mcpu=cortex-a15
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
# Configuration for Linux on ARM.
|
||||
# Generating binaries for the ARMv7-a architecture and higher
|
||||
#
|
||||
ARCH_ARM_HAVE_ARMV7A := true
|
||||
ARCH_ARM_HAVE_VFP := true
|
||||
$(combo_2nd_arch_prefix)ARCH_ARM_HAVE_ARMV7A := true
|
||||
$(combo_2nd_arch_prefix)ARCH_ARM_HAVE_VFP := true
|
||||
|
||||
# Note: Hard coding the 'tune' value here is probably not ideal,
|
||||
# and a better solution should be found in the future.
|
||||
|
|
|
@ -18,43 +18,51 @@
|
|||
#
|
||||
# Inputs:
|
||||
# combo_target -- prefix for final variables (HOST_ or TARGET_)
|
||||
# combo_2nd_arch_prefix -- it's defined if this is loaded for TARGET_2ND_ARCH.
|
||||
#
|
||||
|
||||
# Build a target string like "linux-arm" or "darwin-x86".
|
||||
ifdef combo_2nd_arch_prefix
|
||||
combo_os_arch := $($(combo_target)OS)-$(TARGET_2ND_ARCH)
|
||||
else
|
||||
combo_os_arch := $($(combo_target)OS)-$($(combo_target)ARCH)
|
||||
endif
|
||||
|
||||
combo_var_prefix := $(combo_2nd_arch_prefix)$(combo_target)
|
||||
|
||||
# Set reasonable defaults for the various variables
|
||||
|
||||
$(combo_target)CC := $(CC)
|
||||
$(combo_target)CXX := $(CXX)
|
||||
$(combo_target)AR := $(AR)
|
||||
$(combo_target)STRIP := $(STRIP)
|
||||
$(combo_var_prefix)CC := $(CC)
|
||||
$(combo_var_prefix)CXX := $(CXX)
|
||||
$(combo_var_prefix)AR := $(AR)
|
||||
$(combo_var_prefix)STRIP := $(STRIP)
|
||||
|
||||
$(combo_target)BINDER_MINI := 0
|
||||
$(combo_var_prefix)BINDER_MINI := 0
|
||||
|
||||
$(combo_target)HAVE_EXCEPTIONS := 0
|
||||
$(combo_target)HAVE_UNIX_FILE_PATH := 1
|
||||
$(combo_target)HAVE_WINDOWS_FILE_PATH := 0
|
||||
$(combo_target)HAVE_RTTI := 1
|
||||
$(combo_target)HAVE_CALL_STACKS := 1
|
||||
$(combo_target)HAVE_64BIT_IO := 1
|
||||
$(combo_target)HAVE_CLOCK_TIMERS := 1
|
||||
$(combo_target)HAVE_PTHREAD_RWLOCK := 1
|
||||
$(combo_target)HAVE_STRNLEN := 1
|
||||
$(combo_target)HAVE_STRERROR_R_STRRET := 1
|
||||
$(combo_target)HAVE_STRLCPY := 0
|
||||
$(combo_target)HAVE_STRLCAT := 0
|
||||
$(combo_target)HAVE_KERNEL_MODULES := 0
|
||||
$(combo_var_prefix)HAVE_EXCEPTIONS := 0
|
||||
$(combo_var_prefix)HAVE_UNIX_FILE_PATH := 1
|
||||
$(combo_var_prefix)HAVE_WINDOWS_FILE_PATH := 0
|
||||
$(combo_var_prefix)HAVE_RTTI := 1
|
||||
$(combo_var_prefix)HAVE_CALL_STACKS := 1
|
||||
$(combo_var_prefix)HAVE_64BIT_IO := 1
|
||||
$(combo_var_prefix)HAVE_CLOCK_TIMERS := 1
|
||||
$(combo_var_prefix)HAVE_PTHREAD_RWLOCK := 1
|
||||
$(combo_var_prefix)HAVE_STRNLEN := 1
|
||||
$(combo_var_prefix)HAVE_STRERROR_R_STRRET := 1
|
||||
$(combo_var_prefix)HAVE_STRLCPY := 0
|
||||
$(combo_var_prefix)HAVE_STRLCAT := 0
|
||||
$(combo_var_prefix)HAVE_KERNEL_MODULES := 0
|
||||
|
||||
$(combo_target)GLOBAL_CFLAGS := -fno-exceptions -Wno-multichar
|
||||
$(combo_target)RELEASE_CFLAGS := -O2 -g -fno-strict-aliasing
|
||||
$(combo_target)GLOBAL_LDFLAGS :=
|
||||
$(combo_target)GLOBAL_ARFLAGS := crsPD
|
||||
$(combo_var_prefix)GLOBAL_CFLAGS := -fno-exceptions -Wno-multichar
|
||||
$(combo_var_prefix)RELEASE_CFLAGS := -O2 -g -fno-strict-aliasing
|
||||
$(combo_var_prefix)GLOBAL_CPPFLAGS :=
|
||||
$(combo_var_prefix)GLOBAL_LDFLAGS :=
|
||||
$(combo_var_prefix)GLOBAL_ARFLAGS := crsPD
|
||||
|
||||
$(combo_target)EXECUTABLE_SUFFIX :=
|
||||
$(combo_target)SHLIB_SUFFIX := .so
|
||||
$(combo_target)JNILIB_SUFFIX := $($(combo_target)SHLIB_SUFFIX)
|
||||
$(combo_target)STATIC_LIB_SUFFIX := .a
|
||||
$(combo_var_prefix)EXECUTABLE_SUFFIX :=
|
||||
$(combo_var_prefix)SHLIB_SUFFIX := .so
|
||||
$(combo_var_prefix)JNILIB_SUFFIX := $($(combo_var_prefix)SHLIB_SUFFIX)
|
||||
$(combo_var_prefix)STATIC_LIB_SUFFIX := .a
|
||||
|
||||
# Now include the combo for this specific target.
|
||||
include $(BUILD_COMBOS)/$(combo_target)$(combo_os_arch).mk
|
||||
|
@ -88,11 +96,11 @@ ifneq ($(USE_CCACHE),)
|
|||
ccache := $(strip $(wildcard $(ccache)))
|
||||
ifdef ccache
|
||||
# prepend ccache if necessary
|
||||
ifneq ($(ccache),$(firstword $($(combo_target)CC)))
|
||||
$(combo_target)CC := $(ccache) $($(combo_target)CC)
|
||||
ifneq ($(ccache),$(firstword $($(combo_var_prefix)CC)))
|
||||
$(combo_var_prefix)CC := $(ccache) $($(combo_var_prefix)CC)
|
||||
endif
|
||||
ifneq ($(ccache),$(firstword $($(combo_target)CXX)))
|
||||
$(combo_target)CXX := $(ccache) $($(combo_target)CXX)
|
||||
ifneq ($(ccache),$(firstword $($(combo_var_prefix)CXX)))
|
||||
$(combo_var_prefix)CXX := $(ccache) $($(combo_var_prefix)CXX)
|
||||
endif
|
||||
ccache =
|
||||
endif
|
||||
|
|
|
@ -208,14 +208,23 @@ build/core/combo/include/arch/$(1)/AndroidConfig.h
|
|||
endef
|
||||
|
||||
combo_target := HOST_
|
||||
combo_2nd_arch_prefix :=
|
||||
include $(BUILD_SYSTEM)/combo/select.mk
|
||||
|
||||
# on windows, the tools have .exe at the end, and we depend on the
|
||||
# host config stuff being done first
|
||||
|
||||
combo_target := TARGET_
|
||||
combo_2nd_arch_prefix :=
|
||||
include $(BUILD_SYSTEM)/combo/select.mk
|
||||
|
||||
# Load the 2nd target arch if it's needed.
|
||||
ifdef TARGET_2ND_ARCH
|
||||
combo_target := TARGET_
|
||||
combo_2nd_arch_prefix := $(TARGET_2ND_ARCH_VAR_PREFIX)
|
||||
include $(BUILD_SYSTEM)/combo/select.mk
|
||||
endif
|
||||
|
||||
# Compute TARGET_TOOLCHAIN_ROOT from TARGET_TOOLS_PREFIX
|
||||
# if only TARGET_TOOLS_PREFIX is passed to the make command.
|
||||
ifndef TARGET_TOOLCHAIN_ROOT
|
||||
|
@ -422,6 +431,19 @@ HOST_GLOBAL_CPPFLAGS += $(HOST_RELEASE_CPPFLAGS)
|
|||
TARGET_GLOBAL_CFLAGS += $(TARGET_RELEASE_CFLAGS)
|
||||
TARGET_GLOBAL_CPPFLAGS += $(TARGET_RELEASE_CPPFLAGS)
|
||||
|
||||
ifdef TARGET_2ND_ARCH
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += $(COMMON_GLOBAL_CFLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_RELEASE_CFLAGS += $(COMMON_RELEASE_CFLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS += $(COMMON_GLOBAL_CPPFLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_RELEASE_CPPFLAGS += $(COMMON_RELEASE_CPPFLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_LD_DIRS += -L$($(combo_2nd_arch_prefix)TARGET_OUT_INTERMEDIATE_LIBRARIES)
|
||||
$(combo_2nd_arch_prefix)TARGET_PROJECT_INCLUDES := $(TARGET_PROJECT_INCLUDES)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += $(TARGET_ERROR_FLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS += $(TARGET_ERROR_FLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS += $($(combo_2nd_arch_prefix)TARGET_RELEASE_CFLAGS)
|
||||
$(combo_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS += $($(combo_2nd_arch_prefix)TARGET_RELEASE_CPPFLAGS)
|
||||
endif
|
||||
|
||||
# allow overriding default Java libraries on a per-target basis
|
||||
ifeq ($(TARGET_DEFAULT_JAVA_LIBRARIES),)
|
||||
TARGET_DEFAULT_JAVA_LIBRARIES := core core-junit ext framework framework2
|
||||
|
|
|
@ -106,6 +106,8 @@ endif
|
|||
|
||||
ifeq ($(LOCAL_STRIP_MODULE),true)
|
||||
# Strip the binary
|
||||
$(strip_output): PRIVATE_STRIP := $(TARGET_STRIP)
|
||||
$(strip_output): PRIVATE_OBJCOPY := $(TARGET_OBJCOPY)
|
||||
$(strip_output): $(strip_input) | $(TARGET_STRIP)
|
||||
$(transform-to-stripped)
|
||||
else
|
||||
|
|
|
@ -232,6 +232,12 @@ TARGET_OUT_ETC := $(TARGET_OUT)/etc
|
|||
TARGET_OUT_NOTICE_FILES := $(TARGET_OUT_INTERMEDIATES)/NOTICE_FILES
|
||||
TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
|
||||
|
||||
# Out for TARGET_2ND_ARCH
|
||||
TARGET_2ND_ARCH_VAR_PREFIX := 2ND_
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES)/lib
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib
|
||||
|
||||
TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA)
|
||||
TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES)
|
||||
TARGET_OUT_DATA_SHARED_LIBRARIES := $(TARGET_OUT_SHARED_LIBRARIES)
|
||||
|
|
Loading…
Reference in a new issue