In 2016, many improvements happened in the ABI static analysis framework that is Libabigail. In this article we’ll present how fedabipkgdiff, a new Libabigail tool can help Fedora users, developers and others to analyze ABI changes of libraries carried by packages of the distribution.
Continue reading “ABI change analysis of Fedora packages”
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”
Since their 4.8 version, the C and C++ compilers of the GNU Compiler Collection are equipped with built-in memory and data race errors detectors named Address Sanitizer and Thread Sanitizer.
This article intends to quickly walk you through the highlights of these two interesting tools.
Spotting common memory access errors …
Continue reading “Address and Thread Sanitizers in GCC”
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.
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
Functions changes summary: 0 Removed,
Variables changes summary: 0 Removed,
Continue reading “Comparing ABIs for Compatibility with libabigail – Part 2”
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.
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”