ABI break checking in frameworks

Albert Astals Cid aacid at kde.org
Wed Oct 26 21:54:33 UTC 2016


Hi there, one of the things we say we maintain but we don't really have 
autotests for is maintaining ABI compatibility.

I recently learnt about abigail, a tool that for checking ABI compatibility.

Basically we are interested in two tools abidw and abidiff

abidw creates an XML file with the ELF representation of a file (compiled with 
debug mode)

abidiff diffs two XML files and gives you an output on what changed

The obvious problem with this an CI is that you need the XML file of the 
previous version to check if something has changed.

Also one can not simply commit the XML file to the repository for everyone to 
use since different compilers can have different ABIs (i.e. gcc 5 broke the C+
+11 ABI).

I see two ways forward:

1) Have a helper repository where we upload the XML files of the ABIs exactly 
produced by the CI nodes and then make CI check against that on every build.

This still has some issues on how we actually fill that helper repository 
initially, but i guess it could be done


2) Make it a manual step (sorry David), we could have a script that for every 
release downloads and compiles the tarballs of it and the previous version and 
runs abidiff on them.


Currently I am kind of leaning towards 2, but that is not optimal either since 
you need a system that can compile all the frameworks (and actually compile 
them twice).


Does anyone have other ideas or thoughts on it?

Cheers,
  Albert


More information about the Kde-frameworks-devel mailing list