compiler-rt/lib: Add .Linterceptor_sigsetjmp
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 31 Jan 2023 22:30:55 +0000 (14:30 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 31 Jan 2023 22:30:55 +0000 (14:30 -0800)
Older GNU assemblers generate R_X86_64_PC32 relocation against
defined non-weak global branch targets with default visibility.  A
linker may issue an error when building a shared library.  Add a local
alias, .Linterceptor_sigsetjmp, to __interceptor_sigsetjmp to avoid
R_X86_64_PC32 relocation for "jmp __interceptor_sigsetjmp" with older
GNU assemblers.

Fixes: https://github.com/llvm/llvm-project/issues/60426

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

compiler-rt/lib/hwasan/hwasan_setjmp_x86_64.S

index 7566c1e..a5a3858 100644 (file)
@@ -37,13 +37,14 @@ __interceptor_setjmp:
   CFI_STARTPROC
   _CET_ENDBR
   xorl %esi, %esi
-  jmp  __interceptor_sigsetjmp
+  jmp  .Linterceptor_sigsetjmp
   CFI_ENDPROC
 ASM_SIZE(__interceptor_setjmp)
 
 .global __interceptor_sigsetjmp
 ASM_TYPE_FUNCTION(__interceptor_sigsetjmp)
 __interceptor_sigsetjmp:
+.Linterceptor_sigsetjmp:
   CFI_STARTPROC
   _CET_ENDBR