efraim pushed a commit to branch master
in repository guix.

commit b20b624b0244ba9bec832b5c466cda07a94b06ce
Author: Efraim Flashner <[email protected]>
AuthorDate: Mon Jan 1 08:35:53 2024 +0200

    gnu: gccgo-12: Fix building with 1 core.
    
    * gnu/packages/gcc.scm (make-gccgo)[arguments]: When building gccgo-12
    or higher add a phase to build libbacktrace before libgo.
    
    Change-Id: I9bb225b58ffa439f9461e4126f51ab453683efbe
---
 gnu/packages/gcc.scm | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index e352cff5f9..a8b74a3632 100644
--- a/gnu/packages/gcc.scm
+++ b/gnu/packages/gcc.scm
@@ -1182,6 +1182,21 @@ provides the GNU compiler for the Go programming 
language.")
        (substitute-keyword-arguments (package-arguments gccgo)
          ((#:phases phases)
           #~(modify-phases #$phases
+              #$@(if (version>=? (package-version gccgo) "12.0")
+                     #~((add-after 'unpack 'adjust-libgo-dependencies
+                          (lambda _
+                            (substitute* "Makefile.in"
+                              ;; libgo.la depends on libbacktrace.la but the
+                              ;; current dependency rules don't have 
libbacktrace
+                              ;; building early enough for libgo.  When built
+                              ;; with more than 1 core this issue doesn't 
appear.
+                              ;; see commit 
5fee5ec362f7a243f459e6378fd49dfc89dc9fb5.
+                              (("all-target-libgo: maybe-all-target-libffi")
+                               (string-append
+                                 "all-target-libgo: 
maybe-all-target-libbacktrace\n"
+                                 "all-target-libgo: maybe-all-target-libffi\n"
+                                 "all-target-libgo: 
maybe-all-target-libatomic"))))))
+                     #~())
               (add-after 'install 'wrap-go-with-tool-path
                 (lambda* (#:key outputs #:allow-other-keys)
                   (let* ((out (assoc-ref outputs "out"))

Reply via email to