blob: f76a1825ce5633d562a6bab624276915f1d95678 [file] [log] [blame]
Ying Wang1f982832014-02-06 18:08:44 -08001# Clang flags for arm arch, target or host.
2
Chih-Hung Hsieh57c8a152014-10-22 09:21:53 -07003CLANG_CONFIG_arm_EXTRA_ASFLAGS :=
Ying Wang1f982832014-02-06 18:08:44 -08004
Chih-Hung Hsieh57c8a152014-10-22 09:21:53 -07005CLANG_CONFIG_arm_EXTRA_CFLAGS :=
Ying Wang1f982832014-02-06 18:08:44 -08006
Ian Rogerse2708732014-10-28 15:50:02 -07007ifneq (,$(filter krait,$(TARGET_$(combo_2nd_arch_prefix)CPU_VARIANT)))
8 # Android's clang support's krait as a CPU whereas GCC doesn't. Specify
9 # -mcpu here rather than the more normal core/combo/arch/arm/armv7-a-neon.mk.
10 CLANG_CONFIG_arm_EXTRA_CFLAGS += -mcpu=krait
11endif
12
Tim Murray7c40fb92014-12-09 14:28:57 -080013ifeq ($(HOST_OS),darwin)
14 # Darwin is really bad at dealing with idiv/sdiv. Don't use krait on Darwin.
15 CLANG_CONFIG_arm_EXTRA_CFLAGS += -mcpu=cortex-a9
16endif
17
Chih-Hung Hsieh57c8a152014-10-22 09:21:53 -070018CLANG_CONFIG_arm_EXTRA_CPPFLAGS :=
Tim Murray43d5e1b2014-04-03 16:06:59 -070019
Chih-Hung Hsieh57c8a152014-10-22 09:21:53 -070020CLANG_CONFIG_arm_EXTRA_LDFLAGS :=
Ying Wang1f982832014-02-06 18:08:44 -080021
22# Include common unknown flags
23CLANG_CONFIG_arm_UNKNOWN_CFLAGS := \
24 $(CLANG_CONFIG_UNKNOWN_CFLAGS) \
25 -mthumb-interwork \
26 -fgcse-after-reload \
27 -frerun-cse-after-loop \
28 -frename-registers \
Ying Wang1f982832014-02-06 18:08:44 -080029 -fno-align-jumps \
Chih-Hung Hsieh02781742014-08-25 13:57:57 -070030 -fno-builtin-sin \
31 -fno-caller-saves \
32 -fno-early-inlining \
33 -fno-move-loop-invariants \
34 -fno-partial-inlining \
35 -fno-strict-volatile-bitfields \
36 -fno-tree-copy-prop \
37 -fno-tree-loop-optimize \
Ying Wang1f982832014-02-06 18:08:44 -080038 -Wa,--noexecstack
39
40define subst-clang-incompatible-arm-flags
41 $(subst -march=armv5te,-march=armv5t,\
42 $(subst -march=armv5e,-march=armv5,\
43 $(subst -mcpu=cortex-a15,-march=armv7-a,\
44 $(1))))
45endef