From 2a3bb4daf5778c5875674cd26a3c75b3d460a042 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 13 Sep 2017 18:58:13 +0200 Subject: ldconfig: add glibc compatibility fix Reported-by: Lauri Kasanen --- utils/ldconfig.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/utils/ldconfig.c b/utils/ldconfig.c index e6b788118..58939d689 100644 --- a/utils/ldconfig.c +++ b/utils/ldconfig.c @@ -184,10 +184,9 @@ static char *readsoname(char *name, FILE *infile, int expected_type, res = readsoname32(name, infile, expected_type, type); else { res = readsoname64(name, infile, expected_type, type); -#if 0 - /* relies on multilib support which we dont have ... */ - *type |= LIB_ELF64; -#endif + + // For 64-bit glibc compatibility + *type |= FLAG_X8664_LIB64; } return res; @@ -758,7 +757,7 @@ void cache_print(void) for (fd = 0; fd < header->nlibs; fd++) { printf("\t%s ", strs + libent[fd].sooffset); - switch (libent[fd].flags & ~LIB_ELF64) { + switch (libent[fd].flags & ~LIB_ELF64 & FLAG_TYPE_MASK) { case LIB_DLL: printf("(libc4)"); break; @@ -771,7 +770,7 @@ void cache_print(void) case LIB_ELF_LIBC5: case LIB_ELF_LIBC6: printf("(libc%d%s)", - (libent[fd].flags & ~LIB_ELF64) + 3, + (libent[fd].flags & ~LIB_ELF64 & FLAG_TYPE_MASK) + 3, libent[fd].flags & LIB_ELF64 ? "/64" : ""); break; default: -- cgit v1.2.3