me
/
guix
Archived
1
0
Fork 0

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.
master
Efraim Flashner 2023-04-05 22:16:52 +03:00
parent 48f0da4f4d
commit d513ba83eb
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
1 changed files with 23 additions and 21 deletions

View File

@ -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