libtool
[Top][All Lists]
Advanced

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

Re: libtool versioning and ABI


From: Daniel Herring
Subject: Re: libtool versioning and ABI
Date: Tue, 11 Aug 2009 20:24:33 -0400 (EDT)
User-agent: Alpine 1.10 (LNX 962 2008-03-14)

On Wed, 12 Aug 2009, Michel Briand wrote:
Please give me the way to learn those ABI number you cite.

I've looked into many OSS and found in Makefile.am only 2 cases :

- version-info 1:0:0 (the guys there didn't want to bother with
 libtool versioning apparently... ;))

- version-info with the X.Y.Z version "back crafted" to make
 the soname version read the same as X.Y.Z

Here's a counter example.  Download
ftp://ftp.gnu.org/pub/gnu/gnutls/gnutls-2.8.2.tar.bz2

looking in gnutls-2.8.2/lib/Makefile.am, we find
""
libgnutlsxx_la_LDFLAGS = -no-undefined \
        -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
""

These are defined in gnutls-2.8.2/lib/m4/hooks.m4 as
""
  # Library code modified:                              REVISION++
  # Interfaces changed/added/removed:   CURRENT++       REVISION=0
  # Interfaces added:                             AGE++
  # Interfaces removed:                           AGE=0
  AC_SUBST(LT_CURRENT, 40)
  AC_SUBST(LT_REVISION, 9)
  AC_SUBST(LT_AGE, 14)

  # Used when creating the Windows libgnutls-XX.def files.
  DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}`
  AC_SUBST(DLL_VERSION)
""


I don't know how other packages do this, but if you want to learn, try this.
- look at *.so.* in /usr/lib, /usr/local/lib, etc
- find ones with unexpected numbers
- look at those packages to see how they do it
- GNU packages are more likely to do it the libtool way than others

These things are easy to find; I'd never read the gnutls build scripts before nor even known what TLS stood for.

Later,
Daniel




reply via email to

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