diff options
author | Rich Felker <dalias@aerifal.cx> | 2015-04-19 20:50:03 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-04-19 20:50:03 -0400 |
commit | 646cb9a4a04e5ed78e2dd928bf9dc6e79202f609 (patch) | |
tree | 75a0c54e02ba8a9623cb5e40ff0942614a696067 /src | |
parent | b35c4c475bea3c8f938d8e9696d1138eabb54a89 (diff) | |
download | musl-646cb9a4a04e5ed78e2dd928bf9dc6e79202f609.tar.gz musl-646cb9a4a04e5ed78e2dd928bf9dc6e79202f609.tar.bz2 musl-646cb9a4a04e5ed78e2dd928bf9dc6e79202f609.tar.xz musl-646cb9a4a04e5ed78e2dd928bf9dc6e79202f609.zip |
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.
Diffstat (limited to 'src')
-rw-r--r-- | src/setjmp/sh/setjmp.s | 3 | ||||
-rw-r--r-- | src/signal/sh/sigsetjmp.s | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/setjmp/sh/setjmp.s b/src/setjmp/sh/setjmp.s index 49e2d985..ffde8687 100644 --- a/src/setjmp/sh/setjmp.s +++ b/src/setjmp/sh/setjmp.s @@ -1,9 +1,12 @@ +.global ___setjmp +.hidden ___setjmp .global __setjmp .global _setjmp .global setjmp .type __setjmp, @function .type _setjmp, @function .type setjmp, @function +___setjmp: __setjmp: _setjmp: setjmp: diff --git a/src/signal/sh/sigsetjmp.s b/src/signal/sh/sigsetjmp.s index 7d1e7c95..16256e5f 100644 --- a/src/signal/sh/sigsetjmp.s +++ b/src/signal/sh/sigsetjmp.s @@ -34,7 +34,8 @@ __sigsetjmp: nop .align 2 -1: .long setjmp@PLT-(2b+4-.) +.hidden ___setjmp +1: .long ___setjmp@PLT-(2b+4-.) .hidden __sigsetjmp_tail 3: .long __sigsetjmp_tail@PLT-(4b+4-.) -5: .long setjmp@PLT-(6b+4-.) +5: .long ___setjmp@PLT-(6b+4-.) |