diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -65,6 +65,7 @@ from distutils.command.build_py import b 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 @@ else: 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.