From 3cf84c39fcce3194f47be3883be1079247ce9787 Mon Sep 17 00:00:00 2001 From: Kevin Kofler Date: Sat, 3 Dec 2016 23:35:45 +0100 Subject: [PATCH] webrtc: Inline arm_neon.gypi because gyp is not picking up flags from it --- qt5-qtwebengine.spec | 10 +- ...ine-opensource-src-5.7.0-webrtc-neon.patch | 21 --- ...ine-opensource-src-5.7.1-webrtc-neon.patch | 135 ++++++++++++++++++ 3 files changed, 141 insertions(+), 25 deletions(-) delete mode 100644 qtwebengine-opensource-src-5.7.0-webrtc-neon.patch create mode 100644 qtwebengine-opensource-src-5.7.1-webrtc-neon.patch diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index 43762cf..6e7d0cb 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -34,7 +34,7 @@ Summary: Qt5 - QtWebEngine components Name: qt5-qtwebengine Version: 5.7.1 -Release: 1%{?dist} +Release: 2%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -78,9 +78,10 @@ Patch5: qtwebengine-opensource-src-5.7.0-system-icu-utf.patch # with some custom fixes and improvements # also build V8 shared and twice on i686 (once for x87, once for SSE2) Patch6: qtwebengine-opensource-src-5.7.0-no-sse2.patch -# fix ARM NEON handling in webrtc gyp files -# For now, fix video_processing.gypi to only build NEON files when actually -# requested (i.e., not if arm_neon=0 arm_neon_optional=0). +# fix ARM NEON handling in webrtc gyp files: +# * fix video_processing.gypi to only build NEON files when actually requested +# (i.e., not if arm_neon=0 arm_neon_optional=0). +# * inline arm_neon.gypi because gyp is not picking up flags from the include # We still need to figure out why the flag tweaks from arm_neon.gypi don't work. Patch7: qtwebengine-opensource-src-5.7.0-webrtc-neon.patch # don't require the time zone detection API backported from ICU 55 (thanks spot) @@ -468,6 +469,7 @@ popd - Rebase no-neon patch, add new arm-fpu-fix patch where no-neon not wanted - Try enabling arm_neon unconditionally, #1282495 should be fixed even in F23 - Remove Android depenencies from openmax_dl ARM NEON detection (detect.c) +- webrtc: Inline arm_neon.gypi because gyp is not picking up flags from it * Thu Nov 10 2016 Helio Chissini de Castro - 5.7.1-1 - New upstream version diff --git a/qtwebengine-opensource-src-5.7.0-webrtc-neon.patch b/qtwebengine-opensource-src-5.7.0-webrtc-neon.patch deleted file mode 100644 index 33e0df9..0000000 --- a/qtwebengine-opensource-src-5.7.0-webrtc-neon.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi qtwebengine-opensource-src-5.7.0-webrtc-neon/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 2016-05-26 15:53:47.000000000 +0200 -+++ qtwebengine-opensource-src-5.7.0-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-07-18 14:29:24.841980563 +0200 -@@ -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', diff --git a/qtwebengine-opensource-src-5.7.1-webrtc-neon.patch b/qtwebengine-opensource-src-5.7.1-webrtc-neon.patch new file mode 100644 index 0000000..094521a --- /dev/null +++ b/qtwebengine-opensource-src-5.7.1-webrtc-neon.patch @@ -0,0 +1,135 @@ +diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/common_audio/common_audio.gyp qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/common_audio/common_audio.gyp +--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/common_audio/common_audio.gyp 2016-11-07 15:46:18.000000000 +0100 ++++ qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/common_audio/common_audio.gyp 2016-12-03 23:31:30.509013652 +0100 +@@ -217,7 +217,25 @@ + { + 'target_name': 'common_audio_neon', + 'type': 'static_library', +- 'includes': ['../build/arm_neon.gypi',], ++ 'cflags!': [ ++ '-mfpu=vfpv3-d16', ++ ], ++ 'conditions': [ ++ # "-mfpu=neon" is not required for arm64 in GCC. ++ ['target_arch!="arm64"', { ++ 'cflags': [ ++ '-mfpu=neon', ++ ], ++ }], ++ # Disable GCC LTO on NEON targets due to compiler bug. ++ # TODO(fdegans): Enable this. See crbug.com/408997. ++ ['clang==0 and use_lto==1', { ++ 'cflags!': [ ++ '-flto', ++ '-ffat-lto-objects', ++ ], ++ }], ++ ], + 'sources': [ + 'fir_filter_neon.cc', + 'resampler/sinc_resampler_neon.cc', +diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/modules/audio_coding/codecs/isac/isacfix.gypi qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/audio_coding/codecs/isac/isacfix.gypi +--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/modules/audio_coding/codecs/isac/isacfix.gypi 2016-11-07 15:46:18.000000000 +0100 ++++ qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/audio_coding/codecs/isac/isacfix.gypi 2016-12-03 23:31:48.052742593 +0100 +@@ -128,7 +128,25 @@ + { + 'target_name': 'isac_neon', + 'type': 'static_library', +- 'includes': ['../../../../build/arm_neon.gypi',], ++ 'cflags!': [ ++ '-mfpu=vfpv3-d16', ++ ], ++ 'conditions': [ ++ # "-mfpu=neon" is not required for arm64 in GCC. ++ ['target_arch!="arm64"', { ++ 'cflags': [ ++ '-mfpu=neon', ++ ], ++ }], ++ # Disable GCC LTO on NEON targets due to compiler bug. ++ # TODO(fdegans): Enable this. See crbug.com/408997. ++ ['clang==0 and use_lto==1', { ++ 'cflags!': [ ++ '-flto', ++ '-ffat-lto-objects', ++ ], ++ }], ++ ], + 'dependencies': [ + '<(webrtc_root)/common_audio/common_audio.gyp:common_audio', + ], +diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/audio_processing.gypi qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/audio_processing.gypi +--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/audio_processing.gypi 2016-11-07 15:46:18.000000000 +0100 ++++ qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/audio_processing/audio_processing.gypi 2016-12-03 23:31:58.455581865 +0100 +@@ -260,7 +260,25 @@ + 'targets': [{ + 'target_name': 'audio_processing_neon', + 'type': 'static_library', +- 'includes': ['../../build/arm_neon.gypi',], ++ 'cflags!': [ ++ '-mfpu=vfpv3-d16', ++ ], ++ 'conditions': [ ++ # "-mfpu=neon" is not required for arm64 in GCC. ++ ['target_arch!="arm64"', { ++ 'cflags': [ ++ '-mfpu=neon', ++ ], ++ }], ++ # Disable GCC LTO on NEON targets due to compiler bug. ++ # TODO(fdegans): Enable this. See crbug.com/408997. ++ ['clang==0 and use_lto==1', { ++ 'cflags!': [ ++ '-flto', ++ '-ffat-lto-objects', ++ ], ++ }], ++ ], + 'dependencies': [ + '<(webrtc_root)/common_audio/common_audio.gyp:common_audio', + ], +diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi +--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-11-07 15:46:18.000000000 +0100 ++++ qtwebengine-opensource-src-5.7.1-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-12-03 23:32:09.217415589 +0100 +@@ -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,12 +77,30 @@ + }, + ], + }], +- ['target_arch=="arm" or target_arch == "arm64"', { ++ ['build_with_neon==1', { + 'targets': [ + { + 'target_name': 'video_processing_neon', + 'type': 'static_library', +- 'includes': [ '../../build/arm_neon.gypi', ], ++ 'cflags!': [ ++ '-mfpu=vfpv3-d16', ++ ], ++ 'conditions': [ ++ # "-mfpu=neon" is not required for arm64 in GCC. ++ ['target_arch!="arm64"', { ++ 'cflags': [ ++ '-mfpu=neon', ++ ], ++ }], ++ # Disable GCC LTO on NEON targets due to compiler bug. ++ # TODO(fdegans): Enable this. See crbug.com/408997. ++ ['clang==0 and use_lto==1', { ++ 'cflags!': [ ++ '-flto', ++ '-ffat-lto-objects', ++ ], ++ }], ++ ], + 'sources': [ + 'util/denoiser_filter_neon.cc', + 'util/denoiser_filter_neon.h',