DIP45: fixing the dllimport/dllexport issue

deadalnix deadalnix at gmail.com
Sat Sep 7 21:19:10 PDT 2013


On Saturday, 7 September 2013 at 21:41:01 UTC, Benjamin Thaut 
wrote:
> I don't agree if that statement. If you have three libs. lib1, 
> lib2 and lib3. And lib2 and lib3 link statically against lib1 
> you are going to get linker errors because both lib2 and lib3 
> contain the symbols of lib1. And you don't have any options to 
> avoid that (unless you got into the source of lib1 and remove 
> all export attributes, which might not even be possible because 
> you don't have the source)

And you should have an error, especially is you pass object from 
one side to the other.

typeid won't match (which will create a mess in the runtime), and 
worse, struct layout may not match (hello memory corruption).

If the problem is that big, we can still have a -noexport flag or 
something, but that doesn't seems really safe to me.


More information about the Digitalmars-d mailing list