summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-08-10 09:50:07 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2004-08-10 09:50:07 +0000
commit7c2d61733a12818023af530d003b358b4ca077f1 (patch)
treec5fdac73f6bdb82f3a4fb937d0ec90756218f477
parent9d4b81d74bc2a371a47e0e0f6376efa7cd211bb8 (diff)
Mike Frysinger writes:
i was sticking some libraries in non-standard (i.e. not-hardcoded) paths and then updating ld.so.conf accordingly ... oddly though, i couldnt get binaries that linked against those libraries to run ... `ldconfig -v` showed the required libraries being detected/cached, so something seemed wrong ... turns out the libraries were being tagged as LIB_ELF_LIBC0 in the cache and the loader currently only accepts LIB_ELF_LIBC{5,6} ... since readsoname.c in ldconfig defines needed_tab with the mapping 'libc.so.0' -> LIB_ELF_LIBC0 it seems like the loader should accept this type too find attached a small patch which adds LIB_ELF_LIBC0 along side LIB_ELF_LIBC{5,6} as an accepted lib type in the loader when dealing with the ld.so.cache file
-rw-r--r--ldso/ldso/dl-elf.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
index cf1dae3b2..25c82401f 100644
--- a/ldso/ldso/dl-elf.c
+++ b/ldso/ldso/dl-elf.c
@@ -329,6 +329,7 @@ struct elf_resolve *_dl_load_shared_library(int secure, struct dyn_elf **rpnt,
#endif
for (i = 0; i < header->nlibs; i++) {
if ((libent[i].flags == LIB_ELF ||
+ libent[i].flags == LIB_ELF_LIBC0 ||
libent[i].flags == LIB_ELF_LIBC5) &&
_dl_strcmp(libname, strs + libent[i].sooffset) == 0 &&
(tpnt1 = _dl_load_elf_shared_library(secure,