freebsd-dev/libexec/rtld-elf
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
..
amd64 IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
arm IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
i386 IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
mips IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
powerpc IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
powerpc64 IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
sparc64 IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
tests Fix "make checkdpadd" by "spoofing" DPADD 2014-08-26 09:01:11 +00:00
debug.c Rtld links with the specially built pic static libc library to get some 2011-08-24 20:05:13 +00:00
debug.h Use C99's varadic macro syntax instead of gcc's. 2006-03-28 18:26:47 +00:00
libmap.c Always check the limits of array index variables before using them. 2014-08-21 02:40:33 +00:00
libmap.h Make the directory mapping functionality, which was previously only 2013-09-21 21:03:52 +00:00
Makefile Revert r267233 for now. PIE support needs to be reworked. 2014-08-19 15:04:32 +00:00
malloc.c Before calling mmap() on a shared library's text and data sections, rtld 2014-04-11 16:55:25 +00:00
map_object.c Before calling mmap() on a shared library's text and data sections, rtld 2014-04-11 16:55:25 +00:00
rtld_lock.c Right now, the rtld prefork hook locks the rtld bind lock in the read 2014-05-24 10:23:06 +00:00
rtld_lock.h Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
rtld_printf.c Add the LD_LIBRARY_PATH_FDS environmental variable. 2014-06-20 17:08:32 +00:00
rtld_printf.h Add the LD_LIBRARY_PATH_FDS environmental variable. 2014-06-20 17:08:32 +00:00
rtld_tls.h
rtld.1 mdoc: remove superfluous paragraph macros. 2014-06-23 18:40:21 +00:00
rtld.c IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
rtld.h IFUNC symbol type shall be processed for non-PLT relocations, 2014-08-29 09:29:10 +00:00
Symbol.map - Export the function added in r265456 rather than the non-existent 2014-05-07 17:21:22 +00:00
xmalloc.c Increase alignment to size of pointer if the alignment is too small. 2014-02-22 11:06:48 +00:00