From 72b28041cf23fa8e9ed6a9a1265f6a20f867a12760a21214a644441f1571b1b9 Mon Sep 17 00:00:00 2001 From: Dominique Leuenberger Date: Sat, 1 Oct 2016 21:50:33 +0000 Subject: [PATCH] Accepting request 431276 from KDE:Qt5 1 OBS-URL: https://build.opensuse.org/request/show/431276 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwebengine?expand=0&rev=12 --- _constraints | 5 +- armv6-ffmpeg-no-thumb.patch | 13 ++++ ...c6-use-fno-delete-null-pointer-checks.diff | 31 ++++++++ libqt5-qtwebengine.changes | 15 ++++ libqt5-qtwebengine.spec | 22 +++++- qtwebengine-opensource-src-5.6.1.tar.xz | 3 - qtwebengine-opensource-src-5.7.0.tar.xz | 3 + ...delete-null-pointer-checks-with-gcc-6.diff | 78 ++++++++++++------- webrtc-build-with-neon.patch | 22 ++++++ 9 files changed, 155 insertions(+), 37 deletions(-) create mode 100644 armv6-ffmpeg-no-thumb.patch create mode 100644 detect-gcc6-use-fno-delete-null-pointer-checks.diff delete mode 100644 qtwebengine-opensource-src-5.6.1.tar.xz create mode 100644 qtwebengine-opensource-src-5.7.0.tar.xz create mode 100644 webrtc-build-with-neon.patch diff --git a/_constraints b/_constraints index 0246d66..3ee10f7 100644 --- a/_constraints +++ b/_constraints @@ -1,7 +1,10 @@ + + 7 + - 6 + 7 4 diff --git a/armv6-ffmpeg-no-thumb.patch b/armv6-ffmpeg-no-thumb.patch new file mode 100644 index 0000000..814ad33 --- /dev/null +++ b/armv6-ffmpeg-no-thumb.patch @@ -0,0 +1,13 @@ +Index: qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h +=================================================================== +--- qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h ++++ qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/ffmpeg/chromium/config/Chromium/linux/arm/config.h +@@ -551,7 +551,7 @@ + #define CONFIG_PIC 1 + #define CONFIG_POD2MAN 1 + #define CONFIG_RAISE_MAJOR 0 +-#define CONFIG_THUMB 1 ++#define CONFIG_THUMB 0 + #define CONFIG_VALGRIND_BACKTRACE 0 + #define CONFIG_XMM_CLOBBER_TEST 0 + #define CONFIG_AANDCTTABLES 0 diff --git a/detect-gcc6-use-fno-delete-null-pointer-checks.diff b/detect-gcc6-use-fno-delete-null-pointer-checks.diff new file mode 100644 index 0000000..3fca71a --- /dev/null +++ b/detect-gcc6-use-fno-delete-null-pointer-checks.diff @@ -0,0 +1,31 @@ +From c7aeb3b03ecce75c40d3f53352e8b7b3a4d6d050 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Fri, 10 Jun 2016 14:46:24 +0200 +Subject: [PATCH] Enable -fno_delete_null_pointer_checks on V8 for G++ 6 + +Detect g++ 6 and disable null pointer check optimizations on v8. + +Change-Id: I5064823af3784786d455ce86592b5e65c1020f21 +Task-number: QTBUG-53956 +Reviewed-by: Joerg Bornemann +--- + src/3rdparty | 2 +- + src/core/config/linux.pri | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/core/config/linux.pri b/src/core/config/linux.pri +index 8854a4b..b579e2a 100644 +--- a/src/core/config/linux.pri ++++ b/src/core/config/linux.pri +@@ -29,6 +29,8 @@ use?(nss) { + use_openssl_certs=1 + } + ++gcc:!clang: greaterThan(QT_GCC_MAJOR_VERSION, 5): GYP_CONFIG += v8_no_delete_null_pointer_checks=1 ++ + contains(QT_CONFIG, system-zlib): use?(system_minizip): GYP_CONFIG += use_system_zlib=1 + contains(QT_CONFIG, system-png): GYP_CONFIG += use_system_libpng=1 + contains(QT_CONFIG, system-jpeg): GYP_CONFIG += use_system_libjpeg=1 +-- +2.7.4 + diff --git a/libqt5-qtwebengine.changes b/libqt5-qtwebengine.changes index affc64e..3b4da22 100644 --- a/libqt5-qtwebengine.changes +++ b/libqt5-qtwebengine.changes @@ -1,3 +1,18 @@ +------------------------------------------------------------------- +Wed Sep 28 07:32:47 UTC 2016 - schwab@suse.de + +- Ensure to build for armv6 on armv6 +- armv6-ffmpeg-no-thumb.patch: Fix ffmpeg configuration for armv6 +- webrtc-build-with-neon.patch: Properly configure webrtc for neon support + +------------------------------------------------------------------- +Sat Sep 24 18:39:10 UTC 2016 - hrvoje.senjan@gmail.com + +- Update to 5.7.0 + * For more details please see: + https://www.qt.io/qt5-7/ +- Add detect-gcc6-use-fno-delete-null-pointer-checks.diff + ------------------------------------------------------------------- Thu Jun 23 08:10:46 UTC 2016 - lbeltrame@kde.org diff --git a/libqt5-qtwebengine.spec b/libqt5-qtwebengine.spec index 37bc702..9b8e99e 100644 --- a/libqt5-qtwebengine.spec +++ b/libqt5-qtwebengine.spec @@ -19,22 +19,30 @@ %define qt5_snapshot 0 Name: libqt5-qtwebengine -Version: 5.6.1 +Version: 5.7.0 Release: 0 Summary: Qt 5 WebEngine Library License: SUSE-LGPL-2.1-with-digia-exception-1.1 or GPL-3.0 Group: Development/Libraries/X11 Url: http://qt.digia.com %define base_name libqt5 -%define real_version 5.6.1 -%define so_version 5.6.1 +%define real_version 5.7.0 +%define so_version 5.7.0 %define tar_version qtwebengine-opensource-src-%{real_version} Source: %{tar_version}.tar.xz Source1: baselibs.conf # PATCH-FIX-UPSTREAM: use-fno-delete-null-pointer-checks-with-gcc-6.diff - Fix crashes when using GCC6 Patch0: use-fno-delete-null-pointer-checks-with-gcc-6.diff +# PATCH-FIX-UPSTREAM: detect-gcc6-use-fno-delete-null-pointer-checks.diff - Fix crashes with GCC 6 +Patch1: detect-gcc6-use-fno-delete-null-pointer-checks.diff +# PATCH-FIX-UPSTREAM armv6-ffmpeg-no-thumb.patch - Fix ffmpeg configuration for armv6 +Patch2: armv6-ffmpeg-no-thumb.patch +# PATCH-FIX-UPSTREAM webrtc-build-with-neon.patch - Properly configure webrtc for neon support +Patch3: webrtc-build-with-neon.patch # http://www.chromium.org/blink not ported to PowerPC ExcludeArch: ppc ppc64 ppc64le s390 s390x +# Try to fix i586 MemoryErrors with rpmlint +#!BuildIgnore: rpmlint BuildRequires: bison BuildRequires: fdupes BuildRequires: flac-devel @@ -138,6 +146,9 @@ Qt is a set of libraries for developing applications. %setup -q -n qtwebengine-opensource-src-%{real_version} sed -i 's|$(STRIP)|strip|g' src/core/core_module.pro %patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 %package devel Summary: Qt Development Kit @@ -210,6 +221,11 @@ myconf+=" -Duse_system_harfbuzz=1 -Duse_system_sqlite=1" %endif +%ifarch armv6l armv6hl +# Tell src/core/gyp_run.pro to configure for armv6, hard float, no neon +RPM_OPT_FLAGS+=" -march=armv6zk -mfloat-abi=hard -mfpu=vfp" +%endif + pushd src/3rdparty/chromium/ build/linux/unbundle/replace_gyp_files.py $myconf popd diff --git a/qtwebengine-opensource-src-5.6.1.tar.xz b/qtwebengine-opensource-src-5.6.1.tar.xz deleted file mode 100644 index ec70242..0000000 --- a/qtwebengine-opensource-src-5.6.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bdf0ac04b5162502b1c43d0763233c12d5cb73625bec4d90755e73ffa863607b -size 143719780 diff --git a/qtwebengine-opensource-src-5.7.0.tar.xz b/qtwebengine-opensource-src-5.7.0.tar.xz new file mode 100644 index 0000000..f8098c8 --- /dev/null +++ b/qtwebengine-opensource-src-5.7.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:985762fff5cd8a1a0d2a644a4a51238676898685f9ff1a78c3f2800025d6dc5d +size 165709640 diff --git a/use-fno-delete-null-pointer-checks-with-gcc-6.diff b/use-fno-delete-null-pointer-checks-with-gcc-6.diff index eb183e2..2cdb474 100644 --- a/use-fno-delete-null-pointer-checks-with-gcc-6.diff +++ b/use-fno-delete-null-pointer-checks-with-gcc-6.diff @@ -1,33 +1,51 @@ -X-Git-Url: https://codereview.qt-project.org/gitweb?p=qt%2Fqtwebengine-chromium.git;a=blobdiff_plain;f=chromium%2Fbuild%2Fcommon.gypi;h=fccfc7b309af18d41eecd98640aacd9424903f2b;hp=f02d100e30a559629b4857d28a4d3950d2130da5;hb=9fcd3f167e3f3fb5b4cfb62287a892628a8f7f26;hpb=29a5bf2486edb5804a18097684ae1660b7aa949e +From d03c8ccab741952fee6bd54fb56a878c7cc4ca97 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Fri, 10 Jun 2016 13:26:22 +0200 +Subject: [PATCH] Use -fno-delete-null-pointer-checks with gcc 6 +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit -diff --git a/src/3rdparty/chromium/build/common.gypi b/src/3rdparty/chromium/build/common.gypi -index f02d100..fccfc7b 100644 ---- a/src/3rdparty/chromium/build/common.gypi -+++ b/src/3rdparty/chromium/build/common.gypi -@@ -4716,6 +4716,26 @@ - }], - ], +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. + +This patch only enables it for v8, and requires it to be activated +by qtwebengine. + +Change-Id: I9da15ecf85719f211ba921a620e9d195eff26178 +Task-number: QTBUG-53956 +Reviewed-by: Michael Brüning +Reviewed-by: Joerg Bornemann +--- + chromium/v8/build/toolchain.gypi | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/3rdparty/chromium/v8/build/toolchain.gypi b/src/3rdparty/chromium/v8/build/toolchain.gypi +index 15d6014..2c6fbf6 100644 +--- a/src/3rdparty/chromium/v8/build/toolchain.gypi ++++ b/src/3rdparty/chromium/v8/build/toolchain.gypi +@@ -72,6 +72,10 @@ + # Some versions of GCC 4.5 seem to need -fno-strict-aliasing. + 'v8_no_strict_aliasing%': 0, + ++ # V8 needs support for illegal null this pointers, and must disable ++ # optimizations in GCC 6 that relies on correct behavior. ++ 'v8_no_delete_null_pointer_checks%': 0, ++ + # Chrome needs this definition unconditionally. For standalone V8 builds, + # it's handled in build/standalone.gypi. + 'want_separate_host_toolset%': 1, +@@ -1069,6 +1073,9 @@ + [ 'v8_no_strict_aliasing==1', { + 'cflags': [ '-fno-strict-aliasing' ], }], -+ ['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', -+ ], -+ }], -+ ], ++ [ 'v8_no_delete_null_pointer_checks==1', { ++ 'cflags_cc': [ '-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', -+ ], -+ }], -+ ], -+ }], - ], - }, - }], + ], # conditions + }], + ['OS=="solaris"', { +-- +2.7.4 + diff --git a/webrtc-build-with-neon.patch b/webrtc-build-with-neon.patch new file mode 100644 index 0000000..c3fbeb3 --- /dev/null +++ b/webrtc-build-with-neon.patch @@ -0,0 +1,22 @@ +Index: qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi +=================================================================== +--- qtwebengine-opensource-src-5.7.0.orig/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi ++++ qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi +@@ -47,7 +47,7 @@ + ['target_arch=="ia32" or target_arch=="x64"', { + 'dependencies': [ 'video_processing_sse2', ], + }], +- ['target_arch=="arm" or target_arch == "arm64"', { ++ ['build_with_neon==1', { + 'dependencies': [ 'video_processing_neon', ], + }], + ], +@@ -77,7 +77,7 @@ + }, + ], + }], +- ['target_arch=="arm" or target_arch == "arm64"', { ++ ['build_with_neon==1', { + 'targets': [ + { + 'target_name': 'video_processing_neon',