[arch-general] A new approach to verify changes in the Linux kernel ABI

Ponomarenko Andrey andrewponomarenko at yandex.ru
Mon Mar 14 16:56:54 UTC 2016


I've released new versions of the abi-compliance-checker and abi-dumper tools that are now able to easily verify compatibility of changes in the Linux kernel ABI: https://github.com/lvc/

1. The kernel should be compiled with CONFIG_DEBUG_INFO=y and CONFIG_DEBUG_INFO_REDUCED=n additional options.

2. Create ABI dump for vmlinux:

    abi-dumper vmlinux -vnum 4.4.5 -kernel-export -o ABI.dump
    (warning: may take about 5Gb of RAM and about half an hour to analyze debug info on a powerful computer)

3. Compare ABI dumps to produce report:

    abi-compliance-checker -l kernel -bin -old ABI-0.dump -new ABI-1.dump

The new -kernel-export option of the abi-dumper is introduced to dump only public exported symbols of the kernel, i.e. declared in the ksymtab/ksymtab_gpl binary sections + system calls.

I've applied this approach on the recent releases of the Linux kernel (2.6.36-4.4.5) as an example and prepared the compatibility table here: http://abi-laboratory.pro/tracker/timeline/linux/

The distribution specific changes in the kernel can be verified in the same way to prevent/minimize ABI differences with upstream or between sequential releases.

Thank you.

More information about the arch-general mailing list