This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
Re: PATCH: ldconfig.c considers ld.so.conf entries before/lib,/usr/lib
Ben Collins <bcollins@debian.org> writes:
> On Wed, Aug 29, 2001 at 08:34:34PM -0700, Ulrich Drepper wrote:
> > Dirk Eddelbuettel <edd@debian.org> writes:
>>
>> > ldconfig -v [from Debian's libc6_2.2.4-1 package] reads /lib and /usr/lib
>> > before it considers the directories in /etc/ld.so.conf. This is in conflict
>> > with ld.so(8) as well as ldconfig(8).
>>
>> It's completely irrelevant what the man pages say. If they are not in
>> line with the implementation it's the implementation setting the
>> standard.
>>
>> The current way ldconfig works is how it worked ever since. There is
>> no reason to change it since this will have negative effects and might
>> suddenly change the behavior of people's systems.
>
> Not entirely true. From the original ldconfig.c in the ld.so sources:
Please note that the ldconfig implementation in glibc is a clean
implementation. Due to copyright concerns we couldn't take the so
called "original" ldconfig and I couldn't look up how exactly ldconfig
worked in some details.
> /* look ma, no defaults */
> if (!nodefault)
> {
> /* I guess the defaults aren't good enough */
> if ((extpath = get_extpath()))
> {
> for (cp = strtok(extpath, DIR_SEP); cp;
> cp = strtok(NULL, DIR_SEP))
> scan_dir(cp);
> free(extpath);
> }
>
> /* everybody needs these, don't they? */
> scan_dir("/usr/lib");
> scan_dir("/lib");
> }
>
> get_extpath() retrieves the paths from the config file. So glibc 2.2.x
> is not following the old "standard", which has worked for ages.
IMO there's also a usability aspect to this:
If you do not use ldconfig, glibc searches per default only /lib and
/usr/lib. Those are the normal paths.
For setuid applications, the pathes /lib and /usr/lib are also special
since glibc will not lookup any libs in the cache. Putting /lib and
/usr/lib first will give the same libraries independ whether you're
running setuid or not.
Why can't you put the libs into /usr/lib ? What kind of problem do
you have that you need to install the libs twice in the system and
additionally need to edit /etc/ld.so.conf and then run ldconfig?
Andreas
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj