llvm-project/compiler-rt/lib/tsan
Adhemerval Zanella daa3ebce28 tsan: Remove __pointer_chk_guard@GLIBC_PRIVATE requirement for AArch64
Current AArch64 {sig}{set,long}jmp interposing requires accessing glibc
private __pointer_chk_guard to get process xor mask to demangled the
internal {sig}jmp_buf function pointers.

It causes some packing issues, as described in gcc PR#71042 [1], and is
is not a godd practice to rely on a private glibc namespace (since ABI is
not meant to be stable).

This patch fixes it by changing how libtsan obtains the guarded pointer
value: at initialization a specific routine issues a setjmp call and
using the mangled function pointer and the original value derive the
random guarded pointer.

Checked on aarch64 39-bit VMA.

[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71042

llvm-svn: 278292
2016-08-10 21:39:28 +00:00
..
benchmarks
dd [tsan] Switch to InternalAlloc everywhere __libc_malloc is currently used 2016-06-06 18:18:47 +00:00
go [tsan] On OS X, build Go runtime with -mmacosx-version-min 2016-06-05 15:15:36 +00:00
rtl tsan: Remove __pointer_chk_guard@GLIBC_PRIVATE requirement for AArch64 2016-08-10 21:39:28 +00:00
tests Follow-up for r277458: Update the tsan_mman_test.cc unit test. 2016-08-02 14:41:03 +00:00
.clang-format Tell clang-format that (most) sanitizers are written using Google style guide. 2015-11-19 22:11:10 +00:00
CMakeLists.txt [compiler-rt] Fix VisualStudio virtual folders layout 2016-07-11 21:51:56 +00:00
analyze_libtsan.sh [TSan] Slightly improve check_analyze script. 2015-12-07 20:18:50 +00:00
check_analyze.sh tsan: update tsan_analyze to what tip clang generates 2016-05-03 13:59:41 +00:00
check_cmake.sh tsan: use a different dir for llvm build 2014-10-15 08:56:15 +00:00