11f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
21f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wanginclude $(BUILD_SYSTEM)/clang/x86.mk
31f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
41f9828387d8d3d0b1a02f99633ac58a68aa366adYing WangCLANG_CONFIG_x86_TARGET_TRIPLE := i686-linux-android
56d5dd2367ae19357a92e545652c10ba02928b103Stephen Hines# NOTE: There is no i686-linux-android prebuilt, so we must hardcode the
66d5dd2367ae19357a92e545652c10ba02928b103Stephen Hines# x86_64 target instead.
71f9828387d8d3d0b1a02f99633ac58a68aa366adYing WangCLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX := \
8b0ef9111ac3ffafa31c1dbd379c92dc349d1e571Colin Cross  $($(clang_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/x86_64-linux-android/bin
91f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
101f9828387d8d3d0b1a02f99633ac58a68aa366adYing WangCLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS := \
111f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_EXTRA_ASFLAGS) \
121f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_TARGET_EXTRA_ASFLAGS) \
131f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_EXTRA_ASFLAGS) \
141f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \
151f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX)
161f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
171f9828387d8d3d0b1a02f99633ac58a68aa366adYing WangCLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS := \
181f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_EXTRA_CFLAGS) \
191f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_TARGET_EXTRA_CFLAGS) \
201f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_EXTRA_CFLAGS) \
2173e734bea5e84b712b4ced2bedbcf2e51c4a2fd4Chih-Hung Hsieh  $(CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS) \
2273e734bea5e84b712b4ced2bedbcf2e51c4a2fd4Chih-Hung Hsieh  -mstackrealign
2373e734bea5e84b712b4ced2bedbcf2e51c4a2fd4Chih-Hung Hsieh
2473e734bea5e84b712b4ced2bedbcf2e51c4a2fd4Chih-Hung Hsieh# -mstackrealign is needed to realign stack in native code
2573e734bea5e84b712b4ced2bedbcf2e51c4a2fd4Chih-Hung Hsieh# that could be called from JNI, so that movaps instruction
2673e734bea5e84b712b4ced2bedbcf2e51c4a2fd4Chih-Hung Hsieh# will work on assumed stack aligned local variables.
271f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
281568029218b3da82a3bbd3fd6dce4385db5daf5bStephen HinesCLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS := \
291568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines  $(CLANG_CONFIG_EXTRA_CONLYFLAGS) \
301568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines  $(CLANG_CONFIG_TARGET_EXTRA_CONLYFLAGS) \
311568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines  $(CLANG_CONFIG_x86_EXTRA_CONLYFLAGS)
321568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines
331f9828387d8d3d0b1a02f99633ac58a68aa366adYing WangCLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS := \
341f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_EXTRA_CPPFLAGS) \
351f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_TARGET_EXTRA_CPPFLAGS) \
361f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_EXTRA_CPPFLAGS) \
371f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
381f9828387d8d3d0b1a02f99633ac58a68aa366adYing WangCLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS := \
391f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_EXTRA_LDFLAGS) \
401f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_TARGET_EXTRA_LDFLAGS) \
411f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_EXTRA_LDFLAGS) \
421f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \
431f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX)
441f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
451f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
461f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wangdefine $(clang_2nd_arch_prefix)convert-to-clang-flags
471f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(strip \
481f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(call subst-clang-incompatible-x86-flags,\
491f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(filter-out $(CLANG_CONFIG_x86_UNKNOWN_CFLAGS),\
501f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(1))))
511f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wangendef
521f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
531f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CFLAGS := \
541f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS)) \
551f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS)
561f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
571568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CONLYFLAGS := \
581568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines  $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CONLYFLAGS)) \
591568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines  $(CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS)
601568029218b3da82a3bbd3fd6dce4385db5daf5bStephen Hines
611f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CPPFLAGS := \
621f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS)) \
631f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS)
641f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
651f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang$(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_LDFLAGS := \
661f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS)) \
671f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang  $(CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS)
681f9828387d8d3d0b1a02f99633ac58a68aa366adYing Wang
6927b18f5c950d3c4d16f26bd693df29912b76b8fbPirama Arumuga Nainar$(clang_2nd_arch_prefix)RS_TRIPLE := armv7-linux-androideabi
70039675adb8882b21e770edac1bd167d7fb489052Stephen Hines$(clang_2nd_arch_prefix)RS_TRIPLE_CFLAGS := -D__i386__
719b2908b4f61b793fd3678fa7dfe6f272540adcc2Miao Wang$(clang_2nd_arch_prefix)RS_COMPAT_TRIPLE := i686-linux-android
72343ed674e35ae0911542abe67dca3fb3a1cccf95Dan Albert
73343ed674e35ae0911542abe67dca3fb3a1cccf95Dan Albert$(clang_2nd_arch_prefix)TARGET_LIBPROFILE_RT := $(LLVM_RTLIB_PATH)/libclang_rt.profile-i686-android.a
74b83e171c8d99bee7caaf04c4cf88cd85aeeb4adeIvan Krasin
75b83e171c8d99bee7caaf04c4cf88cd85aeeb4adeIvan Krasin# Address sanitizer clang config
76b83e171c8d99bee7caaf04c4cf88cd85aeeb4adeIvan Krasin$(clang_2nd_arch_prefix)ADDRESS_SANITIZER_RUNTIME_LIBRARY := libclang_rt.asan-i686-android
77b83e171c8d99bee7caaf04c4cf88cd85aeeb4adeIvan Krasin$(clang_2nd_arch_prefix)ADDRESS_SANITIZER_LINKER := /system/bin/linker_asan
78