Disable JSC JIT for Asahi SIG builds while it is broken with BTI enabled

JavaScriptCore's JIT crashes on Apple Silicon Macs running Linux such
that the kernel has BTI enabled. This breaks large parts of GNOME using
WebKitGTK, notably GNOME Online Accounts; GNOME Help; and other similar
things.

For the time being, we'll disable JSC JIT when the Asahi SIG builds
WebKitGTK. This makes us take a huge performance hit, but slow WebKit
is better than crashing WebKit.

Reference: https://bugs.webkit.org/show_bug.cgi?id=245697
Related: rhbz#2130009
This commit is contained in:
Neal Gompa 2023-01-07 19:21:11 -05:00
parent 48f4d80fd8
commit c49438eba2

View File

@ -332,6 +332,18 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
%ifarch aarch64
-DUSE_64KB_PAGE_BLOCK=ON \
%endif
%endif
%if "%{vendor}" == "Fedora Copr - group @asahi"
%dnl JIT is broken with BTI on Apple ARM systems at the moment
%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009
%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697
%dnl Disable until this is fixed upstream.
%dnl Yes, this means performance is going to suck... :'(
%ifarch aarch64
-DENABLE_JIT=OFF \
-DENABLE_C_LOOP=ON \
-DENABLE_SAMPLING_PROFILER=OFF \
%endif
%endif
%{nil}
@ -351,6 +363,18 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
%ifarch aarch64
-DUSE_64KB_PAGE_BLOCK=ON \
%endif
%endif
%if "%{vendor}" == "Fedora Copr - group @asahi"
%dnl JIT is broken with BTI on Apple ARM systems at the moment
%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009
%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697
%dnl Disable until this is fixed upstream.
%dnl Yes, this means performance is going to suck... :'(
%ifarch aarch64
-DENABLE_JIT=OFF \
-DENABLE_C_LOOP=ON \
-DENABLE_SAMPLING_PROFILER=OFF \
%endif
%endif
%{nil}
@ -371,6 +395,18 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
%ifarch aarch64
-DUSE_64KB_PAGE_BLOCK=ON \
%endif
%endif
%if "%{vendor}" == "Fedora Copr - group @asahi"
%dnl JIT is broken with BTI on Apple ARM systems at the moment
%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009
%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697
%dnl Disable until this is fixed upstream.
%dnl Yes, this means performance is going to suck... :'(
%ifarch aarch64
-DENABLE_JIT=OFF \
-DENABLE_C_LOOP=ON \
-DENABLE_SAMPLING_PROFILER=OFF \
%endif
%endif
%{nil}