Subject: [PATCH core-updates] gnu: libgc: Update to 8.2.2 and remove '--disable-munmap'.

From: Ludovic Courtès <[email-masked]>
Date: Tue, 28 Feb 2023 18:38:54 +0100

* gnu/packages/bdw-gc.scm (libgc): Update to 8.2.2.
[arguments]: Remove "--disable-munmap" from #:configure-flags.
* gnu/packages/guile.scm (guile-3.0)[source]: Leave 'test-out-of-memory'
test untouched.
(guile-next)[arguments]: Likewise, in 'skip-failing-tests' phase.
(guile-for-guile-emacs)[arguments]: Likewise, in 'bootstrap' phase.
---
 gnu/packages/bdw-gc.scm |  9 +++------
 gnu/packages/guile.scm  | 16 +++-------------
 2 files changed, 6 insertions(+), 19 deletions(-)

Hello Guix!

This is another proposal for a world-rebuild change, hopefully the latest
(I swear!).  It’s quite important because it fixes a libgc bug that led
us to build libgc with ‘--disable-munmap’, meaning it would not return
memory to the OS:

  https://github.com/ivmai/bdwgc/issues/353

Thanks to Andrew Whatson for tackling this and for letting me know!

I tested on x86_64-linux on top of 4895846197bd445dd68c832364c667dea4337f8c
like so:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env  guix build guix [email-masked] [email-masked] -nguix build: warning: ambiguous package specification [email-masked]'
guix build: warning: choosing [email-masked] from gnu/packages/guile.scm:253:2
/gnu/store/4nhq6kmqcfk2qnzhi4xifbb0zjav0f01-guile-2.0.14-debug
/gnu/store/4p1l5bdxxbyyqc3wh0d07jv9rp1pdcy7-guile-2.0.14
/gnu/store/k47958rhcrk176i9sabxda2rgmnlig4c-guile-2.2.7-debug
/gnu/store/ka0v3fk21lqrnwj4fzbf8z154mpbnjvx-guile-2.2.7
/gnu/store/agrv086cfa0a5f9cmj94k9zgwi1a08q6-guix-1.4.0-3.d5fece6
--8<---------------cut here---------------end--------------->8---

Given that the test suite of Guix passed and that everything in between
went fine, I’m rather confident.

Thoughts?

Ludo’.

diff --git a/gnu/packages/bdw-gc.scm b/gnu/packages/bdw-gc.scm
index cfa037dec0..86caa62d7e 100644
--- a/gnu/packages/bdw-gc.scm
+++ b/gnu/packages/bdw-gc.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020, 2021 Ludovic Courtès <[email-masked]>
+;;; Copyright © 2012, 2013, 2014, 2016, 2017, 2020, 2021, 2023 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2014 Mark H Weaver <[email-masked]>
 ;;; Copyright © 2016, 2018 Leo Famulari <[email-masked]>
 ;;; Copyright © 2017 Rene Saavedra <[email-masked]>
@@ -34,14 +34,14 @@ (define-module (gnu packages bdw-gc)
 (define-public libgc
   (package
    (name "libgc")
-   (version "8.0.6")
+   (version "8.2.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "https://github.com/ivmai/bdwgc/releases"
                                 "/download/v" version "/gc-" version ".tar.gz"))
             (sha256
              (base32
-              "04ga3c95w5az5sznzm73j19lvvfpf6k4sgkpjqsmjxpsr6mi8j9v"))))
+              "181ni2rn9qjbl4ilqdjrd1a4h8siv5bgmzqgg4595q32n2y0f0gk"))))
    (build-system gnu-build-system)
    (arguments
     (list
@@ -50,9 +50,6 @@ (define-public libgc
         ;; Install gc_cpp.h et al.
         "--enable-cplusplus"
 
-        ;; Work around <https://github.com/ivmai/bdwgc/issues/353>.
-        "--disable-munmap"
-
         ;; In GNU/Hurd systems during the 'check' phase,
         ;; there is a deadlock caused by the 'gctest' test.
         ;; To disable the error set "--disable-gcj-support"
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index c2ffbefeec..64a815dbd4 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -325,11 +325,8 @@ (define-public guile-3.0
               (patches '())
               ;; Replace the snippet because the oom-test still
               ;; fails on some 32-bit architectures.
-              (snippet '(begin
-                          (substitute* "test-suite/standalone/Makefile.in"
-                            (("test-out-of-memory") ""))
-                          (for-each delete-file
-                                    (find-files "prebuilt" "\\.go$"))))))
+              (snippet '(for-each delete-file
+                                  (find-files "prebuilt" "\\.go$")))))
 
     ;; Build with the bundled mini-GMP to avoid interference with GnuTLS' own
     ;; use of GMP via Nettle: <https://issues.guix.gnu.org/46330>.
@@ -444,10 +441,7 @@ (define-public guile-next
                      (display ,version port)))))
              (add-before 'check 'skip-failing-tests
                (lambda _
-                 (substitute* "test-suite/standalone/test-out-of-memory"
-                   (("!#") "!#\n\n(exit 77)\n"))
-                 (delete-file "test-suite/tests/version.test")
-                 #t))))))
+                 (delete-file "test-suite/tests/version.test")))))))
       (native-inputs
        (modify-inputs (package-native-inputs guile-3.0)
          (prepend autoconf
@@ -571,10 +565,6 @@ (define-public guile-for-guile-emacs
                  (substitute* "test-suite/tests/version.test"
                    (("\\(pass-if \"version reporting works\"" m)
                     (string-append "#;" m)))
-                 ;; Warning: Unwind-only `out-of-memory' exception; skipping pre-unwind handler.
-                 ;; FAIL: test-out-of-memory
-                 (substitute* "test-suite/standalone/Makefile.am"
-                   (("(check_SCRIPTS|TESTS) \\+= test-out-of-memory") ""))
 
                  (patch-shebang "build-aux/git-version-gen")
                  (invoke "sh" "autogen.sh")

base-commit: 4895846197bd445dd68c832364c667dea4337f8c
-- 
2.39.1