[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