libtool
[Top][All Lists]
Advanced

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

Re: libtool versioning and ABI


From: Ralf Wildenhues
Subject: Re: libtool versioning and ABI
Date: Tue, 11 Aug 2009 19:35:18 +0200
User-agent: Mutt/1.5.20 (2009-08-09)

Hello Joseph,

* Joseph Garvin wrote on Wed, Aug 05, 2009 at 11:32:31PM CEST:
> I read a description of libtool's versioning here:
> 
> http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
> 
> What's confusing to me is that this way of handling versioning doesn't seem
> to pay attention to ABI. It mentions bumping numbers for interface changes
> (API) but not for changing size of data structures, editing the contents of
> inline functions, etc.

The term "interfaces" is defined in the node 'info Libtool Interfaces'.
It currently doesn't mention inline functions or data structures.  A
patch to list them would be good; but especially for C, warnings should
be added that you should better just refrain from exposing data objects
directly to your users at all: it's better to use an opaque handle, that
way you don't have to deal with an incompatible change if you change
your object layout or contents.  Furthermore, on w32, the automatic
dll exporting feature of binutils ld doesn't work with data objects, so
you can easily run into ugly troubles there.  (Never mind that libltdl
is doing this, too, which was a big mistake.)

Also, in C (unlike in C++), inline functions are a bit of a problem
because of the various inline semantics, so I would recommend against
them, too.

Cheers,
Ralf




reply via email to

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