Permalink
Browse files

UPDATE: gcc-4 series do not support -mno-cygwin option.

  • Loading branch information...
1 parent 43b05fd commit 9dd7c7b8ad826beefbbc0c10ff457c62f1be223d @pearu pearu committed Oct 16, 2010
Showing with 27 additions and 9 deletions.
  1. +11 −7 numpy/distutils/fcompiler/gnu.py
  2. +16 −2 numpy/distutils/mingw32ccompiler.py
@@ -224,7 +224,17 @@ def version_match(self, version_string):
v = self.gnu_version_match(version_string)
if not v or v[0] != 'gfortran':
return None
- return v[1]
+ v = v[1]
+ if v>='4.':
+ # gcc-4 series releases do not support -mno-cygwin option
+ pass
+ else:
+ # use -mno-cygwin flag for gfortran when Python is not Cygwin-Python
+ if sys.platform == 'win32':
+ for key in ['version_cmd', 'compiler_f77', 'compiler_f90',
+ 'compiler_fix', 'linker_so', 'linker_exe']:
+ self.executables[key].append('-mno-cygwin')
+ return v
# 'gfortran --version' results:
# XXX is the below right?
@@ -248,12 +258,6 @@ def version_match(self, version_string):
'linker_exe' : [None, "-Wall"]
}
- # use -mno-cygwin flag for g77 when Python is not Cygwin-Python
- if sys.platform == 'win32':
- for key in ['version_cmd', 'compiler_f77', 'compiler_f90',
- 'compiler_fix', 'linker_so', 'linker_exe']:
- executables[key].append('-mno-cygwin')
-
module_dir_switch = '-J'
module_include_switch = '-I'
@@ -104,23 +104,37 @@ def __init__ (self,
# bad consequences, like using Py_ModuleInit4 instead of
# Py_ModuleInit4_64, etc... So we add it here
if get_build_architecture() == 'AMD64':
- self.set_executables(
+ if self.gcc_version < "4.":
+ self.set_executables(
compiler='gcc -g -DDEBUG -DMS_WIN64 -mno-cygwin -O0 -Wall',
compiler_so='gcc -g -DDEBUG -DMS_WIN64 -mno-cygwin -O0 -Wall -Wstrict-prototypes',
linker_exe='gcc -g -mno-cygwin',
linker_so='gcc -g -mno-cygwin -shared')
+ else:
+ # gcc-4 series releases do not support -mno-cygwin option
+ self.set_executables(
+ compiler='gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall',
+ compiler_so='gcc -g -DDEBUG -DMS_WIN64 -O0 -Wall -Wstrict-prototypes',
+ linker_exe='gcc -g',
+ linker_so='gcc -g -shared')
else:
if self.gcc_version <= "3.0.0":
self.set_executables(compiler='gcc -mno-cygwin -O2 -w',
compiler_so='gcc -mno-cygwin -mdll -O2 -w -Wstrict-prototypes',
linker_exe='g++ -mno-cygwin',
linker_so='%s -mno-cygwin -mdll -static %s'
% (self.linker, entry_point))
- else:
+ elif self.gcc_version < "4.":
self.set_executables(compiler='gcc -mno-cygwin -O2 -Wall',
compiler_so='gcc -mno-cygwin -O2 -Wall -Wstrict-prototypes',
linker_exe='g++ -mno-cygwin',
linker_so='g++ -mno-cygwin -shared')
+ else:
+ # gcc-4 series releases do not support -mno-cygwin option
+ self.set_executables(compiler='gcc -O2 -Wall',
+ compiler_so='gcc -O2 -Wall -Wstrict-prototypes',
+ linker_exe='g++ ',
+ linker_so='g++ -shared')
# added for python2.3 support
# we can't pass it through set_executables because pre 2.2 would fail
self.compiler_cxx = ['g++']

0 comments on commit 9dd7c7b

Please sign in to comment.