From defaba407d488d348eb1849cc9b57d2269e5cf9d Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Tue, 24 Jan 2017 18:32:30 +0100 Subject: WIP delayed IFUNC relocation --- elf/rtld.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'elf/rtld.c') diff --git a/elf/rtld.c b/elf/rtld.c index 16119e8c31..cb9d330d66 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -41,6 +41,7 @@ #include #include #include +#include #include @@ -2114,10 +2115,11 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n", HP_TIMING_ACCUM_NT (relocate_time, add); } - /* Activate RELRO protection. In the prelink case, this was already - done earlier. */ + /* Perform delayed IFUNC relocations and activate RELRO protection. + In the prelink case, this was already done earlier. */ if (! prelinked) { + _dl_ifunc_apply_relocations (main_map); /* Make sure that this covers the dynamic linker as well. TODO: rtld_multiple_ref is always true because libc.so needs the dynamic linker internally. */ -- cgit v1.2.3