From b3dcb417bac59820aa7a9fb660fcc14bc22082d2 Mon Sep 17 00:00:00 2001 From: Alexey Pavlov 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"], [], [],