Lets suppose there are two loaded kernel modules that have exported two different functions as identically named symbols. For example:
MyFn
in MyLKM1.ko
MyFn
in MyLKM2.ko
How does a third kernel module ( e.g. MyLKM3.ko
) disambiguate between these two external symbols when it wants to import the 'MyFn` symbol in order to do its code relocation when it gets loaded?
P.S. I am not looking for instructions how to build kernel modules. I am looking for a description of the mechanism for ambiguous external symbol resolution in LKMs as ELF files.