On 19 May 2010 22:14, Warren Young wrote:
> On 5/19/2010 10:49 AM, Warren Young wrote:
>>
>> Maybe one could be lashed up with nm?
>
> I took a stab at this, and the results are almost unreadable, even to me,
> and I know the details of everything that changed in this release. nm tells
> you a lot of irrelevant stuff like object addresses, new outside
> dependencies (e.g. getopt() and mysql_ssl_set() in 3.1), new methods...
> None of that indicates ABI breakage.
With nm from GNU binutils, or elfutils:
--extern-only will suppress printing of static and members of anon
namespaces, which can't be linked to anyway.
--defined-only should prevent printing of unresolved dependencies such
as getopt etc.
You can ignore the addresses and just check that every external symbol
defined in the old lib is still defined in the new lib. Additional
symbols in the new are OK.
This certainly isn't a guarantee, but it's a start.