diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-10-15 14:35:31 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-10-18 09:51:56 -0300 |
commit | 5118dcac68c4eadfd6304bb33adde63d062dc07f (patch) | |
tree | a36d657aa4cf152f6eee05feac6d7171cb3816ad /elf/dl-load.c | |
parent | 1d3decee997ba2fc24af81803299b2f4f3c47063 (diff) | |
download | glibc-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.c | 2 |
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. */ |