Stale files in /usr/X11/bin ?

Joerg Sonnenberger joerg at britannica.bec.de
Sat Mar 26 06:46:24 PST 2005


On Fri, Mar 25, 2005 at 10:22:55AM +0100, Jeroen Ruigrok/asmodai wrote:
> -On [20050325 09:22], Yury Tarasievich (grog at xxxxxxx) wrote:
> >BTW, is there any standard method to force linking against specific 
> >revision of shared lib, so one could generally link against lib.so, 
> >being symlink to lib.so.x, vs. lib.so.x itself?

Do you want to link directly against lib.so instead of lib.so.x? That's
broken.

> 
> ELF annex the ELF loader does not cater for this.

Precisely.

> ELF looks at the libname.so entries in its cache.  These are typically
> symbolically linked to the highest versioned libname.so.N.

Nope. The dynamic loader looks up the Shared Object Name in the cache
or tries it via some special patterns as file name in standard locations.
That's what "objdump -x $lib | grep SONAME" gives you. In our case,
the soname is used directly as path name.

> Entries with minor numbers, such as the old a.out styled libname.so.N.M, are
> not an official part of the ELF standard.  Nor is the Linux standard of
> libname.so.N.M.T (number, major, trivial) an official standard (they symlink
> the .so.N to the .so.N.M.T).

Exactly. The dynamic linker doesn't care at all about version numbers.

> No standard way short of changing symbolic links, but this also influences
> run-time behaviour.

Not really. The libc.so --> libc.so.4 link is used by the _static_ linker,
You could use varsyms to change the behaviour on a per-case base.

Joerg





More information about the Bugs mailing list