当我们编译启用了CONFIG_MODVERSIONS
的内核时,会生成一个名为Module.symvers
的文件。
其样本内容为
0x445532c1 usb_serial_generic_submit_read_urb drivers/usb/serial/usbserial EXPORT_SYMBOL_GPL
0xc47c22e8 mpt_deregister drivers/message/fusion/mptbase EXPORT_SYMBOL
0xdd76c3a2 sata_pmp_error_handler drivers/ata/libata EXPORT_SYMBOL_GPL
如何生成CRC?
When a symbol table is found in the source, the symbol will be
expanded to its full definition, where all struct's, unions,
enums and typedefs will be expanded down to their basic part,
recursively. This final string will then be used as input to a
CRC algorithm that will give an integer that will change as
soon as any of the included definitions changes, for this symbol.
-http://www.skynet.ie/~mark/pub/symbols.txt
我想知道,
如果函数定义保持不变,但在内部,API可能会调用其定义更改的函数,该怎么办? CRC会改变吗?