Re: Handling macro change in an exported library header
"Joe Smith" <firstname.lastname@example.org> writes:
> If the change is a define in a header, where said define is *not* used
> in the library itself, then the libraries binary will not change. Thus
> physically it would have the same API and ABI.
If the new behavior of the header file is required for the new foo
function to be called correctly, then the ABI of foo changed and the
SONAME needs to be increased.
The ABI of a library is not only the the signatures of its exposed
functions but also how the arguments are interpreted. If the
interpretation of an argument changes in a non-backward-compatible
fashion, that's an ABI change.
Russ Allbery (email@example.com) <http://www.eyrie.org/~eagle/>