MINGW-packages/mingw-w64-python3.13/0153-Try-fix-build-C-modules.-Add-WMI-module.-Fix-SOABI-g.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

90 lines
3.6 KiB
Diff

From b3dcb417bac59820aa7a9fb660fcc14bc22082d2 Mon Sep 17 00:00:00 2001
From: Alexey Pavlov <alexpux@gmail.com>
Date: Wed, 3 Sep 2025 12:25:03 +0300
Subject: [PATCH 153/N] Try fix build C++ modules. Add WMI module. Fix SOABI
generation
---
Modules/Setup.stdlib.in | 1 +
Modules/makesetup | 16 ++++++++--------
configure.ac | 6 ++++--
3 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/Modules/Setup.stdlib.in b/Modules/Setup.stdlib.in
index cd7c2e9..8a6dcad 100644
--- a/Modules/Setup.stdlib.in
+++ b/Modules/Setup.stdlib.in
@@ -159,6 +159,7 @@
# Windows specific modules
@MODULE__OVERLAPPED_TRUE@_overlapped overlapped.c
+@MODULE__WMIMODULE_TRUE@_wmimodule ../PC/_wmimodule.cpp
@MODULE_WINSOUND_TRUE@winsound ../PC/winsound.c
diff --git a/Modules/makesetup b/Modules/makesetup
index 8bb971b..7f58fb0 100755
--- a/Modules/makesetup
+++ b/Modules/makesetup
@@ -228,13 +228,13 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
for src in $srcs
do
case $src in
- *.c) obj=`basename $src .c`.o; cc='$(CC)';;
- *.cc) obj=`basename $src .cc`.o; cc='$(CXX)';;
- *.c++) obj=`basename $src .c++`.o; cc='$(CXX)';;
- *.C) obj=`basename $src .C`.o; cc='$(CXX)';;
- *.cxx) obj=`basename $src .cxx`.o; cc='$(CXX)';;
- *.cpp) obj=`basename $src .cpp`.o; cc='$(CXX)';;
- *.m) obj=`basename $src .m`.o; cc='$(CC)';; # Obj-C
+ *.c) obj=`basename $src .c`.o; cc='$(CC)'; ccld='$(BLDSHARED)';;
+ *.cc) obj=`basename $src .cc`.o; cc='$(CXX)'; ccld='$(LDCXXSHARED)';;
+ *.c++) obj=`basename $src .c++`.o; cc='$(CXX)'; ccld='$(LDCXXSHARED)';;
+ *.C) obj=`basename $src .C`.o; cc='$(CXX)'; ccld='$(LDCXXSHARED)';;
+ *.cxx) obj=`basename $src .cxx`.o; cc='$(CXX)'; ccld='$(LDCXXSHARED)';;
+ *.cpp) obj=`basename $src .cpp`.o; cc='$(CXX)'; ccld='$(LDCXXSHARED)';;
+ *.m) obj=`basename $src .m`.o; cc='$(CC)'; ccld='$(BLDSHARED)';; # Obj-C
*) continue;;
esac
case $src in
@@ -274,7 +274,7 @@ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
;;
esac
rule="$file: $objs"
- rule="$rule; \$(BLDSHARED) $objs $libs \$(LIBPYTHON) -o $file"
+ rule="$rule; $ccld $objs $libs \$(LIBPYTHON) -o $file"
echo "$rule" >>$rulesf
done
done
diff --git a/configure.ac b/configure.ac
index d8564a0..580548c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -6705,7 +6705,7 @@ AC_MSG_CHECKING([ABIFLAGS])
AC_MSG_RESULT([$ABIFLAGS])
AC_MSG_CHECKING([SOABI])
case $host_os in
- mingw*) SOABI='cp'`echo $VERSION | tr -d .`${ABIFLAGS}${SOABI_PLATFORM:+-$SOABI_PLATFORM};;
+ mingw*) SOABI='cp'`echo $VERSION | tr -d .`;;
*) SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${SOABI_PLATFORM:+-$SOABI_PLATFORM};;
esac
AC_MSG_RESULT([$SOABI])
@@ -6716,7 +6716,7 @@ if test "$Py_DEBUG" = 'true'; then
# Similar to SOABI but remove "d" flag from ABIFLAGS
AC_SUBST([ALT_SOABI])
case $host_os in
- mingw*) ALT_SOABI='cp'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${SOABI_PLATFORM:+-$SOABI_PLATFORM};;
+ mingw*) ALT_SOABI='cp'`echo $VERSION | tr -d .`;;
*) ALT_SOABI='cpython-'`echo $VERSION | tr -d .``echo $ABIFLAGS | tr -d d`${SOABI_PLATFORM:+-$SOABI_PLATFORM};;
esac
AC_DEFINE_UNQUOTED([ALT_SOABI], ["${ALT_SOABI}"],
@@ -8392,6 +8392,8 @@ dnl windows specific modules
PY_STDLIB_MOD([winreg], [test "$MACHDEP" = "win32"])
PY_STDLIB_MOD([msvcrt], [test "$MACHDEP" = "win32"])
PY_STDLIB_MOD([_winapi], [test "$MACHDEP" = "win32"])
+PY_STDLIB_MOD([_wmimodule], [test "$MACHDEP" = "win32"], [], [],
+ [-lwbemuuid -lpropsys -lole32 -loleaut32 -luuid])
PY_STDLIB_MOD([winsound], [test "$MACHDEP" = "win32"], [], [],
[-lwinmm])
PY_STDLIB_MOD([_overlapped], [test "$MACHDEP" = "win32"], [], [],