ABI Compatibility for Dummies

sinny's picture

Sinny has been working at Red Hat from more than 2 years as an Associate Software Engineer.  As part of work she investigated a lot on ELF binaries and working on Libabigail (https://sourceware.org/libabigail/) project which aims at finding ABI incompatibilities between two binaries. She started contributing to Fedora by sending package review request of Libabigail and by giving talk during Fedora 21 release party (http://sinny.io/2015/01/16/fedora-21-release-party-bangalore/). She is also KDE contributor from past 4 years.

Application Binary Interface (ABI)  is the interface between two program modules, one of which is often a library or operating system, at the level of machine code.

As an application developer it is very important to be aware of how to keep ABI stable for interfaces like libraries they provide/consume in their application. Incompatible  ABI can lead to undesired behaviour in your application and to correct it you may need to recompile whole application or even modify source code.

Lot of developers are not informed about ABI and intention of this talk is to make them understand how important it is and help them maintain ABI compatible application . This talk will cover -
* Brief introduction to what  ABI is and why is it important
* Benefits of having compatible ABI
* How you can avoid breaking ABI in libraries you write
* C/C++ example showing ABI interfaces exposed from a library
* Existing tools checking Binary compatibility

Slides: https://github.com/sinnykumari/slides/raw/master/fudcon2015/abi_compatibility.pdf

Session Track: 
Session Time Slot(s): 
Experience level: