diff --git a/compiler-rt/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c b/compiler-rt/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c --- a/compiler-rt/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c +++ b/compiler-rt/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c @@ -8,9 +8,6 @@ // RUN: %env_lsan_opts=$LSAN_BASE:use_tls=1 %run %t // RUN: %env_lsan_opts=$LSAN_BASE:use_tls=0 not %run %t 2>&1 | FileCheck %s -// Investigate why it does not fail with use_stack=0 -// UNSUPPORTED: arm-linux || armhf-linux - #include #include #include diff --git a/compiler-rt/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cpp b/compiler-rt/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cpp --- a/compiler-rt/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cpp +++ b/compiler-rt/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cpp @@ -5,9 +5,6 @@ // RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=1" %run %t 2>&1 // RUN: %env_lsan_opts="" %run %t 2>&1 -// Investigate why it does not fail with use_tls=0 -// UNSUPPORTED: arm-linux || armhf-linux - #include #include #include diff --git a/compiler-rt/test/lsan/TestCases/disabler.c b/compiler-rt/test/lsan/TestCases/disabler.c --- a/compiler-rt/test/lsan/TestCases/disabler.c +++ b/compiler-rt/test/lsan/TestCases/disabler.c @@ -3,9 +3,6 @@ // RUN: %clang_lsan %s -o %t // RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s -// Investigate why it does not fail with use_stack=0 -// UNSUPPORTED: arm-linux || armhf-linux - #include #include diff --git a/compiler-rt/test/lsan/TestCases/do_leak_check_override.cpp b/compiler-rt/test/lsan/TestCases/do_leak_check_override.cpp --- a/compiler-rt/test/lsan/TestCases/do_leak_check_override.cpp +++ b/compiler-rt/test/lsan/TestCases/do_leak_check_override.cpp @@ -6,9 +6,6 @@ // RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck --check-prefix=CHECK-strict %s // RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck --check-prefix=CHECK-normal %s -// Investigate why LeakyGlobal leak does show -// UNSUPPORTED: arm-linux || armhf-linux - #include #include #include diff --git a/compiler-rt/test/lsan/TestCases/ignore_object.c b/compiler-rt/test/lsan/TestCases/ignore_object.c --- a/compiler-rt/test/lsan/TestCases/ignore_object.c +++ b/compiler-rt/test/lsan/TestCases/ignore_object.c @@ -3,9 +3,6 @@ // RUN: %clang_lsan %s -o %t // RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s -// Investigate why it does not fail with use_stack=0 -// UNSUPPORTED: arm-linux || armhf-linux - #include #include diff --git a/compiler-rt/test/lsan/TestCases/use_after_return.cpp b/compiler-rt/test/lsan/TestCases/use_after_return.cpp --- a/compiler-rt/test/lsan/TestCases/use_after_return.cpp +++ b/compiler-rt/test/lsan/TestCases/use_after_return.cpp @@ -6,9 +6,6 @@ // RUN: ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1 %env_lsan_opts=$LSAN_BASE:"use_stacks=1" %run %t 2>&1 // RUN: ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1 %env_lsan_opts="" %run %t 2>&1 -// Investigate why it does not fail with use_stack=0 -// UNSUPPORTED: arm-linux || armhf-linux - #include #include #include "sanitizer_common/print_address.h" diff --git a/compiler-rt/test/sanitizer_common/CMakeLists.txt b/compiler-rt/test/sanitizer_common/CMakeLists.txt --- a/compiler-rt/test/sanitizer_common/CMakeLists.txt +++ b/compiler-rt/test/sanitizer_common/CMakeLists.txt @@ -76,6 +76,15 @@ set(SANITIZER_COMMON_TEST_TARGET_ARCH ${arch}) get_test_cc_for_arch(${arch} SANITIZER_COMMON_TEST_TARGET_CC SANITIZER_COMMON_TEST_TARGET_CFLAGS) set(CONFIG_NAME ${tool}-${arch}-${OS_NAME}) + + # ARM on Linux might use the slow unwinder as default and the unwind table is + # required to get a complete stacktrace. + if (${arch} MATCHES "armhf|arm" AND NOT ANDROID AND NOT WINDOWS AND NOT APPLE) + list(APPEND SANITIZER_COMMON_TEST_TARGET_CFLAGS -funwind-tables) + string(REPLACE ";" " " SANITIZER_COMMON_TEST_TARGET_CFLAGS + "${SANITIZER_COMMON_TEST_TARGET_CFLAGS}") + endif() + configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py)