about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2024-02-25 15:10:26 -0500
committerRich Felker <dalias@aerifal.cx>2024-02-25 15:10:26 -0500
commit69670e3bb3f78f9a1d172c9e263ca1b95f8196db (patch)
treeb726fea8ee07f1907976a57c57e2dbe57c63821d
parentb817541f1cfd38e4b81257b3215e276ea9d0fc61 (diff)
downloadmusl-69670e3bb3f78f9a1d172c9e263ca1b95f8196db.tar.gz
musl-69670e3bb3f78f9a1d172c9e263ca1b95f8196db.tar.xz
musl-69670e3bb3f78f9a1d172c9e263ca1b95f8196db.zip
sh dlsym: fix passing of return address for RTLD_NEXT use
this code dates back to the original commit of the sh port, with no
real clue as to how the bug was introduced. it looks like it was
written to assume the return address was pushed to the stack like on
x86, rather than arriving in the pr special register.
-rw-r--r--src/ldso/sh/dlsym.s2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/ldso/sh/dlsym.s b/src/ldso/sh/dlsym.s
index 11a6fff5..34f3c35c 100644
--- a/src/ldso/sh/dlsym.s
+++ b/src/ldso/sh/dlsym.s
@@ -5,7 +5,7 @@
 dlsym:
 	mov.l L1, r0
 1:	braf  r0
-	 mov.l @r15, r6
+	 sts pr, r6
 
 .align 2
 L1:	.long __dlsym@PLT-(1b+4-.)