[PPC64, TSAN] LLVM basic enablement of thread sanitizer for PPC64 (BE and LE)
authorBill Schmidt <wschmidt@linux.vnet.ibm.com>
Tue, 8 Dec 2015 21:54:39 +0000 (21:54 +0000)
committerBill Schmidt <wschmidt@linux.vnet.ibm.com>
Tue, 8 Dec 2015 21:54:39 +0000 (21:54 +0000)
commit297916273244b8877631027b68a8911b737bb47b
treefbd2661135ab10159e6cb9eb7291ae155aa176e8
parent48eaa5415184c9e1821d2290ee584ba09b2015c2
[PPC64, TSAN] LLVM basic enablement of thread sanitizer for PPC64 (BE and LE)

This patch is by Simone Atzeni with portions by Adhemerval Zanella.

This contains the LLVM patches to enable the thread sanitizer for
PPC64, both big- and little-endian.  Two different virtual memory
sizes are supported:  Old kernels use a 44-bit address space, while
newer kernels require a 46-bit address space.

There are two companion patches that will be added shortly.  There is
a Clang patch to actually turn on the use of the thread sanitizer for
PPC64.  There is also a patch that I wrote to provide interceptor
support for setjmp/longjmp on PPC64.

Patch discussion at reviews.llvm.org/D12841.

llvm-svn: 255057
18 files changed:
compiler-rt/cmake/config-ix.cmake
compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
compiler-rt/lib/sanitizer_common/sanitizer_linux.h
compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
compiler-rt/lib/tsan/rtl/tsan_interceptors.cc
compiler-rt/lib/tsan/rtl/tsan_platform.h
compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc
compiler-rt/lib/tsan/rtl/tsan_rtl.h
compiler-rt/test/tsan/CMakeLists.txt
compiler-rt/test/tsan/cond_cancel.c
compiler-rt/test/tsan/java_race_pc.cc
compiler-rt/test/tsan/map32bit.cc
compiler-rt/test/tsan/mmap_large.cc
compiler-rt/test/tsan/race_on_mutex.c
compiler-rt/test/tsan/signal_errno.cc
compiler-rt/test/tsan/signal_longjmp.cc
compiler-rt/test/tsan/test.h