Windows 32-bit Mono build error with the Wine hack
akien-mga opened this issue · 2 comments
While the 64-bit Windows Mono build works fine with wine64
, we get an issue in the 32-bit Windows Mono build (using wine32
).
The build itself runs fine, and the resulting container actually works, so I'm not sure exactly what step is raising the error, but it prompted the need for #33 to solve a subsequent issue with generating the symlinks.
The actual error happens during make install
, where apparently some step involves running mono-sgen.exe
again from the mini distrib, but it fails with:
Creating ../../build/deps/win32_net_4_x_corlib_test.dll.makefrag ...
Creating ../../build/deps/net_4_x_corlib_xunit-test.dll.makefrag ...
000b:fixme:winediag:start_process Wine Staging 4.21 is a testing version containing experimental patches.
000b:fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org.
002a:err:module:import_dll Library libgcc_s_sjlj-1.dll (which is needed by L"Z:\\root\\mono\\mono\\mini\\.libs\\libmonosgen-2.0.dll") not found
002a:err:module:import_dll Library libmonosgen-2.0.dll (which is needed by L"Z:\\root\\mono\\mono\\mini\\.libs\\mono-sgen.exe") not found
002a:err:module:LdrInitializeThunk Importing dlls for L"Z:\\root\\mono\\mono\\mini\\.libs\\mono-sgen.exe" failed, status c0000135
make[8]: *** [il/il.make:4: ../../class/lib/net_4_x-win32/corlib.unsafe.dll.tmp] Error 53
make[8]: *** Waiting for unfinished jobs....
Before tweaking the Wine build script to allow using wine32
instead of wine
(64), I used to have a similar issue further up during make
which would prevent the build altogether. So I guess for some reason it's trying again to run with wine64
, or it's actually trying to run a 64-bit binary with wine32
maybe?
CC @hpvb
The referenced library is installed btw:
# dnf provides '*libgcc_s_sjlj-1.dll'
Last metadata expiration check: 0:00:57 ago on Tue Jan 7 09:29:24 2020.
mingw32-gcc-9.2.1-1.fc31.x86_64 : MinGW Windows cross-compiler (GCC) for C for the win32 target
Repo : @System
Matched from:
Other : *libgcc_s_sjlj-1.dll
mingw32-gcc-9.2.1-1.fc31.x86_64 : MinGW Windows cross-compiler (GCC) for C for the win32 target
Repo : fedora
Matched from:
Other : *libgcc_s_sjlj-1.dll
# rpm -qa | grep mingw32-gcc
mingw32-gcc-9.2.1-1.fc31.x86_64
mingw32-gcc-c++-9.2.1-1.fc31.x86_64
I found a potentially fix by setting WINEPATH
to point to /usr/i686-w64-mingw32/sys-root/mingw/bin/
where the missing DLL (and its dependencies) are included. It should likely be automatic, but maybe it doesn't work properly with Fedora's wine32
.