Bug#930935: webkit2gtk: Baseline violation on i386
Adrian Bunk
bunk at debian.org
Sat Jun 22 20:40:53 BST 2019
Source: webkit2gtk
Version: 2.24.1-2
Severity: serious
Tags: patch
webkit2gtk violates the baseline on i386 by using SSE.
While keeping floating point values consistent between
32bit and 64bit is nice in general, it is bad if this
makes the code crash on large parts of the supported
i386 hardware - most hardware with SSE2 runs the amd64
port, and at least one non-SSE i386 CPU is still in
production for embedded systems (AMD Geode).
Fix is attached.
-------------- next part --------------
diff -Nru webkit2gtk-2.24.2/debian/NEWS webkit2gtk-2.24.2/debian/NEWS
--- webkit2gtk-2.24.2/debian/NEWS 2019-05-17 17:40:52.000000000 +0300
+++ webkit2gtk-2.24.2/debian/NEWS 2019-05-17 17:40:52.000000000 +0300
@@ -1,12 +1,3 @@
-webkit2gtk (2.24.1-2) unstable; urgency=high
-
- Since version 2.24.0, i386 builds of WebKitGTK require an SSE2-capable
- CPU. This instruction set was first introduced with the Pentium 4 in
- year 2000. Support for older processors was dropped in WebKitGTK
- upstream and is unfortunately not expected to come back.
-
- -- Alberto Garcia <berto at igalia.com> Fri, 10 May 2019 15:40:28 +0300
-
webkit2gtk (2.20.0-2) unstable; urgency=medium
webkit2gtk 2.20.0 contains a security feature named Gigacage that
diff -Nru webkit2gtk-2.24.2/debian/patches/i386-no-sse.patch webkit2gtk-2.24.2/debian/patches/i386-no-sse.patch
--- webkit2gtk-2.24.2/debian/patches/i386-no-sse.patch 1970-01-01 02:00:00.000000000 +0200
+++ webkit2gtk-2.24.2/debian/patches/i386-no-sse.patch 2019-05-17 17:40:52.000000000 +0300
@@ -0,0 +1,21 @@
+Description: SSE is a baseline violation on i386
+Author: Adrian Bunk <bunk at debian.org>
+
+--- webkit2gtk-2.24.2.orig/Source/cmake/WebKitCompilerFlags.cmake
++++ webkit2gtk-2.24.2/Source/cmake/WebKitCompilerFlags.cmake
+@@ -144,15 +144,6 @@ if (COMPILER_IS_GCC_OR_CLANG)
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-Wno-expansion-to-defined)
+ endif ()
+-
+- # Force SSE2 fp on x86 builds.
+- if (WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING)
+- WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-msse2 -mfpmath=sse)
+- include(DetectSSE2)
+- if (NOT SSE2_SUPPORT_FOUND)
+- message(FATAL_ERROR "SSE2 support is required to compile WebKit")
+- endif ()
+- endif ()
+ endif ()
+
+ if (COMPILER_IS_GCC_OR_CLANG AND NOT MSVC)
diff -Nru webkit2gtk-2.24.2/debian/patches/series webkit2gtk-2.24.2/debian/patches/series
--- webkit2gtk-2.24.2/debian/patches/series 2019-05-17 17:40:52.000000000 +0300
+++ webkit2gtk-2.24.2/debian/patches/series 2019-05-17 17:40:52.000000000 +0300
@@ -7,3 +7,4 @@
detect-woff.patch
user-agent-branding.patch
prefer-pthread.patch
+i386-no-sse.patch
diff -Nru webkit2gtk-2.24.2/debian/rules webkit2gtk-2.24.2/debian/rules
--- webkit2gtk-2.24.2/debian/rules 2019-05-17 17:40:52.000000000 +0300
+++ webkit2gtk-2.24.2/debian/rules 2019-05-17 17:40:52.000000000 +0300
@@ -23,11 +23,6 @@
CFLAGS := $(CFLAGS:-g=-g1)
endif
-# The 32-bit x86 build requires SSE2
-ifneq (,$(filter $(DEB_HOST_ARCH),i386))
- CFLAGS += -msse2 -mfpmath=sse
-endif
-
# See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81426
ifneq (,$(filter $(DEB_HOST_ARCH),armhf sh3 sh4 powerpc))
CFLAGS := $(CFLAGS:-O2=-O1)
More information about the Pkg-webkit-maintainers
mailing list