summaryrefslogtreecommitdiff
path: root/src/ldso/mips
AgeCommit message (Collapse)AuthorLines
2012-11-08fix dlsym asm for mipsRich Felker-1/+2
saving the return address from the delay slot is not valid -- by the time the instruction executes, the return address has already been replaced.
2012-08-17fix bug computing argc when invoking ld-musl-mips.so.1 progname ...Rich Felker-3/+3
2012-08-05dlsym RTLD_NEXT support for mipsRich Felker-0/+15
untested
2012-08-05mips dynamic linker supportRich Felker-0/+46
not heavily tested, but the basics are working. the basic concept is that the dynamic linker entry point code invokes a pure-PIC (no global accesses) C function in reloc.h to perform the early GOT relocations needed to make the dynamic linker itself functional, then invokes __dynlink like on other archs. since mips uses some ugly arch-specific hacks to optimize relocating the GOT (rather than just using the normal DT_REL[A] tables like on other archs), the dynamic linker has been modified slightly to support calling arch-specific relocation code in reloc.h. most of the actual mips-specific behavior was developed by reading the output of readelf on libc.so and simple executable files. i could not find good reference information on which relocation types need to be supported or their semantics, so it's possible that some legitimate usage cases will not work yet.