• R
    mips dynamic linker support · babf8201
    Rich Felker 提交于
    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.
    babf8201
dynlink.c 21.2 KB