kabi一致的话,可以保证insmod ko在不同的kernel 版本之间,因此kabi一致性对用户很重要,可以参考下面的tool来check 两个版本之间的kernel abi是否一致
https://github.com/skozina/kabi-dw
从下面这段spec文件中可以看出是如何check abi的
%if %{with_kabichk}
# create the kABI metadata for use in packaging
# NOTENOTE: the name symvers is used by the rpm backend
# NOTENOTE: to discover and run the /usr/lib/rpm/fileattrs/kabi.attr
# NOTENOTE: script which dynamically adds exported kernel symbol
# NOTENOTE: checksums to the rpm metadata provides list.
# NOTENOTE: if you change the symvers name, update the backend too
echo "**** GENERATING kernel ABI metadata ****"
gzip -c9 < Module.symvers > $RPM_BUILD_ROOT/boot/symvers-$KernelVer.gz
echo "**** kABI checking is enabled in kernel SPEC file. ****"
chmod 0755 $RPM_SOURCE_DIR/check-kabi
if [ -e $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour ]; then
cp $RPM_SOURCE_DIR/Module.kabi_%{_target_cpu}$Flavour $RPM_BUILD_ROOT/Module.kabi
$RPM_SOURCE_DIR/check-kabi -k $RPM_BUILD_ROOT/Module.kabi -s Module.symvers || exit 1
rm $RPM_BUILD_ROOT/Module.kabi # for now, don't keep it around.
else
echo "**** NOTE: Cannot find reference Module.kabi file. ****"
fi
%endif %{with_kabichk}