[tsan] Adjust setjmp/longjmp handling on Darwin for macOS Mojave
authorKuba Mracek <mracek@apple.com>
Tue, 21 Aug 2018 22:35:52 +0000 (22:35 +0000)
committerKuba Mracek <mracek@apple.com>
Tue, 21 Aug 2018 22:35:52 +0000 (22:35 +0000)
commit986f03c2eab5a7389a7bd77849384290b0dec330
tree3b62a51af0b799c8339ac65c72fa3518ff4a196e
parent14a577bfd1df04c7f53bd64d143a801582efda61
[tsan] Adjust setjmp/longjmp handling on Darwin for macOS Mojave

On macOS Mojave, the OS started using the XOR-by-a-secret-key scheme (same as glibc is alread doing) for storing the SP value in setjmp environment. We need to adjust for that to keep supporting setjmp/longjmp on latest Darwin. The patch is basically doing the same what we're already doing for glibc.

rdar://problem/43542596

Differential Revision: https://reviews.llvm.org/D51064

llvm-svn: 340350
compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
compiler-rt/lib/sanitizer_common/sanitizer_mac.h
compiler-rt/lib/tsan/rtl/tsan_interceptors.cc
compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc
compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S
compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S