[gobolinux-users] Source repositories and other suggestions

Martin Baldan martinobal at gmail.com
Sat Dec 2 02:44:26 UTC 2006


On 12/1/06, Michael Homer <gobo-users-dufus at wotfun.com> wrote:
>
>
> How are you determining what it links against? How are you changing
> the linking values? Both of those are going to have to be guesses (I
> guess you could just patch the linker to do it, but I wouldn't want to
> do that on a system I cared about). The simplest approach is a simple
> text replacement, but that's obviously going to have problems
> sometimes, so you'd need to parse out everything and understand it
> before you changed it. It'd be enormously difficult.
> -Michael
>

I've found the description in
http://www.dwheeler.com/program-library/Program-Library-HOWTO/x36.html


> ldconfig doesn't set up the linker names; typically this is done during
> library installation, and the linker name is simply created as a symbolic
> link to the ``latest'' soname or the latest real name. I would recommend
> having the linker name be a symbolic link to the soname, since in most cases
> if you update the library you'd like to automatically use it when linking. I
> asked H. J. Lu why ldconfig doesn't automatically set up the linker names.
> His explanation was basically that you might want to run code using the
> latest version of a library, but might instead want *development* to link
> against an old (possibly incompatible) library. Therefore, ldconfig makes no
> assumptions about what you want programs to link to, so installers must
> specifically modify symbolic links to update what the linker will use for a
> library.
>
> Thus, /usr/lib/libreadline.so.3 is a fully-qualified soname, which
> ldconfig would set to be a symbolic link to some realname like
> /usr/lib/libreadline.so.3.0. There should also be a linker name,
> /usr/lib/libreadline.so which could be a symbolic link referring to
> /usr/lib/libreadline.so.3.
>

Isn't it highly relevant for the topic we are discussing? Especially this
part:

"I would recommend having the linker name be a symbolic link to the soname,
since in most cases if you update the library you'd like to automatically
use it when linking."

 It seems to imply that you can have the linker name be a symlink to the
real name, without patching the linker. So, my proposal would consist in NOT
doing what is described (use the soname to automatically use the updated
library) Instead, use the real name. This way, there's the drawback that
every time you update a library you have to recompile all programs that
depend on this library, but you get the benefit that installing a new
program can't  immediately affect already installed programs (it can't
change what the linker names point to), and no patching of each program's
source is involved. Remember that the online compatibility database would
tell  each program which real name to use, that's one major benefit. And the
system would be optional, in the sense that you can always set the linker
back to the traditional way and recompile every program in your system, and
you're done.


--Martin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.gobolinux.org/pipermail/gobolinux-users/attachments/20061202/4a963f1d/attachment.htm 


More information about the gobolinux-users mailing list