Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Sep 2003 21:05:34 -0400
From:      Andrew J Caines <A.J.Caines@halplant.com>
To:        FreeBSD Hackers <FreeBSD-Hackers@FreeBSD.org>
Subject:   Relinking binaries to new .so libs when versions change?
Message-ID:  <20030919010534.GE1234@hal9000.halplant.com>

next in thread | raw e-mail | index | archive | help
Again, a port update of a library has bumped a .so version [in this case
libatk-1.0.so.200 -> libatk-1.0.so.400]. This leaves a bunch of binaries
linked to the old .so which won't start.

Other recent examples include libxmms.so and libintl.so.

Is there an elegant and quick way to relink a given binary to a different
version of a particular .so, eg. "mvld foo foo.so.1 foo.so.2"?


I'm aware that rebuilding is the right thing to do since stuff can change
in the libs, however experience from symlinking .so.N to .so.N-n shows
that this almost never results in problems.


For the record, I'm largely clueless about the details of linking, but I
also wondered why we have all the .so -> .so.N symlinks if the linking as
always to the .so.N. Is the fact that some libs don't follow the
major/minor rules[1] a/the problem? I've read ld(1), ldconfig(8) [-r shows
the .so.N hints], rtld(1) and other pages, googled a bit and am only
slightly wiser, but not enough to answer my own questions.

Your clues will be gratefully received.

[1] http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/policies-shlib.html

-Andrew-
-- 
 _______________________________________________________________________
| -Andrew J. Caines-   Unix Systems Engineer   A.J.Caines@halplant.com  |
| "They that can give up essential liberty to obtain a little temporary |
|  safety deserve neither liberty nor safety" - Benjamin Franklin, 1759 |



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030919010534.GE1234>