87 lines
2.3 KiB
Diff
87 lines
2.3 KiB
Diff
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 */
|