freebsd-nq/libexec/rtld-elf
Konstantin Belousov 6be4b69715 Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to
rtld on 386 and amd64. This adds runtime bits neccessary for the use
of the dispatch functions from the dynamically-linked executables and
shared libraries.

To allow use of external references from the dispatch function, resolution
of the R_MACHINE_IRESOLVE relocations in PLT is postponed until GOT entries
for PLT are prepared, and normal resolution of the GOT entries is finished.
Similar to how it is done by GNU, IRELATIVE relocations are resolved in
advance, instead of normal lazy handling for PLT.

Move the init_pltgot() call before the relocations for the object are
processed.

MFC after:	3 weeks
2011-12-12 11:03:14 +00:00
..
amd64 Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
arm Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
i386 Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
ia64 Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
mips Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
powerpc Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
powerpc64 Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
sparc64 Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +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 Fix a malloc overrun in 32-bit compat libmap lookup code. 2006-01-31 06:08:28 +00:00
libmap.h
Makefile Rtld links with the specially built pic static libc library to get some 2011-08-24 20:05:13 +00:00
malloc.c Rtld links with the specially built pic static libc library to get some 2011-08-24 20:05:13 +00:00
map_object.c Restore the writing of the .bss sections of the dsos (not the main 2011-09-20 21:49:54 +00:00
rtld_lock.c Rtld links with the specially built pic static libc library to get some 2011-08-24 20:05:13 +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 Do not use the function pointers for the internal operation of rtld_printf() 2011-09-06 10:21:33 +00:00
rtld_printf.h Rtld links with the specially built pic static libc library to get some 2011-08-24 20:05:13 +00:00
rtld_tls.h
rtld.1 Implement support for ELF filters in rtld. Both normal and auxillary 2010-12-25 08:51:20 +00:00
rtld.c Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
rtld.h Add support for STT_GNU_IFUNC and R_MACHINE_IRELATIVE GNU extensions to 2011-12-12 11:03:14 +00:00
Symbol.map Remove a hack made obsolete by the binutils 2.17 merge. 2011-02-20 16:16:42 +00:00
xmalloc.c Rtld links with the specially built pic static libc library to get some 2011-08-24 20:05:13 +00:00