From 6d0ea12928c6b7dba9dff5216271039cfc9df92e Mon Sep 17 00:00:00 2001 From: eabdullin Date: Fri, 31 May 2024 17:04:56 +0000 Subject: [PATCH] Import from AlmaLinux stable repository --- .qt5-qtdeclarative.metadata | 1 - SOURCES/qt-QTBUG-111935-fix-V4-jit.patch | 44 ++++++++++++++++++++++++ SPECS/qt5-qtdeclarative.spec | 9 ++++- 3 files changed, 52 insertions(+), 2 deletions(-) delete mode 100644 .qt5-qtdeclarative.metadata create mode 100644 SOURCES/qt-QTBUG-111935-fix-V4-jit.patch diff --git a/.qt5-qtdeclarative.metadata b/.qt5-qtdeclarative.metadata deleted file mode 100644 index 3454eb7..0000000 --- a/.qt5-qtdeclarative.metadata +++ /dev/null @@ -1 +0,0 @@ -0384e6be3138fecbe858adc4d9fdb83970c033e6 SOURCES/qtdeclarative-everywhere-opensource-src-5.15.3.tar.xz diff --git a/SOURCES/qt-QTBUG-111935-fix-V4-jit.patch b/SOURCES/qt-QTBUG-111935-fix-V4-jit.patch new file mode 100644 index 0000000..96ad2c1 --- /dev/null +++ b/SOURCES/qt-QTBUG-111935-fix-V4-jit.patch @@ -0,0 +1,44 @@ +From e2bdde18d9758efdc6a0d7d106aad56995df1271 Mon Sep 17 00:00:00 2001 +From: Ulf Hermann +Date: Wed, 15 Mar 2023 08:59:43 +0100 +Subject: [PATCH] JIT: Add missing {STORE|LOAD}_ACC() to CreateCallContext + +We cannot assume anything about the accumulator register after calling +PushCallContext::call(). Also add a note about not needing to re-load +the accumulator on ThrowException. + +Pick-to: 6.5 6.2 5.15 +Fixes: QTBUG-111935 +Change-Id: I7196585e1d2697c215f4fe87d8d7ac9b98b622a3 +--- + src/qml/jit/qv4baselinejit.cpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/qml/jit/qv4baselinejit.cpp b/src/qml/jit/qv4baselinejit.cpp +index 14e183adb8..1d65169dce 100644 +--- a/src/qml/jit/qv4baselinejit.cpp ++++ b/src/qml/jit/qv4baselinejit.cpp +@@ -506,6 +506,8 @@ void BaselineJIT::generate_ThrowException() + as->passEngineAsArg(0); + BASELINEJIT_GENERATE_RUNTIME_CALL(ThrowException, CallResultDestination::Ignore); + as->gotoCatchException(); ++ ++ // LOAD_ACC(); <- not needed here since it would be unreachable. + } + + void BaselineJIT::generate_GetException() { as->getException(); } +@@ -513,9 +515,11 @@ void BaselineJIT::generate_SetException() { as->setException(); } + + void BaselineJIT::generate_CreateCallContext() + { ++ STORE_ACC(); + as->prepareCallWithArgCount(1); + as->passCppFrameAsArg(0); + BASELINEJIT_GENERATE_RUNTIME_CALL(PushCallContext, CallResultDestination::Ignore); ++ LOAD_ACC(); + } + + void BaselineJIT::generate_PushCatchContext(int index, int name) { as->pushCatchContext(index, name); } +-- +2.39.2 + diff --git a/SPECS/qt5-qtdeclarative.spec b/SPECS/qt5-qtdeclarative.spec index c4a9d82..707eff1 100644 --- a/SPECS/qt5-qtdeclarative.spec +++ b/SPECS/qt5-qtdeclarative.spec @@ -12,7 +12,7 @@ Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} Version: 5.15.3 -Release: 1%{?dist} +Release: 2%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -55,6 +55,9 @@ Patch20: 0020-Make-sure-QQuickWidget-and-its-offscreen-window-s-sc.patch Patch100: %{name}-gcc11.patch # https://pagure.io/fedora-kde/SIG/issue/82 Patch101: qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch +# From: https://codereview.qt-project.org/c/qt/qtdeclarative/+/466808 +# Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2177696 +Patch102: qt-QTBUG-111935-fix-V4-jit.patch # filter qml provides @@ -251,6 +254,10 @@ make check -k -C tests ||: %endif %changelog +* Tue Apr 25 2023 Jan Grulich - 5.15.3-2 +- Fix V4 JIT generating bad JIT code on ARM64 + Resolves: bz#2178625 + * Fri Mar 25 2022 Jan Grulich - 5.15.3-1 - 5.15.3 + sync with Fedora Resolves: bz#2061380