On 2025-01-05 12:36, Hairy Pixels via fpc-pascal wrote:
On Jan 5, 2025 at 4:43:39 PM, Jonas Maebe via fpc-pascal
<fpc-pascal@lists.freepascal.org> wrote:

That said, Darwin also uses two-level namespaces:

https://blog.darlinghq.org/2018/07/mach-o-linking-and-loading-tricks.html#two-level-symbol-namespace
. However, it does not do this through name mangling. The linker
simply
encodes in the generated binary in which library/framework it found
the
symbol at link time. Then, at run time, the dynamic linker will only
look for that symbol in that specific library (unless you force a
flat/single namespace through an environment variable).

Thank you for your very detailed response.

It sounds like maybe the external library name is only useful for DLLs
and maybe the Darwin two level namespaces?

As you might have noticed, it's simply a more general solution allowing to cover all target platforms supporting dynamic libraries in a more or less equal way.

Tomas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to