Libabigail is an infrastructure for semantic analysis of ELF binaries containing C or C++ programs. It powers command line tools like ‘abidiff’, which let users compare ABI changes between two different versions of a given ELF binary by analyzing just the binary and its ancillary debug information.
The result of the binary comparison is a kind of hierarchical ‘diff’ which shows changes up to the types of the interfaces that constitute the ABI of an ELF program.
This infrastructure allows software distributors (among other actors) to build specific tooling to review and analyze ABI changes that might occur whenever a shared library package is updated. That tooling might even be tailored to automatically prevent packages with unwanted incompatible ABI changes to reach users.
This talk intends to present Libabigail, its architecture, its capabilities, its current limits, its associated tools and how it might be used to further build highly tailored ABI verification tooling. The talk will also explore the potential improvement paths that are currently identified, and from the feedback of the audience, explore improvement paths that are not yet identified.