[opensuse-programming] libltdl.so.7 ?

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. /Per Jessen, Zürich -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org

Hello, 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. info '(libtool)Versioning' 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 [1] generally won't work _at all_ on my glibc-2.1.3 system. 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 ;) HTH, -dnh [1] 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@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org

David Haller wrote:
Hello,
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.
info '(libtool)Versioning'
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.
Yeah, I understand that, it was really only intended as a quick work-around. I've just spotted the real issue - it's not my code using libltdl, it is being drawn in by another library (libclamav). /Per Jessen, Zürich -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org

Per Jessen wrote:
I've just spotted the real issue - it's not my code using libltdl, it is being drawn in by another library (libclamav).
And it could be "disabled" via configure. Problem solved. /Per Jessen, Zürich -- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org
participants (2)
-
David Haller
-
Per Jessen