mirror of
https://github.com/opnsense/src.git
synced 2026-02-20 00:11:07 -05:00
Newer binutils supports extensions to the MIPS ABI for non-PIC code that is used when compiling O32 binaries with clang 5 (but not used for N64 oddly enough). These extensions require support for R_MIPS_COPY relocations as well as a second PLT GOT using R_MIPS_JUMP_SLOT relocations. For R_MIPS_COPY, use the same approach as on other architectures where fixups are deferred to the MD do_copy_relocations. The additional PLT GOT for jump slots is located in a .got.plt section which is identified by a DT_MIPS_PLTGOT dynamic entry. This GOT also requires fixups for the first two GOT entries just as the normal GOT. However, the entry point for this second GOT uses a different calling convention. Rather than passing an offset into the GOT, it passes an offset into the .rel.plt section. This requires a second entry point (_rtld_pltbind_start) which calls the normal _rtld_bind() rather than _mips_rtld_bind(). This also means providing a real version of reloc_jmpslot() which is used by _rtld_bind(). In addition, add real implementions of reloc_plt() and reloc_jmpslots() which walk .rel.plt handling R_MIPS_JUMP_SLOT relocations. Reviewed by: kib Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D12326 |
||
|---|---|---|
| .. | ||
| atf | ||
| atrun | ||
| blacklistd-helper | ||
| bootpd | ||
| comsat | ||
| dma | ||
| fingerd | ||
| ftpd | ||
| getty | ||
| hyperv | ||
| mail.local | ||
| makewhatis.local | ||
| mknetid | ||
| pppoed | ||
| rbootd | ||
| revnetgroup | ||
| rlogind | ||
| rpc.rquotad | ||
| rpc.rstatd | ||
| rpc.rusersd | ||
| rpc.rwalld | ||
| rpc.sprayd | ||
| rshd | ||
| rtld-aout | ||
| rtld-elf | ||
| save-entropy | ||
| smrsh | ||
| talkd | ||
| tcpd | ||
| telnetd | ||
| tests | ||
| tftp-proxy | ||
| tftpd | ||
| ulog-helper | ||
| ypxfr | ||
| Makefile | ||
| Makefile.amd64 | ||
| Makefile.i386 | ||
| Makefile.inc | ||