Do you know the bug of EXPORT_SYMBOL()
Navy
navych at 126.com
Fri Jul 24 01:49:42 EDT 2015
Hi
To my understanding, EXPORT_SYMBOL() is used to export a symbol in
kernel/modules. The the address of the all sysbols is in /proc/kallsyms.
Only symbols exported by EXPORT_SYMBOL() is listed its CRC information
in Module.symvers. So I think the CRC is the key to export a symbol.
I do an experiment:
---mdir
|
|---Mod1
| |---mod1.c
| |---Makefile
|
|---Mod2
|---mod2.c
|---Makefile
mod1.c define function *void myfunc(void)* and exported by EXPORT_SYMBOL()
and the CRC info is showed in Module.symvers. mod2.c reference *myfunc* and
compiled successfully. BUT when mod2.ko is insmoded, "unknown symbol" is
complained. mod2.ko CAN'T BE INSMOD.
I solve this problem by the method in Documentation/kbuild/modules.txt and
heard this is a bug from kernel 2.6.
Why this bug is not be fixed?
More information about the Kernelnewbies
mailing list