[sanitizer] Force TLS allocation on s390
authorIlya Leoshkevich <iii@linux.ibm.com>
Tue, 13 Jul 2021 17:19:42 +0000 (19:19 +0200)
committerIlya Leoshkevich <iii@linux.ibm.com>
Thu, 15 Jul 2021 10:18:47 +0000 (12:18 +0200)
commit54128b73f8336ffe5cfd89cc860e58c3bb38a425
tree66d5297094c2c744c83398f74fd170e6d6d13365
parentacf0a6428681dccac803984bfbb1e3e54248f090
[sanitizer] Force TLS allocation on s390

When running with an old glibc, CollectStaticTlsBlocks() calls
__tls_get_addr() in order to force TLS allocation. This function is not
available on s390 and the code simply does nothing in this case,
so all the resulting static TLS blocks end up being incorrect.

Fix by calling __tls_get_offset() on s390.

Reviewed By: dvyukov

Differential Revision: https://reviews.llvm.org/D105629
compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp