=== modified file 'Lib/distutils/command/build_ext.py' *** Lib/distutils/command/build_ext.py --- Lib/distutils/command/build_ext.py *************** *** 664,670 **** # 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": template = "python%d.%d" pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) --- 664,670 ---- # 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" or sys.platform[:5] == "mingw": template = "python%d.%d" pythonlib = (template % (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff)) === modified file 'Modules/posixmodule.c' *** Modules/posixmodule.c --- Modules/posixmodule.c *************** *** 106,111 **** --- 106,115 ---- #define HAVE_FSYNC 1 #define fsync _commit #else + #ifdef __MINGW32__ /* MINGW32 (cross-)compiler*/ + #define HAVE_FSYNC 1 + #define fsync _commit + #else #if defined(PYOS_OS2) && defined(PYCC_GCC) || defined(__VMS) /* Everything needed is defined in PC/os2emx/pyconfig.h or vms/pyconfig.h */ #else /* all other compilers */ *************** *** 131,142 **** #define HAVE_WAIT 1 #define HAVE_TTYNAME 1 #endif /* PYOS_OS2 && PYCC_GCC && __VMS */ #endif /* _MSC_VER */ #endif /* __BORLANDC__ */ #endif /* ! __WATCOMC__ || __QNX__ */ #endif /* ! __IBMC__ */ ! #ifndef _MSC_VER #if defined(__sgi)&&_COMPILER_VERSION>=700 /* declare ctermid_r if compiling with MIPSPro 7.x in ANSI C mode --- 135,147 ---- #define HAVE_WAIT 1 #define HAVE_TTYNAME 1 #endif /* PYOS_OS2 && PYCC_GCC && __VMS */ + #endif /* __MINGW32__ */ #endif /* _MSC_VER */ #endif /* __BORLANDC__ */ #endif /* ! __WATCOMC__ || __QNX__ */ #endif /* ! __IBMC__ */ ! #if !defined(_MSC_VER) && !defined(__MINGW32__) #if defined(__sgi)&&_COMPILER_VERSION>=700 /* declare ctermid_r if compiling with MIPSPro 7.x in ANSI C mode *************** *** 182,188 **** #endif /* HAVE_LSTAT */ #endif /* !HAVE_UNISTD_H */ ! #endif /* !_MSC_VER */ #ifdef HAVE_UTIME_H #include --- 187,193 ---- #endif /* HAVE_LSTAT */ #endif /* !HAVE_UNISTD_H */ ! #endif /* !_MSC_VER && !__MINGW32__ */ #ifdef HAVE_UTIME_H #include *************** *** 227,233 **** #endif #endif ! #ifdef _MSC_VER #include #include #include --- 232,238 ---- #endif #endif ! #if defined(_MSC_VER) || defined(__MINGW32__) #include #include #include *************** *** 237,243 **** #include /* for ShellExecute() */ #define popen _popen #define pclose _pclose ! #endif /* _MSC_VER */ #if defined(PYCC_VACPP) && defined(PYOS_OS2) #include --- 242,248 ---- #include /* for ShellExecute() */ #define popen _popen #define pclose _pclose ! #endif /* _MSC_VER || __MINGW32__ */ #if defined(PYCC_VACPP) && defined(PYOS_OS2) #include *************** *** 304,312 **** */ #include static char **environ; ! #elif !defined(_MSC_VER) && ( !defined(__WATCOMC__) || defined(__QNX__) ) extern char **environ; ! #endif /* !_MSC_VER */ static PyObject * convertenviron(void) --- 309,317 ---- */ #include static char **environ; ! #elif !defined(_MSC_VER) && !defined(__MINGW32__) && ( !defined(__WATCOMC__) || defined(__QNX__) ) extern char **environ; ! #endif /* !_MSC_VER && ! __MINGW32__ */ static PyObject * convertenviron(void) *************** *** 1845,1851 **** Py_FileSystemDefaultEncoding, &path, &mode)) return NULL; Py_BEGIN_ALLOW_THREADS ! #if ( defined(__WATCOMC__) || defined(_MSC_VER) || defined(PYCC_VACPP) ) && !defined(__QNX__) res = mkdir(path); #else res = mkdir(path, mode); --- 1850,1856 ---- Py_FileSystemDefaultEncoding, &path, &mode)) return NULL; Py_BEGIN_ALLOW_THREADS ! #if ( defined(__WATCOMC__) || defined(_MSC_VER) || defined(__MINGW32__) || defined(PYCC_VACPP) ) && !defined(__QNX__) res = mkdir(path); #else res = mkdir(path, mode); *************** *** 7285,7291 **** } #endif ! #ifdef MS_WINDOWS PyDoc_STRVAR(win32_urandom__doc__, "urandom(n) -> str\n\n\ --- 7290,7296 ---- } #endif ! #if defined(MS_WINDOWS) && !defined(__MINGW32__) PyDoc_STRVAR(win32_urandom__doc__, "urandom(n) -> str\n\n\ *************** *** 7642,7648 **** #ifdef HAVE_GETLOADAVG {"getloadavg", posix_getloadavg, METH_NOARGS, posix_getloadavg__doc__}, #endif ! #ifdef MS_WINDOWS {"urandom", win32_urandom, METH_VARARGS, win32_urandom__doc__}, #endif {NULL, NULL} /* Sentinel */ --- 7647,7653 ---- #ifdef HAVE_GETLOADAVG {"getloadavg", posix_getloadavg, METH_NOARGS, posix_getloadavg__doc__}, #endif ! #if defined(MS_WINDOWS) && !defined(__MINGW32__) {"urandom", win32_urandom, METH_VARARGS, win32_urandom__doc__}, #endif {NULL, NULL} /* Sentinel */ === modified file 'Python/frozenmain.c' *** Python/frozenmain.c --- Python/frozenmain.c *************** *** 3,9 **** #include "Python.h" ! #ifdef MS_WINDOWS extern void PyWinFreeze_ExeInit(void); extern void PyWinFreeze_ExeTerm(void); extern int PyInitFrozenExtensions(void); --- 3,9 ---- #include "Python.h" ! #if defined (MS_WINDOWS) && ! defined (__MINGW32__) extern void PyWinFreeze_ExeInit(void); extern void PyWinFreeze_ExeTerm(void); extern int PyInitFrozenExtensions(void); *************** *** 32,43 **** setbuf(stderr, (char *)NULL); } ! #ifdef MS_WINDOWS PyInitFrozenExtensions(); #endif /* MS_WINDOWS */ Py_SetProgramName(argv[0]); Py_Initialize(); ! #ifdef MS_WINDOWS PyWinFreeze_ExeInit(); #endif --- 32,43 ---- setbuf(stderr, (char *)NULL); } ! #if defined (MS_WINDOWS) && ! defined (__MINGW32__) PyInitFrozenExtensions(); #endif /* MS_WINDOWS */ Py_SetProgramName(argv[0]); Py_Initialize(); ! #if defined (MS_WINDOWS) && ! defined (__MINGW32__) PyWinFreeze_ExeInit(); #endif *************** *** 60,66 **** if (inspect && isatty((int)fileno(stdin))) sts = PyRun_AnyFile(stdin, "") != 0; ! #ifdef MS_WINDOWS PyWinFreeze_ExeTerm(); #endif Py_Finalize(); --- 60,66 ---- if (inspect && isatty((int)fileno(stdin))) sts = PyRun_AnyFile(stdin, "") != 0; ! #if defined (MS_WINDOWS) && ! defined (__MINGW32__) PyWinFreeze_ExeTerm(); #endif Py_Finalize(); === modified file 'configure.in' *** configure.in --- configure.in *************** *** 560,565 **** --- 560,569 ---- LDLIBRARY='libpython$(VERSION).dll.a' DLLLIBRARY='libpython$(VERSION).dll' ;; + mingw*) + LDLIBRARY='libpython$(VERSION).dll.a' + DLLLIBRARY='libpython$(VERSION).dll' + ;; SunOS*) LDLIBRARY='libpython$(VERSION).so' BLDLIBRARY='-Wl,-R,$(LIBDIR) -L. -lpython$(VERSION)' *************** *** 1285,1290 **** --- 1289,1295 ---- case $ac_sys_system in hp*|HP*) SO=.sl;; CYGWIN*) SO=.dll;; + mingw*) SO=.dll;; *) SO=.so;; esac else *************** *** 1386,1391 **** --- 1391,1398 ---- SCO_SV*) LDSHARED='$(CC) -Wl,-G,-Bexport';; Monterey*) LDSHARED="cc -G -dy -Bdynamic -Bexport -L/usr/lib/ia64l64";; CYGWIN*) LDSHARED="gcc -shared -Wl,--enable-auto-image-base";; + mingw*) LDSHARED='$(CC) -shared -Wl,--image-base=0x10000000' + BLDSHARED='$(CC) -mdll libpython$(VERSION).dll';; atheos*) LDSHARED="gcc -shared";; *) LDSHARED="ld";; esac *************** *** 1475,1480 **** --- 1482,1492 ---- then LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)' fi;; + mingw*) + if test $enable_shared = "no" + then + LINKFORSHARED='-Wl,--out-implib=$(LDLIBRARY)' + fi;; esac fi AC_MSG_RESULT($LINKFORSHARED) *************** *** 2277,2282 **** --- 2289,2296 ---- ) ) + AC_CHECK_FUNCS(cwait fsync pipe popen spawnv system) + AC_MSG_CHECKING(for major, minor, and makedev) AC_TRY_LINK([ #if defined(MAJOR_IN_MKDEV)