On 11 Nov 2009, at 11:54, Marco van de Voort wrote:
In our previous episode, Jeppe Johansen said:
This syntax is not possible. The external 'xxx' name 'proc' is
there for a reason,
for systems with multiple linker namespaces. Moreover there is
already an
enormous codebase that uses this.
I don't know if I'm making a fool of myself, but what systems?
Skimming
the sources, I couldn't find any mention of it in the ELF writers. An
external symbol will simply be linked to the first occurrence of a
matching symbol in the first shared or static object(unless there's
some
name mangling going on that I didn't spot). The COFF writer already
does
it the way I suggested.
Windows, Darwin, and afaik Solaris.
The library name is not used on Darwin. You also can't tell the static
linker that a name should only be looked up in a particular library.
It simply goes through all libraries/frameworks. Once it finds a
library/framework that contains the symbol, I think it does record in
the final binary from which library/framework the symbol comes though
(so that if at run time multiple libraries export the symbol, the same
one will always be chosen).
Jonas
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel