[Python-Dev] VS 11 Express is Metro only. (original) (raw)
"Martin v. Löwis" martin at v.loewis.de
Thu May 31 18:47:50 CEST 2012
- Previous message: [Python-Dev] VS 11 Express is Metro only.
- Next message: [Python-Dev] Accepting PEP 405 (Python Virtual Environments)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [Python-Dev] VS 11 Express is Metro only.
- Next message: [Python-Dev] Accepting PEP 405 (Python Virtual Environments)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]