~ruther/guix-local

81d08d797059c4af633c48048dbcd97de4a01a12 — Efraim Flashner 1 year, 10 months ago e50fc53
gnu: abseil-cpp: Fix build on i686-linux.

* gnu/packages/cpp.scm (abseil-cpp)[source]: Add patch.
(abseil-cpp-20220623.1)[source]: Same.
* gnu/packages/patches/abseil-cpp-20220623.1-no-kepsilon-i686.patch: New
file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: I27b9abc2c44ff6dc313209f4b0b12542a92d6fcd
M gnu/local.mk => gnu/local.mk +1 -0
@@ 913,6 913,7 @@ dist_patch_DATA =						\
  %D%/packages/patches/abiword-explictly-cast-bools.patch	\
  %D%/packages/patches/abseil-cpp-20200923.3-adjust-sysinfo.patch	\
  %D%/packages/patches/abseil-cpp-20200923.3-duration-test.patch	\
  %D%/packages/patches/abseil-cpp-20220623.1-no-kepsilon-i686.patch	\
  %D%/packages/patches/abseil-cpp-fix-strerror_test.patch	\
  %D%/packages/patches/adb-add-libraries.patch			\
  %D%/packages/patches/adb-libssl_11-compatibility.patch	\

M gnu/packages/cpp.scm => gnu/packages/cpp.scm +6 -2
@@ 1456,7 1456,9 @@ Google's C++ code base.")
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "0vxh2a74g4s45yr8kdjqnzl64k10qdlc0hbnn987a4cnwdj4bp9r"))))
                  "0vxh2a74g4s45yr8kdjqnzl64k10qdlc0hbnn987a4cnwdj4bp9r"))
                (patches
                 (search-patches "abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
      (arguments
       (substitute-keyword-arguments (package-arguments base)
         ((#:configure-flags flags)


@@ 1477,7 1479,9 @@ Google's C++ code base.")
                (file-name (git-file-name name version))
                (sha256
                 (base32
                  "1ydkkbanrpkp5i814arzsk973kyzhhjhagnp392rq6rrv16apldq"))))
                  "1ydkkbanrpkp5i814arzsk973kyzhhjhagnp392rq6rrv16apldq"))
                (patches
                 (search-patches "abseil-cpp-20220623.1-no-kepsilon-i686.patch"))))
      (arguments
       (substitute-keyword-arguments (package-arguments base)
         ((#:phases phases)

A gnu/packages/patches/abseil-cpp-20220623.1-no-kepsilon-i686.patch => gnu/packages/patches/abseil-cpp-20220623.1-no-kepsilon-i686.patch +23 -0
@@ 0,0 1,23 @@
After an upstream code dump on 20220314 when this code was added this test started to fail on i686-linux.

diff --git a/absl/random/uniform_real_distribution_test.cc b/absl/random/uniform_real_distribution_test.cc
index 260aac96..0abef9b0 100644
--- a/absl/random/uniform_real_distribution_test.cc
+++ b/absl/random/uniform_real_distribution_test.cc
@@ -228,6 +228,8 @@ TYPED_TEST(UniformRealDistributionTest, ViolatesPreconditionsDeathTest) {
 
 #endif  // GTEST_HAS_DEATH_TEST
 #if defined(NDEBUG)
+  // Except apparently not with 387 math
+#if !((defined(__i386__) || defined(_M_IX86)) && FLT_EVAL_METHOD != 0)
   // opt-mode, for invalid parameters, will generate a garbage value,
   // but should not enter an infinite loop.
   absl::InsecureBitGen gen;
@@ -243,6 +245,7 @@ TYPED_TEST(UniformRealDistributionTest, ViolatesPreconditionsDeathTest) {
     // Infinite result.
     EXPECT_FALSE(std::isfinite(x)) << x;
   }
+#endif  // skip on i386
 #endif  // NDEBUG
 }
 #ifdef _MSC_VER