summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJonathan Liu <net147@gmail.com>2016-08-29 22:42:36 +1000
committerMartin Jansa <Martin.Jansa@gmail.com>2016-08-31 19:12:27 +0200
commit37a165badb89c4908cfbb535c784586481949a26 (patch)
tree029a4f3297ff3e42a340bd2338b82b8317977db8
parent3c279156a0640dddc49279ac9738decfe28dcd44 (diff)
downloadmeta-qt5-37a165badb89c4908cfbb535c784586481949a26.tar.gz
qtdeclarative: add upstream patch to fix QtQml crash with GCC 6
Signed-off-by: Jonathan Liu <net147@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--recipes-qt/qt5/qtdeclarative/0003-Workaround-crashes-in-QtQml-code-related-to-dead-sto.patch44
-rw-r--r--recipes-qt/qt5/qtdeclarative_git.bb1
2 files changed, 45 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtdeclarative/0003-Workaround-crashes-in-QtQml-code-related-to-dead-sto.patch b/recipes-qt/qt5/qtdeclarative/0003-Workaround-crashes-in-QtQml-code-related-to-dead-sto.patch
new file mode 100644
index 00000000..d3ee42ef
--- /dev/null
+++ b/recipes-qt/qt5/qtdeclarative/0003-Workaround-crashes-in-QtQml-code-related-to-dead-sto.patch
@@ -0,0 +1,44 @@
1From fcc2c95421710f98c7b2dec73e2c8b0d9164bc9b Mon Sep 17 00:00:00 2001
2From: Jonathan Liu <net147@gmail.com>
3Date: Wed, 24 Aug 2016 11:18:37 +1000
4Subject: [PATCH] Workaround crashes in QtQml code related to dead-store
5 elimination
6
7When compiled in release mode with GCC 6, QtQml may crash.
8This is because the C++ compiler is more aggressive about dead-store
9elimination in situations where a memory store to a location precedes
10the construction of an object at that memory location.
11
12The QV4::MemoryManager::allocate{Managed,Object} functions allocate
13memory and write to it before the caller does a placement new to
14construct an object in the same memory. The compiler considers these
15writes before the constructor as "dead stores" and eliminates them.
16
17The -fno-lifetime-dse compiler flag is added to disable this more
18aggressive dead-store eliminiation optimization.
19
20This is a temporary workaround until a proper solution is found.
21
22Upstream-Status: Accepted
23
24Task-number: QTBUG-55482
25Change-Id: I7dbae6e9e613e53ce5fb25957c449bc6657803b5
26Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
27Signed-off-by: Jonathan Liu <net147@gmail.com>
28---
29 src/qml/qml.pro | 2 +-
30 1 file changed, 1 insertion(+), 1 deletion(-)
31
32diff --git a/src/qml/qml.pro b/src/qml/qml.pro
33index f4862a1..651afa6 100644
34--- a/src/qml/qml.pro
35+++ b/src/qml/qml.pro
36@@ -18,7 +18,7 @@ exists("qqml_enable_gcov") {
37
38 greaterThan(QT_GCC_MAJOR_VERSION, 5) {
39 # Our code is bad. Temporary workaround.
40- QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks
41+ QMAKE_CXXFLAGS += -fno-delete-null-pointer-checks -fno-lifetime-dse
42 }
43
44 QMAKE_DOCS = $$PWD/doc/qtqml.qdocconf
diff --git a/recipes-qt/qt5/qtdeclarative_git.bb b/recipes-qt/qt5/qtdeclarative_git.bb
index 4a690cb9..5cc4caa1 100644
--- a/recipes-qt/qt5/qtdeclarative_git.bb
+++ b/recipes-qt/qt5/qtdeclarative_git.bb
@@ -19,6 +19,7 @@ DEPENDS += "qtbase"
19SRC_URI += " \ 19SRC_URI += " \
20 file://0001-qmltestexample-fix-link.patch \ 20 file://0001-qmltestexample-fix-link.patch \
21 file://0002-qquickviewcomparison-fix-QCoreApplication-has-not-be.patch \ 21 file://0002-qquickviewcomparison-fix-QCoreApplication-has-not-be.patch \
22 file://0003-Workaround-crashes-in-QtQml-code-related-to-dead-sto.patch \
22" 23"
23 24
24EXTRA_OEMAKE += "QMAKE_SYNCQT=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/syncqt" 25EXTRA_OEMAKE += "QMAKE_SYNCQT=${STAGING_BINDIR_NATIVE}${QT_DIR_NAME}/syncqt"