mirror of
https://github.com/golang/go
synced 2024-11-23 09:50:03 -07:00
cmd/go: remove init() to fix precedence issue when setting debug mod info
Fixes #29628
Change-Id: I95dabed797ef7a1a770b6f4219840f653306af7e
GitHub-Last-Rev: 9275dd8f1c
GitHub-Pull-Request: golang/go#29630
Reviewed-on: https://go-review.googlesource.com/c/157097
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
d82c9a167d
commit
3e9c3cfd1e
@ -252,13 +252,10 @@ func findModule(target, path string) module.Version {
|
||||
func ModInfoProg(info string) []byte {
|
||||
// Inject a variable with the debug information as runtime/debug.modinfo,
|
||||
// but compile it in package main so that it is specific to the binary.
|
||||
// Populate it in an init func so that it will work with go:linkname,
|
||||
// but use a string constant instead of the name 'string' in case
|
||||
// package main shadows the built-in 'string' with some local declaration.
|
||||
// No need to populate in an init func, it will still work with go:linkname,
|
||||
return []byte(fmt.Sprintf(`package main
|
||||
import _ "unsafe"
|
||||
//go:linkname __debug_modinfo__ runtime/debug.modinfo
|
||||
var __debug_modinfo__ = ""
|
||||
func init() { __debug_modinfo__ = %q }
|
||||
var __debug_modinfo__ = %q
|
||||
`, string(infoStart)+info+string(infoEnd)))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user