Am 15.06.2010 14:48, schrieb Kristján Valur Jónsson:
What I mean is that a third party software vendor supplies a
foobarapp.pyd and a foobarapp_d.pyd dlls that link to python2x.dll
and python2x_d.dll respectively.  But the latter will have been
compiled to match a certain settings of the objimpl.h header, which
may not match whatever is being used to build the local
python2x_d.dll.  And thus, you get strange and hard to debug linker
errors when trying to load external libraries.

Ok. But your proposed change doesn't fix that, right?

I.e. even with the change, it would *still* depend on objimpl.h (and other) settings what ABI this debug DLL exactly has.

So I think this problem can't really be fixed. Instead, you have to trust that the vendor did the most sensible thing when building foobarapp.pyd, namely activating *just* the debug build.

Then, if you do the same, it will interoperate just fine.

IMHO, it is not good practice to expose an API that changes depending
on preprocessor settings like this.

But there are tons of ABI changes that may happen in a debug build.
If you want to cope with all of them, you really need to recompile the source of all extensions.

Regards,
Martin
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to