本文共 1216 字,大约阅读时间需要 4 分钟。
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}
转载地址:http://vsnmi.baihongyu.com/