GNU bug report logs -
#33620
Golang programs keeping references [gnu: go: Update default to 1.11.]
Previous Next
Reported by: Leo Famulari <leo <at> famulari.name>
Date: Wed, 5 Dec 2018 02:22:01 UTC
Severity: normal
Merged with 33741
Done: Leo Famulari <leo <at> famulari.name>
Bug is archived. No further changes may be made.
Full log
Message #15 received at 33620-done <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
The issue of Go packages keeping references to all their Go-language is
inputs is resolved with commit e3900a4d64e4bf6f426809d6bff058e5a2ae9bc8.
This commit basically avoids bringing the store paths into the build
environment at all by symlinking them into a union directory in the
TMPDIR. This is a bit of a hack but it's actually more idiomatic in Go
to have all the inputs in a single directory ("workspace" in Go). The
previous technique of passing a list of directories in the GOPATH
variable is officially supported but is definitely a 2nd-class technique
in practice.
----- Forwarded message from Pierre Neidhardt <mail <at> ambrevar.xyz> -----
> I've added this to Go's (build) function:
>
> --8<---------------cut here---------------start------------->8---
> "-asmflags=all=-trimpath=/gnu/store"
> "-gcflags=all=-trimpath=/gnu/store"
> --8<---------------cut here---------------end--------------->8---
>
> The resulting binary is indeed trimmed, but that's not enough: it seems that
> Guix detects the remaining part of the path as a store item and includes it in
> the list of requisites. Is this really how Guix works? It does not need the
> full path?
Not having read the reference scanner code carefully, I expect that it
ignores the '/gnu/store/' since this path is actually configurable.
> Regarding Boyer-Moore over the binary, we would have to apply the changes for
> all recursive Go libraries. Now is there a reliable way to detect what's a Go
> library and what is not? We don't want to patch non-Go libraries, right?
> (Let's not forget that there is CGo...)
In (guix build-system go), I'd like to construct of list of inputs that
use the go-build-system and pass this list to the biuld side. This would
be useful for other things, but could also be used to detect which
inputs are Go libraries.
> If we can't think of a way to detect a Go library, Boyer-Moore does not seem to
> be a solution either. And we might have to wait for Go 1.13...
Waiting for upstream is always the easiest way :)
But it would still be nice to have Boyer-Moore available in (guix build
utils) for whenever we want to use it. Or even in Guile itself...
[signature.asc (application/pgp-signature, inline)]
This bug report was last modified 6 years and 71 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.