diff options
author | Jay Conrod <jayconrod@google.com> | 2019-08-06 13:12:23 -0400 |
---|---|---|
committer | Jay Conrod <jayconrod@google.com> | 2019-08-06 18:00:31 +0000 |
commit | 46f99ce7ea97d11b0a1a079da8dda0f51df2a2d2 (patch) | |
tree | c520b5d18ca62023f964467007578211e1e3a177 | |
parent | 8e82624e691387eed2261e6c34decb27348f4685 (diff) | |
download | go-46f99ce7ea97d11b0a1a079da8dda0f51df2a2d2.tar.gz go-46f99ce7ea97d11b0a1a079da8dda0f51df2a2d2.zip |
cmd/go: look for __go_buildinfo section when looking for Mach-O version
This mirrors the ELF fix in CL 188957. TestScript/version failed on
darwin after that change.
Fixes #31861
Change-Id: I4ce953ebec8dd5fa47e26d373c59d7e290b75a34
Reviewed-on: https://go-review.googlesource.com/c/go/+/189159
Run-TryBot: Jay Conrod <jayconrod@google.com>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
-rw-r--r-- | src/cmd/go/internal/version/exe.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/cmd/go/internal/version/exe.go b/src/cmd/go/internal/version/exe.go index 528433e325..0e7deef149 100644 --- a/src/cmd/go/internal/version/exe.go +++ b/src/cmd/go/internal/version/exe.go @@ -213,7 +213,13 @@ func (x *machoExe) ReadData(addr, size uint64) ([]byte, error) { } func (x *machoExe) DataStart() uint64 { - // Assume data is first non-empty writable segment. + // Look for section named "__go_buildinfo". + for _, sec := range x.f.Sections { + if sec.Name == "__go_buildinfo" { + return sec.Addr + } + } + // Try the first non-empty writable segment. const RW = 3 for _, load := range x.f.Loads { seg, ok := load.(*macho.Segment) |