https://bugs.winehq.org/show_bug.cgi?id=45349
--- Comment #23 from i.Dark_Templar idarktemplar@mail.ru --- (In reply to Justin King-Lacroix from comment #21)
Re comment #19: How did you build with PE support? (I'm on Debian.) Is it more than just having mingw-w64 installed?
I built it on Gentoo. First I built via crossdev crosstoolchain for x86_64-w64-mingw32 and i686-w64-mingw32. For i686 toolchain I added '--enable-threads=posix --disable-sjlj-exceptions --with-dwarf2' configure options, for x86_64 toolchain I added only '--enable-threads=posix'. Not sure if it's relevant.
After building toolchain via crossdev I had following toolchain packages installed: cross-i686-w64-mingw32/binutils cross-i686-w64-mingw32/gcc cross-i686-w64-mingw32/mingw64-runtime cross-x86_64-w64-mingw32/binutils cross-x86_64-w64-mingw32/gcc cross-x86_64-w64-mingw32/mingw64-runtime
And I had following working crosscompilers since I'm building wine both 32bit and 64bit: i686-w64-mingw32-gcc i686-w64-mingw32-g++ x86_64-w64-mingw32-gcc x86_64-w64-mingw32-g++
After that I rebuilt both wine-vanilla-5.13 and wine-staging-5.13 adding '--with-mingw' configure option. wine without staging patchset is called wine-vanilla in Gentoo, btw. I also added two patches from bug #49590 and (unrelated) a rebased patch from bug #38166.
When wine is built with mingw support, different libraries are built. Instead of some '*.dll.so' libraries '*.dll' libraries would be built.
I might remember wrong, but I think when I built wine without mingw, I got api-ms-win-appmodel-identity-l1-1-0.dll.so, and with mingw I got only api-ms-win-appmodel-identity-l1-1-0.dll, for example. I might be wrong with this example, but if you compare wine libraries built with mingw support and without mingw support, you'll be able to find a lot of such libraries.
(In reply to Justin King-Lacroix from comment #22)
Because if so, I built wine from HEAD with PE support, and SC2 has the same crash.
There might be few issues: 1) Did you build wine with staging patchset or without one? I expect SC2 wouldn't work without staging patches yet. 2) Something might be broken in wine HEAD. I think it's unlikely, but it can be a case. In that case building release might help. 3) You might have built wine without using mingw. Explicitly adding '--with-mingw' option should force build system to use mingw crosscompilers or output an error during configure stage if crosstoolchain doesn't work properly or not detected. 4) If you have more than one wine package installed, ensure you're using correct one. 5) Crosscompilers might have been built differently. As I wrote earlier, I added '--enable-threads=posix' besides other options because it was required for building dxvk from source, which I'm using as well. It might have affected result, it might have not.
While writing this comment, I've launched blizzard app, updated SC2 and launched it successfully, so it doesn't look like crash might have been caused by an update to SC2.