Opening a ticket so discussions a bit more organized. Hope this doesn't step on anybody's toes.

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

Attachment: sll1zarpy78qi6fgrz9xrpx99hhn3b-catch2-3.5.1.drv.gz
Description: application/gzip

Reply via email to