A new approach to verify changes in the Linux kernel ABI

From: Ponomarenko Andrey
Date: Mon Mar 14 2016 - 12:43:36 EST


Hello,

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

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.