Re: Do you know the bug of EXPORT_SYMBOL()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 24, 2015 at 11:19 AM, Navy <navych@xxxxxxx> wrote:
> 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.

Your Mod1 must be live before you load Mod2.

When you load your module, the exported symbols would be present in a
separate section in the elf file, you can see that using readelf,
something like __ksymtab_. When the module is loaded these symbols are
noted so that find_symbol can locate these.

When you load a module dependent on those symbols, the load_module
function would use the find_symbol to get that symbol.

CRC would be checked in check_version after the symbol has been found,
even then only if you have CONFIG_MODVERSIONS set in your config.


> 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?
>
It's a long way from 2.6 now. can you send something about this "bug"?
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies@xxxxxxxxxxxxxxxxx
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



-- 
        ---P.K.S

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux