carta

abipkgdiff(1) on Linux

The text b8951affd00d, as Debian 12 (Bookworm) shipped it.

compare ABIs of ELF files in software packages abipkgdiff compares the Application Binary Interfaces (ABI) of the ELF binaries contained in two software packages. The software package formats currently supported are Deb, RPM, tar archives (either compressed or not) and plain directories that contain binaries. For a comprehensive ABI change report that includes changes about function and variable sub-types, the two input packages must be accompanied with their debug information packages that contain debug information either in DWARF or in CTF formats. Please note however that some packages contain binaries that embed the debug information directly in a section of said binaries. In those cases, obviously, no separate debug information package is needed as the tool will find the debug information inside the binaries. By default, abipkgdiff uses debug information in DWARF format, if present, otherwise it compares binaries interfaces using debug information in CTF format, if present, finally, if neither is found, it uses only ELF symbols to report which of them were added or removed. This tool uses the libabigail library to analyze the binary as well as its associated debug information. Here is its general mode of operation. When instructed to do so, a binary and its associated debug information is read and analyzed. To that effect, libabigail analyzes by default the descriptions of the types reachable by the interfaces (functions and variables) that are visible outside of their translation unit. Once that analysis is done, an Application Binary Interface Corpus is constructed by only considering the subset of types reachable from interfaces associated to ELF symbols that are defined and exported by the binary. It’s that final ABI corpus which libabigail considers as representing the ABI of the analyzed binary. Libabigail then has capabilities to generate textual representations of ABI Corpora, compare them, analyze their changes and report about them.

Flags it lists

abipkgdiff(1) on Linux now