diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/symbolize_stack_fp.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/symbolize_stack_fp.cpp
--- a/compiler-rt/test/sanitizer_common/TestCases/Linux/symbolize_stack_fp.cpp
+++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/symbolize_stack_fp.cpp
@@ -7,6 +7,9 @@
 // On android %t is a wrapper python script so llvm-readelf will fail.
 // UNSUPPORTED: android
 
+/// Fast unwinder does not work with Thumb code
+// UNSUPPORTED: thumb
+
 /// No .eh_frame && -g => .debug_frame
 // SEC: .debug_frame
 
diff --git a/compiler-rt/test/sanitizer_common/lit.common.cfg.py b/compiler-rt/test/sanitizer_common/lit.common.cfg.py
--- a/compiler-rt/test/sanitizer_common/lit.common.cfg.py
+++ b/compiler-rt/test/sanitizer_common/lit.common.cfg.py
@@ -31,6 +31,9 @@
 if config.host_os == 'Linux' and config.tool_name == "lsan" and config.target_arch == 'i386':
   config.available_features.add("lsan-x86")
 
+if config.arm_thumb:
+  config.available_features.add('thumb')
+
 if config.host_os == 'Darwin':
   # On Darwin, we default to `abort_on_error=1`, which would make tests run
   # much slower. Let's override this and run lit tests with 'abort_on_error=0'.
diff --git a/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in b/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
--- a/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
+++ b/compiler-rt/test/sanitizer_common/lit.site.cfg.py.in
@@ -6,6 +6,8 @@
 config.target_cflags = "@SANITIZER_COMMON_TEST_TARGET_CFLAGS@"
 config.target_arch = "@SANITIZER_COMMON_TEST_TARGET_ARCH@"
 
+config.arm_thumb = "@COMPILER_RT_ARM_THUMB@"
+
 # Load common config for all compiler-rt lit tests.
 lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")