diff options
author | Efraim Flashner <efraim@flashner.co.il> | 2023-04-05 22:16:52 +0300 |
---|---|---|
committer | Efraim Flashner <efraim@flashner.co.il> | 2023-04-05 22:16:52 +0300 |
commit | d513ba83ebca347164098bb0fa1354f3657bc7e2 (patch) | |
tree | fd2b76c789d91c95e1898f88993036ec0d48a9ab /gnu | |
parent | 48f0da4f4da000f9ed6a4705e4dabbdba7344d05 (diff) | |
download | guix-d513ba83ebca347164098bb0fa1354f3657bc7e2.tar.gz guix-d513ba83ebca347164098bb0fa1354f3657bc7e2.zip |
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.
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/packages/golang.scm | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index d22fe556d3..7709053d34 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -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 |