[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: