From 42f26ca168c642debe366e83e737f57c6c66a336 Mon Sep 17 00:00:00 2001 From: Kevin Kofler Date: Sun, 17 Jan 2016 02:34:08 +0100 Subject: [PATCH] no-sse2.patch: remove -ffloat-store, fix DirectConvolver FTBFS * Remove the -ffloat-store workaround: The media player issue that caused problems with x87 floating point (and ultimately made upstream require SSE2) should already be fixed / worked around by: https://crrev.com/d2c745b13c93ecff5108bed57d8e052126715492 So I will only readd -ffloat-store if people request it, and even then, only to specific parts of code and not everything. * Fix src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/ DirectConvolver.cpp to not require SSE2 on x86. (No runtime detection, sorry.) * Update the changelog date in the specfile. --- qt5-qtwebengine.spec | 2 +- ...ne-opensource-src-5.6.0-beta-no-sse2.patch | 39 +++++++++++++++---- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/qt5-qtwebengine.spec b/qt5-qtwebengine.spec index 2892718..340b443 100644 --- a/qt5-qtwebengine.spec +++ b/qt5-qtwebengine.spec @@ -360,7 +360,7 @@ popd %changelog -* Sat Jan 16 2016 Kevin Kofler - 5.6.0-0.13.beta.nosse2.1 +* Sun Jan 17 2016 Kevin Kofler - 5.6.0-0.13.beta.nosse2.1 - Do not require SSE2 on i686 * Thu Jan 14 2016 Kevin Kofler - 5.6.0-0.13.beta diff --git a/qtwebengine-opensource-src-5.6.0-beta-no-sse2.patch b/qtwebengine-opensource-src-5.6.0-beta-no-sse2.patch index af66488..885ffdd 100644 --- a/qtwebengine-opensource-src-5.6.0-beta-no-sse2.patch +++ b/qtwebengine-opensource-src-5.6.0-beta-no-sse2.patch @@ -35,8 +35,8 @@ diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/breakpad/s '-m32', diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/common.gypi qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/build/common.gypi --- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/common.gypi 2015-12-10 18:17:21.000000000 +0100 -+++ qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/build/common.gypi 2016-01-17 00:35:41.821192830 +0100 -@@ -3901,16 +3901,12 @@ ++++ qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/build/common.gypi 2016-01-17 01:52:14.440801716 +0100 +@@ -3901,15 +3901,7 @@ # value used during computation does not change depending on # how the compiler optimized the code, since the value is # always kept in its specified precision. @@ -50,13 +50,8 @@ diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/build/comm - '-mfpmath=sse', - '-mmmx', # Allows mmintrin.h for MMX intrinsics. '-m32', -+ # Refer to http://crbug.com/348761 for rationale and -+ # http://crbug.com/313032 for an example where the x87 -+ # floating-point precision issue has "bit" us in the past. -+ '-ffloat-store', ], 'ldflags': [ - '-m32', diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/cc/BUILD.gn qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/cc/BUILD.gn --- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/cc/BUILD.gn 2015-12-10 18:17:21.000000000 +0100 +++ qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/cc/BUILD.gn 2016-01-16 23:07:29.918546201 +0100 @@ -2032,6 +2027,36 @@ diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_part ], } +diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp +--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp 2015-12-10 18:17:21.000000000 +0100 ++++ qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp 2016-01-17 01:49:46.706000332 +0100 +@@ -39,7 +39,7 @@ + #include "platform/audio/VectorMath.h" + #include "wtf/CPU.h" + +-#if (CPU(X86) || CPU(X86_64)) && !(OS(MACOSX) || USE(WEBAUDIO_IPP)) ++#if ((CPU(X86) && defined(__SSE2__)) || CPU(X86_64)) && !(OS(MACOSX) || USE(WEBAUDIO_IPP)) + #include + #endif + +@@ -102,7 +102,7 @@ + #endif // CPU(X86) + #else + size_t i = 0; +-#if CPU(X86) || CPU(X86_64) ++#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) + // Convolution using SSE2. Currently only do this if both |kernelSize| and |framesToProcess| + // are multiples of 4. If not, use the straightforward loop below. + +@@ -412,7 +412,7 @@ + } + destP[i++] = sum; + } +-#if CPU(X86) || CPU(X86_64) ++#if (CPU(X86) && defined(__SSE2__)) || CPU(X86_64) + } + #endif + #endif // OS(MACOSX) diff -Nur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h --- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h 2015-12-10 18:17:21.000000000 +0100 +++ qtwebengine-opensource-src-5.6.0-beta-no-sse2/src/3rdparty/chromium/third_party/WebKit/Source/platform/graphics/cpu/x86/WebGLImageConversionSSE.h 2016-01-16 23:31:06.896257072 +0100