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. But this is the sort of thing Linux distributions
need to deal with all the time, when I get an update for a library I don't
usually have to redownload everything that depends on it too, so I figure
somewhere ABI has to be paid attention to. Is libtool not part of this
process or am I misinterpreting how the versioning works? In C++ at least
adding a private member to a class isn't considered an interface change in
the usual parlance, but perhaps libtool considers this to be an interface
change since it would be in C (where you only have structs so all members
are public)? Though if that were the case it seems like you'd have to
pessimistically assume ABI is always broken which doesn't sound right
either..

How does libtool versioning handle ABI breakage?
_______________________________________________
http://lists.gnu.org/mailman/listinfo/libtool

Reply via email to