diff options
Diffstat (limited to 'core/combo')
-rw-r--r-- | core/combo/HOST_linux-x86.mk | 2 | ||||
-rw-r--r-- | core/combo/TARGET_linux-arm.mk | 33 | ||||
-rw-r--r-- | core/combo/TARGET_linux-mips.mk | 32 | ||||
-rw-r--r-- | core/combo/arch/arm/armv7-a-neon.mk | 12 |
4 files changed, 38 insertions, 41 deletions
diff --git a/core/combo/HOST_linux-x86.mk b/core/combo/HOST_linux-x86.mk index 3001f59..4f35ea7 100644 --- a/core/combo/HOST_linux-x86.mk +++ b/core/combo/HOST_linux-x86.mk @@ -24,7 +24,9 @@ endef # Previously the prebiult host toolchain is used only for the sdk build, # that's why we have "sdk" in the path name. +ifeq ($(strip $(HOST_TOOLCHAIN_PREFIX)),) HOST_TOOLCHAIN_PREFIX := prebuilts/tools/gcc-sdk +endif # Don't do anything if the toolchain is not there ifneq (,$(strip $(wildcard $(HOST_TOOLCHAIN_PREFIX)/gcc))) HOST_CC := $(HOST_TOOLCHAIN_PREFIX)/gcc diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index cb10542..172ed00 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -53,21 +53,17 @@ TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/arm/arm-linux-androi TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/arm-linux-androideabi- endif -# Only define these if there's actually a gcc in there. -# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it. -ifneq ($(wildcard $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)),) - 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) - ifeq ($(TARGET_BUILD_VARIANT),user) - TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ - else - TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \ - $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@ - 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) +ifeq ($(TARGET_BUILD_VARIANT),user) + TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ +else + TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \ + $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@ endif TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined @@ -117,7 +113,7 @@ TARGET_GLOBAL_CFLAGS += $(TARGET_ANDROID_CONFIG_CFLAGS) # We cannot turn it off blindly since the option is not available # in gcc-4.4.x. We also want to disable sincos optimization globally # by turning off the builtin sin function. -ifneq ($(filter 4.6 4.6.% 4.7 4.7.%, $(shell $(TARGET_CC) --version)),) +ifneq ($(filter 4.6 4.6.% 4.7 4.7.%, $(TARGET_GCC_VERSION)),) TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable -fno-builtin-sin \ -fno-strict-volatile-bitfields endif @@ -137,6 +133,7 @@ TARGET_GLOBAL_LDFLAGS += \ -Wl,-z,relro \ -Wl,-z,now \ -Wl,--warn-shared-textrel \ + -Wl,--fatal-warnings \ -Wl,--icf=safe \ $(arch_variant_ldflags) @@ -165,6 +162,8 @@ ifneq ($(wildcard $(TARGET_CC)),) # 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) \ + -print-file-name=libgcov.a) endif # Define FDO (Feedback Directed Optimization) options. @@ -172,8 +171,6 @@ endif TARGET_FDO_CFLAGS:= TARGET_FDO_LIB:= -target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \ - -print-file-name=libgcov.a) 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. diff --git a/core/combo/TARGET_linux-mips.mk b/core/combo/TARGET_linux-mips.mk index 6a29564..3df17bb 100644 --- a/core/combo/TARGET_linux-mips.mk +++ b/core/combo/TARGET_linux-mips.mk @@ -53,21 +53,17 @@ TARGET_TOOLCHAIN_ROOT := prebuilts/gcc/$(HOST_PREBUILT_TAG)/mips/mipsel-linux-an TARGET_TOOLS_PREFIX := $(TARGET_TOOLCHAIN_ROOT)/bin/mipsel-linux-android- endif -# Only define these if there's actually a gcc in there. -# The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it. -ifneq ($(wildcard $(TARGET_TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)),) - 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) - ifeq ($(TARGET_BUILD_VARIANT),user) - TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ - else - TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \ - $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@ - 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) +ifeq ($(TARGET_BUILD_VARIANT),user) + TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ +else + TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-all $< -o $@ && \ + $(TARGET_OBJCOPY) --add-gnu-debuglink=$< $@ endif TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined @@ -101,7 +97,7 @@ TARGET_GLOBAL_CFLAGS += $(TARGET_ANDROID_CONFIG_CFLAGS) # This warning causes dalvik not to build with gcc 4.6+ and -Werror. # We cannot turn it off blindly since the option is not available # in gcc-4.4.x. -ifneq ($(filter 4.6 4.6.% 4.7 4.7.%, $(shell $(TARGET_CC) --version)),) +ifneq ($(filter 4.6 4.6.% 4.7 4.7.%, $(TARGET_GCC_VERSION)),) TARGET_GLOBAL_CFLAGS += -Wno-unused-but-set-variable \ -fno-strict-volatile-bitfields endif @@ -152,6 +148,8 @@ LIBGCC_EH := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) -print-file-name=libgc ifneq ($(LIBGCC_EH),libgcc_eh.a) TARGET_LIBGCC += $(LIBGCC_EH) endif +target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \ + --print-file-name=libgcov.a) endif # Define FDO (Feedback Directed Optimization) options. @@ -159,8 +157,6 @@ endif TARGET_FDO_CFLAGS:= TARGET_FDO_LIB:= -target_libgcov := $(shell $(TARGET_CC) $(TARGET_GLOBAL_CFLAGS) \ - --print-file-name=libgcov.a) 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. diff --git a/core/combo/arch/arm/armv7-a-neon.mk b/core/combo/arch/arm/armv7-a-neon.mk index 7884366..a928fe1 100644 --- a/core/combo/arch/arm/armv7-a-neon.mk +++ b/core/combo/arch/arm/armv7-a-neon.mk @@ -6,11 +6,13 @@ ARCH_ARM_HAVE_VFP := true ARCH_ARM_HAVE_VFP_D32 := true ARCH_ARM_HAVE_NEON := true -# Note: Hard coding the 'tune' value here is probably not ideal, -# and a better solution should be found in the future. -# -arch_variant_cflags := \ - -march=armv7-a \ +ifeq ($(strip $(TARGET_CPU_VARIANT)), cortex-a15) + arch_variant_cflags := -mcpu=cortex-a15 +else + arch_variant_cflags := -march=armv7-a +endif + +arch_variant_cflags += \ -mfloat-abi=softfp \ -mfpu=neon |