https://bugs.winehq.org/show_bug.cgi?id=54941
Bug ID: 54941 Summary: Invalid symlinks when building --with-wine64 in a container Product: Wine Version: 8.8 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: minor Priority: P2 Component: build-env Assignee: wine-bugs@winehq.org Reporter: fcasas@codeweavers.com Distribution: ---
When building Shared WoW64 wine within a container (e.g. using podman), using the 3 steps listed in the wiki:
1. Enter your 32-bit chroot or container (see above about setting a chroot or container up) 2. Do a completely normal 32-bit build of wine 3. Do a second 32-bit build, still in the chroot, with both your 64-bit build and the tools from your first 32-bit build
The 64-bit version of Wine fails to detect the injected 32-bit libraries when run from the host system. Because the injected symlinks point to absolute paths that only make sense within the container and not in the host.
wine64$ ll loader/ ... lrwxrwxrwx 1 fcasas fcasas 35 May 15 09:54 wine -> /root/Builds/fxc/wine32 lrwxrwxrwx 1 fcasas fcasas 45 May 15 09:54 wine-preloader -> /root/Builds/fxc/wine32/loader/wine-preloader
Since the 32-bit libraries are not detected, the current version of wine falls back to "starting in experimental wow64 mode".
This triggers errors such as:
0154:err:environ:init_peb starting L"Z:\home\fcasas\my_exe.exe" in experimental wow64 mode 0154:err:module:load_wow64_ntdll failed to load L"\??\C:\windows\syswow64\ntdll.dll" error c0000135 0154:err:seh:NtRaiseException Unhandled exception code c0000005 flags 0 addr 0x6f00ec1e
when running a 32-bit executable.