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.
https://bugs.winehq.org/show_bug.cgi?id=46797
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nerv@dawncrow.de
--- Comment #1 from André H. nerv@dawncrow.de --- Well, my understanding always was that armv8 in a toolchain name indicates that it is for building 32-bit code targeting armv8, while aarch64 targets 64-bit code for at least armv8
see e.g. https://aur.archlinux.org/packages/armv8l-linux-gnueabihf-gcc/ which clearly is a 32-bit arm compiler
https://bugs.winehq.org/show_bug.cgi?id=46797
André H. nerv@dawncrow.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED
--- Comment #2 from André H. nerv@dawncrow.de --- Resolving invalid as the setup seems very buggy and wrong, be free to reopen in case you can provide new info.
https://bugs.winehq.org/show_bug.cgi?id=46797
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Closing Invalid.