you probably have heard several reports of 2.1.18 breaking
MODVERSIONS or giving undefined symbols in modules.
A quick look at module.h shows actually a major rework of the
file, so I tried recompiling modules 2.1.13 under the .18
kernel; insmod does not build, here's what happens:
-------------------------------------------------------------------
make[1]: Entering directory `/usr/new/kernel/modules-2.1.13/insmod'
gcc -O6 -pipe -fomit-frame-pointer -Wall -c insmod.c -o insmod.o
In file included from insmod.h:29,
from insmod.c:71:
/usr/include/linux/module.h:79: warning: `MOD_AUTOCLEAN' redefined
insmod.c:42: warning: this is the location of the previous definition
insmod.c:228: warning: `struct symbol_table' declared inside parameter
list
insmod.c:228: warning: its scope is only this definition or declaration,
insmod.c:228: warning: which is probably not what you want.
insmod.c: In function `main':
insmod.c:1008: sizeof applied to an incomplete type
insmod.c:1009: sizeof applied to an incomplete type
insmod.c:1013: dereferencing pointer to incomplete type
insmod.c:1013: sizeof applied to an incomplete type
insmod.c:1014: sizeof applied to an incomplete type
insmod.c:1018: dereferencing pointer to incomplete type
insmod.c:1019: dereferencing pointer to incomplete type
insmod.c:1021: dereferencing pointer to incomplete type
insmod.c:1023: sizeof applied to an incomplete type
insmod.c:1029: dereferencing pointer to incomplete type
insmod.c:1030: dereferencing pointer to incomplete type
insmod.c:1037: increment of pointer to unknown structure
insmod.c:1037: arithmetic on pointer to an incomplete type
insmod.c:1044: structure has no member named `module'
insmod.c:1077: warning: passing arg 5 of `init_module' from incompatible
pointer
type
insmod.c:369: warning: `symp' might be used uninitialized in this
function
insmod.c: In function `findsym':
insmod.c:1207: `SYM_MAX_NAME' undeclared (first use this function)
insmod.c:1207: (Each undeclared identifier is reported only once
insmod.c:1207: for each function it appears in.)
insmod.c: At top level:
insmod.c:1317: `MOD_MAX_NAME' undeclared here (not in a function)
insmod.c: In function `ksyms':
insmod.c:1588: structure has no member named `addr'
insmod.c:1590: warning: int format, long int arg (arg 3)
make[1]: *** [insmod.o] Error 1
make[1]: Leaving directory `/usr/new/kernel/modules-2.1.13/insmod'
------------------------------------------------------------------
I can't really be of any further help here...
Cheers,
--alessandro <asuardi@uninetcom.it> <asuardi@it.oracle.com>
Linux kernel-2.1.17 libc-5.4.17 gcc-2.7.2.1 binutils-2.7.0.3