mirror of https://github.com/python/cpython
Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except when necessary.
Patch by Oscar Benjamin.
This commit is contained in:
parent
1a67bee701
commit
3c678c33a7
|
@ -48,7 +48,7 @@ cygwin in no-cygwin mode).
|
|||
import os
|
||||
import sys
|
||||
import copy
|
||||
from subprocess import Popen, PIPE
|
||||
from subprocess import Popen, PIPE, check_output
|
||||
import re
|
||||
|
||||
from distutils.ccompiler import gen_preprocess_options, gen_lib_options
|
||||
|
@ -294,13 +294,18 @@ class Mingw32CCompiler(CygwinCCompiler):
|
|||
else:
|
||||
entry_point = ''
|
||||
|
||||
self.set_executables(compiler='gcc -mno-cygwin -O -Wall',
|
||||
compiler_so='gcc -mno-cygwin -mdll -O -Wall',
|
||||
compiler_cxx='g++ -mno-cygwin -O -Wall',
|
||||
linker_exe='gcc -mno-cygwin',
|
||||
linker_so='%s -mno-cygwin %s %s'
|
||||
% (self.linker_dll, shared_option,
|
||||
entry_point))
|
||||
if self.gcc_version < '4' or is_cygwingcc():
|
||||
no_cygwin = ' -mno-cygwin'
|
||||
else:
|
||||
no_cygwin = ''
|
||||
|
||||
self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
|
||||
compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
|
||||
compiler_cxx='g++%s -O -Wall' % no_cygwin,
|
||||
linker_exe='gcc%s' % no_cygwin,
|
||||
linker_so='%s%s %s %s'
|
||||
% (self.linker_dll, no_cygwin,
|
||||
shared_option, entry_point))
|
||||
# Maybe we should also append -mthreads, but then the finished
|
||||
# dlls need another dll (mingwm10.dll see Mingw32 docs)
|
||||
# (-mthreads: Support thread-safe exception handling on `Mingw32')
|
||||
|
@ -393,3 +398,8 @@ def get_versions():
|
|||
"""
|
||||
commands = ['gcc -dumpversion', 'ld -v', 'dllwrap --version']
|
||||
return tuple([_find_exe_version(cmd) for cmd in commands])
|
||||
|
||||
def is_cygwingcc():
|
||||
'''Try to determine if the gcc that would be used is from cygwin.'''
|
||||
out_string = check_output(['gcc', '-dumpmachine'])
|
||||
return out_string.strip().endswith(b'cygwin')
|
||||
|
|
|
@ -101,6 +101,7 @@ Thomas Bellman
|
|||
Alexander “Саша” Belopolsky
|
||||
Eli Bendersky
|
||||
David Benjamin
|
||||
Oscar Benjamin
|
||||
Andrew Bennetts
|
||||
Andy Bensky
|
||||
Bennett Benson
|
||||
|
|
|
@ -71,6 +71,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except
|
||||
when necessary. Patch by Oscar Benjamin.
|
||||
|
||||
- Properly initialize all fields of a SSL object after allocation.
|
||||
|
||||
- Issue #4366: Fix building extensions on all platforms when --enable-shared
|
||||
|
|
Loading…
Reference in New Issue