Re: Need help with strange ldd output
On Sat, Sep 30, 2000 at 11:17:17PM -0400, Ben Collins wrote:
> On Sun, Oct 01, 2000 at 04:18:38AM +0200, Yann Dirson wrote:
> > I have compiled a package which contains the following shared lib:
> >
> > /usr/lib/liballeg-3.9.33.so
> >
> >
> > I think there are a number of things which were done wrong here, and
> > would appreciate any hints. Please CC me on reply, I'm not on
> > deb-dev.
> >
> > When I link something with it I get in ldd's output:
> >
> > liballeg-3.9.33.so => /usr/lib/liballeg-3.9.33.so (0x40025000)
> > libc.so.6 => /lib/libc.so.6 (0x400d6000)
> >
> > This syntax confuses dpkg-shlibdeps (and dh_makeshlibs did not look at
> > the file either). Did anyone already seen such a problem ? Was the
> > lib erroneously built, or is it just a symlink missing (I tried to
> > symlink it to liballeg.so.3.9.33, with no changes.
>
> That is not proper soname convention. It should be liballeg.so.3. If you do
> what glibc does, then you have
>
> liballeg-3.9.33.so
> liballeg.so.3 -> liballeg-3.9.33.so
> liballeg.so -> liballeg.so.3 (in the -dev package)
>
> But the SONAME (as shown by the output in 'objdump') should be liballeg.so.3.
Is that a binding convention?
As I understood it, the point is that sonames change when the ABI breaks.
However, for a swiftly moving package, it make make sense to change
the soname every minor release, not every major one.
I.e., the normal picture is:
libfoo.so.1 is SONAME and link name for libfoo.so.1.x for all x.
But, with a fast-changing library, it might be
libfoo.so.1.x is SONAME and link name.
IIRC libgimp and libgtk follow the latter convention for their
unstable branches.
Jules
Reply to: