After my ARM port ARM64 (AArch64) was a logical step and due to my experience with ARM it only took days instead of month.
Again we are faster than the other win32 implementation :), therefore it's a pure Winelib port.
- Yes, It works! (TM)
- Patchset was committed on January 16. 2013 and is available since Wine-1.5.22
- Backtraces work
- WOW64 setup works now
- relay tracing
- libs/port/interlocked.c: maybe native operations
As of now, we found two ABI incompatibilities:
How to help
- Analyze and/or fix (most likely in GCC) the variable arguments problem.
- Report bugs with winelib or Windows applications.
there you get a cross-toolchain, a bootable system and instruction on how to get the Foundation Model from ARM. (qemu should also work, but i haven't had much success with it yet) For the start run configure like:
../configure --host=aarch64-linux-gnu host_alias=aarch64-linux-gnu --with-wine-tools=../yourotherbuilddir/ --without-freetype --without-x --enable-win64
Running Windows arm64 Applications
The SDK for win10 includes some PEs for arm64, have a look at Bug 38714.
There you can also find the first major issue: Security Cookies are always checked on startup, which is not to hard to fix.
Next problem is that there are indications that we have again an ABI incompatibility with variable arguments. We already had that problem with x86_64 and it needed to be fixed within GCC.
A look at the Linux Kernel showed that the user writeable TLS register is used as thread pointer on arm64, which might be a problem. On ARM we needed to adjust the use of that register, which wasn't really used before, but we can't do the same for arm64 now as the register is in use. But we don't know yet if this will be necessary.
ARM64 commits in Wine