aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-10-15 14:35:31 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2021-10-18 09:51:56 -0300
commit5118dcac68c4eadfd6304bb33adde63d062dc07f (patch)
treea36d657aa4cf152f6eee05feac6d7171cb3816ad /elf/dl-load.c
parent1d3decee997ba2fc24af81803299b2f4f3c47063 (diff)
downloadglibc-5118dcac68c4eadfd6304bb33adde63d062dc07f.tar
glibc-5118dcac68c4eadfd6304bb33adde63d062dc07f.tar.gz
glibc-5118dcac68c4eadfd6304bb33adde63d062dc07f.tar.bz2
glibc-5118dcac68c4eadfd6304bb33adde63d062dc07f.zip
elf: Fix elf_get_dynamic_info() for bootstrap
THe d6d89608ac8c broke powerpc for --enable-bind-now because it turned out that different than patch assumption rtld elf_get_dynamic_info() does require to handle RTLD_BOOTSTRAP to avoid DT_FLAGS and DT_RUNPATH (more specially the GLRO usage which is not reallocate yet). This patch fixes by passing two arguments to elf_get_dynamic_info() to inform that by rtld (bootstrap) or static pie initialization (static_pie_bootstrap). I think using explicit argument is way more clear and burried C preprocessor, and compiler should remove the dead code. I checked on x86_64 and i686 with default options, --enable-bind-now, and --enable-bind-now and --enable--static-pie. I also check on aarch64, armhf, powerpc64, and powerpc with default and --enable-bind-now.
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 18d3e8fe64..a1f1682188 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1298,7 +1298,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
else
l->l_ld = (ElfW(Dyn) *) ((ElfW(Addr)) l->l_ld + l->l_addr);
- elf_get_dynamic_info (l);
+ elf_get_dynamic_info (l, false, false);
/* Make sure we are not dlopen'ing an object that has the
DF_1_NOOPEN flag set, or a PIE object. */