fix non-sse2 support (kde#346244) and optimize sse2 binaries
* Wed Apr 22 2015 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.4.1-3 - fix non-sse2 support (kde#346244) and optimize sse2 binaries
This commit is contained in:
parent
5632426e1e
commit
020aae44db
@ -13,7 +13,7 @@
|
|||||||
Summary: Qt5 - QtDeclarative component
|
Summary: Qt5 - QtDeclarative component
|
||||||
Name: qt5-%{qt_module}
|
Name: qt5-%{qt_module}
|
||||||
Version: 5.4.1
|
Version: 5.4.1
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
|
|
||||||
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
|
||||||
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
License: LGPLv2 with exceptions or GPLv3 with exceptions
|
||||||
@ -24,10 +24,9 @@ Source0: http://download.qt-project.org/development_releases/qt/5.4/%{version}-%
|
|||||||
Source0: http://download.qt-project.org/official_releases/qt/5.4/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz
|
Source0: http://download.qt-project.org/official_releases/qt/5.4/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# FIXME? now bases on whether qtbase supports sse2 (or not)
|
|
||||||
# support no_sse2 CONFIG (fedora i686 builds cannot assume -march=pentium4 -msse2 -mfpmath=sse flags, or the JIT that needs them)
|
# support no_sse2 CONFIG (fedora i686 builds cannot assume -march=pentium4 -msse2 -mfpmath=sse flags, or the JIT that needs them)
|
||||||
# https://codereview.qt-project.org/#change,73710
|
# https://codereview.qt-project.org/#change,73710
|
||||||
Patch1: qtdeclarative-opensource-src-5.2.0-no_sse2.patch
|
Patch1: qtdeclarative-opensource-src-5.4.1-no_sse2.patch
|
||||||
|
|
||||||
Obsoletes: qt5-qtjsbackend < 5.2.0
|
Obsoletes: qt5-qtjsbackend < 5.2.0
|
||||||
|
|
||||||
@ -78,7 +77,7 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n %{qt_module}-opensource-src-%{version}%{?pre:-%{pre}}
|
%setup -q -n %{qt_module}-opensource-src-%{version}%{?pre:-%{pre}}
|
||||||
|
|
||||||
#patch1 -p1 -b .no_sse2
|
%patch1 -p1 -b .no_sse2
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -89,8 +88,7 @@ popd
|
|||||||
|
|
||||||
make %{?_smp_mflags} -C %{_target_platform}
|
make %{?_smp_mflags} -C %{_target_platform}
|
||||||
|
|
||||||
#ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%if 0
|
|
||||||
# build libQt5Qml with no_sse2
|
# build libQt5Qml with no_sse2
|
||||||
mkdir -p %{_target_platform}-no_sse2
|
mkdir -p %{_target_platform}-no_sse2
|
||||||
pushd %{_target_platform}-no_sse2
|
pushd %{_target_platform}-no_sse2
|
||||||
@ -108,8 +106,7 @@ make %{?_smp_mflags} docs -C %{_target_platform}
|
|||||||
%install
|
%install
|
||||||
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}
|
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}
|
||||||
|
|
||||||
#ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%if 0
|
|
||||||
mkdir -p %{buildroot}%{_qt5_libdir}/sse2
|
mkdir -p %{buildroot}%{_qt5_libdir}/sse2
|
||||||
mv %{buildroot}%{_qt5_libdir}/libQt5Qml.so.5* %{buildroot}%{_qt5_libdir}/sse2/
|
mv %{buildroot}%{_qt5_libdir}/libQt5Qml.so.5* %{buildroot}%{_qt5_libdir}/sse2/
|
||||||
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-no_sse2/src/qml
|
make install INSTALL_ROOT=%{buildroot} -C %{_target_platform}-no_sse2/src/qml
|
||||||
@ -162,8 +159,7 @@ popd
|
|||||||
%doc LICENSE.GPL* LICENSE.LGPL* LGPL_EXCEPTION.txt
|
%doc LICENSE.GPL* LICENSE.LGPL* LGPL_EXCEPTION.txt
|
||||||
%doc dist/changes*
|
%doc dist/changes*
|
||||||
%{_qt5_libdir}/libQt5Qml.so.5*
|
%{_qt5_libdir}/libQt5Qml.so.5*
|
||||||
#ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
%if 0
|
|
||||||
%{_qt5_libdir}/sse2/libQt5Qml.so.5*
|
%{_qt5_libdir}/sse2/libQt5Qml.so.5*
|
||||||
%endif
|
%endif
|
||||||
%{_qt5_libdir}/libQt5Quick.so.5*
|
%{_qt5_libdir}/libQt5Quick.so.5*
|
||||||
@ -209,6 +205,9 @@ popd
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Apr 22 2015 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.4.1-3
|
||||||
|
- fix non-sse2 support (kde#346244) and optimize sse2 binaries
|
||||||
|
|
||||||
* Fri Feb 27 2015 Rex Dieter <rdieter@fedoraproject.org> - 5.4.1-2
|
* Fri Feb 27 2015 Rex Dieter <rdieter@fedoraproject.org> - 5.4.1-2
|
||||||
- rebuild (gcc5)
|
- rebuild (gcc5)
|
||||||
|
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
diff --git a/src/qml/jsruntime/jsruntime.pri b/src/qml/jsruntime/jsruntime.pri
|
|
||||||
index 72010d3..2bd5acb 100644
|
|
||||||
--- a/src/qml/jsruntime/jsruntime.pri
|
|
||||||
+++ b/src/qml/jsruntime/jsruntime.pri
|
|
||||||
@@ -107,7 +107,7 @@ SOURCES += \
|
|
||||||
|
|
||||||
# Use SSE2 floating point math on 32 bit instead of the default
|
|
||||||
# 387 to make test results pass on 32 and on 64 bit builds.
|
|
||||||
-linux-g++*:isEqual(QT_ARCH,i386) {
|
|
||||||
+linux-g++*:isEqual(QT_ARCH,i386):!no_sse2 {
|
|
||||||
QMAKE_CFLAGS += -march=pentium4 -msse2 -mfpmath=sse
|
|
||||||
QMAKE_CXXFLAGS += -march=pentium4 -msse2 -mfpmath=sse
|
|
||||||
}
|
|
||||||
diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h
|
|
||||||
index b5dc674..97e9ae6 100644
|
|
||||||
--- a/src/qml/jsruntime/qv4global_p.h
|
|
||||||
+++ b/src/qml/jsruntime/qv4global_p.h
|
|
||||||
@@ -75,7 +75,7 @@ inline double trunc(double d) { return d > 0 ? floor(d) : ceil(d); }
|
|
||||||
|
|
||||||
// White list architectures
|
|
||||||
|
|
||||||
-#if defined(Q_PROCESSOR_X86)
|
|
||||||
+#if defined(Q_PROCESSOR_X86) && defined(__SSE2__)
|
|
||||||
#define V4_ENABLE_JIT
|
|
||||||
#elif defined(Q_PROCESSOR_X86_64)
|
|
||||||
#define V4_ENABLE_JIT
|
|
39
qtdeclarative-opensource-src-5.4.1-no_sse2.patch
Normal file
39
qtdeclarative-opensource-src-5.4.1-no_sse2.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
diff -ur qtdeclarative-opensource-src-5.4.1/src/qml/jsruntime/jsruntime.pri qtdeclarative-opensource-src-5.4.1-no_sse2/src/qml/jsruntime/jsruntime.pri
|
||||||
|
--- qtdeclarative-opensource-src-5.4.1/src/qml/jsruntime/jsruntime.pri 2015-02-17 05:57:27.000000000 +0100
|
||||||
|
+++ qtdeclarative-opensource-src-5.4.1-no_sse2/src/qml/jsruntime/jsruntime.pri 2015-04-22 03:28:32.000000000 +0200
|
||||||
|
@@ -105,6 +105,11 @@
|
||||||
|
$$PWD/qv4string.cpp \
|
||||||
|
$$PWD/qv4value.cpp
|
||||||
|
|
||||||
|
+linux-g++*:isEqual(QT_ARCH,i386):!no_sse2 {
|
||||||
|
+ QMAKE_CFLAGS += -msse2 -mfpmath=sse
|
||||||
|
+ QMAKE_CXXFLAGS += -msse2 -mfpmath=sse
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
valgrind {
|
||||||
|
DEFINES += V4_USE_VALGRIND
|
||||||
|
}
|
||||||
|
diff -ur qtdeclarative-opensource-src-5.4.1/src/qml/jsruntime/qv4global_p.h qtdeclarative-opensource-src-5.4.1-no_sse2/src/qml/jsruntime/qv4global_p.h
|
||||||
|
--- qtdeclarative-opensource-src-5.4.1/src/qml/jsruntime/qv4global_p.h 2015-02-17 05:57:27.000000000 +0100
|
||||||
|
+++ qtdeclarative-opensource-src-5.4.1-no_sse2/src/qml/jsruntime/qv4global_p.h 2015-04-22 03:24:05.000000000 +0200
|
||||||
|
@@ -69,7 +69,7 @@
|
||||||
|
//
|
||||||
|
// NOTE: This should match the logic in qv4targetplatform_p.h!
|
||||||
|
|
||||||
|
-#if defined(Q_PROCESSOR_X86) && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
|
||||||
|
+#if defined(Q_PROCESSOR_X86) && defined(__SSE2__) && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_QNX) || defined(Q_OS_FREEBSD))
|
||||||
|
#define V4_ENABLE_JIT
|
||||||
|
#elif defined(Q_PROCESSOR_X86_64) && (defined(Q_OS_WIN) || defined(Q_OS_LINUX) || defined(Q_OS_MAC) || defined(Q_OS_FREEBSD))
|
||||||
|
#define V4_ENABLE_JIT
|
||||||
|
diff -ur qtdeclarative-opensource-src-5.4.1/src/qml/qml/v8/qv8engine.cpp qtdeclarative-opensource-src-5.4.1-no_sse2/src/qml/qml/v8/qv8engine.cpp
|
||||||
|
--- qtdeclarative-opensource-src-5.4.1/src/qml/qml/v8/qv8engine.cpp 2015-02-17 05:57:27.000000000 +0100
|
||||||
|
+++ qtdeclarative-opensource-src-5.4.1-no_sse2/src/qml/qml/v8/qv8engine.cpp 2015-04-22 03:11:59.000000000 +0200
|
||||||
|
@@ -121,7 +121,7 @@
|
||||||
|
, m_xmlHttpRequestData(0)
|
||||||
|
, m_listModelData(0)
|
||||||
|
{
|
||||||
|
-#ifdef Q_PROCESSOR_X86_32
|
||||||
|
+#if defined(Q_PROCESSOR_X86_32) && defined(__SSE2__)
|
||||||
|
if (!qCpuHasFeature(SSE2)) {
|
||||||
|
qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer");
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user