CRC calculation in Module.symvers

From: Shakthi Kannan
Date: Wed Sep 07 2011 - 01:58:53 EST


Greetings!

I would like to know as to:

1. How the CRC is computed for an exported symbol present in
Module.symvers file, and
2. Given a kernel .c file, how can I obtain the CRC checksums for a symbol.

For linux-3.0.2 (example), I compiled with CONFIG_MODVERSIONS=y, and
running 'make' built vmlinux, and generated the Module.symvers file. I
believe genksyms is used to create the Module.symvers file?

I had referred the "Kernel Symbols and CONFIG_MODVERSIONS"
documentation [1] written by Mark McLoughlin. I tried the following in
the top-level kernel sources:

$ gcc -E -D__GENKSYMS__ -DCONFIG_MODVERSIONS -DEXPORT_SYMTAB
crypto/api.c -I/tmp/linux-3.0.2/include
-I/tmp/linux-3.0.2/arch/x86/include | ./scripts/genksyms/genksyms

and I get the following error output:

=== Output ===

/tmp/linux-3.0.2/include/linux/jiffies.h:43:42: error: division by zero in #if
In file included from /tmp/linux-3.0.2/include/linux/tracepoint.h:19:0,
from /tmp/linux-3.0.2/include/linux/module.h:18,
from crypto/api.c:22:
/tmp/linux-3.0.2/include/linux/rcupdate.h:160:2: error: #error
"Unknown RCU implementation specified to kernel configuration"
In file included from /tmp/linux-3.0.2/include/linux/module.h:21:0,
from crypto/api.c:22:
/tmp/linux-3.0.2/arch/x86/include/asm/module.h:59:2: error: #error
unknown processor family

=== End ===

The documentation for genksyms is old, and now there is no -k option?

Appreciate any inputs in this regard,

Thanks!

SK

[1] Kernel Symbols and CONFIG_MODVERSIONS.
http://www.skynet.ie/~mark/pub/symbols.txt

--
Shakthi Kannan
http://www.shakthimaan.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/