<< | Thread Index | >> ]    [ << | Date Index | >> ]

Subject: RE: Pkcipe on Redhat 8.0
From: "Dick St.Peters" <stpeters,AT,NetHeaven,DOT,com>
Date: Thu, 19 Dec 2002 21:44:50 +0100
In-reply-to: <1040302503.6002.82.camel@monster.omnifarious.org>

jg voisine writes:

> thanks for your answer but when i compile cipe and make install i have the
> error
> depmod : *** Unresolved symbols in /lib/modules/2.4.18-14/misc/cipcb.o

Most likely your kernel was compiled with CONFIG_MODVERSIONS set, but
your module was compiled without it.  You can check this like so ...

    extreme# grep Using /proc/ksyms 
    00000001 Using_Versions

The existence of the "Using_Versions" symbol means the running kernel
was built with CONFIG_MODVERSIONS set.

    extreme# grep printk /proc/ksyms
    c0115270 printk_R1b7d4074
    extreme# nm /lib/modules/`uname -r`/net/cipcb.o | grep printk
         U printk

MODVERSIONS causes the "_R1b7d4074" to be appended to the symbol
exported by the kernel, but the module was built without MODVERSIONS
and has no appendage on its symbol.  This makes depmod complain:

    extreme# depmod
    depmod: *** Unresolved symbols in 

(It should also make insmod refuse to load the module, but this system
not only has the module loaded, it has CIPE tunnels running.  More
recent insmod versions won't load modules with non-matching symbols.) 

Note: Contrary to an earlier posting, the symbol extensions do NOT
make modules dependent on specific kernels - they do exactly the
opposite.  It is when CONFIG_MODVERSIONS is not set that modules must
match the kernel version.  When CONFIG_MODVERSIONS is set, the
extensions are computed from only the things the module actually
depends on.  Then a module built for one kernel version can be used
with a different kernel version as long as the things the module
depends on don't change.

Dick St.Peters, stpeters,AT,NetHeaven,DOT,com 
Gatekeeper, NetHeaven, Saratoga Springs, NY

<< | Thread Index | >> ]    [ << | Date Index | >> ]