diff --git a/compiler-rt/lib/asan/asan.syms.extra b/compiler-rt/lib/asan/asan.syms.extra --- a/compiler-rt/lib/asan/asan.syms.extra +++ b/compiler-rt/lib/asan/asan.syms.extra @@ -1,4 +1,4 @@ -__asan_* -__lsan_* -__ubsan_* -__sancov_* +*__asan_* +*__lsan_* +*__ubsan_* +*__sancov_* diff --git a/compiler-rt/lib/hwasan/hwasan.syms.extra b/compiler-rt/lib/hwasan/hwasan.syms.extra --- a/compiler-rt/lib/hwasan/hwasan.syms.extra +++ b/compiler-rt/lib/hwasan/hwasan.syms.extra @@ -1,2 +1,3 @@ -__hwasan_* -__ubsan_* +*__hwasan_* +*__ubsan_* +*__sancov_* diff --git a/compiler-rt/lib/msan/msan.syms.extra b/compiler-rt/lib/msan/msan.syms.extra --- a/compiler-rt/lib/msan/msan.syms.extra +++ b/compiler-rt/lib/msan/msan.syms.extra @@ -1,2 +1,3 @@ -__msan_* -__ubsan_* +*__msan_* +*__ubsan_* +*__sancov_* diff --git a/compiler-rt/lib/ubsan/ubsan.syms.extra b/compiler-rt/lib/ubsan/ubsan.syms.extra --- a/compiler-rt/lib/ubsan/ubsan.syms.extra +++ b/compiler-rt/lib/ubsan/ubsan.syms.extra @@ -1 +1 @@ -__ubsan_* +*__ubsan_* diff --git a/compiler-rt/lib/ubsan_minimal/ubsan.syms.extra b/compiler-rt/lib/ubsan_minimal/ubsan.syms.extra --- a/compiler-rt/lib/ubsan_minimal/ubsan.syms.extra +++ b/compiler-rt/lib/ubsan_minimal/ubsan.syms.extra @@ -1 +1 @@ -__ubsan_* +*__ubsan_* diff --git a/compiler-rt/test/asan/TestCases/coverage-emutls.cpp b/compiler-rt/test/asan/TestCases/coverage-emutls.cpp new file mode 100644 --- /dev/null +++ b/compiler-rt/test/asan/TestCases/coverage-emutls.cpp @@ -0,0 +1,7 @@ +// Test that sanitizer coverage instrumentation is being exported correctly. +// This caused a bug on Android where the TLS is emulated, and the linker script +// rules didn't capture the change from "__sancov_lowest_stack" to +// "__emutls_v.__sancov_lowest_stack", and didn't export the symbol. + +// RUN: llvm-nm %shared_libasan | FileCheck %s +// CHECK: __sancov_lowest_stack