Dodji Seketeli

Dodji is a Software Engineer, member of the Platform Tools Group, at Red Hat. He mainly hacks on low level ABI analysis tools these days.

Recent Posts

abipkgdiff: Ensuring ABI compliance for shared ELF library packages

Introduction

Detecting and reviewing changes in the application binary interface (aka ABI) of ELF shared libraries has never been easier, notably since the creation of the Abigail project.  As you might already know, a tool like abidiff now allows users to analyse the cause of ABI changes and assess their impact on the forward compatibility of the shared library being considered.  It is less practical, though, to use that tool on a binary (RPM) package, because it expects individual libraries.

Thus, this article presents abipkgdiff, a new Libabigail tool aimed at detecting incompatible ABI changes between shared libraries (or binaries in general) carried by binary packages.

Continue reading “abipkgdiff: Ensuring ABI compliance for shared ELF library packages”

Share

Comparing ABIs for Compatibility with libabigail – Part 2

In the first article of this series of two, we ran abidiff to compare the ABIs of the libstdc++.so shared libraries from RHEL 6.5 and RHEL 7.  In this article, we are going to analyze the resulting ABI change report that was emitted.

circles

Analyzing the results

The report starts with a header that summarizes the ABI differences:

Functions changes summary: 0 Removed, 10 Changed (1260 filtered out), 112 Added functions
Variables changes summary: 0 Removed, 3 Changed (72 filtered out), 97 Added variables

From the:

Functions changes summary: 0 Removed,

and:

Variables changes summary: 0 Removed,

Continue reading “Comparing ABIs for Compatibility with libabigail – Part 2”

Share

Comparing ABIs for Compatibility with libabigail – Part 1

Introduction:  The challenges around ABI compatibility

Ensuring the forward compatibility of application binary interfaces (ABIs) exposed by native shared libraries has been a kind of black art for quite some time, due to many factors.

circles

The scope of the term ABI is quite broad, even when it is restricted to shared software libraries. It encompasses low level concepts like the binary format, the processor instructions set used in the binary, the calling convention of the operating system on a given processor architecture, as well as higher level considerations like the layout and size of the data types used by the entry points of the library.

Continue reading “Comparing ABIs for Compatibility with libabigail – Part 1”

Share