Skip to content

Commit 2d5af83

Browse files
gbaraldigiordano
authored andcommitted
Try keno's tentative TLS fix
(cherry picked from commit 69d4ac0) Make include conditional to macos (cherry picked from commit 6b6465b)
1 parent e610256 commit 2d5af83

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
#include "sanitizer_flags.h"
1818
#include "sanitizer_platform_interceptors.h"
1919

20+
#if !defined(__APPLE__)
21+
#include <malloc.h>
22+
#endif
23+
2024
namespace __sanitizer {
2125
#if SANITIZER_INTERCEPT_TLS_GET_ADDR
2226

@@ -140,6 +144,8 @@ DTLS::DTV *DTLS_on_tls_get_addr(void *arg_void, void *res,
140144
tls_size = __sanitizer_get_allocated_size(start);
141145
VReport(2, "__tls_get_addr: glibc >=2.25 suspected; tls={0x%zx,0x%zx}\n",
142146
tls_beg, tls_size);
147+
} else if (uptr size = malloc_usable_size((void *)tls_beg)) {
148+
tls_size = size;
143149
} else {
144150
VReport(2, "__tls_get_addr: Can't guess glibc version\n");
145151
// This may happen inside the DTOR of main thread, so just ignore it.

0 commit comments

Comments
 (0)