summarylogtreecommitdiffstats
path: root/0016-MINGW-dynamic-loading-support.patch
diff options
context:
space:
mode:
authoratomlong2021-08-28 11:19:04 +0800
committeratomlong2021-08-28 13:15:13 +0800
commit89a67c05174951d172252b1db96ff93cc4ec4bcd (patch)
treed8c39fa79b201cf9aea28c51e7446a252ed8fee4 /0016-MINGW-dynamic-loading-support.patch
parentcf8d8d8771493a2aa8370ed323d06dc733a84181 (diff)
downloadaur-89a67c05174951d172252b1db96ff93cc4ec4bcd.tar.gz
Update to 3.9.6
Diffstat (limited to '0016-MINGW-dynamic-loading-support.patch')
-rw-r--r--0016-MINGW-dynamic-loading-support.patch103
1 files changed, 103 insertions, 0 deletions
diff --git a/0016-MINGW-dynamic-loading-support.patch b/0016-MINGW-dynamic-loading-support.patch
new file mode 100644
index 000000000000..c87ab362f002
--- /dev/null
+++ b/0016-MINGW-dynamic-loading-support.patch
@@ -0,0 +1,103 @@
+From ae8ad2a897af02bb36b723276f7382c5dd240447 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?=
+ <alexey.pawlow@gmail.com>
+Date: Thu, 17 Jun 2021 18:51:25 +0530
+Subject: [PATCH 016/N] MINGW dynamic loading support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Co-authored-by: Алексей <alexey.pawlow@gmail.com>
+---
+ Makefile.pre.in | 6 ++++++
+ Python/dynload_win.c | 9 +++++++--
+ configure.ac | 15 +++++++++++++++
+ 3 files changed, 28 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index f738b3b..9f2475d 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -823,6 +823,12 @@ Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile
+ -DSHLIB_EXT='"$(EXT_SUFFIX)"' \
+ -o $@ $(srcdir)/Python/dynload_hpux.c
+
++Python/dynload_win.o: $(srcdir)/Python/dynload_win.c Makefile
++ $(CC) -c $(PY_CORE_CFLAGS) \
++ -DSHLIB_SUFFIX='"$(SHLIB_SUFFIX)"' \
++ -DEXT_SUFFIX='"$(EXT_SUFFIX)"' \
++ -o $@ $(srcdir)/Python/dynload_win.c
++
+ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile $(srcdir)/Include/pydtrace.h
+ $(CC) -c $(PY_CORE_CFLAGS) \
+ -DABIFLAGS='"$(ABIFLAGS)"' \
+diff --git a/Python/dynload_win.c b/Python/dynload_win.c
+index 81787e5..9d7690e 100644
+--- a/Python/dynload_win.c
++++ b/Python/dynload_win.c
+@@ -27,6 +27,12 @@
+ #define PYD_UNTAGGED_SUFFIX PYD_DEBUG_SUFFIX ".pyd"
+
+ const char *_PyImport_DynLoadFiletab[] = {
++#ifdef EXT_SUFFIX
++ EXT_SUFFIX, /* include SOABI flags where is encoded debug */
++#endif
++#ifdef SHLIB_SUFFIX
++ "-abi" PYTHON_ABI_STRING SHLIB_SUFFIX,
++#endif
+ PYD_TAGGED_SUFFIX,
+ PYD_UNTAGGED_SUFFIX,
+ NULL
+@@ -192,8 +198,7 @@ _Py_COMP_DIAG_POP
+ ensure DLLs adjacent to the PYD are preferred. */
+ Py_BEGIN_ALLOW_THREADS
+ hDLL = LoadLibraryExW(wpathname, NULL,
+- LOAD_LIBRARY_SEARCH_DEFAULT_DIRS |
+- LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR);
++ LOAD_WITH_ALTERED_SEARCH_PATH);
+ Py_END_ALLOW_THREADS
+
+ /* restore old error mode settings */
+diff --git a/configure.ac b/configure.ac
+index 592b61a..dfe55ad 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2718,6 +2718,9 @@ if test -z "$SHLIB_SUFFIX"; then
+ CYGWIN*) SHLIB_SUFFIX=.dll;;
+ *) SHLIB_SUFFIX=.so;;
+ esac
++ case $host_os in
++ mingw*) SHLIB_SUFFIX=.dll;;
++ esac
+ fi
+ AC_MSG_RESULT($SHLIB_SUFFIX)
+
+@@ -3831,6 +3834,12 @@ then
+ fi
+ ;;
+ esac
++ case $host in
++ *-*-mingw*)
++ DYNLOADFILE="dynload_win.o"
++ extra_machdep_objs="$extra_machdep_objs PC/dl_nt.o"
++ ;;
++ esac
+ fi
+ AC_MSG_RESULT($DYNLOADFILE)
+ if test "$DYNLOADFILE" != "dynload_stub.o"
+@@ -5667,6 +5676,12 @@ case "$ac_cv_computed_gotos" in yes*)
+ AC_DEFINE(HAVE_COMPUTED_GOTOS, 1,
+ [Define if the C compiler supports computed gotos.])
+ esac
++case $host_os in
++ mingw*)
++ dnl Synchronized with _PyImport_DynLoadFiletab (dynload_win.c)
++ dnl Do not use more then one dot on this platform !
++ EXT_SUFFIX=-$SOABI$SHLIB_SUFFIX;;
++esac
+
+ case $ac_sys_system in
+ AIX*)
+--
+2.32.0
+