diff options
author | Florian Weimer <fweimer@redhat.com> | 2023-10-18 14:32:12 +0200 |
---|---|---|
committer | Florian Weimer <fweimer@redhat.com> | 2023-10-18 14:32:12 +0200 |
commit | 6aa8380cf5c17d533285cbd575c3eb33c020800a (patch) | |
tree | 7e0be6fc79277174a8cd5dc2b19d04f66058a227 /elf/setup-vdso.h | |
parent | c84018a05aec80f5ee6f682db0da1130b0196aef (diff) | |
download | glibc-6aa8380cf5c17d533285cbd575c3eb33c020800a.tar.gz glibc-6aa8380cf5c17d533285cbd575c3eb33c020800a.tar.xz glibc-6aa8380cf5c17d533285cbd575c3eb33c020800a.zip |
Revert "elf: Remove unused l_text_end field from struct link_map"
This reverts commit 34b07bdbdd69121d6e7d3ccf51a61cc4fa2c408d. Reason for revert: Preserve ABI after revert of commit 02a67e102f0.
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 6838615b30..db639b0d4f 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); |