compiler-rt/lib: Add .Linterceptor_sigsetjmp

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
This commit is contained in:
H.J. Lu
2023-01-31 14:30:55 -08:00
parent eded5d3815
commit 742bcbf685

View 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