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.