DLL symbol identity
Martin Nowak via Digitalmars-d
digitalmars-d at puremagic.com
Mon May 11 07:21:01 PDT 2015
On Friday, 8 May 2015 at 05:26:01 UTC, Benjamin Thaut wrote:
> And Step 2) at program start up time. This means that symbols
> don't have identity. If different shared libraries provide the
> same symbol it may exist multiple times and multiple instances
> might be in use.
Can you elaborate a bit on that?
How would you run into such an ODR violation, by linking against
multiple import libraries that contain the same symbol?
> Any opinions on this? As both options would be quite some work
> I don't wan't to start blindly with one and risking it being
> rejected later in the PR.
Last time we thought about this we came to the conclusion that
global uniqueness for symbols isn't possible, even on Unix when
you have 2 comdat/weak typeinfos for template classes in 2
different shared libraries but not in the executable. I suggested
that we could wrap typeinfos for template types in something like
TypeInfo_Comdat that would do a equality comparison based on name
and type size.
More information about the Digitalmars-d
mailing list