diff -rupN Python-2.7.13/Lib/distutils/cygwinccompiler.py Python-2.7.13-new/Lib/distutils/cygwinccompiler.py --- Python-2.7.13/Lib/distutils/cygwinccompiler.py 2017-01-21 01:46:08.570585519 +0100 +++ Python-2.7.13-new/Lib/distutils/cygwinccompiler.py 2017-01-21 01:46:11.324556116 +0100 @@ -421,7 +421,8 @@ def get_versions(): from distutils.spawn import find_executable import re - gcc_exe = find_executable('gcc') + gcc_exe = os.environ.get('CC') or find_executable('gcc') + ld_exe = os.environ.get('LD') or find_executable('ld') if gcc_exe: out = os.popen(gcc_exe + ' -dumpversion','r') out_string = out.read() @@ -431,9 +432,11 @@ def get_versions(): gcc_version = LooseVersion(result.group(1)) else: gcc_version = None + out = os.popen(gcc_exe + ' --print-prog-name ld','r') + ld_exe = out.read().decode('ascii').split()[0] + out.close() else: gcc_version = None - ld_exe = find_executable('ld') if ld_exe: out = os.popen(ld_exe + ' -v','r') out_string = out.read() @@ -445,7 +448,7 @@ def get_versions(): ld_version = None else: ld_version = None - dllwrap_exe = find_executable('dllwrap') + dllwrap_exe = os.environ.get('DLLWRAP') or find_executable('dllwrap') if dllwrap_exe: out = os.popen(dllwrap_exe + ' --version','r') out_string = out.read()