On Sat, 03 Oct 2009, Per Jessen wrote:
I'm building a daemon on an 11.1 system, then
copying it to an 11.0
system - where it complains about not finding libltdl.so.7, only
libltdl.so.3.1.6. I know this library is from libtool, but why is this
causing me a problem? I seem to have managed a work around be
symlinking libltdl.so.3.1.6 as libltdl.so.7, but I'd like to understand
the full story.
The keyword here is 'soname'. The soname is supposed to change if the
API (not the implementation) of the lib changes. See e.g.
IIRC there's also a LDP Howto on the subject. Other important docs
escape my recollection at this moment.
It always depends how compatible the API of two versions are and what
functions are actually used. Sometimes, symlinking helps. But you
should expect that it doesn't.
Generally, chances are better if you build against the older lib, cue
"backwards compatibility". And for that, chrooting should/seems to
suffice(s) (see the OBS).
Of course: if you can, you should build on the target system, as
e.g. implemented in the OBS.
For example: binaries built against some old glibc (say, 2.1.3) often
work with many (all?) newer versions of glibc, but binaries built
against some glibc >= 2.2  generally won't work _at all_ on my
Others, like Philipp Thomas, Richard Günther and Torsten Kukuk should
know more (about the intricacies, implications and best practices etc.).
BTW: I got libltdl.so.0.1.1 and .3.1.4 on this system ;)
 and that use a symbol/function thus versioned (GLIBC_2_2)
de Boer's Razor: Never attribute to cranioanalitis that which is
adequately explained by anencephaly.
To unsubscribe, e-mail: opensuse-programming+unsubscribe(a)opensuse.org
For additional commands, e-mail: opensuse-programming+help(a)opensuse.org