[PATCH 0/3] Remove prelink support
Adhemerval Zanella
adhemerval.zanella@linaro.org
Fri Jan 21 17:29:48 GMT 2022
As discussed recently on maillist [1], prelink is deprecated in
practice:
* There is no active development neither maintainace.
* It misses supports for some architectures, even for architecture
wildly deployed such as aarch64 [2].
* It does not work with recent security hardening such as PIE.
* Nor it will work on future ABI additions such as DT_RELR.
* Even when PIE is not enabled its coverity if flacky, with some
binaries showing corrupted state [3].
* Recent glibc changes to support different tools (such as lld)
showed inherent issue with current prelink support.
The first patch removes both prelink support by the loader and the
LD_TRACE_PRELINKING.
The remove of mtrace TRACE_PRELINKING usage is on its own patch
because it changes LD_TRACE_LOADED_OBJECTS semantic to support
dumping the executable loading address and fixes mtrace for non
PIE similar to BZ#22716.
Finally the third part removed LD_USE_LOAD_BIAS, which is used
solely for try support prelink with PIE.
[1] https://sourceware.org/pipermail/libc-alpha/2022-January/135520.html
[2] https://sourceware.org/pipermail/libc-alpha/2022-January/135522.html
[3] https://embed.endfa.net/yocto-cross-prelink-1/
Adhemerval Zanella (3):
elf: Remove prelink support
malloc: Remove LD_TRACE_PRELINKING usage from mtrace
elf: Remove LD_USE_LOAD_BIAS
NEWS | 6 +
elf/Makefile | 16 --
elf/dl-conflict.c | 77 -------
elf/dl-deps.c | 66 ------
elf/dl-error-skeleton.c | 4 +-
elf/dl-load.c | 3 +-
elf/dl-lookup.c | 161 --------------
elf/dl-main.h | 3 +
elf/dl-map-segments.h | 3 +-
elf/dl-support.c | 1 -
elf/do-rel.h | 3 -
elf/rtld.c | 283 ++++++-------------------
elf/tst-prelink-cmp.c | 49 -----
elf/tst-prelink.c | 29 ---
malloc/mtrace.pl | 55 ++---
sysdeps/alpha/dl-machine.h | 15 --
sysdeps/arm/dl-machine.h | 4 -
sysdeps/generic/ldsodefs.h | 16 --
sysdeps/generic/unsecvars.h | 1 -
sysdeps/i386/dl-machine.h | 16 +-
sysdeps/or1k/dl-machine.h | 4 -
sysdeps/powerpc/powerpc32/dl-machine.h | 31 +--
sysdeps/powerpc/powerpc64/dl-machine.h | 37 ----
sysdeps/s390/s390-32/dl-machine.h | 22 +-
sysdeps/s390/s390-64/dl-machine.h | 22 +-
sysdeps/sh/dl-machine.h | 2 +-
sysdeps/sparc/sparc32/dl-machine.h | 52 +----
sysdeps/sparc/sparc64/dl-machine.h | 72 +------
sysdeps/x86_64/dl-machine.h | 48 ++---
29 files changed, 167 insertions(+), 934 deletions(-)
delete mode 100644 elf/dl-conflict.c
delete mode 100644 elf/tst-prelink-cmp.c
delete mode 100644 elf/tst-prelink.c
--
2.32.0
More information about the Libc-alpha
mailing list