Nonsense. The MSYS2 MinGW-w64 are all using POSIX thread model. The mismatch is about different GCC versions, not different thread models!
You are simply wrong. By default, mingw libstdc++ uses the win32 thread model. @eht16 had to start using the "posix" variant of libstdc++ in [354c7ba](https://github.com/geany/geany/commit/354c7ba4e66803f16d9e0452b7829d47cb7425...) because Scintilla started using some features that require it. However, now, Geany also has the libLerc dependency and that library was build against the standard win32 thread libstdc++ so there are mismatches between symbols. For more, see e.g.
https://stackoverflow.com/questions/17242516/mingw-w64-threads-posix-vs-win3...
Debian offers the MinGW-w64 cross compiler in both POSIX and Win32 thread model variants, and you chose to use the Win32 variant? Well, this is simple. You simply need to switch to use the POSIX variant of the MinGW-w64 cross compiler, easy peasy.
Your wording is wrong. You said `By default, mingw libstdc++ uses the win32 thread model.`. This is simply wrong. The MinGW-w64 cross compiler you chose to use is targeting the Win32 thread model. Right. But MinGW-w64 in general? Nope.
I have no idea why you chose the Win32 thread model variant from the beginning. It's very unpopular. No one uses it. Popular MinGW-w64 distros like winlibs.com doesn't even provide Win32 thread model builds. People all use POSIX thread model for maximum compatibility.
BTW, Github Actions does provide MSYS2 in their CI. Why don't you simply use that for your Windows builds? Why cross compile from Linux but still need to grab MSYS2 packages to extract for libraries? If you managed to cross compile from Linux, why don't you cross compile everything you need instead of stealing prebuilt libraries from MSYS2 packages?
Why do you make everything that complicated? I can't get it.
BTW, MSYS2 in CI: https://www.msys2.org/docs/ci/