Python in sci/tech applications

Robert Kern robert.kern at gmail.com
Fri Nov 3 16:39:50 CET 2006


Magnus Lycka wrote:
> robert wrote:
>> When one follows ..
>> http://docs.python.org/inst/tweak-flags.html#SECTION000622000000000000000 
>> http://www.zope.org/Members/als/tips/win32_mingw_modules
>>
>> ..this seems only to cover the immediate python dll issues. What happens 
>> with the C runtime libraries? You'll bind 2 different C-RTLs (DLLs) 
>> etc.? And what happens for example with heap objects created with one 
>> C-RTL and deleted/free'd with the other?
> 
> As far as I understand, there should be only one runtime library
> involved. MinGW relies on the Microsoft runtime. It seems some
> people have had problems using MSVCRT71 with MinGW, but I'm sure
> that e.g. the Enthought people can explain those issues, since they
> bundle MinGW in their Python 2.4 distribution.

No, there are two if you use an unmodified Mingw distribution. Mingw is built 
around MSVCRT.dll . For many extensions, this doesn't cause a problem since 
things like FILE pointer don't cross C runtime boundaries. One can edit gcc's 
spec file to make it use MSVCR71.dll . However, Mingw's headers are still 
written for MSVCRT.dll and Microsoft changed some of the internal details that 
they rely upon. For many (most?) extensions, this won't matter, either. C++ 
extensions using iostreams have a problem, IIRC. Unfortunately, neither approach 
works for all extensions. It may even be the case that some extensions won't 
work under *either* method.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco




More information about the Python-list mailing list