http://bugs.winehq.org/show_bug.cgi?id=58092
Bug ID: 58092 Summary: Wine on aarch64 fails to run Windows ARM applications: missing ntdll.dll in WOW64 mode Product: Wine Version: 9.0 Hardware: aarch64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: rikul@inbox.ru Distribution: ---
I'm experimenting with running Wine on an ARM64 (aarch64) Linux system and I’ve run into issues trying to execute Windows applications compiled for Windows on ARM.
I compiled Wine for aarch64 from source, and some built-in tools like Notepad work fine. However, when trying to run Windows ARM apps like Google Chrome or Firefox (ARM versions), I encounter errors and the applications fail to launch.
For example, running the Chrome ARM setup (ChromeStandaloneSetup.exe) results in the following output:
wine ChromeStandaloneSetup.exe 0050:err:vulkan:vulkan_init_once Wine was built without Vulkan support. 00c4:err:ntoskrnl:ZwLoadDriver failed to create driver L"\Registry\Machine\System\CurrentControlSet\Services\winebth": c00000e5 003c:fixme:service:scmdatabase_autostart_services Auto-start service L"winebth" failed to start: 1359 0024:err:environ:init_peb starting L"Z:\root\Downloads\ChromeStandaloneSetup.exe" in experimental wow64 mode wine: failed to load L"\??\C:\windows\syswow64\ntdll.dll" error c0000135
The key issue seems to be: wine: failed to load L"\??\C:\windows\syswow64\ntdll.dll" error c0000135
From what I understand, this suggests a missing or misconfigured WOW64 environment. I would appreciate any guidance on whether this functionality is expected to work yet, or if additional configuration or patches are required.
System details: Architecture: aarch64 Wine version: wine-10.4-203-ge956c4ec71d Distro: Rocky Linux 8.10 (Green Obsidian)
Any pointers on how to get Windows ARM applications working under Wine on ARM64, or whether this is still in development, would be greatly appreciated. If you need any more logs or build configuration info, I'm happy to provide them.
http://bugs.winehq.org/show_bug.cgi?id=58092
BugSeeker rikul@inbox.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|9.0 |10.4
http://bugs.winehq.org/show_bug.cgi?id=58092
BugSeeker rikul@inbox.ru changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |l@laa.am
http://bugs.winehq.org/show_bug.cgi?id=58092
--- Comment #1 from Alexandre Julliard julliard@winehq.org --- It looks like this is not an ARM64 binary.
http://bugs.winehq.org/show_bug.cgi?id=58092
--- Comment #2 from BugSeeker rikul@inbox.ru --- Yes indeed, for some reason google chrome/firefox say these are arm64 apps, but it turns out that's not quite true(at least the installer didn't launch).
I compiled a simple MFC sample app for ARM64 and it ran fine.
However, I saw that ARM64EC support was added, but when I try to open the same MFC sample app I get this error:
0050:err:vulkan:vulkan_init_once Wine was built without Vulkan support. 00c8:err:ntoskrnl:ZwLoadDriver failed to create driver L"\Registry\Machine\System\CurrentControlSet\Services\winebth": c00000e5 003c:fixme:service:scmdatabase_autostart_services Auto-start service L"winebth" failed to start: 1359 0024:err:environ:init_peb starting L"Z:\home\levon\Downloads\MFCApp1.exe" in experimental ARM64EC mode wine: failed to load /usr/local/lib/wine/aarch64-windows/ntdll.dll error c00000bb
Could you provide an update on the current state of ARM64EC support in Wine? Is there anything that needs to be enabled or configured differently to get such binaries to run?
http://bugs.winehq.org/show_bug.cgi?id=58092
--- Comment #3 from Alexandre Julliard julliard@winehq.org --- ARM64EC is supported, but it's not trivial to build.
Basically you need to build with the custom llvm from https://github.com/bylaws/llvm-mingw, and build Wine with --enable-archs=aarch64,arm64ec. Then you need to build the FEX emulator as ARM64EC, and copy the resulting dll into the prefix as xtajit64.dll.
Hopefully the process will be made easier in the future...
http://bugs.winehq.org/show_bug.cgi?id=58092
Robert Lippmann robert.lippmann.development@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |robert.lippmann.development | |@gmail.com
--- Comment #4 from Robert Lippmann robert.lippmann.development@gmail.com --- As an aside, I noticed that Windows on ARM queries the registry to find the x86_64 translator.
Perhaps Wine could use that approach to use different backends for jit translation?
http://bugs.winehq.org/show_bug.cgi?id=58092
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- (In reply to Robert Lippmann from comment #4)
As an aside, I noticed that Windows on ARM queries the registry to find the x86_64 translator.
Perhaps Wine could use that approach to use different backends for jit translation?
Yes, that's another way to do it. It's already supported in Wine, using the same key as Windows (HKLM\Software\Microsoft\Wow64).