Accepting request 304230 from KDE:Qt5
- Add avoid-calling-potentially-pure-virtual-method.patch, QTBUG#45753 - Extend sse2_nojit.patch to warn users without SSE2 extension that their processor is officially not supported. Also pass -msse2 -mfpmath=sse flags when we are building with SSE2 OBS-URL: https://build.opensuse.org/request/show/304230 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtdeclarative?expand=0&rev=24
This commit is contained in:
parent
52a4e161c6
commit
496a1fa8e0
61
avoid-calling-potentially-pure-virtual-method.patch
Normal file
61
avoid-calling-potentially-pure-virtual-method.patch
Normal file
@ -0,0 +1,61 @@
|
||||
Parent: 9934c075 (QML: do not check stack size if stack grows up)
|
||||
Author: David Edmundson <davidedmundson@kde.org>
|
||||
AuthorDate: 2015-04-23 15:01:24 +0200
|
||||
Commit: David Edmundson <davidedmundson@kde.org>
|
||||
CommitDate: 2015-04-23 15:05:32 +0200
|
||||
|
||||
Avoid calling potentially pure virtual method
|
||||
|
||||
In Qt 5.4 screenChanged is called indirectly from the destructor of
|
||||
QPlatformScreen. By comparing new values against the oldScreen we call
|
||||
call virtual methods of QPlatformScreen from it's own destructor which
|
||||
results in a crash.
|
||||
|
||||
This patch simply emits change signals whenever a screen change regardless
|
||||
of whether the value differs from the previous screen. Arguably less
|
||||
efficient, but better than crashing.
|
||||
|
||||
This fix is not needed in Qt 5.5 where the QPA architecture has changed.
|
||||
|
||||
Task-number: QTBUG-45753
|
||||
Change-Id: Ic155906928855a377add9b21bff9e72b31f4667e
|
||||
---
|
||||
|
||||
diff --git a/src/quick/items/qquickscreen.cpp b/src/quick/items/qquickscreen.cpp
|
||||
index 8ac5a1e..c19841f 100644
|
||||
--- a/src/quick/items/qquickscreen.cpp
|
||||
+++ b/src/quick/items/qquickscreen.cpp
|
||||
@@ -340,24 +340,15 @@ void QQuickScreenAttached::screenChanged(QScreen *screen)
|
||||
|
||||
screen->setOrientationUpdateMask(m_updateMask);
|
||||
|
||||
- if (!oldScreen || screen->size() != oldScreen->size()) {
|
||||
- emit widthChanged();
|
||||
- emit heightChanged();
|
||||
- }
|
||||
- if (!oldScreen || screen->name() != oldScreen->name())
|
||||
- emit nameChanged();
|
||||
- if (!oldScreen || screen->orientation() != oldScreen->orientation())
|
||||
- emit orientationChanged();
|
||||
- if (!oldScreen || screen->primaryOrientation() != oldScreen->primaryOrientation())
|
||||
- emit primaryOrientationChanged();
|
||||
- if (!oldScreen || screen->availableVirtualGeometry() != oldScreen->availableVirtualGeometry())
|
||||
- emit desktopGeometryChanged();
|
||||
- if (!oldScreen || screen->logicalDotsPerInch() != oldScreen->logicalDotsPerInch())
|
||||
- emit logicalPixelDensityChanged();
|
||||
- if (!oldScreen || screen->physicalDotsPerInch() != oldScreen->physicalDotsPerInch())
|
||||
- emit pixelDensityChanged();
|
||||
- if (!oldScreen || screen->devicePixelRatio() != oldScreen->devicePixelRatio())
|
||||
- emit devicePixelRatioChanged();
|
||||
+ emit widthChanged();
|
||||
+ emit heightChanged();
|
||||
+ emit nameChanged();
|
||||
+ emit orientationChanged();
|
||||
+ emit primaryOrientationChanged();
|
||||
+ emit desktopGeometryChanged();
|
||||
+ emit logicalPixelDensityChanged();
|
||||
+ emit pixelDensityChanged();
|
||||
+ emit devicePixelRatioChanged();
|
||||
|
||||
connect(screen, SIGNAL(geometryChanged(QRect)),
|
||||
this, SIGNAL(widthChanged()));
|
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 27 18:14:35 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Add avoid-calling-potentially-pure-virtual-method.patch, QTBUG#45753
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 25 10:50:08 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
- Extend sse2_nojit.patch to warn users without SSE2 extension that
|
||||
their processor is officially not supported.
|
||||
Also pass -msse2 -mfpmath=sse flags when we are building with SSE2
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 9 17:30:27 UTC 2015 - hrvoje.senjan@gmail.com
|
||||
|
||||
|
@ -33,6 +33,8 @@ Url: http://qt.digia.com
|
||||
%define tar_version qtdeclarative-opensource-src-%{real_version}
|
||||
Source: %{tar_version}.tar.xz
|
||||
Source1: baselibs.conf
|
||||
# PATCH-FIX-UPSTREAM avoid-calling-potentially-pure-virtual-method.patch
|
||||
Patch0: avoid-calling-potentially-pure-virtual-method.patch
|
||||
# PATCH-FIX-OPENSUSE sse2_nojit.patch -- enable JIT and sse2 only on sse2 case
|
||||
Patch100: sse2_nojit.patch
|
||||
BuildRequires: fdupes
|
||||
@ -71,6 +73,7 @@ handling.
|
||||
|
||||
%prep
|
||||
%setup -q -n qtdeclarative-opensource-src-%{real_version}
|
||||
%patch0 -p1
|
||||
%patch100 -p1
|
||||
|
||||
%package -n %libname
|
||||
|
@ -1,8 +1,24 @@
|
||||
diff --git a/src/qml/jsruntime/jsruntime.pri b/src/qml/jsruntime/jsruntime.pri
|
||||
index c27aaa9..05c86e8 100644
|
||||
--- a/src/qml/jsruntime/jsruntime.pri
|
||||
+++ b/src/qml/jsruntime/jsruntime.pri
|
||||
@@ -105,6 +105,11 @@ SOURCES += \
|
||||
$$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 --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h
|
||||
index a00231c..2a8f5d3 100644
|
||||
index a58beb3..85e8dc0 100644
|
||||
--- a/src/qml/jsruntime/qv4global_p.h
|
||||
+++ b/src/qml/jsruntime/qv4global_p.h
|
||||
@@ -85,7 +85,7 @@ inline double trunc(double d) { return d
|
||||
@@ -85,7 +85,7 @@ inline double trunc(double d) { return d > 0 ? floor(d) : ceil(d); }
|
||||
|
||||
// Black list some platforms
|
||||
#if defined(V4_ENABLE_JIT)
|
||||
@ -11,3 +27,16 @@ index a00231c..2a8f5d3 100644
|
||||
# undef V4_ENABLE_JIT
|
||||
#endif
|
||||
#endif
|
||||
diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp
|
||||
index 39b816f..762ee61 100644
|
||||
--- a/src/qml/qml/v8/qv8engine.cpp
|
||||
+++ b/src/qml/qml/v8/qv8engine.cpp
|
||||
@@ -123,7 +123,7 @@ QV8Engine::QV8Engine(QJSEngine* qq)
|
||||
{
|
||||
#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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user