blob: f982439726f2ee6470f8de3da4553469d351dee6 [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) \
Chih-Hung Hsieh73e734b2015-02-24 16:06:15 -080022 -mstackrealign
23
Chih-Hung Hsieh73e734b2015-02-24 16:06:15 -080024# -mstackrealign is needed to realign stack in native code
25# that could be called from JNI, so that movaps instruction
26# will work on assumed stack aligned local variables.
Ying Wang1f982832014-02-06 18:08:44 -080027
Stephen Hines15680292014-11-26 00:53:46 -080028CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS := \
29 $(CLANG_CONFIG_EXTRA_CONLYFLAGS) \
30 $(CLANG_CONFIG_TARGET_EXTRA_CONLYFLAGS) \
31 $(CLANG_CONFIG_x86_EXTRA_CONLYFLAGS)
32
Ying Wang1f982832014-02-06 18:08:44 -080033CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS := \
34 $(CLANG_CONFIG_EXTRA_CPPFLAGS) \
35 $(CLANG_CONFIG_TARGET_EXTRA_CPPFLAGS) \
36 $(CLANG_CONFIG_x86_EXTRA_CPPFLAGS) \
37
38CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS := \
39 $(CLANG_CONFIG_EXTRA_LDFLAGS) \
40 $(CLANG_CONFIG_TARGET_EXTRA_LDFLAGS) \
41 $(CLANG_CONFIG_x86_EXTRA_LDFLAGS) \
42 -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \
43 -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX)
44
45
46define $(clang_2nd_arch_prefix)convert-to-clang-flags
47 $(strip \
48 $(call subst-clang-incompatible-x86-flags,\
49 $(filter-out $(CLANG_CONFIG_x86_UNKNOWN_CFLAGS),\
50 $(1))))
51endef
52
53$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CFLAGS := \
54 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS)) \
55 $(CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS)
56
Stephen Hines15680292014-11-26 00:53:46 -080057$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CONLYFLAGS := \
58 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CONLYFLAGS)) \
59 $(CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS)
60
Ying Wang1f982832014-02-06 18:08:44 -080061$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CPPFLAGS := \
62 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS)) \
63 $(CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS)
64
65$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_LDFLAGS := \
66 $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS)) \
67 $(CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS)
68
Stephen Hines039675a2014-08-29 14:43:53 -070069$(clang_2nd_arch_prefix)RS_TRIPLE := armv7-none-linux-gnueabi
70$(clang_2nd_arch_prefix)RS_TRIPLE_CFLAGS := -D__i386__
Miao Wang9b2908b2015-01-12 17:20:28 -080071$(clang_2nd_arch_prefix)RS_COMPAT_TRIPLE := i686-linux-android
Dan Albert343ed672015-01-25 16:20:57 -080072
73$(clang_2nd_arch_prefix)TARGET_LIBPROFILE_RT := $(LLVM_RTLIB_PATH)/libclang_rt.profile-i686-android.a
Ivan Krasinb83e1712015-09-02 11:56:40 -070074
75# Address sanitizer clang config
76$(clang_2nd_arch_prefix)ADDRESS_SANITIZER_RUNTIME_LIBRARY := libclang_rt.asan-i686-android
77$(clang_2nd_arch_prefix)ADDRESS_SANITIZER_RPATH := /data/vendor/lib:/$(TARGET_COPY_OUT_VENDOR)/lib:/data/lib
78$(clang_2nd_arch_prefix)ADDRESS_SANITIZER_LINKER := /system/bin/linker_asan