diff options
| author | Florian Weimer <fweimer@redhat.com> | 2017-01-24 18:32:30 +0100 |
|---|---|---|
| committer | Florian Weimer <fweimer@redhat.com> | 2017-01-24 18:32:30 +0100 |
| commit | defaba407d488d348eb1849cc9b57d2269e5cf9d (patch) | |
| tree | 02d6304fe6aaa3c144b302963b70a39eb3824afb /elf/rtld.c | |
| parent | feb6d6b394bd0ebd74d3f4370394dfb94b1f011a (diff) | |
| download | glibc-fw/bug21041.tar.xz glibc-fw/bug21041.zip | |
WIP delayed IFUNC relocationfw/bug21041
Diffstat (limited to 'elf/rtld.c')
| -rw-r--r-- | elf/rtld.c | 6 |
1 files changed, 4 insertions, 2 deletions
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 <tls.h> #include <stap-probe.h> #include <stackinfo.h> +#include <dl-ifunc.h> #include <assert.h> @@ -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. */ |
