blob: 07d5061a6f6bd8a72d936ba3668449df9abe7974 [file] [log] [blame]
diff -Naur Python-2.7.9-orig/configure.ac Python-2.7.9/configure.ac
--- Python-2.7.9-orig/configure.ac 2014-12-11 13:49:57.831800000 +0300
+++ Python-2.7.9/configure.ac 2014-12-11 13:49:57.941000000 +0300
@@ -1890,6 +1890,9 @@
*)
enable_toolbox_glue="no";;
esac
+ case $host_os in
+ mingw*) SHLIB_SUFFIX=.dll;;
+ esac
fi
case "$enable_toolbox_glue" in
yes)
@@ -2035,6 +2038,16 @@
CYGWIN*) SO=.dll;;
*) SO=.so;;
esac
+ case $host in
+ *-*-mingw*)
+ #NOTE: see _PyImport_DynLoadFiletab in dynload_win.c
+ if test "x$Py_DEBUG" = xtrue; then
+ SO=_d.pyd
+ else
+ SO=.pyd
+ fi
+ ;;
+ esac
else
# this might also be a termcap variable, see #610332
echo
@@ -3035,6 +3048,12 @@
fi
;;
esac
+ case $host in
+ *-*-mingw*)
+ DYNLOADFILE="dynload_win.o"
+ extra_machdep_objs="$extra_machdep_objs PC/dl_nt.o PC/import_nt.o"
+ ;;
+ esac
fi
AC_MSG_RESULT($DYNLOADFILE)
if test "$DYNLOADFILE" != "dynload_stub.o"
diff -Naur Python-2.7.9-orig/Python/dynload_win.c Python-2.7.9/Python/dynload_win.c
--- Python-2.7.9-orig/Python/dynload_win.c 2014-12-10 18:59:59.000000000 +0300
+++ Python-2.7.9/Python/dynload_win.c 2014-12-11 13:49:57.941000000 +0300
@@ -11,9 +11,11 @@
#include "importdl.h"
#include <windows.h>
-// "activation context" magic - see dl_nt.c...
+#ifdef Py_ENABLE_SHARED
+/* "activation context" magic - see dl_nt.c... */
extern ULONG_PTR _Py_ActivateActCtx();
void _Py_DeactivateActCtx(ULONG_PTR cookie);
+#endif
const struct filedescr _PyImport_DynLoadFiletab[] = {
#ifdef _DEBUG
@@ -25,6 +27,10 @@
};
+#if defined(__MINGW32__)
+/* avoid compile error: conflicting types for 'strcasecmp' */
+# define strcasecmp fake_strcasecmp
+#endif
/* Case insensitive string compare, to avoid any dependencies on particular
C RTL implementations */
@@ -190,11 +196,15 @@
sizeof(pathbuf),
pathbuf,
&dummy)) {
+#ifdef Py_ENABLE_SHARED
ULONG_PTR cookie = _Py_ActivateActCtx();
+#endif
/* XXX This call doesn't exist in Windows CE */
hDLL = LoadLibraryEx(pathname, NULL,
LOAD_WITH_ALTERED_SEARCH_PATH);
+#ifdef Py_ENABLE_SHARED
_Py_DeactivateActCtx(cookie);
+#endif
}
/* restore old error mode settings */