libtool
[Top][All Lists]
Advanced

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

libtool cur/age question


From: Luca Filipozzi
Subject: libtool cur/age question
Date: Wed, 31 Jul 2002 17:23:37 -0700
User-agent: Mutt/1.3.23i

Hi folks,

Suppose I make a share library, libfoo.so and perform the following
operations (assumes libfoo.so.[cur-age].[age].[rev]):

1) initial state: library implements interface v0
   [cur=0,rev=0,age=0] libfoo.so.0.0.0 <-- libfoo.so.0

2) add interfaces: library implements interface v0 and v1
   [cur=1,rev=0,age=1] libfoo.so.0.1.0 <-- libfoo.so.0
   
Now, suppose that I have a binary, bar, that I build on a box that has
libfoo.so.0.1.0 installed.  Further, supposed that in the source, bar.c,
I use some v1 interface elements.  I compile the binary and the soname
that gets encoded into the library is libfoo.so.0.

Now, suppose that I move the binary to a box that only has
libfoo.so.0.0.0 installed.  Unfortunately, libfoo.so.0 points to
libfoo.so.0.0.0 on this box, but that version of the library only
implments v0 of the interface and not v1, which is needed by bar.  Yet
the soname encoded into bar is so.0.

It would seem to me that in (2) above, two symbolic links should be
created:
  libfoo.so.0 ->> libfoo.so.0.1.0  (the library implements interface v0)
  libfoo.so.1 ->> libfoo.so.0.1.0  (the library implements interface v1)
and that the .la linker assist file should tell the linker to use
libfoo.so.1 as the soname to link against.

However, this isn't the case and the dynamically loading universe hasn't
collapsed, so I must be missing something.  Any elucidations would be
very much appreciated.

Thanks, Luca

-- 
Luca Filipozzi, Debian Developer
gpgkey 5A827A2D - A149 97BD 188C 7F29 779E  09C1 3573 32C4 5A82 7A2D



reply via email to

[Prev in Thread] Current Thread [Next in Thread]