Catch2-3.5.1 fails to build with system=i686-linux, log attached. This is due to a test added upstream that assumes the SSE extension is present, SelfTest/IntrospectiveTests/RandomNumberGeneration.tests.cpp:570.
One fix was proposed that replaces GCC with Clang, attached. This works because Clang assumes the SSE extension by default. If we add "-DCMAKE_CXX_FLAGS=-mno-sse", the test fails again.
Another solution is to add "-DCMAKE_CXX_FLAGS=-msse -mfpmath=sse" to the existing package definition.
Of the two, the second is more explicit in how the problem is resolved, but I don't know if we should assume SSE is present on i686.
An issue was opened upstream at https://github.com/catchorg/Catch2/issues/2796
Richard Sent
diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 449340f331..e09a7bd82a 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -621,9 +621,14 @@ (define-public catch2-3
(arguments
(list
#:configure-flags
- #~(list "-DCATCH_DEVELOPMENT_BUILD=ON"
+ #~(list "-DCMAKE_CXX_COMPILER=clang++" ; tests fail with gcc-11 on i686
+ "-DCMAKE_CXX_STANDARD=14"
+ "-DCMAKE_CXX_STANDARD_REQUIRED=ON"
+ "-DCMAKE_CXX_EXTENSIONS=OFF"
+ "-DCATCH_DEVELOPMENT_BUILD=ON"
"-DCATCH_ENABLE_WERROR=OFF"
"-DBUILD_SHARED_LIBS=ON")))
+ (native-inputs (list clang-10))
(inputs (list python-wrapper))
(synopsis "Automated test framework for C++ and Objective-C")
(description "Catch2 stands for C++ Automated Test Cases in Headers and is
sll1zarpy78qi6fgrz9xrpx99hhn3b-catch2-3.5.1.drv.gz
Description: application/gzip
