[Python-Dev] compiling python2.5 (msys+mingw+wine) - giving up using msvcr80 assemblies for now

"Martin v. Löwis" martin at v.loewis.de
Thu Jan 22 22:09:51 CET 2009


>  mrmmm... how? apps won't end up loading _both_ libpython2.5.dll _and_
> python25.dll (or libpython2.N.dll and python2N.dll) will they?

Of course they will! python.exe (say, the official one) loads
python25.dll. Then, an import is made of a ming-wine extension, say
foo.pyd, which is linked with libpython2.5.dll, which then gets loaded.
Voila, you have two interpreters in memory, with different type objects,
memory heaps, and so on.

This was always the problem when an old extension module (say, from 2.4)
was loaded into a new interpreter (say, 2.5), then you load both
python25.dll and python24.dll, causing crashes. To prevent this issue,
Python now checks whether the module is linked with an incorrect
pythonxy.dll, but won't catch that libpython2.5.dll is also a VM.

>> (of course, msvcr80 is irrelevant, because Python had never been using
>> that officially)
> 
>  oh?  i saw the PCbuild8 and thought it was.  oh that's even better -
> if python2.5 only officially support msvcrt whew.

No, Python 2.5 is linked with msvcr71.dll. PCbuild8 was never officially
used.

> ok , i see - python2.6 uses msvcr90.

Correct.

Regards,
Martin


More information about the Python-Dev mailing list