diff options
author | Steve Dower <steve.dower@microsoft.com> | 2016-01-16 20:39:10 (GMT) |
---|---|---|
committer | Steve Dower <steve.dower@microsoft.com> | 2016-01-16 20:39:10 (GMT) |
commit | 1d329413fc403757998373dde3316c5f78f2f6fb (patch) | |
tree | 2def5f2438a0dea691fdd208b776461073056bac /Lib/distutils/_msvccompiler.py | |
parent | e248f6875b7a39bf03fa8b03f13ce0199c04a784 (diff) | |
download | cpython-1d329413fc403757998373dde3316c5f78f2f6fb.zip cpython-1d329413fc403757998373dde3316c5f78f2f6fb.tar.gz cpython-1d329413fc403757998373dde3316c5f78f2f6fb.tar.bz2 |
Issue #25850: Use cross-compilation by default for 64-bit Windows.
Diffstat (limited to 'Lib/distutils/_msvccompiler.py')
-rw-r--r-- | Lib/distutils/_msvccompiler.py | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/Lib/distutils/_msvccompiler.py b/Lib/distutils/_msvccompiler.py index 10a9ffd..d0ba7d6 100644 --- a/Lib/distutils/_msvccompiler.py +++ b/Lib/distutils/_msvccompiler.py @@ -125,11 +125,11 @@ def _find_exe(exe, paths=None): return exe # A map keyed by get_platform() return values to values accepted by -# 'vcvarsall.bat'. Note a cross-compile may combine these (eg, 'x86_amd64' is -# the param to cross-compile on x86 targetting amd64.) +# 'vcvarsall.bat'. Always cross-compile from x86 to work with the +# lighter-weight MSVC installs that do not include native 64-bit tools. PLAT_TO_VCVARS = { 'win32' : 'x86', - 'win-amd64' : 'amd64', + 'win-amd64' : 'x86_amd64', } # A map keyed by get_platform() return values to the file under @@ -193,19 +193,8 @@ class MSVCCompiler(CCompiler) : raise DistutilsPlatformError("--plat-name must be one of {}" .format(tuple(PLAT_TO_VCVARS))) - # On x86, 'vcvarsall.bat amd64' creates an env that doesn't work; - # to cross compile, you use 'x86_amd64'. - # On AMD64, 'vcvarsall.bat amd64' is a native build env; to cross - # compile use 'x86' (ie, it runs the x86 compiler directly) - if plat_name == get_platform() or plat_name == 'win32': - # native build or cross-compile to win32 - plat_spec = PLAT_TO_VCVARS[plat_name] - else: - # cross compile from win32 -> some 64bit - plat_spec = '{}_{}'.format( - PLAT_TO_VCVARS[get_platform()], - PLAT_TO_VCVARS[plat_name] - ) + # Get the vcvarsall.bat spec for the requested platform. + plat_spec = PLAT_TO_VCVARS[plat_name] vc_env = _get_vc_env(plat_spec) if not vc_env: |