Re: libgailutil.so.16 -> libgailutil.so.17



On Mon, 2002-07-29 at 11:01, Padraig O'Briain wrote:
> Jon,
> I have sen a long thread on this which I have not studied closely yet.
> I would like to clarify exactly what the complaint is.
> I am not concious of making any changes to libgailutil between versions 16 and 
> 17.
> If using libgailutil, I would expect you to link with libgailutil.so, i.e. 
> -llibgailutil.

Ah, but libraries store something called the soname, which is the name
that will be written into the file when linking. When linking against
different instances of the same library, such as the .so symbolic link,
the name written as the soname will be used instead.

So when linking in the way you suggest, one gets the following
behaviour:

js fig:~$ cat << EOF > testgailutil.c 
> int main () { return 0; }
> EOF
js fig:~$ gcc -o testgailutil testgailutil.c -lgailutil
js fig:~$ ldd testgailutil|grep gailutil
	libgailutil.so.17 => /usr/lib/libgailutil.so.17 (0x40022000)

libtool is supposed to "do the right thing" in this regard if you keep
track of a few variables regarding binary age and interface age and
whatnot, but you should ask Havoc about that, he seemed to know how it
worked.

The main point is that you want to use the soname to keep track of
incompatible changes. As long as compatibility remains you want to let
it remain the same, and then change it when you introduce something
incompatible.

Hope this clarifies,
Jon




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