summaryrefslogtreecommitdiff
path: root/libsanitizer/tsan/tsan_platform_linux.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libsanitizer/tsan/tsan_platform_linux.cc')
-rw-r--r--libsanitizer/tsan/tsan_platform_linux.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/libsanitizer/tsan/tsan_platform_linux.cc b/libsanitizer/tsan/tsan_platform_linux.cc
index a2e89f22da6f..09cec5fdffda 100644
--- a/libsanitizer/tsan/tsan_platform_linux.cc
+++ b/libsanitizer/tsan/tsan_platform_linux.cc
@@ -60,6 +60,10 @@ extern "C" void *__libc_stack_end;
void *__libc_stack_end = 0;
#endif
+#if SANITIZER_LINUX && defined(__aarch64__)
+void InitializeGuardPtr() __attribute__((visibility("hidden")));
+#endif
+
namespace __tsan {
static uptr g_data_start;
@@ -261,6 +265,10 @@ void InitializePlatform() {
SetAddressSpaceUnlimited();
reexec = true;
}
+#if SANITIZER_LINUX && defined(__aarch64__)
+ // Initialize the guard pointer used in {sig}{set,long}jump.
+ InitializeGuardPtr();
+#endif
if (reexec)
ReExec();
}