build-system/go: Respect #:imported-modules when cross-compiling.

Previously, #:imported-modules was ignored, causing cross-compilation
failures.  This bug seems seems to have been introduced in
e37dcf63dc.

After this commit, there remain other cross-compilation problems,
e.g. <https://issues.guix.gnu.org/51981> fixes one of them.

* guix/build-system/go.scm (go-cross-build)[builder]: Wrap in
with-imported-modules.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Maxime Devos 2022-09-13 13:01:05 +02:00 committed by Ludovic Courtès
parent 1cf39c41cf
commit 9e4d8c7518
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -240,45 +240,46 @@ (define* (go-cross-build name
(substitutable? #t))
"Cross-build NAME using GO, where TARGET is a GNU triplet and with INPUTS."
(define builder
#~(begin
(use-modules #$@(sexp->gexp modules))
(with-imported-modules imported-modules
#~(begin
(use-modules #$@(sexp->gexp modules))
(define %build-host-inputs
#+(input-tuples->gexp build-inputs))
(define %build-host-inputs
#+(input-tuples->gexp build-inputs))
(define %build-target-inputs
(append #$(input-tuples->gexp host-inputs)
(define %build-target-inputs
(append #$(input-tuples->gexp host-inputs)
#+(input-tuples->gexp target-inputs)))
(define %build-inputs
(append %build-host-inputs %build-target-inputs))
(define %build-inputs
(append %build-host-inputs %build-target-inputs))
(define %outputs
#$(outputs->gexp outputs))
(define %outputs
#$(outputs->gexp outputs))
(go-build #:name #$name
#:source #+source
#:system #$system
#:phases #$phases
#:outputs %outputs
#:target #$target
#:goarch #$goarch
#:goos #$goos
#:inputs %build-target-inputs
#:native-inputs %build-host-inputs
#:search-paths '#$(map search-path-specification->sexp
search-paths)
#:native-search-paths '#$(map
search-path-specification->sexp
native-search-paths)
#:install-source? #$install-source?
#:import-path #$import-path
#:unpack-path #$unpack-path
#:build-flags #$build-flags
#:tests? #$tests?
#:make-dynamic-linker-cache? #f ;cross-compiling
#:allow-go-reference? #$allow-go-reference?
#:inputs %build-inputs)))
(go-build #:name #$name
#:source #+source
#:system #$system
#:phases #$phases
#:outputs %outputs
#:target #$target
#:goarch #$goarch
#:goos #$goos
#:inputs %build-target-inputs
#:native-inputs %build-host-inputs
#:search-paths '#$(map search-path-specification->sexp
search-paths)
#:native-search-paths '#$(map
search-path-specification->sexp
native-search-paths)
#:install-source? #$install-source?
#:import-path #$import-path
#:unpack-path #$unpack-path
#:build-flags #$build-flags
#:tests? #$tests?
#:make-dynamic-linker-cache? #f ;cross-compiling
#:allow-go-reference? #$allow-go-reference?
#:inputs %build-inputs))))
(mlet %store-monad ((guile (package->derivation (or guile (default-guile))
system #:graft? #f)))