Hello,
That said, a dwarf based checker tool should be able to do as good a job (maybe a bit better because report is very informative and it may pick up compiler alignments or padding options).So, Nicholas was kind enough to send me the two Linux Kernel binaries that he built with the tiny little interface change that we were discussing earlier. Here is what the abidiff[1] tools says about that interface change:
Thanks Nicholas and Dodji for this great example, for comparison I think it would be nice to share the example run with kabi-dw too. kabi-dw first dumps and unifies all type information into a set of text files, the unification takes a significant time. Then the two sets of these text files can be compared.
An example run would look like: $ time ~/Code/kabi-dw/kabi-dw generate -o abi1 vmlinux.abi1 Generating symbol defs from vmlinux.abi1... real 0m29.057s user 0m13.929s sys 0m14.862s $ time ~/Code/kabi-dw/kabi-dw generate -o abi2 vmlinux.abi2 Generating symbol defs from vmlinux.abi2... real 0m29.134s user 0m13.961s sys 0m14.921s $ time ~/Code/kabi-dw/kabi-dw compare abi1 abi2Changes detected in: home/npiggin/src/linux.vectors/mm/memory.c/struct--blah.txt
Inserted: +0x0 int y; Shifted: -0x0 int x; +0x4 int x; real 0m0.176s user 0m0.135s sys 0m0.040sThe size of the generated text files with all the relevant type information is as follows:
$ du -hs abi1 16M abi1 $ find abi1 -type f | wc -l 3162 Warm regards, -Stanislav