std library hooks
Vladimir Panteleev
vladimir at thecybershadow.net
Sat Apr 14 02:40:06 PDT 2012
On Saturday, 14 April 2012 at 08:37:36 UTC, Walter Bright wrote:
> 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.
So object files take priority over library files? Or does the
linker search in command-line order (and object files simply
happen to come first)?
More information about the Digitalmars-d
mailing list