فهرست منبع

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.
Rich Felker 10 سال پیش
والد
کامیت
646cb9a4a0
2فایلهای تغییر یافته به همراه6 افزوده شده و 2 حذف شده
  1. 3 0
      src/setjmp/sh/setjmp.s
  2. 3 2
      src/signal/sh/sigsetjmp.s

+ 3 - 0
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:

+ 3 - 2
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-.)