Garth Cummings writes:
Hi Duane,
On Jul 18, 2007, at 8:43 AM, Duane Murphy wrote:
I wanted to make sure I understood how symbols interact in kext's.
If I
use a generally available library and another kext also uses that
library, will those symbols interact with each other when the kext
are
loaded? That is it possible that my kext will accidentally link to
the
symbols in the other kext using a the same library?
Not sure what you mean by "interact", but I'll take a stab at
answering the question I think you're asking.
The kernel is one big monolithic namespace. All symbols in KEXTs must
be unique across the system as they are linked into that one
namespace. If a KEXT defines a symbol that already exists, the KEXT
will not load.
Are you really sure about this? I thought the relocations were done
by kextload in userspace, and the only namespaces that are shared
are those of your kext and what it depends on.
If there is truely a master list of all loaded symbols and their
locations, can it be accessed for debugging purposes rather than
using kextload -s and add-symbol-file?