[arch-general] A new approach to verify changes in the Linux kernel ABI
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.
More information about the arch-general