blob: 3ba34ae791b02f33c1aa73c7f473e71cf0d58530 [file] [log] [blame]
Ying Wang1f982832014-02-06 18:08:44 -08001
2include $(BUILD_SYSTEM)/clang/x86.mk
3
4CLANG_CONFIG_x86_TARGET_TRIPLE := i686-linux-android
Stephen Hines6d5dd232014-02-13 03:21:12 -08005# NOTE: There is no i686-linux-android prebuilt, so we must hardcode the
6# x86_64 target instead.
Ying Wang1f982832014-02-06 18:08:44 -08007CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX := \
Colin Crossb0ef9112014-02-11 12:47:52 -08008 $($(clang_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/x86_64-linux-android/bin
Ying Wang1f982832014-02-06 18:08:44 -08009
10CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS := \
11 $(CLANG_CONFIG_EXTRA_ASFLAGS) \
12 $(CLANG_CONFIG_TARGET_EXTRA_ASFLAGS) \
13 $(CLANG_CONFIG_x86_EXTRA_ASFLAGS) \
14 -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \
15 -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX)
16
17CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS := \
18 $(CLANG_CONFIG_EXTRA_CFLAGS) \
19 $(CLANG_CONFIG_TARGET_EXTRA_CFLAGS) \
20 $(CLANG_CONFIG_x86_EXTRA_CFLAGS) \
Chih-Hung Hsieh73e734b2015-02-24 16:06:15 -080021 $(CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS) \
22 -fno-optimize-sibling-calls \
23 -mstackrealign
24
25# http://llvm.org/bugs/show_bug.cgi?id=15086,
26# llvm tail call optimization is wrong for x86.
27# -mstackrealign is needed to realign stack in native code
28# that could be called from JNI, so that movaps instruction
29# will work on assumed stack aligned local variables.
Ying Wang1f982832014-02-06 18:08:44 -080030
Stephen Hines15680292014-11-26 00:53:46 -080031CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS := \
32 $(CLANG_CONFIG_EXTRA_CONLYFLAGS) \
33 $(CLANG_CONFIG_TARGET_EXTRA_CONLYFLAGS) \
34 $(CLANG_CONFIG_x86_EXTRA_CONLYFLAGS)
35
Ying Wang1f982832014-02-06 18:08:44 -080036CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS := \
37 $(CLANG_CONFIG_EXTRA_CPPFLAGS) \
38 $(CLANG_CONFIG_TARGET_EXTRA_CPPFLAGS) \
39 $(CLANG_CONFIG_x86_EXTRA_CPPFLAGS) \
40
41CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS := \
42 $(CLANG_CONFIG_EXTRA_LDFLAGS) \
43 $(CLANG_CONFIG_TARGET_EXTRA_LDFLAGS) \
44 $(CLANG_CONFIG_x86_EXTRA_LDFLAGS) \
45 -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \
46 -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX)
47
48
49define $(clang_2nd_arch_prefix)convert-to-clang-flags
50 $(strip \
51 $(call subst-clang-incompatible-x86-flags,\
52 $(filter-out $(CLANG_CONFIG_x86_UNKNOWN_CFLAGS),\
53 $(1))))
54endef
55
56$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CFLAGS := \
57 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS)) \
58 $(CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS)
59
Stephen Hines15680292014-11-26 00:53:46 -080060$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CONLYFLAGS := \
61 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CONLYFLAGS)) \
62 $(CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS)
63
Ying Wang1f982832014-02-06 18:08:44 -080064$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CPPFLAGS := \
65 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS)) \
66 $(CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS)
67
68$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_LDFLAGS := \
69 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS)) \
70 $(CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS)
71
Stephen Hines039675a2014-08-29 14:43:53 -070072$(clang_2nd_arch_prefix)RS_TRIPLE := armv7-none-linux-gnueabi
73$(clang_2nd_arch_prefix)RS_TRIPLE_CFLAGS := -D__i386__
Miao Wang9b2908b2015-01-12 17:20:28 -080074$(clang_2nd_arch_prefix)RS_COMPAT_TRIPLE := i686-linux-android