]> git.ipfire.org Git - thirdparty/glibc.git/commit
elf: Set l_contiguous to 1 for the main map in more cases
authorFlorian Weimer <fweimer@redhat.com>
Mon, 17 Jan 2022 08:57:19 +0000 (09:57 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 17 Jan 2022 08:58:27 +0000 (09:58 +0100)
commit8eb2510d38226ce10a3a15109be948f052585106
tree8881c230da9374d0ce76260a6b3ae44ba87a2940
parentb4d4ff8963866367ba861681ef3b1251e122014a
elf: Set l_contiguous to 1 for the main map in more cases

l_contiguous was not initialized at all for the main map and
always 0.  This commit adds code to check if the LOAD segments
are adjacent to each other, and sets l_contiguous accordingly.
This helps _dl_find_object because it is more efficient if the
main mapping is contiguous.

Note that not all (PIE or non-PIE) binaries are contiguous in this
way because BFD ld creates executables with LOAD holes:

ELF LOAD segments creating holes in the process image on GNU/Linux
https://sourceware.org/pipermail/binutils/2022-January/119082.html
https://sourceware.org/bugzilla/show_bug.cgi?id=28743

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
elf/rtld.c