https://bugs.winehq.org/show_bug.cgi?id=54336
Bug ID: 54336 Summary: Wow64 compatibility breaks on newer 64-bit glibc releases Product: Wine Version: 8.0-rc4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: ruanformigoni@gmail.com Distribution: ---
Newer versions of 64-bit glibc break current Wow64 compatibility implementation.
For a new vm of fedora 36:
$ ./wine-ge-7-35-continuous-x86_64.AppImage --version Usage: wine PROGRAM [ARGUMENTS...] Run the specified program wine --help Display this help and exit wine --version Output version information and exit
glibc.x86_64 version is 2.35-20.fc36 glibc.i686 is not installed.
--
For a new vm of fedora 37:
$ /wine-ge-7-35-continuous-x86_64.AppImage --version /tmp/.mount_wine-gEI9DJM/bin/wine: No such file or directory
glibc.x86_64 version is 2.36-9.fc37 glibc.i686 is not installed (installing fixes it).
https://bugs.winehq.org/show_bug.cgi?id=54336
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |z.figura12@gmail.com Resolution|--- |INVALID
--- Comment #1 from Zeb Figura z.figura12@gmail.com --- WineHQ does not distribute an AppImage, and the failure mode looks like a packaging problem. Please report this bug to the AppImage distributor.
https://bugs.winehq.org/show_bug.cgi?id=54336
formigoni ruanformigoni@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|INVALID |--- Status|RESOLVED |UNCONFIRMED
--- Comment #2 from formigoni ruanformigoni@gmail.com --- Hi, thanks for the reply. I've packaged the AppImage. The loose files outside the AppImage have the same issue.
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #3 from Zeb Figura z.figura12@gmail.com --- How are you building Wine? Can this be reproduced when running directly from the build tree or with `make install`?
Your executable name "wine-ge" also suggests out-of-tree patches are being applied; please make sure any out-of-tree patches are removed before testing.
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #4 from formigoni ruanformigoni@gmail.com --- Created attachment 73911 --> https://bugs.winehq.org/attachment.cgi?id=73911 Build execution log
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #5 from formigoni ruanformigoni@gmail.com --- Hi, I was using pre-compiled distributions from ubuntu (22.04) and a patched version that I used in the example (both failed). I've compiled a clean git clone with the instructions in https://wiki.winehq.org/Building_Wine#Shared_WoW64, however, it gives me an error with 0144:err:module:load_wow64_ntdll. I've attached the log, thanks.
https://bugs.winehq.org/show_bug.cgi?id=54336
Eric Pouech eric.pouech@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |eric.pouech@gmail.com
--- Comment #6 from Eric Pouech eric.pouech@gmail.com --- (In reply to formigoni from comment #4)
Created attachment 73911 [details] Build execution log
That's not the log of a build process, it's the log of running Notepad+ installer.
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #7 from Eric Pouech eric.pouech@gmail.com --- (In reply to formigoni from comment #5)
Hi, I was using pre-compiled distributions from ubuntu (22.04) and a patched version that I used in the example (both failed). I've compiled a clean git clone with the instructions in https://wiki.winehq.org/Building_Wine#Shared_WoW64, however, it gives me an error with 0144:err:module:load_wow64_ntdll. I've attached the log, thanks.
Which configuration did you use for the log in #4? I doubt it's the precompiled bits for Ubuntu 22.04 (wine uses wow in multitarch mode that landed in wine tree way after that).
Please report your issues from a clean setup (eg. no overinstalling different packages on the same paths... using clean prefixes...).
TIA
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #8 from formigoni ruanformigoni@gmail.com --- Created attachment 73912 --> https://bugs.winehq.org/attachment.cgi?id=73912 Dockerfile to build wine (1)
This dockerfile builds wine with wow64, according to the instructions in https://wiki.winehq.org/Building_Wine
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #9 from formigoni ruanformigoni@gmail.com --- Hi, thanks for the feedback. I've attached the dockerfile I created following the instructions in https://wiki.winehq.org/Building_Wine.
Sorry for not being clear. When I mentioned ubuntu 22.04, I mean it + the PPA offered by winehq here: https://wiki.winehq.org/Ubuntu, the binary produces an unrelated issue shown by the output in the build execution log attachment.
To reiterate the issue, I think that wine wow64 only works with versions of 64-bit glibc older than the ones from which it was built against (or there is a bug with a specific version of it). I'm trying to resolve the unrelated runtime issue, with the compiled build, to see if this is true.
What led me to this is that, pre-compiled distributions do not work in fedora 37 and ubuntu 22.10, they give the (no such file or directory error), however, they work with ubuntu 22.04, 20.04, 18.04 and 16.04 (I tested in VMs).
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #10 from formigoni ruanformigoni@gmail.com --- (In reply to formigoni from comment #9)
Sorry for not being clear. When I mentioned ubuntu 22.04, I mean it + the PPA offered by winehq here: https://wiki.winehq.org/Ubuntu, the binary produces an unrelated issue shown by the output in the build execution log attachment.
Errata:
Sorry for not being clear. When I mentioned ubuntu 22.04, I mean it + the PPA offered by winehq here: https://wiki.winehq.org/Ubuntu. The binary compiled from the dockerfile produces an unrelated issue shown by the output in the build execution log attachment.
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #11 from Eric Pouech eric.pouech@gmail.com --- (In reply to formigoni from comment #10)
(In reply to formigoni from comment #9)
Sorry for not being clear. When I mentioned ubuntu 22.04, I mean it + the PPA offered by winehq here: https://wiki.winehq.org/Ubuntu, the binary produces an unrelated issue shown by the output in the build execution log attachment.
Errata:
Sorry for not being clear. When I mentioned ubuntu 22.04, I mean it + the PPA offered by winehq here: https://wiki.winehq.org/Ubuntu. The binary compiled from the dockerfile produces an unrelated issue shown by the output in the build execution log attachment.
the following line in #4 ``` 0144:err:environ:init_peb starting L"Z:\home\ruan\Downloads\npp.8.4.8.Installer.exe" in experimental wow64 mode ``` can only be generated by a build configuration which is not what's shown in #8
in more details: #8 is built with two build trees (win64 and win32)
the line gotten from #4 shows a multi-arch build, triggered by something like ``` configure --enable-archs=x86_64,i386 ```
and from #9: can you confirm you're testing the same package under the various ubuntu versions?
(for the record I'm running here on Fedora 37 + glibc.i686 2.36-9.fc37
& glibc.x86_64 2.36-9.fc37 - locally compiled)
Also from #1, you seem to imply that installing glibc.i686 makes it work. Is this the case ?
TIA
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #12 from formigoni ruanformigoni@gmail.com --- Hi, it is the same package(s). The one from winehq for ubuntu 22.04, and the patched wine-ge, they have the behavior of #9. You can find the packaged appimage version of them here (https://github.com/ruanformigoni/wine), this appimages also have the same behavior (fail on fedora 37 and ubuntu 22.10) and work on everything before it.
Yes, installing glibc.i686 makes it work. Fedora 36 and previous do not need 32-bit glibc (glibc.i686), it uses wow64. The same is true for ubuntu 22.04 and previous, which do not need 32-bit glibc (libc6-i386).
Here are more tests I made on linux mint showing that it works with wow64 and no 32-bit glibc https://github.com/mmtrt/WINE_AppImage/issues/15.
Currently I'm trying to remove the appimage factor, trying a clean build with #8 in fedora 36, to check if it works on fedora 37, without glibc.i686.
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #13 from formigoni ruanformigoni@gmail.com --- Just checked here, the issue happens in both fedora 37 and ubuntu 22.10 and they both use the same glibc version (major) 36. Output of 'apt list libc6' is:
Listing... Done libc6/kinetic,now 2.36-0ubuntu4 amd64 [installed,automatic] libc6/kinetic 2.36-0ubuntu4 i386
For fedora 37: glibc.x86_64 version is 2.36-9.fc37
It works on everything else with glibc <= 35
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #14 from Eric Pouech eric.pouech@gmail.com ---
Yes, installing glibc.i686 makes it work. Fedora 36 and previous do not need 32-bit glibc (glibc.i686), it uses wow64. The same is true for ubuntu 22.04 and previous, which do not need 32-bit glibc (libc6-i386).
there are in fact two different wow64 setups: - the "old one", which requires the 32bit counter parts of the unix shared lib (including glibc) in order to run 32bit applications - the "new one" (still experimental) which only requires the 64 shared libs
the docker file in #4 builds in the "old mode". assuming that does
wine64 --version
instead of
wine --version
work without glibc32 bit installed?
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #15 from formigoni ruanformigoni@gmail.com --- You are correct, here are the outputs, on a new fedora 36 VM:
$ ./wine/wine64/wine64 --version wine-8.0-rc4-11-g929fdbbf554 $ ./wine/wine64/wine --version wine-8.0-rc4-11-g929fdbbf554 $ ./wine/wine32/wine64 --version wine-8.0-rc4-11-g929fdbbf554 $ ./wine/wine32/wine --version ./wine/wine32/wine: line 107: /home/ruan/Desktop/wine/wine32/loader/wine: No such file or directory $ sudo dnf install glibc.i686 $ ./wine/wine32/wine --version wine-8.0-rc4-11-g929fdbbf554
Sorry but I could not locate the instructions for the experimental one, is it in here? https://wiki.winehq.org/Building_Wine#Shared_WoW64
https://bugs.winehq.org/show_bug.cgi?id=54336
--- Comment #16 from Eric Pouech eric.pouech@gmail.com --- (In reply to formigoni from comment #15)
You are correct, here are the outputs, on a new fedora 36 VM:
$ ./wine/wine64/wine64 --version wine-8.0-rc4-11-g929fdbbf554 $ ./wine/wine64/wine --version wine-8.0-rc4-11-g929fdbbf554 $ ./wine/wine32/wine64 --version wine-8.0-rc4-11-g929fdbbf554 $ ./wine/wine32/wine --version ./wine/wine32/wine: line 107: /home/ruan/Desktop/wine/wine32/loader/wine: No such file or directory $ sudo dnf install glibc.i686 $ ./wine/wine32/wine --version wine-8.0-rc4-11-g929fdbbf554
(it's likely an evolution in wine because of the new wow64 mode for which we likely changed some bits in what wine and wine64 do)
so running from the 64 bit build tree should be fine then?
Sorry but I could not locate the instructions for the experimental one, is it in here? https://wiki.winehq.org/Building_Wine#Shared_WoW64
no it's not listed here yet. you need a single build tree and configure the build with:
configure --enable-archs=x86_64,i386 --with-mingw but I wouldn't recommend using it for now. there are still some issues to iron out.
https://bugs.winehq.org/show_bug.cgi?id=54336
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source