https://bugs.winehq.org/show_bug.cgi?id=46797
Bug ID: 46797 Summary: Wine does not build correctly on armv8l platforms Product: Wine Version: unspecified Hardware: aarch64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: calcprogrammer1@gmail.com Distribution: ---
I'm attempting to compile Hangover (https://github.com/AndreRH/hangover) for my Raspberry Pi 3 running Gentoo aarch64, but I decided that since my Galaxy Note 8 has a better processor, I could use it for the build process. The Note 8 (at least the version that can be unlocked) has a 64-bit Exynos processor. I rooted it and was able to mount my Raspberry Pi's SD card in a USB reader and chroot into the Gentoo installation.
While Hangover isn't upstream Wine, I looked at the upstream Wine's configuration script and it has the same issues as the version used in Hangover.
I cd'd to the Hangover directory (same as I have done on the Pi) and tried to build. The build failed even though it worked on the Pi. The difference seems to be that the Note 8's kernel reports "armv8l" while the Pi reports "aarch64". Both are running the 64-bit Gentoo installation just fine, but the armv8l architecture string breaks the configure script on Wine. Instead of hitting the aarch64 configuration steps for 64-bit, it hits the 32-bit arm* steps and fails.
I manually edited the existing instances of "arm*" in the configure script to "armv7*" and added conditions for "armv8*" anywhere that aarch64 is used. This seems to get further in the build and is still building on my phone at this moment.
I'm not sure what the exact distinction between armv8l and aarch64 is, but I do know armv8l kernel seems to be able to run 64-bit code.