Skip to content

Commit

Permalink
cmd/go: remove init() to fix precedence issue when setting debug mod …
Browse files Browse the repository at this point in the history
…info

Fixes #29628

Change-Id: I95dabed797ef7a1a770b6f4219840f653306af7e
GitHub-Last-Rev: 9275dd8
GitHub-Pull-Request: #29630
Reviewed-on: https://go-review.googlesource.com/c/157097
Run-TryBot: Bryan C. Mills <[email protected]>
TryBot-Result: Gobot Gobot <[email protected]>
Reviewed-by: Russ Cox <[email protected]>
  • Loading branch information
vearutop authored and Bryan C. Mills committed Jan 15, 2019
1 parent d82c9a1 commit 3e9c3cf
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions src/cmd/go/internal/modload/build.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)))
}

0 comments on commit 3e9c3cf

Please sign in to comment.