about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-04-19 21:20:08 -0400
committerRich Felker <dalias@aerifal.cx>2015-04-19 21:20:08 -0400
commitcf1a9d9d16a79322df15b344a2617b79ebb12705 (patch)
tree0e241ff8febfb8487087728b77ad12c8f08ba064
parenta880e6ceb9c2e6f38a6b50f8aafab90256c04be1 (diff)
downloadmusl-cf1a9d9d16a79322df15b344a2617b79ebb12705.tar.gz
musl-cf1a9d9d16a79322df15b344a2617b79ebb12705.tar.xz
musl-cf1a9d9d16a79322df15b344a2617b79ebb12705.zip
remove possible-textrels from powerpc asm
these are perfectly fine with ld-time symbol binding, but otherwise
result in textrels. they cannot be replaced with @PLT jump targets
because the PLT thunks require a GOT register to be setup, so use a
hidden alias instead.
-rw-r--r--src/setjmp/powerpc/setjmp.s3
-rw-r--r--src/signal/powerpc/sigsetjmp.s5
2 files changed, 6 insertions, 2 deletions
diff --git a/src/setjmp/powerpc/setjmp.s b/src/setjmp/powerpc/setjmp.s
index e39687aa..122177f1 100644
--- a/src/setjmp/powerpc/setjmp.s
+++ b/src/setjmp/powerpc/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/powerpc/sigsetjmp.s b/src/signal/powerpc/sigsetjmp.s
index 78acf590..152c3fed 100644
--- a/src/signal/powerpc/sigsetjmp.s
+++ b/src/signal/powerpc/sigsetjmp.s
@@ -12,7 +12,8 @@ __sigsetjmp:
 	stw 16, 448+4+8(3)
 	mr 16, 3
 
-	bl setjmp
+.hidden ___setjmp
+	bl ___setjmp
 
 	mr 4, 3
 	mr 3, 16
@@ -23,4 +24,4 @@ __sigsetjmp:
 .hidden __sigsetjmp_tail
 	b __sigsetjmp_tail
 
-1:	b setjmp
+1:	b ___setjmp