diff options
author | Florian Weimer <fweimer@redhat.com> | 2023-10-18 14:22:59 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2023-10-18 14:22:59 +0200 |
commit | e0b6c9706c91a642c781918eea52588ee8dc9f09 (patch) | |
tree | 0c15b9fd30f9f43e7267ef039ea75df4c45d7842 /elf/setup-vdso.h | |
parent | 750a45a783906a19591fb8ff6b7841470f1f5701 (diff) | |
download | glibc-e0b6c9706c91a642c781918eea52588ee8dc9f09.tar.gz glibc-e0b6c9706c91a642c781918eea52588ee8dc9f09.tar.xz glibc-e0b6c9706c91a642c781918eea52588ee8dc9f09.zip |
Revert "elf: Remove unused l_text_end field from struct link_map"
This reverts commit 750f19526ae71aac801c77a3f7ef5374890c09b7. Reason for revert: Restore ABI after revert of commit a3189f66a5f.
Diffstat (limited to 'elf/setup-vdso.h')
-rw-r--r-- | elf/setup-vdso.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/elf/setup-vdso.h b/elf/setup-vdso.h index d92b12a7aa..0079842d1f 100644 --- a/elf/setup-vdso.h +++ b/elf/setup-vdso.h @@ -51,6 +51,9 @@ setup_vdso (struct link_map *main_map __attribute__ ((unused)), l->l_addr = ph->p_vaddr; if (ph->p_vaddr + ph->p_memsz >= l->l_map_end) l->l_map_end = ph->p_vaddr + ph->p_memsz; + if ((ph->p_flags & PF_X) + && ph->p_vaddr + ph->p_memsz >= l->l_text_end) + l->l_text_end = ph->p_vaddr + ph->p_memsz; } else /* There must be no TLS segment. */ @@ -59,6 +62,7 @@ setup_vdso (struct link_map *main_map __attribute__ ((unused)), l->l_map_start = (ElfW(Addr)) GLRO(dl_sysinfo_dso); l->l_addr = l->l_map_start - l->l_addr; l->l_map_end += l->l_addr; + l->l_text_end += l->l_addr; l->l_ld = (void *) ((ElfW(Addr)) l->l_ld + l->l_addr); elf_get_dynamic_info (l, false, false); _dl_setup_hash (l); |