From 3a314c6b551316766ce69374befb1422e63ab56c Mon Sep 17 00:00:00 2001 From: Kevin Kofler Date: Dec 03 2016 16:00:17 +0000 Subject: Rebase no-neon patch, add new arm-fpu-fix patch where no-neon not wanted * Sat Dec 03 2016 Kevin Kofler - 5.7.1-2 - 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 --- diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index 5a85884..1e333ec 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -19,6 +19,10 @@ %global use_system_libwebp 1 %endif +# NEON support on ARM (detected at runtime) - disable this if you are hitting +# FTBFS due to e.g. GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495 +%global arm_neon 1 + #global prerelease rc # exclude plugins (all architectures) and libv8.so (i686, it's static everywhere @@ -55,9 +59,10 @@ Patch1: qtwebengine-opensource-src-5.6.0-no-icudtl-dat.patch # fix extractCFlag to also look in QMAKE_CFLAGS_RELEASE, needed to detect the # ARM flags with our %%qmake_qt5 macro, including for the next patch Patch2: qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag.patch -# disable NEON vector instructions on ARM for now, the NEON code FTBFS due to +# disable NEON vector instructions on ARM where the NEON code FTBFS due to # GCC bug https://bugzilla.redhat.com/show_bug.cgi?id=1282495 -Patch3: qtwebengine-opensource-src-5.6.0-beta-no-neon.patch +# otherwise, we use the arm-fpu-fix below instead (which this patch contains) +Patch3: qtwebengine-opensource-src-5.7.1-no-neon.patch # use the system NSPR prtime (based on Debian patch) # We already depend on NSPR, so it is useless to copy these functions here. # Debian uses this just fine, and I don't see relevant modifications either. @@ -80,6 +85,8 @@ Patch6: qtwebengine-opensource-src-5.7.0-no-sse2.patch Patch7: qtwebengine-opensource-src-5.7.0-webrtc-neon.patch # don't require the time zone detection API backported from ICU 55 (thanks spot) Patch8: qtwebengine-opensource-src-5.6.0-beta-system-icu54.patch +# fix missing ARM -mfpu setting (see the comment in the no-neon patch above) +Patch9: qtwebengine-opensource-src-5.7.1-arm-fpu-fix.patch # handled by qt5-srpm-macros, which defines %%qt5_qtwebengine_arches ExclusiveArch: %{qt5_qtwebengine_arches} @@ -298,7 +305,9 @@ BuildArch: noarch %patch0 -p1 -b .linux-pri %patch1 -p1 -b .no-icudtl-dat %patch2 -p1 -b .fix-extractcflag -%if 0%{?fedora} < 24 +%if 0%{?arm_neon} +%patch9 -p1 -b .arm-fpu-fix +%else %patch3 -p1 -b .no-neon %endif %patch4 -p1 -b .system-nspr-prtime @@ -451,6 +460,10 @@ popd %changelog +* Sat Dec 03 2016 Kevin Kofler - 5.7.1-2 +- 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 + * Thu Nov 10 2016 Helio Chissini de Castro - 5.7.1-1 - New upstream version diff --git a/qtwebengine-opensource-src-5.6.0-beta-no-neon.patch b/qtwebengine-opensource-src-5.6.0-beta-no-neon.patch deleted file mode 100644 index af9bbf7..0000000 --- a/qtwebengine-opensource-src-5.6.0-beta-no-neon.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -ur qtwebengine-opensource-src-5.6.0-beta/src/core/gyp_run.pro qtwebengine-opensource-src-5.6.0-beta-no-neon/src/core/gyp_run.pro ---- qtwebengine-opensource-src-5.6.0-beta/src/core/gyp_run.pro 2015-12-14 16:27:24.000000000 +0100 -+++ qtwebengine-opensource-src-5.6.0-beta-no-neon/src/core/gyp_run.pro 2016-01-10 17:48:45.689954050 +0100 -@@ -74,7 +74,10 @@ - # we use arm_neon_optional for ARMv7 and newer and let chromium decide - # about the mfpu option. - contains(MFPU, "neon")|contains(MFPU, "neon-vfpv4"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1 -- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1 -+ # Disable NEON entirely for now, because it fails to build: -+ # https://bugzilla.redhat.com/show_bug.cgi?id=1282495 -+ # (This line was also missing the required arm_fpu flag, which I added.) -+ # else:!lessThan(MARMV, 7): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=1 - else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0 - } - diff --git a/qtwebengine-opensource-src-5.7.1-arm-fpu-fix.patch b/qtwebengine-opensource-src-5.7.1-arm-fpu-fix.patch new file mode 100644 index 0000000..04ae6e2 --- /dev/null +++ b/qtwebengine-opensource-src-5.7.1-arm-fpu-fix.patch @@ -0,0 +1,12 @@ +diff -ur qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro qtwebengine-opensource-src-5.7.1-arm-fpu-fix/src/core/gyp_run.pro +--- qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro 2016-11-09 06:28:31.000000000 +0100 ++++ qtwebengine-opensource-src-5.7.1-arm-fpu-fix/src/core/gyp_run.pro 2016-12-03 16:38:33.531711958 +0100 +@@ -80,7 +80,7 @@ + # we use arm_neon_optional for ARMv7 and newer and let chromium decide + # about the mfpu option. + contains(MFPU, ".*neon.*"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1 +- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1 ++ else:!lessThan(MARMV, 7): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=1 + else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0 + } else { + # Chromium defaults to arm_neon=1, Qt does not. diff --git a/qtwebengine-opensource-src-5.7.1-no-neon.patch b/qtwebengine-opensource-src-5.7.1-no-neon.patch new file mode 100644 index 0000000..d520694 --- /dev/null +++ b/qtwebengine-opensource-src-5.7.1-no-neon.patch @@ -0,0 +1,15 @@ +diff -ur qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro qtwebengine-opensource-src-5.7.1-no-neon/src/core/gyp_run.pro +--- qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro 2016-11-09 06:28:31.000000000 +0100 ++++ qtwebengine-opensource-src-5.7.1-no-neon/src/core/gyp_run.pro 2016-12-03 16:36:39.039443117 +0100 +@@ -80,7 +80,10 @@ + # we use arm_neon_optional for ARMv7 and newer and let chromium decide + # about the mfpu option. + contains(MFPU, ".*neon.*"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1 +- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1 ++ # Disable NEON entirely for now, because it fails to build: ++ # https://bugzilla.redhat.com/show_bug.cgi?id=1282495 ++ # (This line was also missing the required arm_fpu flag, which I added.) ++ # else:!lessThan(MARMV, 7): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=1 + else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0 + } else { + # Chromium defaults to arm_neon=1, Qt does not.