Kernel versioning question
Michael O'Donnell
mod+gnhlug at std.com
Fri Jan 31 16:25:14 EST 2003
>I was wondering if any knew a what to make sense
>of the number that gets cat'd on to symbols when
>using versioning. for example:
>[root at chimay root]# grep printk /proc/ksyms
>c0114678 printk_R1b7d4074
>
>Is there an easy way to decode this R1b7d4074
>number? I looked at the macros that I believe
>create the code but they are ugly.
There are a few things I'd point you at if you
really (yeesh!) want to understand that gunk:
- RTFM about genksyms, then build a kernel and save all
the glop that goes flying by, then look in that glop
for usages of genksyms.
- Have a (second) look at these macros:
EXPORT_SYMBOL() __MODULE_STRING() __MODULE_STRING_1()
__SYMBOL_VERSION() __VERSIONED_SYMBOL()
__VERSIONED_SYMBOL1() __VERSIONED_SYMBOL2()
...after reading pages like these:
http://gcc.gnu.org/onlinedocs/cpp/Stringification.html#Stringification
http://gcc.gnu.org/onlinedocs/cpp/Argument-Prescan.html#Argument%20Prescan
- Then have a look in the neighborhood of the s_show() op
in kernel/module.c - the mechanism by which s_show() is
invoked is (ahem!) less than obvious, BTW...
Probably best to wear a shower cap so you don't
stain the upholstery when your head explodes.
More information about the gnhlug-discuss
mailing list