Force Thumb for CFI targets.
Bug: 22033465
Test: bionic device tests
Change-Id: I66eb83bc7153cc34dde4fa1abfa861182a10f1fa
diff --git a/core/config_sanitizers.mk b/core/config_sanitizers.mk
index c9883d4..1ad3735 100644
--- a/core/config_sanitizers.mk
+++ b/core/config_sanitizers.mk
@@ -143,6 +143,10 @@
endif
ifneq ($(filter cfi,$(my_sanitize)),)
+ # __cfi_check needs to be built as Thumb (see the code in linker_cfi.cpp).
+ # LLVM is not set up to do this on a function basis, so force Thumb on the
+ # entire module.
+ LOCAL_ARM_MODE := thumb
my_cflags += -flto -fsanitize-cfi-cross-dso -fvisibility=default
my_ldflags += -flto -fsanitize-cfi-cross-dso -fsanitize=cfi -Wl,-plugin-opt,O1 -Wl,-export-dynamic-symbol=__cfi_check
endif