From 59c45eeb109a3e4567f2bebe3feb5330d99a392a Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 6 Jun 2018 16:02:02 +0200 Subject: ld.so: Introduce delayed relocation processing This makes it possible to use IFUNC resolvers which depend on relocations themselves, as long as these reloctions do not depend on IFUNCs. So far, delayed relocation processing is only implemented for x86-64. --- ChangeLog | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'ChangeLog') diff --git a/ChangeLog b/ChangeLog index df296911a2..aa3973fd4a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2018-06-06 Florian Weimer + + * elf/Makefile (dl-routines): Add delayed-reloc. + * elf/rtld.c (dl_main): Call _dl_delayed_reloc_init, + _dl_delayed_reloc_apply. + * elf/dl-open.c (dl_open_worker): Likewise. + (dl_open): Call _dl_delayed_reloc_clear. + * include/link.h (struct link_map): Add l_delayed_relocations. + * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Replace warning + about relocations against STT_GNU_IFUNC symbols in not-fully + relocated objects with delayed relocation recording. Delay + R_X86_64_COPY and R_X86_64_IRELATIVE relocations if necessary. + * elf/dl-delayed-reloc.c: New file. + * elf/dl-delayed-reloc.h: Likewise. + * sysdeps/generic/dl-delayed-reloc-machine.h: Likewise. + * sysdeps/x86_64/dl-delayed-reloc-machine.h: Likewise. + 2018-06-05 Florian Weimer * sysdeps/generic/ldsodefs.h (_dl_relocate_apply_relro): Declare. -- cgit v1.2.3