summaryrefslogtreecommitdiff
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
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