Accepting request 1068722 from KDE:Qt:5.15

Drop support for systems without SSE2 to fix boo#1208188. RFC, not built yet (forwarded request 1068677 from favogt)

OBS-URL: https://build.opensuse.org/request/show/1068722
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtdeclarative?expand=0&rev=76
This commit is contained in:
Dominique Leuenberger 2023-03-03 21:24:34 +00:00 committed by Git OBS Bridge
commit 8b8eb652b2
3 changed files with 8 additions and 85 deletions

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu Mar 2 11:49:15 UTC 2023 - Fabian Vogt <fvogt@suse.com>
- Drop the mechanism for supporting systems without SSE2. glibc removed
support for looking up libraries in sse2/ subdirectories and libQt5Qml5
without SSE2 crashes Plasma (boo#1208188):
* sse2_nojit.patch
-------------------------------------------------------------------
Mon Jan 9 09:19:15 UTC 2023 - Fabian Vogt <fabian@ritter-vogt.de>

View File

@ -31,8 +31,6 @@ Group: Development/Libraries/X11
URL: https://www.qt.io
Source: %{tar_version}.tar.xz
Source1: baselibs.conf
# PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case
Patch100: sse2_nojit.patch
# https://invent.kde.org/qt/qt/qtdeclarative/-/merge_requests/32
Patch103: qtdeclarative-5.15.0-FixMaxXMaxYExtent.patch
BuildRequires: fdupes
@ -143,49 +141,16 @@ mkdir .git
mkdir -p %{_target_platform}
pushd %{_target_platform}
# Force-enable the JIT for 32-bit x86
%ifarch %{ix86}
qmake-qt5 .. -- -qml-jit
%else
qmake-qt5 ..
%endif
popd
make %{?_smp_mflags} VERBOSE=1 -C %{_target_platform}
%ifarch %{ix86}
%if 0%{?sle_version:%sle_version} < 150000
# build libQt5Qml with no_sse2
mkdir -p %{_target_platform}-no_sse2
pushd %{_target_platform}-no_sse2
%qmake5 -config no_sse2 .. -- -no-qml-jit
make %{?_smp_mflags} VERBOSE=1 sub-src-qmake_all
# src/qml/Makefile has to be generated after qmltyperegistrar was built,
# so we have to run qmake again after that. There is no explicit
# dependency, it relies on CONFIG+=ordered...
make %{?_smp_mflags} VERBOSE=1 -C src/qmltyperegistrar
make %{?_smp_mflags} VERBOSE=1 sub-src-qmake_all
make %{?_smp_mflags} VERBOSE=1 -C src/qml
popd
%endif
%endif
%install
pushd %{_target_platform}
%qmake5_install
popd
%ifarch %{ix86}
%if 0%{?sle_version:%sle_version} < 150000
mkdir -p %{buildroot}%{_libqt5_libdir}//sse2
mv %{buildroot}%{_libqt5_libdir}/libQt5Qml.so.5* %{buildroot}%{_libqt5_libdir}/sse2/
pushd %{_target_platform}-no_sse2/src/qml
%qmake5_install
popd
%endif
%endif
find %{buildroot}/%{_libdir} -type f -name '*la' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} \;
find %{buildroot}/%{_libdir}/pkgconfig -type f -name '*pc' -print -exec perl -pi -e 's, -L%{_builddir}/\S+,,g' {} \;
# kill .la files
@ -214,11 +179,6 @@ popd
%files -n %{libname}
%license LICENSE.*
%{_libqt5_libdir}/libQt5Q*.so.*
%ifarch %{ix86}
%if 0%{?sle_version:%sle_version} < 150000
%{_libqt5_libdir}/sse2/libQt5Q*.so.*
%endif
%endif
%dir %{_libqt5_archdatadir}/qml
%dir %{_libqt5_archdatadir}/qml/Qt
%{_libqt5_archdatadir}/qml/QtQuick

View File

@ -1,45 +0,0 @@
From: Fabian Vogt <fabian@ritter-vogt.de>
Subject: Allow building with and without JIT on i586
For i586, the default Qt does not have sse2 enabled, but for sse2 capable systems
we'd like to have it use the JIT. Do some patching in the configuration system
to allow toggling it from the qmake call.
Originally written by Wolfgang Bauer <wbauer@tmo.at>
Index: qtdeclarative-everywhere-src-5.14.0-alpha/src/qml/jsruntime/jsruntime.pri
===================================================================
--- qtdeclarative-everywhere-src-5.14.0-alpha.orig/src/qml/jsruntime/jsruntime.pri
+++ qtdeclarative-everywhere-src-5.14.0-alpha/src/qml/jsruntime/jsruntime.pri
@@ -164,6 +164,10 @@ win32 {
$$PWD/qv4functiontable_unix.cpp
}
+linux-g++*:isEqual(QT_ARCH,i386):!no_sse2 {
+ QMAKE_CFLAGS += -msse2 -mfpmath=sse
+ QMAKE_CXXFLAGS += -msse2 -mfpmath=sse
+}
valgrind {
DEFINES += V4_USE_VALGRIND
Index: qtdeclarative-everywhere-src-5.14.0-alpha/src/qml/configure.json
===================================================================
--- qtdeclarative-everywhere-src-5.14.0-alpha.orig/src/qml/configure.json
+++ qtdeclarative-everywhere-src-5.14.0-alpha/src/qml/configure.json
@@ -8,6 +8,7 @@
"commandline": {
"options": {
"qml-network": "boolean",
+ "qml-jit": "boolean",
"qml-debug": "boolean"
}
},
@@ -90,7 +91,7 @@
"purpose": "Provides a JIT for QML and JavaScript",
"section": "QML",
"condition": [
- " (arch.i386 && tests.pointer_32bit && features.sse2)
+ " (arch.i386 && tests.pointer_32bit)
|| (arch.x86_64 && tests.pointer_64bit && features.sse2)
|| (arch.arm && tests.pointer_32bit && tests.arm_fp && tests.arm_thumb
&& (config.linux || config.ios || config.tvos || config.qnx))