diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-12-03 12:48:24 -0500 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-12-03 12:55:45 -0500 |
commit | 09dfeda9cf5a1bd1bd89180308ce923cc4c5f9b0 (patch) | |
tree | fb15c096881079c954cd4fbb2123c3c589ce7425 /libc/sysdeps/linux/x86_64/bsd-_setjmp.S | |
parent | 46fa3f2fdc873d98818dcd5efae90c09a3b75a66 (diff) |
x86_64: add PLT bypass for __sigsetjmp
The current x86_64 setjmp helpers incur a reloc, so fix that up.
$ readelf -r lib/libc.so.0
...
Relocation section '.rela.plt' at offset 0xb058 contains 10 entries:
Offset Info Type Sym. Value Sym. Name + Addend
000000236010 02a400000007 R_X86_64_JUMP_SLO 000000000000b3c4 __sigsetjmp + 0
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'libc/sysdeps/linux/x86_64/bsd-_setjmp.S')
-rw-r--r-- | libc/sysdeps/linux/x86_64/bsd-_setjmp.S | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/x86_64/bsd-_setjmp.S b/libc/sysdeps/linux/x86_64/bsd-_setjmp.S index 81a4352f3..8b68ff2ca 100644 --- a/libc/sysdeps/linux/x86_64/bsd-_setjmp.S +++ b/libc/sysdeps/linux/x86_64/bsd-_setjmp.S @@ -21,9 +21,11 @@ We cannot do it in C because it must be a tail-call, so frame-unwinding in setjmp doesn't clobber the state restored by longjmp. */ +#include <sysdep.h> + .global _setjmp .type _setjmp,%function _setjmp: xorq %rsi, %rsi - jmp __sigsetjmp@PLT + jmp HIDDEN_JUMPTARGET(__sigsetjmp) .size _setjmp,.-_setjmp |