Martin Fiers added the comment:

This also affects our software. I agree with Dan (danmbox): I don't understand; 
so many people depend on it and yet an out-of-the-box solution doesn't work.

I don't want to break the distutils package of our users because we use mingw. 
Within one Python script, I managed to fix it using this before the setup call:

if isWindows():
        """
        Fix bug in cygwinccompiler: removed -mno-cygwin. This is fixed in 
cygwinccompiler_new.
        We hacked the distutils.ccompiler : def new_compiler : It uses 
sys.modules to fetch the compiler
        By modifying the sys.modules, we can choose our own compiler version.
        (this is a bug that's out there for quite some time)
        """
        import cygwinccompiler_new
        import distutils.cygwinccompiler
        import sys
        sys.modules["distutils.cygwinccompiler"] = cygwinccompiler_new

..if I then later run setup(...), it will use my new cygwinccompiler_new, that 
has the '-mno-cygwin' line removed.

However, when you want to install new packages using pip from the command-line, 
I cannot find a suitable fix (except if I would replace the 
distutils.cygwinccompiler before pip'ing, then put it back). For afaik, 
distutils cannot be virtualenv'ed, right? So we cannot even fix the issue in a 
virtual environment.

If it is not possible to find out what version of gcc implemented it first; 
can't you simply use a pragmatic solution and run
"gcc -mno-cygwin": if it gives an error, then remove the option. That would 
need the least testing and would fix the issue.

----------
nosy: +Martin.Fiers

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue12641>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to