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
