[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#51863] [PATCH] gnu: webkitgtk: Really disable SSE2 on i686-linux.
From: |
Liliana Marie Prikler |
Subject: |
[bug#51863] [PATCH] gnu: webkitgtk: Really disable SSE2 on i686-linux. |
Date: |
Mon, 15 Nov 2021 20:29:33 +0100 |
User-agent: |
Evolution 3.34.2 |
Hi Diego,
Am Montag, den 15.11.2021, 11:29 +0000 schrieb Diego Nicola Barbato:
> Hey Guix,
>
> Commit d82fd7c2dd542693988f61fb15c020e3209ac7ec (gnu: webkitgtk:
> Disable SSE2 when not on x86_64.) on master breaks webkitgtk on i686-
> linux.
No, it does not. It merely fails to fix it ;)
> (I'm Cc-ing Leo, Liliana, and Mark since you were all involved in
> upgrading webkitgtk to 2.34.1.)
>
> The offending patch attempts to disable SSE2 by conditionally adding
> a phase which removes the call to 'CHECK_FOR_SSE2' from the end of
> 'Source/cmake/DetectSSE2.cmake'. This phase doesn't do anything
> about 'SSE2_SUPPORT_FOUND' being set to 'FALSE' at line 34 in the
> same file, which causes the following snippet starting at line 152 in
> 'Source/cmake/WebKitCompilerFlags.cmake'
>
> --8<---------------cut here---------------start------------->8---
> # 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 ()
> --8<---------------cut here---------------end--------------->8---
>
> to fail with the following error when building for i686.
>
> --8<---------------cut here---------------start------------->8---
> CMake Error at Source/cmake/WebKitCompilerFlags.cmake:157 (message):
> SSE2 support is required to compile WebKit
> --8<---------------cut here---------------end--------------->8---
>
> The attached patch removes the code for adding the broken 'disable-
> sse2' phase. Instead it disables SSE2 using a patch from Debian and
> by setting 'CFLAGS' and 'CXXFLAGS' to '-march=i686' in the
> 'prepare-build-environment' phase when building for i686. The latter
> is necessary because clang, unlike gcc, defaults to '-
> march=pentium4', which enables SSE2.
These two things don't require combination though, right? Like one
thing disables the SSE check whereas the other fixes a mostly unrelated
issue, am I correct?
I'd like the comment about the "-march=whatever" thing to be closer to
the setenvs, also if GCC does not require it there ought to be a TODO
or XXX stating that it should be removed on core-updates-frozen.
Otherwise LGTM, cheers!