Subj.
Вообще, Wine собираться под ARM64 умеет достаточно давно, но особого смысла от этого не было. То, ради чего нужен Wine, под ARM64, понятным образом, не заработает без эмуляции, в которую сам по себе Wine не умел. В самом же оффтопе для запуска x64 используется как стандартный эмулятор/транслятор xtajit64, так и ARM64EC ABI – что-то похожее на Universal бинарники в одной известной BSD-based OS.
Добавление такого в Wine был вопрос времени и.. в Wine 10.0 таки появилась официальная (экспериментальная) поддержка ARM64EC. Собранный с таким таргетом Wine вместе с готовым эмулятором, адаптированным к работе в окружении ntdll (Win32 не подходит) позволяет запускать как нативные приложения, так и x64, используя тот же механизм, что применяется в самом Windows-on-ARM.
Кому это надо? Энтузиастам на маках с Asahi навроде меня и… неожиданно Valve, которые делают VR шлем с ARM на борту.
По сравнению с старыми способами запуска Wine под эмулированным x86 Linux окружением (FEX/box64), тут всё работает чуть стабильнее засчёт прямого доступа к линуксовым либам (libvulkan, libwayland-client, libGL, etc..). И сколько-то быстрее – по идее, fsync/ntsync должен в таком окружении поддерживаться без проблем т.к. эмулируется только CPU-часть.
WoW64 (x86_32) тоже запускается, но менее стабильно – по большей части потому, что сама по себе поддержка wow64 в вине оставляет желать лучшего. Но для запуска инсталляторов хватает (многие до сих пор 32 битные).
С Wine-10.4 добавили поддержку работы оного на ядрах с размером страниц выше 4K – не знаю, как они это смогли реализовать (ведь не существует WoA устройств с таким размером), но разницы с запуском под 4K окружением и 16К я не заметил. Всё работает одинаково, разве что костыли с виртуальной машиной для обхода ограничений железа не нужны.
Собирается легко, если в системе есть clang/llvm 20:
./configure --enable-archs=i386,arm64ec,aarch64 --disable-tests --with-mingw=clang
Забавно, что в вышеупомянутом Darwin вайн собирается, но…
zsh: killed wineboot
.
Похоже, что в XNU чего-то не хватает.
TL;DR игрушечки и приложения работают, на x64 стабильно, на x86_32 как повезёт.
P.S. Notepad++ на скриншоте нативный ARM64. Игра (DX12), очевидно, нет, только x64.
P.P.S. добавил тег asahi, потому что это одно из окружений, на котором wine теперь работает нативно. Скриншоты также сделаны под Asahi.