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