[lkml]   [2001]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Insmod gives unsresolved symbol
It was a dark and stormy night.  Suddenly "Amit Kulkarni" <> wrote:

> Hi
> I am trying to write a device driver which calls
> certain functions/variables from the kernel
> (e.g. ipv4_explicit_null from
> /usr/src/linux/net/mpls/mpls_init.c )
> But when I try to insert the module using insmod it
> gives me an error saying unresolved symbol
> ipv4_explicit_null
> thinking the kernel did not export the said symbol I
> added EXPORT_SYMBOL(ipv4_explicit_null) in the file
> mpls_init.c
> Now I can see the symbol in
> but my problem still persists.
> Am I exporting symbols properly or is there anything
> else that needs to be done .

I assume that you're trying to build a module outside the regular kernel build
system. You can do this if you are carefull.

Look carefully at the symbol in the file. Is it EXACTLY the
"ipv4_explicit_null" symbol? Are the extra characters after the "...null" part
of the name? Any extra characters mean that you've got module versioning turned
on in your kernel, so exported symbols have their name mangled somewhat as C++
would do (this is to implement some protection since modules from one kernel
version probably won't work with another kernel version). The easiest solution
to this is to recompile your kernel with module versioning turned off.

Tommy Reynolds | mailto: <>
Red Hat, Inc., Embedded Development Services | Phone: +1.256.704.9286
307 Wynn Drive NW, Huntsville, AL 35805 USA | FAX: +1.256.837.3839
Senior Software Developer | Mobile: +1.919.641.2923
[unhandled content-type:application/pgp-signature]
 \ /
  Last update: 2005-03-22 13:12    [W:0.036 / U:5.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site