~ruther/guix-local

da26ab72957aa92da45f9ddaa0fe4613b8fa6408 — Efraim Flashner 3 years ago 34e5ba9
gnu: go-1.18: Fix packaging logic.

* gnu/packages/golang.scm (go-1.18)[arguments]: Only replace the custom
'patch-gcc:lib phase on certain architectures.
1 files changed, 23 insertions(+), 21 deletions(-)

M gnu/packages/golang.scm
M gnu/packages/golang.scm => gnu/packages/golang.scm +23 -21
@@ 700,6 700,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
               (substitute* "src/time/zoneinfo_unix.go"
                 (("/usr/share/zoneinfo/") tzdata-path)))))
         ;; Keep this synchronized with the package inputs.
         ;; Also keep syncthonized with later versions of go.
         ,@(if (or (target-arm?) (target-ppc64le?))
             '((add-after 'unpack 'patch-gcc:lib
                 (lambda* (#:key inputs #:allow-other-keys)


@@ 864,27 865,28 @@ in the style of communicating sequential processes (@dfn{CSP}).")
       ((#:phases phases)
        `(modify-phases ,phases
           (delete 'adjust-test-suite)
           ;; See the platforms using this phase in go-1.17.
           (replace 'patch-gcc:lib
             (lambda* (#:key inputs #:allow-other-keys)
               (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib")))
                 ;; Add libgcc to runpath
                 (substitute* "src/cmd/link/internal/ld/lib.go"
                   (("!rpath.set") "true"))
                 (substitute* "src/cmd/go/internal/work/gccgo.go"
                   (("cgoldflags := \\[\\]string\\{\\}")
                    (string-append "cgoldflags := []string{"
                                   "\"-Wl,-rpath=" gcclib "\""
                                   "}"))
                   (("\"-lgcc_s\", ")
                    (string-append
                     "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
                 (substitute* "src/cmd/go/internal/work/gc.go"
                   (("ldflags, err := setextld\\(ldflags, compiler\\)")
                    (string-append
                     "ldflags, err := setextld(ldflags, compiler)\n"
                     "ldflags = append(ldflags, \"-r\")\n"
                     "ldflags = append(ldflags, \"" gcclib "\")\n"))))))))))))
           ,@(if (or (target-arm?) (target-ppc64le?))
               '((replace 'patch-gcc:lib
                   (lambda* (#:key inputs #:allow-other-keys)
                     (let* ((gcclib (string-append (assoc-ref inputs "gcc:lib") "/lib")))
                       ;; Add libgcc to runpath
                       (substitute* "src/cmd/link/internal/ld/lib.go"
                         (("!rpath.set") "true"))
                       (substitute* "src/cmd/go/internal/work/gccgo.go"
                         (("cgoldflags := \\[\\]string\\{\\}")
                          (string-append "cgoldflags := []string{"
                                         "\"-Wl,-rpath=" gcclib "\""
                                         "}"))
                         (("\"-lgcc_s\", ")
                          (string-append
                           "\"-Wl,-rpath=" gcclib "\", \"-lgcc_s\", ")))
                       (substitute* "src/cmd/go/internal/work/gc.go"
                         (("ldflags, err := setextld\\(ldflags, compiler\\)")
                          (string-append
                           "ldflags, err := setextld(ldflags, compiler)\n"
                           "ldflags = append(ldflags, \"-r\")\n"
                           "ldflags = append(ldflags, \"" gcclib "\")\n")))))))
               '())))))))

(define-public go-1.19
  (package