[compiler-rt] r200462 - [asan] disable __tls_get_addr interceptor while I am investigating why it causes trouble; few more debugging
Kostya Serebryany
kcc at google.com
Thu Jan 30 01:00:42 PST 2014
Author: kcc
Date: Thu Jan 30 03:00:42 2014
New Revision: 200462
URL: http://llvm.org/viewvc/llvm-project?rev=200462&view=rev
Log:
[asan] disable __tls_get_addr interceptor while I am investigating why it causes trouble; few more debugging
Modified:
compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/stress_dtls.c
compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h
compiler-rt/trunk/lib/sanitizer_common/sanitizer_tls_get_addr.cc
Modified: compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/stress_dtls.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/stress_dtls.c?rev=200462&r1=200461&r2=200462&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/stress_dtls.c (original)
+++ compiler-rt/trunk/lib/asan/lit_tests/TestCases/Linux/stress_dtls.c Thu Jan 30 03:00:42 2014
@@ -1,3 +1,5 @@
+// Currently broken...
+// XFAIL: *
// REQUIRES: asan-64-bits
// Stress test dynamic TLS + dlopen + threads.
//
@@ -95,7 +97,10 @@ int main(int argc, char *argv[]) {
return 0;
}
#else // SO_NAME
-__thread void *huge_thread_local_array[1 << 17];
+#ifndef DTLS_SIZE
+# define DTLS_SIZE (1 << 17)
+#endif
+__thread void *huge_thread_local_array[DTLS_SIZE];
void **SO_NAME() {
return &huge_thread_local_array[0];
}
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h?rev=200462&r1=200461&r2=200462&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_platform_interceptors.h Thu Jan 30 03:00:42 2014
@@ -177,6 +177,6 @@
#define SANITIZER_INTERCEPT_PTHREAD_COND SI_NOT_WINDOWS
#define SANITIZER_INTERCEPT_PTHREAD_SETNAME_NP SI_LINUX_NOT_ANDROID
-#define SANITIZER_INTERCEPT_TLS_GET_ADDR SI_LINUX_NOT_ANDROID
+#define SANITIZER_INTERCEPT_TLS_GET_ADDR 0 // SI_LINUX_NOT_ANDROID
#endif // #ifndef SANITIZER_PLATFORM_INTERCEPTORS_H
Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_tls_get_addr.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_tls_get_addr.cc?rev=200462&r1=200461&r2=200462&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_tls_get_addr.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_tls_get_addr.cc Thu Jan 30 03:00:42 2014
@@ -74,8 +74,8 @@ void DTLS_on_tls_get_addr(void *arg_void
return;
uptr tls_size = 0;
uptr tls_beg = reinterpret_cast<uptr>(res) - arg->offset;
- VPrintf(2, "__tls_get_addr: %p {%p,%p} => %p; tls_beg: %p\n", arg,
- arg->dso_id, arg->offset, res, tls_beg);
+ VPrintf(2, "__tls_get_addr: %p {%p,%p} => %p; tls_beg: %p; sp: %p\n", arg,
+ arg->dso_id, arg->offset, res, tls_beg, &tls_beg);
if (dtls.last_memalign_ptr == tls_beg) {
tls_size = dtls.last_memalign_size;
VPrintf(2, "__tls_get_addr: glibc <=2.18 suspected; tls={%p,%p}\n", tls_beg,
More information about the llvm-commits
mailing list