libsanitizer: Add __interceptor_sigsetjmp_internal
Commit Message
Add an internal alias to __interceptor_sigsetjmp to avoid R_X86_64_PC32
relocation for "jmp __interceptor_sigsetjmp" with old assemblers.
PR sanitizer/108106
* hwasan/hwasan_setjmp_x86_64.S (__interceptor_sigsetjmp): Add
an internal alias, __interceptor_sigsetjmp_internal.
---
libsanitizer/hwasan/hwasan_setjmp_x86_64.S | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Comments
On Fri, Dec 16, 2022 at 01:31:32PM -0800, H.J. Lu via Gcc-patches wrote:
> Add an internal alias to __interceptor_sigsetjmp to avoid R_X86_64_PC32
> relocation for "jmp __interceptor_sigsetjmp" with old assemblers.
I think the patch is ok, but because libsanitizer is just downstream
from sanitizers in LLVM, this should be filed in
https://reviews.llvm.org/differential/diff/create/
first (with diff -p -U10000 or something similar I think they want there).
It can be then cherry-picked into GCC, or at least wait until there is
some agreement on what they want or whether they completely reject it
and we'd need to carry it as a GCC local patch (in that case it should
be in libsanitizer/LOCAL_PATCHES).
> PR sanitizer/108106
> * hwasan/hwasan_setjmp_x86_64.S (__interceptor_sigsetjmp): Add
> an internal alias, __interceptor_sigsetjmp_internal.
> ---
> libsanitizer/hwasan/hwasan_setjmp_x86_64.S | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libsanitizer/hwasan/hwasan_setjmp_x86_64.S b/libsanitizer/hwasan/hwasan_setjmp_x86_64.S
> index 7566c1ea0a5..071dcdcf613 100644
> --- a/libsanitizer/hwasan/hwasan_setjmp_x86_64.S
> +++ b/libsanitizer/hwasan/hwasan_setjmp_x86_64.S
> @@ -37,13 +37,14 @@ __interceptor_setjmp:
> CFI_STARTPROC
> _CET_ENDBR
> xorl %esi, %esi
> - jmp __interceptor_sigsetjmp
> + jmp __interceptor_sigsetjmp_internal
> CFI_ENDPROC
> ASM_SIZE(__interceptor_setjmp)
>
> .global __interceptor_sigsetjmp
> ASM_TYPE_FUNCTION(__interceptor_sigsetjmp)
> __interceptor_sigsetjmp:
> +__interceptor_sigsetjmp_internal:
> CFI_STARTPROC
> _CET_ENDBR
>
Jakub
@@ -37,13 +37,14 @@ __interceptor_setjmp:
CFI_STARTPROC
_CET_ENDBR
xorl %esi, %esi
- jmp __interceptor_sigsetjmp
+ jmp __interceptor_sigsetjmp_internal
CFI_ENDPROC
ASM_SIZE(__interceptor_setjmp)
.global __interceptor_sigsetjmp
ASM_TYPE_FUNCTION(__interceptor_sigsetjmp)
__interceptor_sigsetjmp:
+__interceptor_sigsetjmp_internal:
CFI_STARTPROC
_CET_ENDBR