]> git.ipfire.org Git - thirdparty/glibc.git/commit
elf: Restore ldconfig libc6 implicit soname logic [BZ #30125]
authorJoan Bruguera <joanbrugueram@gmail.com>
Sat, 18 Feb 2023 21:52:15 +0000 (21:52 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 20 Feb 2023 12:32:46 +0000 (09:32 -0300)
commit1b0ea8c5d886fedabd611a569b5ec58a6f5153e6
tree072ac0e8f642178cf170aac1e7033e1b64d765ea
parentfd78cfa72ea2bab30fdb4e1e0672b34471426c05
elf: Restore ldconfig libc6 implicit soname logic [BZ #30125]

While cleaning up old libc version support, the deprecated libc4 code was
accidentally kept in `implicit_soname`, instead of the libc6 code.

This causes additional symlinks to be created by `ldconfig` for libraries
without a soname, e.g. a library `libsomething.123.456.789` without a soname
will create a `libsomething.123` -> `libsomething.123.456.789` symlink.

As the libc6 version of the `implicit_soname` code is a trivial `xstrdup`,
just inline it and remove `implicit_soname` altogether.

Some further simplification looks possible (e.g. the call to `create_links`
looks like a no-op if `soname == NULL`, other than the verbose printfs), but
logic is kept as-is for now.

Fixes: BZ #30125
Fixes: 8ee878592c4a ("Assume only FLAG_ELF_LIBC6 suport")
Signed-off-by: Joan Bruguera <joanbrugueram@gmail.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
elf/Makefile
elf/ldconfig.c
elf/readlib.c
elf/tst-ldconfig-soname-lib-with-soname.c [new file with mode: 0644]
elf/tst-ldconfig-soname-lib-without-soname.c [new file with mode: 0644]
elf/tst-ldconfig-soname.sh [new file with mode: 0644]
sysdeps/generic/ldconfig.h