Ying Wang | 1f98283 | 2014-02-06 18:08:44 -0800 | [diff] [blame] | 1 | # Clang flags for arm arch, target or host. |
| 2 | |
Chih-Hung Hsieh | 57c8a15 | 2014-10-22 09:21:53 -0700 | [diff] [blame] | 3 | CLANG_CONFIG_arm_EXTRA_ASFLAGS := |
Ying Wang | 1f98283 | 2014-02-06 18:08:44 -0800 | [diff] [blame] | 4 | |
Chih-Hung Hsieh | 57c8a15 | 2014-10-22 09:21:53 -0700 | [diff] [blame] | 5 | CLANG_CONFIG_arm_EXTRA_CFLAGS := |
Ying Wang | 1f98283 | 2014-02-06 18:08:44 -0800 | [diff] [blame] | 6 | |
Ian Rogers | e270873 | 2014-10-28 15:50:02 -0700 | [diff] [blame] | 7 | ifneq (,$(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 |
| 11 | endif |
| 12 | |
Tim Murray | 7c40fb9 | 2014-12-09 14:28:57 -0800 | [diff] [blame] | 13 | ifeq ($(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 |
| 16 | endif |
| 17 | |
Chih-Hung Hsieh | 57c8a15 | 2014-10-22 09:21:53 -0700 | [diff] [blame] | 18 | CLANG_CONFIG_arm_EXTRA_CPPFLAGS := |
Tim Murray | 43d5e1b | 2014-04-03 16:06:59 -0700 | [diff] [blame] | 19 | |
Chih-Hung Hsieh | 57c8a15 | 2014-10-22 09:21:53 -0700 | [diff] [blame] | 20 | CLANG_CONFIG_arm_EXTRA_LDFLAGS := |
Ying Wang | 1f98283 | 2014-02-06 18:08:44 -0800 | [diff] [blame] | 21 | |
| 22 | # Include common unknown flags |
| 23 | CLANG_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 Wang | 1f98283 | 2014-02-06 18:08:44 -0800 | [diff] [blame] | 29 | -fno-align-jumps \ |
Chih-Hung Hsieh | 0278174 | 2014-08-25 13:57:57 -0700 | [diff] [blame] | 30 | -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 Wang | 1f98283 | 2014-02-06 18:08:44 -0800 | [diff] [blame] | 38 | -Wa,--noexecstack |
| 39 | |
| 40 | define 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)))) |
| 45 | endef |