diff -Naur a/config.guess b/config.guess --- a/config.guess 2014-05-31 22:58:40.000000000 +0400 +++ b/config.guess 2014-06-04 10:17:02.215000000 +0400 @@ -866,6 +866,9 @@ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; + amd64:MSYS*:*:* | x86_64:MSYS*:*:*) + echo x86_64-unknown-msys + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; diff -Naur a/configure b/configure --- a/configure 2014-05-31 22:58:40.000000000 +0400 +++ b/configure 2014-06-04 10:17:02.230600000 +0400 @@ -3183,6 +3183,9 @@ *-*-cygwin*) ac_sys_system=Cygwin ;; + *-*-msys*) + ac_sys_system=Msys + ;; *) # for now, limit cross builds to known configurations MACHDEP="unknown" @@ -3207,6 +3210,7 @@ case $MACHDEP in linux*) MACHDEP="linux2";; cygwin*) MACHDEP="cygwin";; + msys*) MACHDEP="msys";; darwin*) MACHDEP="darwin";; atheos*) MACHDEP="atheos";; irix646) MACHDEP="irix6";; @@ -3226,7 +3230,7 @@ _host_cpu=$host_cpu esac ;; - *-*-cygwin*) + *-*-cygwin*|*-*-msys*) _host_cpu= ;; *) @@ -5272,7 +5276,7 @@ if test -z "$enable_shared" then case $ac_sys_system in - CYGWIN* | atheos*) + CYGWIN* | atheos* | MSYS*) enable_shared="yes";; *) enable_shared="no";; @@ -5345,6 +5349,10 @@ LDLIBRARY='libpython$(VERSION).dll.a' DLLLIBRARY='libpython$(VERSION).dll' ;; + MSYS*) + LDLIBRARY='libpython$(VERSION).dll.a' + DLLLIBRARY='msys-python$(VERSION).dll' + ;; SunOS*) LDLIBRARY='libpython$(VERSION).so' BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)' @@ -5397,7 +5405,7 @@ esac else # shared is disabled case $ac_sys_system in - CYGWIN*) + CYGWIN* | MSYS*) BLDLIBRARY='$(LIBRARY)' LDLIBRARY='libpython$(VERSION).dll.a' ;; @@ -5874,6 +5882,7 @@ case $ac_sys_system in BeOS*) LN="ln -s";; CYGWIN*) LN="ln -s";; + MSYS*) LN="cp -pR";; atheos*) LN="ln -s";; *) LN=ln;; esac @@ -8122,7 +8131,7 @@ *) SO=.sl;; esac ;; - CYGWIN*) SO=.dll;; + CYGWIN* | MSYS*) SO=.dll;; *) SO=.so;; esac else @@ -8279,7 +8288,7 @@ SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport' LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';; - CYGWIN*) + CYGWIN* | MSYS*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base" LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";; atheos*) @@ -8375,7 +8384,7 @@ LINKFORSHARED="-Xlinker --export-dynamic" fi;; esac;; - CYGWIN*) + CYGWIN* | MSYS*) if test $enable_shared = "no" then LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)' @@ -8399,7 +8408,7 @@ if test ! "$LIBRARY" = "$LDLIBRARY" then case $ac_sys_system in - CYGWIN*) + CYGWIN* | MSYS*) # Cygwin needs CCSHARED when building extension DLLs # but not when building the interpreter DLL. CFLAGSFORSHARED='';; @@ -9650,7 +9659,7 @@ #define HAVE_PTHREAD_SIGMASK 1 _ACEOF case $ac_sys_system in - CYGWIN*) + CYGWIN* | MSYS*) $as_echo "#define HAVE_BROKEN_PTHREAD_SIGMASK 1" >>confdefs.h diff -Naur a/configure.ac b/configure.ac --- a/configure.ac 2014-05-31 22:58:40.000000000 +0400 +++ b/configure.ac 2014-06-04 10:17:02.277400000 +0400 @@ -319,6 +319,9 @@ *-*-cygwin*) ac_sys_system=Cygwin ;; + *-*-msys*) + ac_sys_system=Msys + ;; *) # for now, limit cross builds to known configurations MACHDEP="unknown" @@ -343,6 +346,7 @@ case $MACHDEP in linux*) MACHDEP="linux2";; cygwin*) MACHDEP="cygwin";; + msys*) MACHDEP="msys";; darwin*) MACHDEP="darwin";; atheos*) MACHDEP="atheos";; irix646) MACHDEP="irix6";; @@ -362,7 +366,7 @@ _host_cpu=$host_cpu esac ;; - *-*-cygwin*) + *-*-cygwin*|*-*-msys*) _host_cpu= ;; *) @@ -821,7 +825,7 @@ if test -z "$enable_shared" then case $ac_sys_system in - CYGWIN* | atheos*) + CYGWIN* | atheos* | MSYS*) enable_shared="yes";; *) enable_shared="no";; @@ -877,6 +881,10 @@ LDLIBRARY='libpython$(VERSION).dll.a' DLLLIBRARY='libpython$(VERSION).dll' ;; + MSYS*) + LDLIBRARY='libpython$(VERSION).dll.a' + DLLLIBRARY='msys-python$(VERSION).dll' + ;; SunOS*) LDLIBRARY='libpython$(VERSION).so' BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)' @@ -929,7 +937,7 @@ esac else # shared is disabled case $ac_sys_system in - CYGWIN*) + CYGWIN* | MSYS*) BLDLIBRARY='$(LIBRARY)' LDLIBRARY='libpython$(VERSION).dll.a' ;; @@ -1008,6 +1016,7 @@ case $ac_sys_system in BeOS*) LN="ln -s";; CYGWIN*) LN="ln -s";; + MSYS*) LN="cp -pR";; atheos*) LN="ln -s";; *) LN=ln;; esac @@ -1910,7 +1919,7 @@ *) SO=.sl;; esac ;; - CYGWIN*) SO=.dll;; + CYGWIN* | MSYS*) SO=.dll;; *) SO=.so;; esac else @@ -2061,7 +2070,7 @@ SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport' LDCXXSHARED='$(CXX) -Wl,-G,-Bexport';; - CYGWIN*) + CYGWIN* | MSYS*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base" LDCXXSHARED="g++ -shared -Wl,--enable-auto-image-base";; atheos*) @@ -2153,7 +2162,7 @@ LINKFORSHARED="-Xlinker --export-dynamic" fi;; esac;; - CYGWIN*) + CYGWIN* | MSYS*) if test $enable_shared = "no" then LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)' @@ -2175,7 +2184,7 @@ if test ! "$LIBRARY" = "$LDLIBRARY" then case $ac_sys_system in - CYGWIN*) + CYGWIN* | MSYS*) # Cygwin needs CCSHARED when building extension DLLs # but not when building the interpreter DLL. CFLAGSFORSHARED='';; @@ -2585,7 +2594,7 @@ fi AC_CHECK_FUNCS(pthread_sigmask, [case $ac_sys_system in - CYGWIN*) + CYGWIN* | MSYS*) AC_DEFINE(HAVE_BROKEN_PTHREAD_SIGMASK, 1, [Define if pthread_sigmask() does not work on your system.]) ;; diff -Naur a/Lib/ctypes/__init__.py b/Lib/ctypes/__init__.py --- a/Lib/ctypes/__init__.py 2014-05-31 22:58:38.000000000 +0400 +++ b/Lib/ctypes/__init__.py 2014-06-04 10:17:02.293000000 +0400 @@ -1,6 +1,6 @@ """create and manipulate C data types in Python""" -import os as _os, sys as _sys +import os as _os, sys as _sys, sysconfig as _sysconfig __version__ = "1.1.0" @@ -447,8 +447,8 @@ if _os.name in ("nt", "ce"): pythonapi = PyDLL("python dll", None, _sys.dllhandle) -elif _sys.platform == "cygwin": - pythonapi = PyDLL("libpython%d.%d.dll" % _sys.version_info[:2]) +elif _sys.platform in ['cygwin', 'msys']: + pythonapi = PyDLL(_sysconfig.get_config_var('DLLLIBRARY')) else: pythonapi = PyDLL(None) diff -Naur a/Lib/ctypes/test/test_loading.py b/Lib/ctypes/test/test_loading.py --- a/Lib/ctypes/test/test_loading.py 2014-05-31 22:58:38.000000000 +0400 +++ b/Lib/ctypes/test/test_loading.py 2014-06-04 10:17:02.293000000 +0400 @@ -11,6 +11,8 @@ libc_name = "coredll" elif sys.platform == "cygwin": libc_name = "cygwin1.dll" +elif sys.platform == "msys": + libc_name = "msys-2.0.dll" else: libc_name = find_library("c") diff -Naur a/Lib/ctypes/util.py b/Lib/ctypes/util.py --- a/Lib/ctypes/util.py 2014-06-04 10:16:36.069400000 +0400 +++ b/Lib/ctypes/util.py 2014-06-04 10:17:02.293000000 +0400 @@ -84,7 +84,7 @@ continue return None -elif sys.platform == "cygwin": +elif sys.platform in ['cygwin', 'msys']: def find_library(name): for libdir in ['/usr/lib', '/usr/local/lib']: for libext in ['lib%s.dll.a' % name, 'lib%s.a' % name]: @@ -284,7 +284,11 @@ elif sys.platform == "cygwin": print cdll.LoadLibrary("cygbz2-1.dll") print find_library("crypt") - print cdll.LoadLibrary("cygcrypt-0.dll") + print cdll.LoadLibrary("cygcrypt-0.dll") + elif sys.platform == "msys": + print cdll.LoadLibrary("msys-bz2-1.dll") + print find_library("crypt") + print cdll.LoadLibrary("msys-crypt-0.dll") else: print cdll.LoadLibrary("libm.so") print cdll.LoadLibrary("libcrypt.so") diff -Naur a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py --- a/Lib/distutils/ccompiler.py 2014-05-31 22:58:38.000000000 +0400 +++ b/Lib/distutils/ccompiler.py 2014-06-04 10:17:02.308600000 +0400 @@ -895,6 +895,7 @@ # on a cygwin built python we can use gcc like an ordinary UNIXish # compiler ('cygwin.*', 'unix'), + ('msys.*', 'unix'), ('os2emx', 'emx'), # OS name mappings @@ -934,6 +935,8 @@ "Microsoft Visual C++"), 'cygwin': ('cygwinccompiler', 'CygwinCCompiler', "Cygwin port of GNU C Compiler for Win32"), + 'msys': ('cygwinccompiler', 'CygwinCCompiler', + "MSYS port of GNU C Compiler for Win32"), 'mingw32': ('cygwinccompiler', 'Mingw32CCompiler', "Mingw32 port of GNU C Compiler for Win32"), 'bcpp': ('bcppcompiler', 'BCPPCompiler', diff -Naur a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py --- a/Lib/distutils/command/build_ext.py 2014-05-31 22:58:38.000000000 +0400 +++ b/Lib/distutils/command/build_ext.py 2014-06-04 10:17:02.308600000 +0400 @@ -221,7 +221,7 @@ # for extensions under Cygwin and AtheOS Python's library directory must be # appended to library_dirs - if sys.platform[:6] == 'cygwin' or sys.platform[:6] == 'atheos': + if sys.platform[:6] == 'cygwin' or sys.platform[:4] == 'msys' or sys.platform[:6] == 'atheos': if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")): # building third party extensions self.library_dirs.append(os.path.join(sys.prefix, "lib", @@ -723,7 +723,7 @@ # don't extend ext.libraries, it may be shared with other # extensions, it is a reference to the original list return ext.libraries + [pythonlib] - elif sys.platform[:6] == "cygwin": + elif sys.platform[:6] == "cygwin" or sys.platform[:4] == "msys": template = "python%d.%d" pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) diff -Naur a/Lib/distutils/tests/support.py b/Lib/distutils/tests/support.py --- a/Lib/distutils/tests/support.py 2014-05-31 22:58:38.000000000 +0400 +++ b/Lib/distutils/tests/support.py 2014-06-04 10:17:02.308600000 +0400 @@ -73,7 +73,7 @@ super(TempdirManager, self).tearDown() while self.tempdirs: d = self.tempdirs.pop() - shutil.rmtree(d, os.name in ('nt', 'cygwin')) + shutil.rmtree(d, os.name in ('nt', 'cygwin', 'msys')) def mkdtemp(self): """Create a temporary directory that will be cleaned up. diff -Naur a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py --- a/Lib/distutils/unixccompiler.py 2014-06-04 10:16:52.636600000 +0400 +++ b/Lib/distutils/unixccompiler.py 2014-06-04 10:17:02.308600000 +0400 @@ -80,7 +80,7 @@ xcode_stub_lib_extension = ".tbd" static_lib_format = shared_lib_format = dylib_lib_format = "lib%s%s" xcode_stub_lib_format = dylib_lib_format - if sys.platform == "cygwin": + if sys.platform in ['cygwin', 'msys']: exe_extension = ".exe" dylib_lib_extension = ".dll.a" diff -Naur a/Lib/distutils/util.py b/Lib/distutils/util.py --- a/Lib/distutils/util.py 2014-05-31 22:58:38.000000000 +0400 +++ b/Lib/distutils/util.py 2014-06-04 10:17:02.308600000 +0400 @@ -96,6 +96,12 @@ m = rel_re.match(release) if m: release = m.group() + elif osname[:4] == "msys": + osname = "msys" + rel_re = re.compile (r'[\d.]+') + m = rel_re.match(release) + if m: + release = m.group() elif osname[:6] == "darwin": import _osx_support, distutils.sysconfig osname, release, machine = _osx_support.get_platform_osx( diff -Naur a/Lib/lib-tk/test/test_tkinter/test_loadtk.py b/Lib/lib-tk/test/test_tkinter/test_loadtk.py --- a/Lib/lib-tk/test/test_tkinter/test_loadtk.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/lib-tk/test/test_tkinter/test_loadtk.py 2014-06-04 10:17:02.324200000 +0400 @@ -18,7 +18,7 @@ def testLoadTkFailure(self): old_display = None - if sys.platform.startswith(('win', 'darwin', 'cygwin')): + if sys.platform.startswith(('win', 'darwin', 'cygwin', 'msys')): # no failure possible on windows? # XXX Maybe on tk older than 8.4.13 it would be possible, diff -Naur a/Lib/sysconfig.py b/Lib/sysconfig.py --- a/Lib/sysconfig.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/sysconfig.py 2014-06-04 10:17:02.324200000 +0400 @@ -598,6 +598,12 @@ m = rel_re.match(release) if m: release = m.group() + elif osname[:4] == "msys": + osname = "msys" + rel_re = re.compile (r'[\d.]+') + m = rel_re.match(release) + if m: + release = m.group() elif osname[:6] == "darwin": import _osx_support osname, release, machine = _osx_support.get_platform_osx( diff -Naur a/Lib/tempfile.py b/Lib/tempfile.py --- a/Lib/tempfile.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/tempfile.py 2014-06-04 10:17:02.324200000 +0400 @@ -467,7 +467,7 @@ _os.close(fd) raise -if _os.name != 'posix' or _os.sys.platform == 'cygwin': +if _os.name != 'posix' or _os.sys.platform == 'cygwin' or _os.sys.platform == 'msys': # On non-POSIX and Cygwin systems, assume that we cannot unlink a file # while it is open. TemporaryFile = NamedTemporaryFile diff -Naur a/Lib/test/regrtest.py b/Lib/test/regrtest.py --- a/Lib/test/regrtest.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/test/regrtest.py 2014-06-04 10:17:02.324200000 +0400 @@ -1357,6 +1357,20 @@ test_ossaudiodev test_socketserver """, + 'msys': + """ + test_bsddb185 + test_bsddb3 + test_curses + test_dbm + test_epoll + test_ioctl + test_kqueue + test_largefile + test_locale + test_ossaudiodev + test_socketserver + """, 'os2emx': """ test_audioop diff -Naur a/Lib/test/test_curses.py b/Lib/test/test_curses.py --- a/Lib/test/test_curses.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/test/test_curses.py 2014-06-04 10:17:02.324200000 +0400 @@ -27,7 +27,7 @@ # If newterm was supported we could use it instead of initscr and not exit @unittest.skipIf(not term or term == 'unknown', "$TERM=%r, calling initscr() may cause exit" % term) -@unittest.skipIf(sys.platform == "cygwin", +@unittest.skipIf(sys.platform in ["cygwin", "msys"], "cygwin's curses mostly just hangs") class TestCurses(unittest.TestCase): diff -Naur a/Lib/test/test_dl.py b/Lib/test/test_dl.py --- a/Lib/test/test_dl.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/test/test_dl.py 2014-06-04 10:17:02.339800000 +0400 @@ -9,6 +9,7 @@ ('/usr/lib/libc.so', 'getpid'), ('/lib/libc.so.6', 'getpid'), ('/usr/bin/cygwin1.dll', 'getpid'), + ('/usr/bin/msys-2.0.dll', 'getpid'), ('/usr/lib/libc.dylib', 'getpid'), ] diff -Naur a/Lib/test/test_mailbox.py b/Lib/test/test_mailbox.py --- a/Lib/test/test_mailbox.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/test/test_mailbox.py 2014-06-04 10:17:02.339800000 +0400 @@ -500,7 +500,7 @@ def setUp(self): TestMailbox.setUp(self) - if os.name in ('nt', 'os2') or sys.platform == 'cygwin': + if os.name in ('nt', 'os2') or sys.platform == 'cygwin' or sys.platform == 'msys': self._box.colon = '!' def test_add_MM(self): diff -Naur a/Lib/test/test_netrc.py b/Lib/test/test_netrc.py --- a/Lib/test/test_netrc.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/test/test_netrc.py 2014-06-04 10:17:02.339800000 +0400 @@ -8,7 +8,7 @@ def make_nrc(self, test_data): test_data = textwrap.dedent(test_data) mode = 'w' - if sys.platform != 'cygwin': + if sys.platform not in ['cygwin', 'msys']: mode += 't' with open(temp_filename, mode) as fp: fp.write(test_data) diff -Naur a/Lib/test/test_shutil.py b/Lib/test/test_shutil.py --- a/Lib/test/test_shutil.py 2014-05-31 22:58:39.000000000 +0400 +++ b/Lib/test/test_shutil.py 2014-06-04 10:17:02.355400000 +0400 @@ -49,7 +49,7 @@ super(TestShutil, self).tearDown() while self.tempdirs: d = self.tempdirs.pop() - shutil.rmtree(d, os.name in ('nt', 'cygwin')) + shutil.rmtree(d, os.name in ('nt', 'cygwin', 'msys')) def write_file(self, path, content='xxx'): """Writes a file in the given path. @@ -79,7 +79,7 @@ self.assertRaises(OSError, shutil.rmtree, filename) @unittest.skipUnless(hasattr(os, 'chmod'), 'requires os.chmod()') - @unittest.skipIf(sys.platform[:6] == 'cygwin', + @unittest.skipIf(sys.platform[:6] == 'cygwin' or sys.platform[:4] == 'msys', "This test can't be run on Cygwin (issue #1071513).") @unittest.skipIf(hasattr(os, 'geteuid') and os.geteuid() == 0, "This test can't be run reliably as root (issue #1076467).") diff -Naur a/Modules/_ctypes/libffi/acinclude.m4 b/Modules/_ctypes/libffi/acinclude.m4 --- a/Modules/_ctypes/libffi/acinclude.m4 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/acinclude.m4 2014-06-04 10:17:02.355400000 +0400 @@ -37,7 +37,7 @@ # Systems known to be in this category are Windows (all variants), # VMS, and Darwin. case "$host_os" in - vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) + vms* | cygwin* | msys* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) ac_cv_func_mmap_dev_zero=no ;; *) ac_cv_func_mmap_dev_zero=yes;; @@ -69,7 +69,7 @@ # above for use of /dev/zero. # Systems known to be in this category are Windows, VMS, and SCO Unix. case "$host_os" in - vms* | cygwin* | pe | mingw* | sco* | udk* ) + vms* | cygwin* | msys* | pe | mingw* | sco* | udk* ) ac_cv_func_mmap_anon=no ;; *) ac_cv_func_mmap_anon=yes;; diff -Naur a/Modules/_ctypes/libffi/aclocal.m4 b/Modules/_ctypes/libffi/aclocal.m4 --- a/Modules/_ctypes/libffi/aclocal.m4 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/aclocal.m4 2014-06-04 10:17:02.355400000 +0400 @@ -724,7 +724,7 @@ beos*) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" ;; -cygwin* | mingw* | os2* | pw32*) +cygwin* | msys* | mingw* | os2* | pw32*) AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" ;; diff -Naur a/Modules/_ctypes/libffi/config.guess b/Modules/_ctypes/libffi/config.guess --- a/Modules/_ctypes/libffi/config.guess 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/config.guess 2014-06-04 10:17:02.355400000 +0400 @@ -849,6 +849,9 @@ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; + amd64:MSYS*:*:* | x86_64:MSYS*:*:*) + echo x86_64-unknown-msys + exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; diff -Naur a/Modules/_ctypes/libffi/configure b/Modules/_ctypes/libffi/configure --- a/Modules/_ctypes/libffi/configure 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/configure 2014-06-04 10:17:02.371000000 +0400 @@ -5876,7 +5876,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -6042,7 +6042,7 @@ *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; - *-*-cygwin* ) + *-*-cygwin* | *-*-msys*) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix @@ -6050,12 +6050,12 @@ ;; esac ;; - *-*-cygwin* ) + *-*-cygwin* | *-*-msys* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; - *-*-cygwin* ) + *-*-cygwin* | *-*-msys* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix @@ -6121,7 +6121,7 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi @@ -6279,7 +6279,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -6595,7 +6595,7 @@ lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in @@ -7088,7 +7088,7 @@ aix*) symcode='[BCDT]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) @@ -9288,7 +9288,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -9386,7 +9386,7 @@ esac ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' @@ -9883,7 +9883,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -9998,7 +9998,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' @@ -10457,7 +10457,7 @@ export_dynamic_flag_spec=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -11410,7 +11410,7 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no @@ -11442,6 +11442,12 @@ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; + msys*) + # MSYS DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' @@ -11476,7 +11482,7 @@ # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; - cygwin*) + cygwin* | msys*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... @@ -12135,7 +12141,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; @@ -13392,7 +13398,7 @@ esac ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC @@ -14974,7 +14980,7 @@ pw32*) export_symbols_cmds_CXX=$ltdll_cmds ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' @@ -15243,7 +15249,7 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no @@ -15274,6 +15280,11 @@ soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; + msys*) + # MSYS DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/msys-/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' @@ -17056,7 +17067,7 @@ # Systems known to be in this category are Windows (all variants), # VMS, and Darwin. case "$host_os" in - vms* | cygwin* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) + vms* | cygwin* | msys* | pe | mingw* | darwin* | ultrix* | hpux10* | hpux11.00) ac_cv_func_mmap_dev_zero=no ;; *) ac_cv_func_mmap_dev_zero=yes;; @@ -17113,7 +17124,7 @@ # above for use of /dev/zero. # Systems known to be in this category are Windows, VMS, and SCO Unix. case "$host_os" in - vms* | cygwin* | pe | mingw* | sco* | udk* ) + vms* | cygwin* | msys* | pe | mingw* | sco* | udk* ) ac_cv_func_mmap_anon=no ;; *) ac_cv_func_mmap_anon=yes;; @@ -17212,7 +17223,7 @@ i?86-*-freebsd* | i?86-*-openbsd*) TARGET=X86_FREEBSD; TARGETDIR=x86 ;; - i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*) + i?86-win32* | i?86-*-cygwin* | i?86-*-msys* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*) TARGET=X86_WIN32; TARGETDIR=x86 # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. # We must also check with_cross_host to decide if this is a native @@ -17244,7 +17255,7 @@ TARGET=X86_DARWIN; TARGETDIR=x86 ;; - x86_64-*-cygwin* | x86_64-*-mingw*) + x86_64-*-cygwin* | x86_64-*-msys* | x86_64-*-mingw*) TARGET=X86_WIN64; TARGETDIR=x86 # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. # We must also check with_cross_host to decide if this is a native diff -Naur a/Modules/_ctypes/libffi/configure.ac b/Modules/_ctypes/libffi/configure.ac --- a/Modules/_ctypes/libffi/configure.ac 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/configure.ac 2014-06-04 10:17:02.386600000 +0400 @@ -125,7 +125,7 @@ i?86-*-freebsd* | i?86-*-openbsd*) TARGET=X86_FREEBSD; TARGETDIR=x86 ;; - i?86-win32* | i?86-*-cygwin* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*) + i?86-win32* | i?86-*-cygwin* | i?86-*-msys* | i?86-*-mingw* | i?86-*-os2* | i?86-*-interix*) TARGET=X86_WIN32; TARGETDIR=x86 # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. # We must also check with_cross_host to decide if this is a native @@ -157,7 +157,7 @@ TARGET=X86_DARWIN; TARGETDIR=x86 ;; - x86_64-*-cygwin* | x86_64-*-mingw*) + x86_64-*-cygwin* | x86_64-*-msys* | x86_64-*-mingw*) TARGET=X86_WIN64; TARGETDIR=x86 # All mingw/cygwin/win32 builds require -no-undefined for sharedlib. # We must also check with_cross_host to decide if this is a native diff -Naur a/Modules/_ctypes/libffi/ltmain.sh b/Modules/_ctypes/libffi/ltmain.sh --- a/Modules/_ctypes/libffi/ltmain.sh 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/ltmain.sh 2014-06-04 10:17:02.402200000 +0400 @@ -2315,7 +2315,7 @@ test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in - *cygwin* | *mingw* | *pw32* | *cegcc*) + *cygwin* | *msys* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; @@ -3328,7 +3328,7 @@ # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in - cygwin* | mingw* | pw32* | os2* | cegcc*) + cygwin* | msys* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac @@ -4201,7 +4201,7 @@ 'exit $?' tstripme=$stripme case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= @@ -4307,7 +4307,7 @@ # Do a test to see if this is really a libtool program. case $host in - *cygwin* | *mingw*) + *cygwin* | *msys* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result @@ -4382,7 +4382,7 @@ # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in - */usr/bin/install*,*cygwin*) + */usr/bin/install*,*cygwin*|*/usr/bin/install*,*msys*) case $file:$destfile in *.exe:*.exe) # this is ok @@ -4535,7 +4535,7 @@ $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; @@ -4547,7 +4547,7 @@ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; @@ -4561,7 +4561,7 @@ func_basename "$dlprefile" name=$func_basename_result case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" @@ -4736,7 +4736,7 @@ # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` @@ -5629,7 +5629,7 @@ { EOF case $host in - *mingw* | *cygwin* ) + *mingw* | *cygwin* | *msys* ) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;; @@ -6350,7 +6350,7 @@ $debug_cmd case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra @@ -6843,7 +6843,7 @@ ;; esac case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; @@ -6863,7 +6863,7 @@ -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -6946,7 +6946,7 @@ -no-install) case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" @@ -7812,7 +7812,7 @@ fi case $host in # special handling for platforms with PE-DLLs. - *cygwin* | *mingw* | *cegcc* ) + *cygwin* | *msys* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present @@ -7956,7 +7956,7 @@ if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in - *cygwin* | *mingw* | *cegcc*) + *cygwin* | *msys* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no @@ -8026,7 +8026,7 @@ elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw* | *cegcc*) + *cygwin* | *msys* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix=-$major @@ -8899,7 +8899,7 @@ if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) @@ -9413,7 +9413,7 @@ orig_export_symbols= case $host_os in - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { @@ -9970,7 +9970,7 @@ prog) case $host in - *cygwin*) func_stripname '' '.exe' "$output" + *cygwin* | *msys*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ @@ -10081,7 +10081,7 @@ esac fi case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + *-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; @@ -10159,7 +10159,7 @@ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; - *cygwin* | *mingw* ) + *cygwin* | *msys* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) @@ -10305,14 +10305,14 @@ esac # test for cygwin because mv fails w/o .exe extensions case $host in - *cygwin*) + *cygwin* | *msys*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in - *cygwin* | *mingw* ) + *cygwin* | *msys* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result @@ -10644,7 +10644,7 @@ # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in - *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + *cygwin*,*lai,yes,no,*.dll | *msys*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" diff -Naur a/Modules/_ctypes/libffi/m4/libtool.m4 b/Modules/_ctypes/libffi/m4/libtool.m4 --- a/Modules/_ctypes/libffi/m4/libtool.m4 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/m4/libtool.m4 2014-06-04 10:17:02.417800000 +0400 @@ -1665,7 +1665,7 @@ lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, @@ -1913,7 +1913,7 @@ lt_cv_dlopen_libs= ;; - cygwin*) + cygwin* | msys*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; @@ -2399,7 +2399,7 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no @@ -2431,6 +2431,12 @@ m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; + msys*) + # MSYS DLLs use 'msys-' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/msys-/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' @@ -2465,7 +2471,7 @@ # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; - cygwin*) + cygwin* | msys*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... @@ -3203,7 +3209,7 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi @@ -3259,7 +3265,7 @@ lt_cv_file_magic_test_file=/shlib/libc.so ;; -cygwin*) +cygwin* | msys*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' @@ -3564,7 +3570,7 @@ [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in @@ -3634,7 +3640,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-msys* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3709,7 +3715,7 @@ aix*) symcode='[[BCDT]]' ;; -cygwin* | mingw* | pw32* | cegcc*) +cygwin* | msys* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) @@ -4015,7 +4021,7 @@ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) + mingw* | cygwin* | msys* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -4086,7 +4092,7 @@ ;; esac ;; - mingw* | cygwin* | os2* | pw32* | cegcc*) + mingw* | cygwin* | msys* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], @@ -4334,7 +4340,7 @@ # PIC is the default for these OSes. ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style @@ -4433,7 +4439,7 @@ esac ;; - mingw* | cygwin* | pw32* | os2* | cegcc*) + mingw* | cygwin* | msys* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], @@ -4699,7 +4705,7 @@ pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; - cygwin* | mingw* | cegcc*) + cygwin* | msys* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' @@ -4757,7 +4763,7 @@ extract_expsyms_cmds= case $host_os in - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. @@ -4872,7 +4878,7 @@ fi ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' @@ -5247,7 +5253,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is @@ -6241,7 +6247,7 @@ esac ;; - cygwin* | mingw* | pw32* | cegcc*) + cygwin* | msys* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC @@ -7937,7 +7943,7 @@ *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; - *-*-cygwin* ) + *-*-cygwin* | *-*-msys* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix @@ -7945,12 +7951,12 @@ ;; esac ;; - *-*-cygwin* ) + *-*-cygwin* | *-*-msys* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; - *-*-cygwin* ) + *-*-cygwin* | *-*-msys* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix diff -Naur a/Modules/_ctypes/libffi/m4/ltoptions.m4 b/Modules/_ctypes/libffi/m4/ltoptions.m4 --- a/Modules/_ctypes/libffi/m4/ltoptions.m4 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/_ctypes/libffi/m4/ltoptions.m4 2014-06-04 10:17:02.449000000 +0400 @@ -126,7 +126,7 @@ [enable_win32_dll=yes case $host in -*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) +*-*-cygwin* | *-*-msys* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) diff -Naur a/Modules/makesetup b/Modules/makesetup --- a/Modules/makesetup 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/makesetup 2014-06-04 10:17:02.495800000 +0400 @@ -85,7 +85,7 @@ # Setup to link with extra libraries when makeing shared extensions. # Currently, only Cygwin needs this baggage. case `uname -s` in -CYGWIN*) if test $libdir = . +CYGWIN* | MSYS*) if test $libdir = . then ExtraLibDir=. else diff -Naur a/Modules/zlib/configure b/Modules/zlib/configure --- a/Modules/zlib/configure 2014-05-31 22:58:40.000000000 +0400 +++ b/Modules/zlib/configure 2014-06-04 10:17:02.495800000 +0400 @@ -77,7 +77,7 @@ *BSD | *bsd* | DragonFly) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} LDCONFIG="ldconfig -m" ;; - CYGWIN* | Cygwin* | cygwin* | OS/2*) + CYGWIN* | Cygwin* | cygwin* | OS/2* | MSYS* | Msys* ) EXE='.exe' ;; MINGW* | mingw*) # temporary bypass diff -Naur a/setup.py b/setup.py --- a/setup.py 2014-06-04 10:16:57.223000000 +0400 +++ b/setup.py 2014-06-04 10:17:02.511400000 +0400 @@ -314,7 +314,7 @@ # Workaround for Cygwin: Cygwin currently has fork issues when many # modules have been imported - if host_platform == 'cygwin': + if host_platform in ['cygwin', 'msys']: self.announce('WARNING: skipping import check for Cygwin-based "%s"' % ext.name) return @@ -551,7 +551,7 @@ # Check for MacOS X, which doesn't need libm.a at all math_libs = ['m'] - if host_platform in ['darwin', 'beos', 'cygwin']: + if host_platform in ['darwin', 'beos', 'cygwin', 'msys']: math_libs = [] # XXX Omitted modules: gl, pure, dl, SGI-specific modules @@ -1332,7 +1332,7 @@ missing.append('resource') # Sun yellow pages. Some systems have the functions in libc. - if (host_platform not in ['cygwin', 'atheos', 'qnx6'] and + if (host_platform not in ['cygwin', 'msys', 'atheos', 'qnx6'] and find_file('rpcsvc/yp_prot.h', inc_dirs, []) is not None): if (self.compiler.find_library_file(lib_dirs, 'nsl')): libs = ['nsl'] @@ -1554,7 +1554,7 @@ macros = dict() libraries = [] - elif host_platform == 'cygwin': # Cygwin + elif host_platform in ['cygwin', 'msys']: # Cygwin macros = dict() libraries = []