Browse Source

remove invalid PLT calls from sh asm

these are perfectly fine with ld-time symbol binding, but if the calls
go through a PLT thunk, they are invalid because the caller does not
setup a GOT register. use a hidden alias to bypass the issue.
master
Rich Felker 11 years ago
parent
commit
646cb9a4a0
  1. 3
      src/setjmp/sh/setjmp.s
  2. 5
      src/signal/sh/sigsetjmp.s

3
src/setjmp/sh/setjmp.s

@ -1,9 +1,12 @@
.global ___setjmp
.hidden ___setjmp
.global __setjmp .global __setjmp
.global _setjmp .global _setjmp
.global setjmp .global setjmp
.type __setjmp, @function .type __setjmp, @function
.type _setjmp, @function .type _setjmp, @function
.type setjmp, @function .type setjmp, @function
___setjmp:
__setjmp: __setjmp:
_setjmp: _setjmp:
setjmp: setjmp:

5
src/signal/sh/sigsetjmp.s

@ -34,7 +34,8 @@ __sigsetjmp:
nop nop
.align 2 .align 2
1: .long setjmp@PLT-(2b+4-.) .hidden ___setjmp
1: .long ___setjmp@PLT-(2b+4-.)
.hidden __sigsetjmp_tail .hidden __sigsetjmp_tail
3: .long __sigsetjmp_tail@PLT-(4b+4-.) 3: .long __sigsetjmp_tail@PLT-(4b+4-.)
5: .long setjmp@PLT-(6b+4-.) 5: .long ___setjmp@PLT-(6b+4-.)

Loading…
Cancel
Save