about summary refs log tree commit diff
path: root/src/ldso/sh/dlsym.s
Commit message (Collapse)AuthorAgeFilesLines
* sh dlsym: fix passing of return address for RTLD_NEXT useRich Felker2024-02-251-1/+1
| | | | | | | 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.
* fix PLT call offset in sh dlsym asmRich Felker2015-04-171-3/+3
| | | | | | | | | | | the braf instruction's destination register is an offset from the address of the braf instruction plus 4 (or equivalently, the address of the next instruction after the delay slot). the code for dlsym was incorrectly computing the offset to pass using the address of the delay slot itself. in other places, a label was placed after the delay slot, but I find this confusing. putting the label on the branch instruction itself, and manually adding 4, makes it more clear which branch the offset in the constant pool goes with.
* fix sh build regressions in asmRich Felker2015-04-171-1/+1
| | | | | even hidden functions need @PLT symbol references; otherwise an absolute address is produced instead of a PC-relative one.
* use hidden visibility for call from dlsym to internal __dlsymRich Felker2015-04-141-1/+2
|
* rename superh port to "sh" for consistencyRich Felker2014-02-271-0/+10
linux, gcc, etc. all use "sh" as the name for the superh arch. there was already some inconsistency internally in musl: the dynamic linker was searching for "ld-musl-sh.path" as its path file despite its own name being "ld-musl-superh.so.1". there was some sentiment in both directions as to how to resolve the inconsistency, but overall "sh" was favored.