MINGW-packages/mingw-w64-python3.13/0103-selectmodule-add-support-for-MINGW.patch
Christoph Reiter 04c9ed3700 python3.13: Add 3.13.7
* add libb2 as dep
* remove "-Wl,--large-address-aware", default now via makepkg
* remove 2to3 logic, no longer in Python
2025-09-08 22:02:30 +02:00

61 lines
2.0 KiB
Diff

From 9eedaff293d8c56e528cbed61b35eb392f983f26 Mon Sep 17 00:00:00 2001
From: Naveen M K <naveen521kk@gmail.com>
Date: Mon, 1 Jan 2024 14:14:45 +0530
Subject: [PATCH 103/N] selectmodule: add support for MINGW
---
Modules/selectmodule.c | 6 +++---
configure.ac | 7 ++++++-
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 5bd9b77..11ba70d 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -168,9 +168,9 @@ seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE + 1])
v = PyObject_AsFileDescriptor( o );
if (v == -1) goto finally;
-#if defined(_MSC_VER)
+#if defined(MS_WIN32)
max = 0; /* not used for Win32 */
-#else /* !_MSC_VER */
+#else /* !MS_WIN32 */
if (!_PyIsSelectable_fd(v)) {
PyErr_SetString(PyExc_ValueError,
"filedescriptor out of range in select()");
@@ -178,7 +178,7 @@ seq2set(PyObject *seq, fd_set *set, pylist fd2obj[FD_SETSIZE + 1])
}
if (v > max)
max = v;
-#endif /* _MSC_VER */
+#endif /* MS_WIN32 */
FD_SET(v, set);
/* add object and its file descriptor to the list */
diff --git a/configure.ac b/configure.ac
index e1cfe74..90799c8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4504,6 +4504,11 @@ AS_CASE([$MACHDEP],
[MULTIPROCESSING_LIBS=""]
)
+dnl On MINGW, you need to link againt ws2_32 for selectmodule
+AS_CASE([$MACHDEP],
+ [win32], [SELECTMODULE_LIBS="-lws2_32"],
+ [SELECTMODULE_LIBS=""]
+)
dnl detect sqlite3 from Emscripten emport
PY_CHECK_EMSCRIPTEN_PORT([LIBSQLITE3], [-sUSE_SQLITE3])
@@ -8223,7 +8228,7 @@ PY_STDLIB_MOD_SIMPLE([_opcode])
PY_STDLIB_MOD_SIMPLE([_pickle])
PY_STDLIB_MOD_SIMPLE([_queue])
PY_STDLIB_MOD_SIMPLE([_random])
-PY_STDLIB_MOD_SIMPLE([select])
+PY_STDLIB_MOD_SIMPLE([select], [], [$SELECTMODULE_LIBS])
PY_STDLIB_MOD_SIMPLE([_struct])
PY_STDLIB_MOD_SIMPLE([_typing])
PY_STDLIB_MOD_SIMPLE([_interpreters])