unknown struct with genksyms

unknown struct with genksyms

Post by johan Henselman » Tue, 26 Dec 1995 04:00:00



I noticed that while compiling a new kernel, I got the message that some
structs are missing:

make[1]: Entering directory `/usr/local/src/linux/kernel'
gcc -D__KERNEL__ -I/usr/local/src/linux/include -Wall -Wstrict-prototypes
-02 -fomit-frame-pointer -pipe -m486 -E -D__GENKSYMS__ ksyms.c |
/sbin/genksyms -w /usr/local/src/linux/include/linux/modules
genksyms "ksyms.c": warning: symbol [do_mmap]: unknown 'struct vfsmount'
genksyms "ksyms.c": warning: symbol [scsi_register]: unknown 'struct
scsi_disk'  

Does anyone know what these error messages mean? Everything seems to
compile OK, but I was wondering if something was missing..

Regards,

Johan

Johan Henselmans

http://www.netsense.nl
Netsense vof, Nieuwe Herengracht 149 1011 SG Amsterdam

Nieuwe Herengracht 147d 1011 SG Amsterdam

 
 
 

unknown struct with genksyms

Post by Bjorn Ekwal » Wed, 27 Dec 1995 04:00:00



>I noticed that while compiling a new kernel, I got the message that some
>structs are missing:

>make[1]: Entering directory `/usr/local/src/linux/kernel'
>gcc -D__KERNEL__ -I/usr/local/src/linux/include -Wall -Wstrict-prototypes
>-02 -fomit-frame-pointer -pipe -m486 -E -D__GENKSYMS__ ksyms.c |
>/sbin/genksyms -w /usr/local/src/linux/include/linux/modules
>genksyms "ksyms.c": warning: symbol [do_mmap]: unknown 'struct vfsmount'
>genksyms "ksyms.c": warning: symbol [scsi_register]: unknown 'struct
>scsi_disk'  

>Does anyone know what these error messages mean? Everything seems to
>compile OK, but I was wondering if something was missing..

Actually, they are _not_ error messages; it says "warning: ..."

When genksyms tries to expand all definitions down to their basic
building blocks, it finds that the definitions for some types are
not present.
The cure is to include all the relevant header files into ksyms.c,
so that the missing definitions will be included.

The result for the current case is that the CRC computation will proceed
without the missing struct definitions. This won't cause any problem...

When someone updates ksyms.c with the missing *.h files, the CRCs will
change, and insmod will think that the symbols don't have the same interface
as before, even though they actually still do...