Subject: [bug#49659] [PATCH v2\ core-updates v2] gnu: guile: Fix failing tests on i686-linux.

From: Maxime Devos <[email-masked]>
Date: Tue, 20 Jul 2021 23:34:17 +0200

i586-gnu might have the same issue.

* gnu/packages/guile.scm (guile-3.0)[arguments]<#:configure-flags>:
  Add "-fexcess-precision=standard" to CFLAGS when
  (target-x86-32?) is true.

Fixes: <https://issues.guix.gnu.org/49368>.
---
 gnu/packages/guile.scm | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index d78c57e88c..86621e4ca0 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -16,6 +16,7 @@
 ;;; Copyright © 2018 Eric Bavier <[email-masked]>
 ;;; Copyright © 2019 Taylan Kammer <[email-masked]>
 ;;; Copyright © 2020, 2021 Efraim Flashner <[email-masked]>
+;;; Copyright © 2021 Maxime Devos <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -316,11 +317,19 @@ without requiring the source code to be rewritten.")
     (arguments
      (substitute-keyword-arguments (package-arguments guile-2.2)
        ((#:configure-flags flags ''())
-        (let ((flags `(cons "--enable-mini-gmp" ,flags)))
-          ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
-          (if (hurd-target?)
-              `(cons "--disable-jit" ,flags)
-              flags)))
+        ;; XXX: JIT-enabled Guile crashes in obscure ways on GNU/Hurd.
+        `(cons* ,@(if (hurd-target?)
+                      '("--disable-jit")
+                      '())
+                ;; -fexcess-precision=standard is required when compiling for
+                ;; i686-linux, otherwise "numbers.test" will fail
+                ;; (see <https://issues.guix.gnu.org/49368> and
+                ;; <https://issues.guix.gnu.org/49659>).
+                ,@(if (target-x86-32?)
+                      '("CFLAGS=-g -O2 -fexcess-precision=standard")
+                      '())
+                "--enable-mini-gmp"
+                ,flags))
        ((#:phases phases)
         `(modify-phases ,phases
            (add-before 'check 'disable-stack-overflow-test
-- 
2.32.0