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

--- Comment #9 from Adhemerval Zanella <adhemerval.zanella at linaro dot org> 
---
Right, I wasn't aware of this RPM symbol handling.  I see that guard pointer
can be obtained on aarch64 by:

uintptr_t get_guard_ptr (void)
{ 
  jmp_buf jb;
  uintptr_t expected, mangled;

  setjmp (jb);
  asm volatile ("adr %0, ." : "=r" (expected));
  mangled = ((uintptr_t*)jb)[11];
  return expected ^ mangled;
}

So I think we can add a local variable to hold its value and set
tsan_rtl_aarch64.S to use it instead.

Reply via email to