Subject: Re: CVS commit: src: mips droppped ldconfig
To: Todd Vierling <tv@pobox.com>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: current-users
Date: 10/12/1998 15:14:23
>: > Remove /sbin/ldconfig - not used on mips ports anymore
>: 
>: What's the reson for not using ldconfig ? If the speedup gained by
>: caching library locations is insignificant, we should drop it entirely
>: maybe.

The real reason for not including ldconfig is that it's no longer
used.  ldconfig _was_ used on mips, back when we shipped a GNU-derived
ld.so and ldconfig.  Once that we added support for all the necessary
MIPS-specific relocs to ld.elf_so amd moved the Alpha-spcecific cruft
from the MI code into alpha-specific source files, we could use
ld.elf_so on mips.  So ldconfig is strictly unnecessary.

Simon noticed ldconfig was still in the pmx sets files while building
a mips snapshot, so I asked him to garbage-collect it.


>ld.elf_so has zero knowledge of library caching.  ELF uses rpath as its main
>way of finding libraries (and ELF doesn't use directory lookups - it has the
>name of the library to find directly available thanks to -soname).
>
>There has been inconclusive discussion about adding a ldconfig-alike
>fallback to ELF ports, mainly on the alpha list.

Some developers -- notably cgd -- have expressed very strong opinions
against `ldconfig'.  I dont pretend to speak for Chris, but I dont see
any signficant architectural difference between the symlink farms in
each directory, as we use now, and keeping the same info about ELF
shlib versions in a *local, per directory only* `cache file'. 

As long as the Right Things get done at library-build and library-
install time, they're moral equivalents, and architecturally identical
down to the symlink-versus-special-file tradeoffs..


I thought the big architectural issue over ELF was whether or not to
provide a `ld.so.conf' or moral equivalent.  To allow a sysadmin to
provide sytsem-wide defaults which override compiled-in rpath
directives without clobbering everybody and anybody's
LD_LIBRARY_PATH-- say, for people who need to install packages into
/usr/local but who still want to use the precompiled binary pkgs.