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