Hi. Trying to build pywin32 against i686 MSYS2 MinGW, it seems that some defs 
are missing under mingw-w64-crt/lib32, here's a patch to add them. I've 
excluded undocumented exports because I couldn't verify arg count reliably 
without gendef on real 32-bit DLLs (feel free to do so). The excluded symbols 
are listed in the top-of-file comment.
diff --git a/mingw-w64-crt/Makefile.in b/mingw-w64-crt/Makefile.in
index 76fe20184..747d66d31 100644
--- a/mingw-w64-crt/Makefile.in
+++ b/mingw-w64-crt/Makefile.in
@@ -15031,7 +15031,7 @@ src_intrincsarm64 =
@LIB32_TRUE@ lib32/libimm32.a lib32/libinkobjcore.a \
@LIB32_TRUE@ lib32/libiphlpapi.a lib32/libiscsidsc.a \
@LIB32_TRUE@ lib32/libks.a lib32/libksecdd.a lib32/libksproxy.a \
-@LIB32_TRUE@ lib32/libktmw32.a lib32/liblogoncli.a \
+@LIB32_TRUE@ lib32/libktmw32.a lib32/libloadperf.a lib32/liblogoncli.a \
@LIB32_TRUE@ lib32/liblz32.a lib32/libmapi32.a lib32/libmcd.a \
@LIB32_TRUE@ lib32/libmf.a lib32/libmfcore.a \
@LIB32_TRUE@ lib32/libmfcuia32.a lib32/libmfplat.a \
@@ -15081,7 +15081,7 @@ src_intrincsarm64 =
@LIB32_TRUE@ lib32/libschedcli.a lib32/libscsiport.a \
@LIB32_TRUE@ lib32/libsecur32.a lib32/libsecurity.a \
@LIB32_TRUE@ lib32/libsensapi.a lib32/libsens.a \
-@LIB32_TRUE@ lib32/libsetupapi.a lib32/libshcore.a \
+@LIB32_TRUE@ lib32/libsetupapi.a lib32/libsfc.a lib32/libshcore.a \
@LIB32_TRUE@ lib32/libshfolder.a lib32/libshlwapi.a \
@LIB32_TRUE@ lib32/libslc.a lib32/libslcext.a lib32/libslwga.a \
@LIB32_TRUE@ lib32/libsnmpapi.a lib32/libspoolss.a \
diff --git a/mingw-w64-crt/lib32/Makefile.am b/mingw-w64-crt/lib32/Makefile.am
index bcbb3bd89..88d557ef4 100644
--- a/mingw-w64-crt/lib32/Makefile.am
+++ b/mingw-w64-crt/lib32/Makefile.am
@@ -175,6 +175,7 @@ lib32_DATA += %reldir%/libksecdd.a
lib32_DATA += %reldir%/libksproxy.a
#lib32_DATA += %reldir%/libksuser.a # Handled by custom rule
lib32_DATA += %reldir%/libktmw32.a
+lib32_DATA += %reldir%/libloadperf.a
lib32_DATA += %reldir%/liblogoncli.a
lib32_DATA += %reldir%/liblz32.a
lib32_DATA += %reldir%/libmapi32.a
@@ -281,6 +282,7 @@ lib32_DATA += %reldir%/libsecurity.a
lib32_DATA += %reldir%/libsensapi.a
lib32_DATA += %reldir%/libsens.a
lib32_DATA += %reldir%/libsetupapi.a
+lib32_DATA += %reldir%/libsfc.a
lib32_DATA += %reldir%/libshcore.a
#lib32_DATA += %reldir%/libshell32.a # Handled by custom rule
lib32_DATA += %reldir%/libshfolder.a
diff --git a/mingw-w64-crt/lib32/loadperf.def b/mingw-w64-crt/lib32/loadperf.def
new file mode 100644
index 000000000..3088d0d24
--- /dev/null
+++ b/mingw-w64-crt/lib32/loadperf.def
@@ -0,0 +1,20 @@
+;
+; Definition file of loadperf.dll
+; Based on mingw-w64-crt/lib-common/loadperf.def
+; Excluding undocumented LpAcquireInstallationMutex/LpReleaseInstallationMutex
+; Written by Samuel Therrien, 2026
+;
+LIBRARY "loadperf.dll"
+EXPORTS
+BackupPerfRegistryToFileW@8
+InstallPerfDllA@12
+InstallPerfDllW@12
+LoadPerfCounterTextStringsA@8
+LoadPerfCounterTextStringsW@8
+RestorePerfRegistryFromFileW@8
+SetServiceAsTrustedA@8
+SetServiceAsTrustedW@8
+UnloadPerfCounterTextStringsA@8
+UnloadPerfCounterTextStringsW@8
+UpdatePerfNameFilesA@16
+UpdatePerfNameFilesW@16
diff --git a/mingw-w64-crt/lib32/sfc.def b/mingw-w64-crt/lib32/sfc.def
new file mode 100644
index 000000000..5762ac5e9
--- /dev/null
+++ b/mingw-w64-crt/lib32/sfc.def
@@ -0,0 +1,15 @@
+;
+; Definition file of sfc.dll
+; Based on mingw-w64-crt/lib64/sfc.def
+; Excluding undocumented SfcWLEventLogoff/SfcWLEventLogon
+; Written by Samuel Therrien, 2026
+;
+LIBRARY "sfc.dll"
+EXPORTS
+SRSetRestorePoint@8
+SRSetRestorePointA@8
+SRSetRestorePointW@8
+SfcGetNextProtectedFile@8
+SfcIsFileProtected@8
+SfcIsKeyProtected@12
+SfpVerifyFile@12
This is the temporary workaround I'm using in pywin32 in the mean time: 
https://github.com/mhammond/pywin32/pull/2781/

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to