| |
| include $(BUILD_SYSTEM)/clang/x86.mk |
| |
| CLANG_CONFIG_x86_TARGET_TRIPLE := i686-linux-android |
| # NOTE: There is no i686-linux-android prebuilt, so we must hardcode the |
| # x86_64 target instead. |
| CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX := \ |
| $($(clang_2nd_arch_prefix)TARGET_TOOLCHAIN_ROOT)/x86_64-linux-android/bin |
| |
| CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS := \ |
| $(CLANG_CONFIG_EXTRA_ASFLAGS) \ |
| $(CLANG_CONFIG_TARGET_EXTRA_ASFLAGS) \ |
| $(CLANG_CONFIG_x86_EXTRA_ASFLAGS) \ |
| -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \ |
| -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX) |
| |
| CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS := \ |
| $(CLANG_CONFIG_EXTRA_CFLAGS) \ |
| $(CLANG_CONFIG_TARGET_EXTRA_CFLAGS) \ |
| $(CLANG_CONFIG_x86_EXTRA_CFLAGS) \ |
| $(CLANG_CONFIG_x86_TARGET_EXTRA_ASFLAGS) \ |
| -mstackrealign |
| |
| # -mstackrealign is needed to realign stack in native code |
| # that could be called from JNI, so that movaps instruction |
| # will work on assumed stack aligned local variables. |
| |
| CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS := \ |
| $(CLANG_CONFIG_EXTRA_CONLYFLAGS) \ |
| $(CLANG_CONFIG_TARGET_EXTRA_CONLYFLAGS) \ |
| $(CLANG_CONFIG_x86_EXTRA_CONLYFLAGS) |
| |
| CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS := \ |
| $(CLANG_CONFIG_EXTRA_CPPFLAGS) \ |
| $(CLANG_CONFIG_TARGET_EXTRA_CPPFLAGS) \ |
| $(CLANG_CONFIG_x86_EXTRA_CPPFLAGS) \ |
| |
| CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS := \ |
| $(CLANG_CONFIG_EXTRA_LDFLAGS) \ |
| $(CLANG_CONFIG_TARGET_EXTRA_LDFLAGS) \ |
| $(CLANG_CONFIG_x86_EXTRA_LDFLAGS) \ |
| -target $(CLANG_CONFIG_x86_TARGET_TRIPLE) \ |
| -B$(CLANG_CONFIG_x86_TARGET_TOOLCHAIN_PREFIX) |
| |
| |
| define $(clang_2nd_arch_prefix)convert-to-clang-flags |
| $(strip \ |
| $(call subst-clang-incompatible-x86-flags,\ |
| $(filter-out $(CLANG_CONFIG_x86_UNKNOWN_CFLAGS),\ |
| $(1)))) |
| endef |
| |
| $(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CFLAGS := \ |
| $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CFLAGS)) \ |
| $(CLANG_CONFIG_x86_TARGET_EXTRA_CFLAGS) |
| |
| $(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CONLYFLAGS := \ |
| $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CONLYFLAGS)) \ |
| $(CLANG_CONFIG_x86_TARGET_EXTRA_CONLYFLAGS) |
| |
| $(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_CPPFLAGS := \ |
| $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_CPPFLAGS)) \ |
| $(CLANG_CONFIG_x86_TARGET_EXTRA_CPPFLAGS) |
| |
| $(clang_2nd_arch_prefix)CLANG_TARGET_GLOBAL_LDFLAGS := \ |
| $(call $(clang_2nd_arch_prefix)convert-to-clang-flags,$($(clang_2nd_arch_prefix)TARGET_GLOBAL_LDFLAGS)) \ |
| $(CLANG_CONFIG_x86_TARGET_EXTRA_LDFLAGS) |
| |
| $(clang_2nd_arch_prefix)RS_TRIPLE := armv7-linux-androideabi |
| $(clang_2nd_arch_prefix)RS_TRIPLE_CFLAGS := -D__i386__ |
| $(clang_2nd_arch_prefix)RS_COMPAT_TRIPLE := i686-linux-android |
| |
| $(clang_2nd_arch_prefix)TARGET_LIBPROFILE_RT := $(LLVM_RTLIB_PATH)/libclang_rt.profile-i686-android.a |
| |
| # Address sanitizer clang config |
| $(clang_2nd_arch_prefix)ADDRESS_SANITIZER_RUNTIME_LIBRARY := libclang_rt.asan-i686-android |
| $(clang_2nd_arch_prefix)ADDRESS_SANITIZER_LINKER := /system/bin/linker_asan |