aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2018-06-06 16:02:02 +0200
committerFlorian Weimer <fweimer@redhat.com>2019-04-15 17:39:45 +0200
commit59c45eeb109a3e4567f2bebe3feb5330d99a392a (patch)
tree098d597006bdc88499f913eba751b586b1ba26a4 /ChangeLog
parented8938f4f66e87cd805e0b1b94bab868e8ae0ea3 (diff)
downloadglibc-fw/bug21242.tar.xz
glibc-fw/bug21242.zip
ld.so: Introduce delayed relocation processingfw/bug21242
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.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog17
1 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index df296911a2..aa3973fd4a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2018-06-06 Florian Weimer <fweimer@redhat.com>
+
+ * 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 <fweimer@redhat.com>
* sysdeps/generic/ldsodefs.h (_dl_relocate_apply_relro): Declare.