# HG changeset patch # User Bryan O'Sullivan # Date 1341631195 25200 # Node ID d13f47c800fdc52206bd4cc707a46d48773c8b78 # Parent 2b1c786742301bb757226a898fafe595a90462fb setup: disable -mno-cygwin if building under mingw32 This gcc option has been deprecated since at least 2009 (gcc 4.4), and it causes compilations to fail entirely with gcc 4.6.x. Upstream distutils bug: http://bugs.python.org/issue12641 diff -r 2b1c78674230 -r d13f47c800fd setup.py --- a/setup.py Thu Jun 28 08:45:38 2012 -0500 +++ b/setup.py Fri Jul 06 20:19:55 2012 -0700 @@ -65,6 +65,7 @@ from distutils.command.install_scripts import install_scripts from distutils.spawn import spawn, find_executable from distutils.ccompiler import new_compiler +from distutils import cygwinccompiler from distutils.errors import CCompilerError, DistutilsExecError from distutils.sysconfig import get_python_inc from distutils.version import StrictVersion @@ -429,6 +430,20 @@ extmodules.append(Extension('mercurial.osutil', ['mercurial/osutil.c'], extra_link_args=osutil_ldflags)) +# the -mno-cygwin option has been deprecated for years +Mingw32CCompiler = cygwinccompiler.Mingw32CCompiler + +class HackedMingw32CCompiler(cygwinccompiler.Mingw32CCompiler): + def __init__(self, *args, **kwargs): + Mingw32CCompiler.__init__(self, *args, **kwargs) + for i in 'compiler compiler_so linker_exe linker_so'.split(): + try: + getattr(self, i).remove('-mno-cygwin') + except ValueError: + pass + +cygwinccompiler.Mingw32CCompiler = HackedMingw32CCompiler + if sys.platform.startswith('linux') and os.uname()[2] > '2.6': # The inotify extension is only usable with Linux 2.6 kernels. # You also need a reasonably recent C library.