armv7-a-neon.mk revision eed015a1aa9460d41a3b3b3ad0d3d200fcd7999c
1# Configuration for Linux on ARM. 2# Generating binaries for the ARMv7-a architecture and higher with NEON 3# 4ARCH_ARM_HAVE_ARMV7A := true 5ARCH_ARM_HAVE_VFP := true 6ARCH_ARM_HAVE_VFP_D32 := true 7ARCH_ARM_HAVE_NEON := true 8 9local_arch_has_lpae := false 10 11ifneq (,$(filter cortex-a15 krait denver,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) 12 # TODO: krait is not a cortex-a15, we set the variant to cortex-a15 so that 13 # hardware divide operations are generated. This should be removed and a 14 # krait CPU variant added to GCC. For clang we specify -mcpu for krait in 15 # core/clang/arm.mk. 16 arch_variant_cflags := -mcpu=cortex-a15 17 18 local_arch_has_lpae := true 19 arch_variant_ldflags := \ 20 -Wl,--no-fix-cortex-a8 21else 22ifeq ($(strip $(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)),cortex-a8) 23 arch_variant_cflags := -mcpu=cortex-a8 24 arch_variant_ldflags := \ 25 -Wl,--fix-cortex-a8 26else 27ifneq (,$(filter cortex-a7 cortex-a53 cortex-a53.a57,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT))) 28 arch_variant_cflags := -mcpu=cortex-a7 29 30 local_arch_has_lpae := true 31 arch_variant_ldflags := \ 32 -Wl,--no-fix-cortex-a8 33else 34 arch_variant_cflags := -march=armv7-a 35 # Generic ARM might be a Cortex A8 -- better safe than sorry 36 arch_variant_ldflags := \ 37 -Wl,--fix-cortex-a8 38endif 39endif 40endif 41 42ifeq (true,$(local_arch_has_lpae)) 43 # Fake an ARM compiler flag as these processors support LPAE which GCC/clang 44 # don't advertise. 45 # TODO This is a hack and we need to add it for each processor that supports LPAE until some 46 # better solution comes around. See Bug 27340895 47 arch_variant_cflags += -D__ARM_FEATURE_LPAE=1 48endif 49 50local_arch_has_lpae := 51 52arch_variant_cflags += \ 53 -mfloat-abi=softfp \ 54 -mfpu=neon 55