git » qt5-webengine.git » commit 81087e5

Add workaround for v8 segfaults with GCC 6

author Antonio Rojas
2016-06-09 23:03:31 UTC
committer Antonio Rojas
2016-06-09 23:03:31 UTC
parent fa4dd5ea74a9fa7154edc1d38e199b722696e4f5

Add workaround for v8 segfaults with GCC 6

PKGBUILD +9 -3
qt5-webengine-fno-delete-null-pointer-checks.patch +49 -0

diff --git a/PKGBUILD b/PKGBUILD
index a4c03a7..80ecf30 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,7 +5,7 @@
 pkgname=qt5-webengine
 _qtver=5.6.1
 pkgver=${_qtver/-/}
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url='http://qt-project.org/'
 license=('GPL3' 'LGPL' 'FDL' 'custom')
@@ -16,8 +16,10 @@ makedepends=('python2' 'git' 'gperf')
 conflicts=('qt')
 groups=('qt' 'qt5')
 _pkgfqn="${pkgname/5-/}-opensource-src-${_qtver}"
-source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz")
-md5sums=('35f168743638b07157e20af0586f39a2')
+source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"
+        qt5-webengine-fno-delete-null-pointer-checks.patch)
+md5sums=('35f168743638b07157e20af0586f39a2'
+         '5c4e4eb61165985330e018d79906d012')
 
 prepare() {
   mkdir -p build
@@ -25,6 +27,10 @@ prepare() {
   # Hack to force using python2
   mkdir -p bin
   ln -s /usr/bin/python2 bin/python
+
+  cd ${_pkgfqn}/src/3rdparty
+  # Workaround for v8 segfaults with GCC 6
+  patch -p1 -i "$srcdir"/qt5-webengine-fno-delete-null-pointer-checks.patch
 }
 
 build() {
diff --git a/qt5-webengine-fno-delete-null-pointer-checks.patch b/qt5-webengine-fno-delete-null-pointer-checks.patch
new file mode 100644
index 0000000..06c988b
--- /dev/null
+++ b/qt5-webengine-fno-delete-null-pointer-checks.patch
@@ -0,0 +1,49 @@
+From 5f69ea6f29371f0d03c23ff0ec81b63b7e5dca23 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
+Date: Thu, 9 Jun 2016 13:18:36 +0200
+Subject: [PATCH] Use -fno-delete-null-pointer-checks with gcc 6
+
+V8 is not safe for removing null pointer checks. Until it is, we need
+to disable optimizations in GCC that assume it is not doing something
+wrong.
+
+Task-number: QTBUG-53956
+Change-Id: Ieae1a44a36ddd481656497414275b134bbbc9da3
+---
+ chromium/build/common.gypi | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/chromium/build/common.gypi b/chromium/build/common.gypi
+index 272a42f..209ffe0 100644
+--- a/chromium/build/common.gypi
++++ b/chromium/build/common.gypi
+@@ -4729,6 +4729,26 @@
+               }],
+             ],
+           }],
++          ['gcc_version>=60 and clang==0', {
++            'target_conditions': [
++              ['_toolset=="target"', {
++                'cflags_cc': [
++                  # V8 needs this, see https://bugs.chromium.org/p/v8/issues/detail?id=3782
++                  '-fno-delete-null-pointer-checks',
++                ],
++              }],
++            ],
++          }],
++          ['host_gcc_version>=60 and clang==0 and host_clang==0', {
++            'target_conditions': [
++              ['_toolset=="host"', {
++                'cflags_cc': [
++                  # V8 needs this, see https://bugs.chromium.org/p/v8/issues/detail?id=3782
++                  '-fno-delete-null-pointer-checks',
++                ],
++              }],
++            ],
++          }],
+         ],
+       },
+     }],
+-- 
+2.8.3
+