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