[PATCH 0/3] Remove prelink support
Carlos O'Donell
carlos@redhat.com
Thu Jan 27 04:59:58 GMT 2022
On 1/21/22 12:29, Adhemerval Zanella via Libc-alpha wrote:
> As discussed recently on maillist [1], prelink is deprecated in
> practice:
This goes in the right direction.
I think we should review this for glibc 2.36.
Leaving glibc 2.35 as the last release with prelink support.
I've reviewed your NEWS entry for the removal note.
> * 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
>
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list