diff options
Diffstat (limited to 'core/combo/TARGET_linux-arm.mk')
-rw-r--r-- | core/combo/TARGET_linux-arm.mk | 113 |
1 files changed, 57 insertions, 56 deletions
diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index 3b95c5c..c8c75aa 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -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 $@ \ |