freebsd-nq/libexec
John Baldwin b4e9a36bf7 Handle relocations for newer non-PIC MIPS ABI.
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
2017-09-12 17:46:30 +00:00
..
atf Add HAS_TESTS to all Makefiles that are currently using the 2017-08-02 08:50:42 +00:00
atrun libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
blacklistd-helper DIRDEPS_BUILD: Connect new directories and update dependencies. 2016-06-03 19:25:30 +00:00
bootpd Emply contemporary function prototypes in bootpd, rather than relying on 2017-03-26 14:37:12 +00:00
comsat Add META_MODE support. 2015-06-13 19:20:56 +00:00
dma DIRDEPS_BUILD: Update dependencies. 2017-05-09 01:48:23 +00:00
fingerd DIRDEPS_BUILD: Update dependencies 2016-06-14 16:55:05 +00:00
ftpd Improve blacklist support before upgrading libblacklist 2017-05-06 04:17:48 +00:00
getty Add a new getty/gettytab capability to generate an initial message dynamically. 2017-09-07 00:20:17 +00:00
hyperv hyperv: Add VF bringup scripts and devd rules. 2017-07-31 07:18:15 +00:00
mail.local libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
makewhatis.local Fix installation of makewhatis.local(1) since r283777. 2016-02-18 00:26:21 +00:00
mknetid Add META_MODE support. 2015-06-13 19:20:56 +00:00
pppoed Add META_MODE support. 2015-06-13 19:20:56 +00:00
rbootd rbootd: use NULL instead of zero for pointers. 2016-04-18 15:05:48 +00:00
revnetgroup Add META_MODE support. 2015-06-13 19:20:56 +00:00
rlogind Add deprecation notices for all rcmd tools 2017-07-04 15:44:30 +00:00
rpc.rquotad Add META_MODE support. 2015-06-13 19:20:56 +00:00
rpc.rstatd - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter 2017-04-17 17:34:47 +00:00
rpc.rusersd Add META_MODE support. 2015-06-13 19:20:56 +00:00
rpc.rwalld Add META_MODE support. 2015-06-13 19:20:56 +00:00
rpc.sprayd Add META_MODE support. 2015-06-13 19:20:56 +00:00
rshd Add deprecation notices for all rcmd tools 2017-07-04 15:44:30 +00:00
rtld-aout
rtld-elf Handle relocations for newer non-PIC MIPS ABI. 2017-09-12 17:46:30 +00:00
save-entropy Add META_MODE support. 2015-06-13 19:20:56 +00:00
smrsh libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
talkd libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
tcpd libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
telnetd libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
tests Merge ^/user/ngie/release-pkg-fix-tests to unbreak how test files are installed 2016-05-04 23:20:53 +00:00
tftp-proxy libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
tftpd Conditionalize all code that uses tcpd.h behind LIBWRAP guard 2017-01-06 04:27:07 +00:00
ulog-helper Add META_MODE support. 2015-06-13 19:20:56 +00:00
ypxfr libexec: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:28:03 +00:00
Makefile Separate BLACKLIST vs BLACKLIST_SUPPORT properly 2016-06-07 16:31:03 +00:00
Makefile.amd64 HYPERV isn't available on all architectures, but just on by default 2014-10-16 00:33:06 +00:00
Makefile.i386 HYPERV isn't available on all architectures, but just on by default 2014-10-16 00:33:06 +00:00
Makefile.inc