On 7/15/24 22:39, Sami Tolvanen wrote: > On Wed, Jul 10, 2024 at 7:30 AM Petr Pavlu <petr.pavlu@xxxxxxxx> wrote: >> On 6/17/24 19:58, Sami Tolvanen wrote: >>> The first 12 patches of this series add a small tool for computing >>> symbol versions from DWARF, called gendwarfksyms. When passed a list >>> of exported symbols, the tool generates an expanded type string >>> for each symbol, and computes symbol CRCs similarly to genksyms. >>> gendwarfksyms is written in C and uses libdw to process DWARF, mainly >>> because of the existing support for C host tools that use elfutils >>> (e.g., objtool). >> >> In addition to calculating CRCs of exported symbols, genksyms has other >> features which I think are important. >> >> Firstly, the genksyms tool has a human-readable storage format for input >> data used in the calculation of symbol CRCs. Setting the make variable >> KBUILD_SYMTYPES enables dumping this data and storing it in *.symtypes >> files. >> >> When a developer later modifies the kernel and wants to check if some >> symbols have changed, they can take these files and feed them as >> *.symref back to genksyms. This allows the tool to provide an actual >> reason why some symbols have changed, instead of just printing that >> their CRCs are different. >> >> Is there any plan to add the same functionality to gendwarfksyms, or do >> you envison that people will use libabigail, Symbol-Type Graph, or >> another tool for making this type of comparison? > > gendwarfksyms also uses human-readable input for the CRC calculations, > and it prints out the input strings with the --debug option. I plan to > hook this up to KBUILD_SYMTYPES in v2. It should be convenient enough > to simply compare the pretty-printed output with diff, so I'm not sure > if a built-in comparison option is needed. Any other DWARF analysis > tool can be used to spot the differences too, as you mentioned.