std library hooks
Walter Bright
newshound2 at digitalmars.com
Sat Apr 14 01:36:44 PDT 2012
On 4/14/2012 1:01 AM, Vladimir Panteleev wrote:
> On Saturday, 14 April 2012 at 02:46:03 UTC, Walter Bright wrote:
>> all assert(exp) does when it trips is call a function in the library. If you
>> provide your own version of that function, the one in the library won't be
>> linked in.
>
> This indeed works, but how exactly? In what case does the linker pick one
> function (which?) and in what case does it complain about duplicate symbol
> definitions? Do they have to be in different libraries?
The linker works by looking in the library for any unresolved symbols. The
symbol is not unresolved if you supply your own explicitly in an object file
explicitly supplied to the linker.
The linker knows nothing about D, C, assembler, or anything but resolving symbols.
More information about the Digitalmars-d
mailing list