mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except when necessary.
Patch by Oscar Benjamin.
This commit is contained in:
commit
6a9c0e50a9
3 changed files with 21 additions and 7 deletions
|
@ -48,13 +48,14 @@ cygwin in no-cygwin mode).
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import copy
|
import copy
|
||||||
from subprocess import Popen, PIPE
|
from subprocess import Popen, PIPE, check_output
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from distutils.ccompiler import gen_preprocess_options, gen_lib_options
|
from distutils.ccompiler import gen_preprocess_options, gen_lib_options
|
||||||
from distutils.unixccompiler import UnixCCompiler
|
from distutils.unixccompiler import UnixCCompiler
|
||||||
from distutils.file_util import write_file
|
from distutils.file_util import write_file
|
||||||
from distutils.errors import DistutilsExecError, CompileError, UnknownFileError
|
from distutils.errors import (DistutilsExecError, CCompilerError,
|
||||||
|
CompileError, UnknownFileError)
|
||||||
from distutils import log
|
from distutils import log
|
||||||
from distutils.version import LooseVersion
|
from distutils.version import LooseVersion
|
||||||
from distutils.spawn import find_executable
|
from distutils.spawn import find_executable
|
||||||
|
@ -294,11 +295,15 @@ class Mingw32CCompiler(CygwinCCompiler):
|
||||||
else:
|
else:
|
||||||
entry_point = ''
|
entry_point = ''
|
||||||
|
|
||||||
self.set_executables(compiler='gcc -mno-cygwin -O -Wall',
|
if is_cygwingcc():
|
||||||
compiler_so='gcc -mno-cygwin -mdll -O -Wall',
|
raise CCompilerError(
|
||||||
compiler_cxx='g++ -mno-cygwin -O -Wall',
|
'Cygwin gcc cannot be used with --compiler=mingw32')
|
||||||
linker_exe='gcc -mno-cygwin',
|
|
||||||
linker_so='%s -mno-cygwin %s %s'
|
self.set_executables(compiler='gcc -O -Wall',
|
||||||
|
compiler_so='gcc -mdll -O -Wall',
|
||||||
|
compiler_cxx='g++ -O -Wall',
|
||||||
|
linker_exe='gcc',
|
||||||
|
linker_so='%s %s %s'
|
||||||
% (self.linker_dll, shared_option,
|
% (self.linker_dll, shared_option,
|
||||||
entry_point))
|
entry_point))
|
||||||
# Maybe we should also append -mthreads, but then the finished
|
# Maybe we should also append -mthreads, but then the finished
|
||||||
|
@ -393,3 +398,8 @@ def get_versions():
|
||||||
"""
|
"""
|
||||||
commands = ['gcc -dumpversion', 'ld -v', 'dllwrap --version']
|
commands = ['gcc -dumpversion', 'ld -v', 'dllwrap --version']
|
||||||
return tuple([_find_exe_version(cmd) for cmd in commands])
|
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')
|
||||||
|
|
|
@ -102,6 +102,7 @@ Thomas Bellman
|
||||||
Alexander “Саша” Belopolsky
|
Alexander “Саша” Belopolsky
|
||||||
Eli Bendersky
|
Eli Bendersky
|
||||||
David Benjamin
|
David Benjamin
|
||||||
|
Oscar Benjamin
|
||||||
Andrew Bennetts
|
Andrew Bennetts
|
||||||
Andy Bensky
|
Andy Bensky
|
||||||
Bennett Benson
|
Bennett Benson
|
||||||
|
|
|
@ -13,6 +13,9 @@ Core and Builtins
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #12641: Avoid passing "-mno-cygwin" to the mingw32 compiler, except
|
||||||
|
when necessary. Patch by Oscar Benjamin.
|
||||||
|
|
||||||
- Issue #5845: In site.py, only load readline history from ~/.python_history
|
- Issue #5845: In site.py, only load readline history from ~/.python_history
|
||||||
if no history has been read already. This avoids double writes to the
|
if no history has been read already. This avoids double writes to the
|
||||||
history file at shutdown.
|
history file at shutdown.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue