freebsd-skq/libexec/rtld-elf/mips
Konstantin Belousov 14c3564759 IFUNC symbol type shall be processed for non-PLT relocations,
e.g. when a global variable is initialized with a pointer to ifunc.
Add symbol type check and call resolver for STT_GNU_IFUNC symbol types
when processing non-PLT relocations, but only after non-IFUNC
relocations are done.  The two-phase proceessing is required since
resolvers may reference other symbols, which must be ready to use when
resolver calls are done.

Restructure reloc_non_plt() on x86 to call find_symdef() and handle
IFUNC in single place.

For non-x86 reloc_non_plt(), check for call for IFUNC relocation and
do nothing, to avoid processing relocs twice.

PR:	193048
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2014-08-29 09:29:10 +00:00
..
reloc.c IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
rtld_machdep.h Add support for preinit, init and fini arrays. Some ABIs, in 2012-03-11 20:03:09 +00:00
rtld_start.S Before jumping to application's entry point set ra == pc in order 2012-03-23 17:54:06 +00:00