diff options
Diffstat (limited to 'libsanitizer/tsan/tsan_platform_linux.cc')
-rw-r--r-- | libsanitizer/tsan/tsan_platform_linux.cc | 8 |
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(); } |