Subject: re: patch to allow /etc/ld.so.conf configure directories for ELF
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: matthew green <mrg@eterna.com.au>
List: tech-userlevel
Date: 03/12/1999 17:53:10
If you move a shared library, and want your programs to continue working,
USE A BLOODY SYMLINK. But don't break an otherwise working system just
to make your life easier.
this does not work in all cases.
actual real scenario:
i do not want shared libraries "visible" to the user. eg, they do not
reside in /usr/lib and thus new programs are not linked with them. so
i hide them elsewhere and use ld.so.conf to let existing dynamically
linked programs continue to work. a symlink would not work.
as greg stated, your posted scenario fails with the presence of
LD_LIBRARY_PATH. are you going to take that out too? i mean, it's
really just a local version of ld.so.conf -- semantically speaking.
why you call ld.so.conf a "lame hack".
to answer charles' post:
some people don't like the idea of a cache at all. i don't really
care either way (though i think it is really needed for a.out where
you have to search each directory for a number of files, rather
than just seeing if "libfoo.so.N" is there.) however, the whole
point of the cache is so that you only need to 1 + N files to map
in N shared libraries at exec time. multiple cache files will
result in more file opens which seems to be to partially defeat the
effect of a cache.
linux and freebsd both apparently retain ldconfig and the cache
functionality for ELF. i personally don't think it is very useful
for ELF, but it would be interesting to see some performance figures
if someone actually implemented it.