diff --git a/.gitignore b/.gitignore index 01fe711..cd09642 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -/qtdeclarative-opensource-src-5.9.1.tar.xz -/qtdeclarative-opensource-src-5.9.2.tar.xz -/qtdeclarative-opensource-src-5.9.3.tar.xz -/qtdeclarative-everywhere-src-5.10.0.tar.xz /qtdeclarative-everywhere-src-5.10.1.tar.xz +/qtdeclarative-everywhere-src-5.11.0.tar.xz diff --git a/0111-Fix-qml-cache-invalidation-when-changing-dependent-C.patch b/0111-Fix-qml-cache-invalidation-when-changing-dependent-C.patch deleted file mode 100644 index 3244c60..0000000 --- a/0111-Fix-qml-cache-invalidation-when-changing-dependent-C.patch +++ /dev/null @@ -1,168 +0,0 @@ -From 98358715930739ca8de172d88c5ce6941c275ff3 Mon Sep 17 00:00:00 2001 -From: Simon Hausmann -Date: Tue, 12 Sep 2017 15:13:33 +0200 -Subject: [PATCH 111/153] Fix qml cache invalidation when changing dependent - C++ registered QML singletons - -When a qml file uses a qml singleton, we need to reliably detect when -the singleton changes and re-generate the cache of the qml file using -it. This is a scenario covered and fixed by commit -5b94de09cc738837d1539e28b3c0dccd17c18d29, with the exception that -currently QML singletons registered via qmlRegisterSingleton were not -added to the list of dependent singletons for a qml file. We can fix -this by extending findCompositeSingletons() to also cover the singletons -that do not originate from a qmldir file. - -[ChangeLog][Qt][Qml] Fixed bug where sometimes changes to a qml -singleton would not propagate to the users or cause crashes. - -Task-number: QTBUG-62243 -Change-Id: I16c3d9ba65fd82e898a29b946c341907751135a9 -Reviewed-by: Lars Knoll ---- - src/qml/qml/qqmlimport.cpp | 11 +++++ - src/qml/qml/qqmlmetatype.cpp | 12 +++++ - src/qml/qml/qqmlmetatype_p.h | 2 + - tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp | 61 ++++++++++++++++++++++++ - 4 files changed, 86 insertions(+) - -diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp -index 0bd731747..ccd287e1b 100644 ---- a/src/qml/qml/qqmlimport.cpp -+++ b/src/qml/qml/qqmlimport.cpp -@@ -471,6 +471,17 @@ void findCompositeSingletons(const QQmlImportNamespace &set, QListuri, import->majversion)) { -+ module->walkCompositeSingletons([&resultList, &set](const QQmlType &singleton) { -+ QQmlImports::CompositeSingletonReference ref; -+ ref.typeName = singleton.elementName(); -+ ref.prefix = set.prefix; -+ ref.majorVersion = singleton.majorVersion(); -+ ref.minorVersion = singleton.minorVersion(); -+ resultList.append(ref); -+ }); -+ } - } - } - -diff --git a/src/qml/qml/qqmlmetatype.cpp b/src/qml/qml/qqmlmetatype.cpp -index 5bbc250d5..8f5d11a96 100644 ---- a/src/qml/qml/qqmlmetatype.cpp -+++ b/src/qml/qml/qqmlmetatype.cpp -@@ -1258,6 +1258,18 @@ QQmlType QQmlTypeModule::type(const QV4::String *name, int minor) const - return QQmlType(); - } - -+void QQmlTypeModule::walkCompositeSingletons(const std::function &callback) const -+{ -+ QMutexLocker lock(metaTypeDataLock()); -+ for (auto typeCandidates = d->typeHash.begin(), end = d->typeHash.end(); -+ typeCandidates != end; ++typeCandidates) { -+ for (auto type: typeCandidates.value()) { -+ if (type->regType == QQmlType::CompositeSingletonType) -+ callback(QQmlType(type)); -+ } -+ } -+} -+ - QQmlTypeModuleVersion::QQmlTypeModuleVersion() - : m_module(0), m_minor(0) - { -diff --git a/src/qml/qml/qqmlmetatype_p.h b/src/qml/qml/qqmlmetatype_p.h -index ac2133ba3..9a7736ffc 100644 ---- a/src/qml/qml/qqmlmetatype_p.h -+++ b/src/qml/qml/qqmlmetatype_p.h -@@ -298,6 +298,8 @@ public: - QQmlType type(const QHashedStringRef &, int) const; - QQmlType type(const QV4::String *, int) const; - -+ void walkCompositeSingletons(const std::function &callback) const; -+ - QQmlTypeModulePrivate *priv() { return d; } - private: - //Used by register functions and creates the QQmlTypeModule for them -diff --git a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp -index 6ab84774f..e75e51ed2 100644 ---- a/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp -+++ b/tests/auto/qml/qmldiskcache/tst_qmldiskcache.cpp -@@ -59,6 +59,7 @@ private slots: - void cacheResources(); - void stableOrderOfDependentCompositeTypes(); - void singletonDependency(); -+ void cppRegisteredSingletonDependency(); - }; - - // A wrapper around QQmlComponent to ensure the temporary reference counts -@@ -790,6 +791,66 @@ void tst_qmldiskcache::singletonDependency() - } - } - -+void tst_qmldiskcache::cppRegisteredSingletonDependency() -+{ -+ qmlClearTypeRegistrations(); -+ QScopedPointer engine(new QQmlEngine); -+ -+ QTemporaryDir tempDir; -+ QVERIFY(tempDir.isValid()); -+ -+ const auto writeTempFile = [&tempDir](const QString &fileName, const char *contents) { -+ QFile f(tempDir.path() + '/' + fileName); -+ const bool ok = f.open(QIODevice::WriteOnly | QIODevice::Truncate); -+ Q_ASSERT(ok); -+ f.write(contents); -+ return f.fileName(); -+ }; -+ -+ writeTempFile("MySingleton.qml", "import QtQml 2.0\npragma Singleton\nQtObject { property int value: 42 }"); -+ -+ qmlRegisterSingletonType(QUrl::fromLocalFile(tempDir.path() + QLatin1String("/MySingleton.qml")), "CppRegisteredSingletonDependency", 1, 0, "Singly"); -+ -+ const QString testFilePath = writeTempFile("main.qml", "import QtQml 2.0\nimport CppRegisteredSingletonDependency 1.0\nQtObject {\n" -+ " function getValue() { return Singly.value; }\n" -+ "}"); -+ -+ { -+ CleanlyLoadingComponent component(engine.data(), QUrl::fromLocalFile(testFilePath)); -+ QScopedPointer obj(component.create()); -+ QVERIFY(!obj.isNull()); -+ QVariant value; -+ QVERIFY(QMetaObject::invokeMethod(obj.data(), "getValue", Q_RETURN_ARG(QVariant, value))); -+ QCOMPARE(value.toInt(), 42); -+ } -+ -+ const QString testFileCachePath = testFilePath + QLatin1Char('c'); -+ QVERIFY(QFile::exists(testFileCachePath)); -+ QDateTime initialCacheTimeStamp = QFileInfo(testFileCachePath).lastModified(); -+ -+ engine.reset(new QQmlEngine); -+ waitForFileSystem(); -+ -+ writeTempFile("MySingleton.qml", "import QtQml 2.0\npragma Singleton\nQtObject { property int value: 100 }"); -+ waitForFileSystem(); -+ -+ { -+ CleanlyLoadingComponent component(engine.data(), QUrl::fromLocalFile(testFilePath)); -+ QScopedPointer obj(component.create()); -+ QVERIFY(!obj.isNull()); -+ -+ { -+ QVERIFY(QFile::exists(testFileCachePath)); -+ QDateTime newCacheTimeStamp = QFileInfo(testFileCachePath).lastModified(); -+ QVERIFY2(newCacheTimeStamp > initialCacheTimeStamp, qPrintable(newCacheTimeStamp.toString())); -+ } -+ -+ QVariant value; -+ QVERIFY(QMetaObject::invokeMethod(obj.data(), "getValue", Q_RETURN_ARG(QVariant, value))); -+ QCOMPARE(value.toInt(), 100); -+ } -+} -+ - QTEST_MAIN(tst_qmldiskcache) - - #include "tst_qmldiskcache.moc" --- -2.14.3 - diff --git a/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch b/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch index 9c300aa..74c571b 100644 --- a/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch +++ b/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch @@ -18,61 +18,14 @@ signatures. Version: 5.7.x Bug-Debian: https://bugs.debian.org/792594 --- - src/qml/jit/qv4isel_masm.cpp | 2 ++ - src/qml/jit/qv4isel_masm_p.h | 18 ++++++++++++++++++ src/qml/jsruntime/qv4engine.cpp | 1 + src/qml/qml/v8/qv8engine.cpp | 7 ------- tools/qmljs/qmljs.cpp | 7 +++---- 5 files changed, 24 insertions(+), 11 deletions(-) ---- a/src/qml/jit/qv4isel_masm.cpp -+++ b/src/qml/jit/qv4isel_masm.cpp -@@ -72,6 +72,8 @@ InstructionSelection::Inst - , compilationUnit(new CompilationUnit) - , qmlEngine(qmlEngine) - { -+ checkRequiredCpuSupport(); -+ - compilationUnit->codeRefs.resize(module->functions.size()); - module->unitFlags |= QV4::CompiledData::Unit::ContainsMachineCode; - } ---- a/src/qml/jit/qv4isel_masm_p.h -+++ b/src/qml/jit/qv4isel_masm_p.h -@@ -60,6 +60,7 @@ - - #include - #include -+#include - #include - #include - -@@ -72,6 +73,23 @@ QT_BEGIN_NAMESPACE - namespace QV4 { - namespace JIT { - -+Q_QML_PRIVATE_EXPORT inline bool hasRequiredCpuSupport() -+{ -+#ifdef Q_PROCESSOR_X86_32 -+ return qCpuHasFeature(SSE2); -+#else -+ return true; -+#endif -+} -+ -+Q_QML_PRIVATE_EXPORT inline void checkRequiredCpuSupport() -+{ -+#ifdef Q_PROCESSOR_X86_32 -+ if (!qCpuHasFeature(SSE2)) -+ qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer"); -+#endif -+} -+ - template > - class Q_QML_EXPORT InstructionSelection: - protected IR::IRDecoder, --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp -@@ -165,6 +165,7 @@ ExecutionEngine::ExecutionEngine(EvalISe +@@ -160,6 +160,7 @@ #ifdef V4_ENABLE_JIT static const bool forceMoth = !qEnvironmentVariableIsEmpty("QV4_FORCE_INTERPRETER") || @@ -90,7 +43,7 @@ Bug-Debian: https://bugs.debian.org/792594 #include #include -@@ -129,12 +128,6 @@ QV8Engine::QV8Engine(QJSEngine* qq) +@@ -129,12 +128,6 @@ , m_xmlHttpRequestData(0) , m_listModelData(0) { @@ -105,7 +58,7 @@ Bug-Debian: https://bugs.debian.org/792594 qMetaTypeId >(); --- a/tools/qmljs/qmljs.cpp +++ b/tools/qmljs/qmljs.cpp -@@ -92,11 +92,10 @@ int main(int argc, char *argv[]) +@@ -90,11 +90,10 @@ enum { use_masm, use_moth diff --git a/qt5-qtdeclarative.spec b/qt5-qtdeclarative.spec index e26defc..1bbb88c 100644 --- a/qt5-qtdeclarative.spec +++ b/qt5-qtdeclarative.spec @@ -1,11 +1,10 @@ %global qt_module qtdeclarative -%if 0 -#ifarch %{ix86} +%ifarch %{ix86} %global nosse2_hack 1 ## TODO: -# * consider debian's approach of runtime detection instead: -# https://codereview.qt-project.org/#/c/127354/ +# * consider debian's approach of runtime detection instead, +# w hen/if their patch is rebased for 5.11.x %endif # definition borrowed from qtbase @@ -13,13 +12,14 @@ Summary: Qt5 - QtDeclarative component Name: qt5-%{qt_module} -Version: 5.10.1 -Release: 5%{?dist} +Version: 5.11.0 +Release: 0.1%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details License: LGPLv2 with exceptions or GPLv3 with exceptions Url: http://www.qt.io -Source0: https://download.qt.io/official_releases/qt/5.10/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz +%global majmin %(echo %{version} | cut -d. -f1-2) +Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz # header file to workaround multilib issue # https://bugzilla.redhat.com/show_bug.cgi?id=1441343 @@ -27,29 +27,16 @@ Source5: qv4global_p-multilib.h # 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 -Patch1: qtdeclarative-opensource-src-5.9.0-no_sse2.patch - -# workaround for possible deadlock condition in QQuickShaderEffectSource -# https://bugzilla.redhat.com/show_bug.cgi?id=1237269 -# https://bugs.kde.org/show_bug.cgi?id=348385 -Patch2: qtdeclarative-QQuickShaderEffectSource_deadlock.patch +# inspired by https://build.opensuse.org/package/view_file/KDE:Unstable:Qt/libqt5-qtdeclarative/sse2_nojit.patch +Patch1: qtdeclarative-opensource-src-5.11.0-no_sse2.patch ## upstream patches -# https://codereview.qt-project.org/#/c/224684/ -Patch100: qtdeclarative-leak.patch - -# regression https://bugreports.qt.io/browse/QTBUG-64017 -# so revert this offending commit (for now) -Patch111: 0111-Fix-qml-cache-invalidation-when-changing-dependent-C.patch ## upstreamable patches -# use system double-conversation -# https://bugs.kde.org/show_bug.cgi?id=346118#c108 -Patch201: qtdeclarative-kdebug346118.patch # https://codereview.qt-project.org/#/c/127354/ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792594 -Patch202: http://sources.debian.net/data/main/q/qtdeclarative-opensource-src/5.9.0~beta3-2/debian/patches/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch +#Patch202: https://sources.debian.org/data/main/q/qtdeclarative-opensource-src/5.10.1-4/debian/patches/Do-not-make-lack-of-SSE2-support-on-x86-32-fatal.patch # filter qml provides %global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$ @@ -103,15 +90,9 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %if 0%{?nosse2_hack} %patch1 -p1 -b .no_sse2 %endif -%patch2 -p1 -b .QQuickShaderEffectSource_deadlock -%patch100 -p1 -b .memleak - -%patch111 -p1 -R -b .0111 - - -%patch201 -p0 -b .kdebug346118 -%patch202 -p1 -b .no_sse2_non_fatal +## FIXME/REBASE +#patch202 -p1 -b .no_sse2_non_fatal %build @@ -238,6 +219,10 @@ make check -k -C tests ||: %changelog +* Wed May 23 2018 Rex Dieter - 5.11.0-1 +- 5.11.0 +- i686: use nosse2_hack again + * Tue Apr 03 2018 Rex Dieter - 5.10.1-5 - pull in candidate memleak fix (review#224684) diff --git a/qtdeclarative-QQuickShaderEffectSource_deadlock.patch b/qtdeclarative-QQuickShaderEffectSource_deadlock.patch deleted file mode 100644 index ce3660c..0000000 --- a/qtdeclarative-QQuickShaderEffectSource_deadlock.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickshadereffectsource.cpp 2015-06-30 07:30:51.938794778 +0200 -+++ qtdeclarative-opensource-src-5.4.2/src/quick/items/qquickshadereffectsource.cpp.orig 2015-06-30 07:29:47.019163937 +0200 -@@ -632,8 +632,12 @@ - - const QSize minTextureSize = d->sceneGraphContext()->minimumFBOSize(); - // Keep power-of-two by doubling the size. -+ if (textureSize.width() < 1) -+ textureSize.rwidth() = 1; - while (textureSize.width() < minTextureSize.width()) - textureSize.rwidth() *= 2; -+ if (textureSize.height() < 1) -+ textureSize.rheight() = 1; - while (textureSize.height() < minTextureSize.height()) - textureSize.rheight() *= 2; - diff --git a/qtdeclarative-kdebug346118.patch b/qtdeclarative-kdebug346118.patch deleted file mode 100644 index b131b10..0000000 --- a/qtdeclarative-kdebug346118.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- src/qml/util/qqmladaptormodel.cpp.orig 2016-05-27 17:06:31.192332166 -0300 -+++ src/qml/util/qqmladaptormodel.cpp 2016-05-27 18:37:27.764552053 -0300 -@@ -163,8 +163,14 @@ public: - signalIndexes.append(propertyId + signalOffset); - } - -- for (int i = 0, c = items.count(); i < c; ++i) { -- QQmlDelegateModelItem *item = items.at(i); -+ const QList copy = items; -+ for (int i = 0, c = copy.count(); i < c; ++i) { -+ // Applying the same logic used in QQmlDelegateModel::_q_itemsRemoved(). -+ QQmlDelegateModelItem *item = copy.at(i); -+ if (!items.contains(item)) { -+ continue; -+ } -+ - const int idx = item->modelIndex(); - if (idx >= index && idx < index + count) { - for (int i = 0; i < signalIndexes.count(); ++i) diff --git a/qtdeclarative-leak.patch b/qtdeclarative-leak.patch deleted file mode 100644 index 141aba3..0000000 --- a/qtdeclarative-leak.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -up qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp.leak qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp ---- qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp.leak 2018-04-03 11:14:09.975064043 -0500 -+++ qtdeclarative-everywhere-src-5.10.1/src/quick/scenegraph/qsgrenderloop.cpp 2018-04-03 11:15:29.347573091 -0500 -@@ -305,6 +305,8 @@ void QSGGuiThreadRenderLoop::hide(QQuick - { - QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); - cd->fireAboutToStop(); -+ if (m_windows.contains(window)) -+ m_windows[window].updatePending = false; - } - - void QSGGuiThreadRenderLoop::windowDestroyed(QQuickWindow *window) -@@ -494,7 +496,8 @@ QImage QSGGuiThreadRenderLoop::grab(QQui - - void QSGGuiThreadRenderLoop::maybeUpdate(QQuickWindow *window) - { -- if (!m_windows.contains(window)) -+ QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); -+ if (!cd->isRenderable() || !m_windows.contains(window)) - return; - - m_windows[window].updatePending = true; diff --git a/qtdeclarative-opensource-src-5.11.0-no_sse2.patch b/qtdeclarative-opensource-src-5.11.0-no_sse2.patch new file mode 100644 index 0000000..c050bff --- /dev/null +++ b/qtdeclarative-opensource-src-5.11.0-no_sse2.patch @@ -0,0 +1,39 @@ +diff -up qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri.no_sse2 qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri +--- qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri.no_sse2 2018-04-30 06:54:03.000000000 -0500 ++++ qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/jsruntime.pri 2018-05-24 16:15:51.151738531 -0500 +@@ -115,6 +115,11 @@ SOURCES += \ + $$PWD/qv4value.cpp \ + $$PWD/qv4executableallocator.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 -up qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h.no_sse2 qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h +--- qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h.no_sse2 2018-04-30 06:54:03.000000000 -0500 ++++ qtdeclarative-everywhere-src-5.11.0/src/qml/jsruntime/qv4global_p.h 2018-05-24 20:23:38.642642420 -0500 +@@ -88,7 +88,7 @@ inline double trunc(double d) { return d + // + // NOTE: This should match the logic in qv4targetplatform_p.h! + +-#if defined(Q_PROCESSOR_X86) && (QT_POINTER_SIZE == 4) \ ++#if defined(Q_PROCESSOR_X86) && (QT_POINTER_SIZE == 4) && 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) && (QT_POINTER_SIZE == 8) \ +diff -up qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp.no_sse2 qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp +--- qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp.no_sse2 2018-05-24 16:15:51.152738550 -0500 ++++ qtdeclarative-everywhere-src-5.11.0/src/qml/qml/v8/qv8engine.cpp 2018-05-24 20:21:01.273574503 -0500 +@@ -131,7 +131,7 @@ QV8Engine::QV8Engine(QJSEngine *qq, QV4: + { + #ifdef Q_PROCESSOR_X86_32 + if (!qCpuHasFeature(SSE2)) { +- qFatal("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer"); ++ qDebug("This program requires an X86 processor that supports SSE2 extension, at least a Pentium 4 or newer, processors missing the extension are NOT supported to run QML2 code!"); + } + #endif + diff --git a/qtdeclarative-opensource-src-5.9.0-no_sse2.patch b/qtdeclarative-opensource-src-5.9.0-no_sse2.patch deleted file mode 100644 index cac744e..0000000 --- a/qtdeclarative-opensource-src-5.9.0-no_sse2.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/qv4global_p.h 2017-04-21 20:34:05.000000000 +0200 -+++ qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/qv4global_p.h.new 2017-05-06 09:23:00.894049064 +0200 -@@ -95,7 +95,7 @@ - // - // NOTE: This should match the logic in qv4targetplatform_p.h! - --#if defined(Q_PROCESSOR_X86) && (QT_POINTER_SIZE == 4) \ -+#if defined(Q_PROCESSOR_X86) && (QT_POINTER_SIZE == 4) && 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) && (QT_POINTER_SIZE == 8) \ ---- qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/jsruntime.pri 2017-04-21 20:34:05.000000000 +0200 -+++ qtdeclarative-opensource-src-5.9.0-beta3/src/qml/jsruntime/jsruntime.pri.new 2017-05-06 09:25:12.698437577 +0200 -@@ -115,6 +115,11 @@ - $$PWD/qv4value.cpp \ - $$PWD/qv4executableallocator.cpp - -+linux-g++*:isEqual(QT_ARCH,i386):!no_sse2 { -+ QMAKE_CFLAGS += -msse2 -mfpmath=sse -+ QMAKE_CXXFLAGS += -msse2 -mfpmath=sse -+} -+ - valgrind { - DEFINES += V4_USE_VALGRIND - } ---- qtdeclarative-opensource-src-5.9.0-beta3/src/qml/qml/v8/qv8engine.cpp 2017-04-21 20:34:05.000000000 +0200 -+++ qtdeclarative-opensource-src-5.9.0-beta3/src/qml/qml/v8/qv8engine.cpp.new 2017-05-06 09:27:19.373810971 +0200 -@@ -129,7 +129,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"); - } diff --git a/sources b/sources index 0178470..449cf48 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (qtdeclarative-everywhere-src-5.10.1.tar.xz) = b45b7c2232a3e7ddc8076066957f5c110a0ca9c815ee659f6e7656e85175a9ae56c52d6402d5437e4b60cd86508eb3c912ddd441e0be0ac9590ea263ad397048 +SHA512 (qtdeclarative-everywhere-src-5.11.0.tar.xz) = e8dbd3390faaecd833e373d76580c47cf1cec5fa518aa0d30eb305616e0e9c2f58fb8866c0f0ac25622b7b67d102ec3a50c6e48f572a20ab198bc007d5485111