[Python-Dev] VS 11 Express is Metro only.

"Martin v. Löwis" martin at v.loewis.de
Thu May 31 18:47:50 CEST 2012


>     I hereby predict that Microsoft will revert this decision, and that
>     VS Express 11 will be able to build CPython.
>
> But will it be able to target Windows XP?

I have now tried, and it seems that the chances are really low (unless 
you use the VS 2010 tool chain, in which case you can just as well use
VS 2010 Express in the first place).

The VS 11 linker sets the "OS version" and "subsystem version" to 6.0,
which means that XP refuses to recognize the files as executables. While
the /subsystem switch allows to specify a different version, specifying
5.02 (needed for XP) gives an error that this is smaller than the
minimum supported version. So for that reason alone, VS 11 cannot
produce binaries that work on XP, but that would be easy to change for
MS.

In addition, the CRT uses various API in its startup code already that
are Vista+. I already mentioned GetTickCount64, which is used to 
initialize the security cookie (for /GS). In addition, TLS is now 
implemented using FlsAlloc to better support fibers, which is also
Vista+. This dependency cannot be easily broken, except to access 
FlsAlloc through LoadLibrary/GetProcAddress or weak externals. There
may be more dependencies on Vista+.

Regards,
Martin


More information about the Python-Dev mailing list