aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/generic
diff options
context:
space:
mode:
authorJoan Bruguera <joanbrugueram@gmail.com>2023-02-18 21:52:15 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2023-02-20 09:32:46 -0300
commit1b0ea8c5d886fedabd611a569b5ec58a6f5153e6 (patch)
tree072ac0e8f642178cf170aac1e7033e1b64d765ea /sysdeps/generic
parentfd78cfa72ea2bab30fdb4e1e0672b34471426c05 (diff)
downloadglibc-1b0ea8c5d886fedabd611a569b5ec58a6f5153e6.tar
glibc-1b0ea8c5d886fedabd611a569b5ec58a6f5153e6.tar.gz
glibc-1b0ea8c5d886fedabd611a569b5ec58a6f5153e6.tar.bz2
glibc-1b0ea8c5d886fedabd611a569b5ec58a6f5153e6.zip
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>
Diffstat (limited to 'sysdeps/generic')
-rw-r--r--sysdeps/generic/ldconfig.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/sysdeps/generic/ldconfig.h b/sysdeps/generic/ldconfig.h
index 0e1a9a9515..e9e9e19d0f 100644
--- a/sysdeps/generic/ldconfig.h
+++ b/sysdeps/generic/ldconfig.h
@@ -90,8 +90,6 @@ extern int process_file (const char *real_file_name, const char *file_name,
const char *lib, int *flag, unsigned int *isa_level,
char **soname, int is_link, struct stat *stat_buf);
-extern char *implicit_soname (const char *lib, int flag);
-
/* Declared in readelflib.c. */
extern int process_elf_file (const char *file_name, const char *lib,
int *flag, unsigned int *isa_level, char **soname,