Package: wine
Version: 10.0~repack-6
Severity: normal
Tags: patch
X-Debbugs-Cc: [email protected], [email protected]
User: [email protected]
Usertags: arm64

Dear Maintainer,

When running Wine on arm64, on HW with pointer authentication
(armv8.3 and newer), Wine fails to run.

In some cases, it hangs directly on startup for any case (e.g.
"wine wineboot" hangs), in some cases it seemingly runs
successfully, but any case that requires unwinding in the user
executables fail.

(Exactly what makes it seemingly succeed in some cases and
hang in others is unclear.)

The issue can be consistently observed by running
"WINEDEBUG=+seh wine wineboot" in a fresh install with no
preexisting wine prefix (~/.wine).

On older hardware, without support for pointer authentication,
Wine starts up nicely (and there are a handful of debug printouts
about unwinding one exception). On newer hardware, it results in
repeated printouts about EXCEPTION_ILLEGAL_INSTRUCTION.

The root cause of this issue is that Clang 19 and newer has
regressed the code generation for return address signing on
Windows on aarch64 - this issue has been filed upstream at
[1]. Debian builds of Wine have pointer authentication enabled
for the internal PE components of Wine (and those components
are compiled with Clang), which causes Wine to trip over itself
when unwinding through those components.

However, the issue is made visible due to the fact that Wine's
unwinding of pointer authentication was more strict than
what really is necessary. A fix for this was merged in [2].
This fix avoids triggering illegal instructions and breaking
on these cases.

This fix will be in the upcoming development release Wine 11.12,
but it also applies cleanly on e.g. Wine 10.0. Applying this
patch in the Debian packaging will likely fix this issue.


[1] https://github.com/llvm/llvm-project/issues/203852
[2] 
https://gitlab.winehq.org/wine/wine/-/commit/a83427f29e925d8b29cf58a55406d28bd95750a2


-- Package-specific info:
/usr/bin/wine points to /usr/bin/wine-stable.

-- System Information:
Debian Release: 13.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: arm64 (aarch64)

Kernel: Linux 6.6.10-cix-build-generic (SMP w/12 CPU threads; PREEMPT)
Kernel taint flags: TAINT_CPU_OUT_OF_SPEC, TAINT_OOT_MODULE
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: unable to detect

Versions of packages wine depends on:
ii  wine64  10.0~repack-6

wine recommends no packages.

Versions of packages wine suggests:
pn  dosbox                        <none>
pn  exe-thumbnailer | kio-extras  <none>
pn  playonlinux                   <none>
pn  q4wine                        <none>
pn  winbind                       <none>
pn  wine-binfmt                   <none>
pn  winetricks                    <none>

Versions of packages libwine depends on:
ii  libasound2t64                    1.2.14-1
ii  libavcodec61                     7:7.1.4-0+deb13u1
ii  libavformat61                    7:7.1.4-0+deb13u1
ii  libavutil59                      7:7.1.4-0+deb13u1
ii  libc6                            2.41-12+deb13u1
ii  libcapi20-3t64                   1:3.27-3.2+b1
ii  libfontconfig1                   2.15.0-2.3
ii  libfreetype6                     2.13.3+dfsg-1+deb13u1
ii  libglib2.0-0t64                  2.84.4-3~deb13u3
ii  libgphoto2-6t64                  2.5.31-4
ii  libgphoto2-port12t64             2.5.31-4
ii  libgstreamer-plugins-base1.0-0   1.26.2-1+deb13u1
ii  libgstreamer1.0-0                1.26.2-2
ii  libpcap0.8t64                    1.10.5-2
ii  libpcsclite1                     2.3.3-1
ii  libpulse0                        17.0+dfsg1-2+b1
ii  libudev1                         257.13-1~deb13u1
ii  libusb-1.0-0                     2:1.0.28-1
ii  libwayland-client0               1.23.1-3
ii  libwayland-egl1                  1.23.1-3
ii  libx11-6                         2:1.8.12-1
ii  libxext6                         2:1.3.4-1+b3
ii  libxkbcommon0                    1.7.0-2
ii  libxkbregistry0                  1.7.0-2
ii  libz-mingw-w64                   1.3.1+dfsg-2
ii  ocl-icd-libopencl1 [libopencl1]  2.3.3-1

Versions of packages libwine recommends:
ii  fonts-liberation           1:2.1.5-3
ii  fonts-wine                 10.0~repack-6
ii  gstreamer1.0-plugins-good  1.26.2-1+deb13u1
ii  libasound2-plugins         1.2.12-2+b1
ii  libcups2t64                2.4.10-3+deb13u2
ii  libdbus-1-3                1.16.2-2
ii  libegl1                    1.7.0-1+b2
ii  libgl1                     1.7.0-1+b2
ii  libgl1-mesa-dri            25.0.7-2
ii  libgnutls30t64             3.8.9-3+deb13u4
ii  libgssapi-krb5-2           1.21.3-5+deb13u1
ii  libkrb5-3                  1.21.3-5+deb13u1
ii  libodbc2                   2.3.12-2
ii  libosmesa6                 25.0.7-2
ii  libsdl2-2.0-0              2.32.4+dfsg-1
ii  libv4l-0t64                1.30.1-1
ii  libvulkan1                 1.4.309.0-1
ii  libxcomposite1             1:0.4.6-1
ii  libxcursor1                1:1.2.3-1
ii  libxfixes3                 1:6.0.0-2+b4
ii  libxi6                     2:1.8.2-1
ii  libxinerama1               2:1.1.4-3+b4
ii  libxrandr2                 2:1.5.4-1+b3
ii  libxrender1                1:0.9.12-1
ii  libxxf86vm1                1:1.1.4-1+b4

Versions of packages libwine suggests:
pn  cups-bsd                   <none>
pn  gstreamer1.0-libav         <none>
pn  gstreamer1.0-plugins-bad   <none>
pn  gstreamer1.0-plugins-ugly  <none>
pn  ttf-mscorefonts-installer  <none>

Versions of packages wine64 depends on:
ii  libc6    2.41-12+deb13u1
ii  libwine  10.0~repack-6

Versions of packages wine64 recommends:
pn  wine32  <none>

Versions of packages wine64 suggests:
pn  wine64-preloader  <none>

Versions of packages wine is related to:
pn  dxvk                     <none>
pn  dxvk-wine32-development  <none>
pn  dxvk-wine64-development  <none>
ii  fonts-wine               10.0~repack-6

-- no debconf information

Reply via email to