aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJay Conrod <jayconrod@google.com>2019-08-06 13:12:23 -0400
committerJay Conrod <jayconrod@google.com>2019-08-06 18:00:31 +0000
commit46f99ce7ea97d11b0a1a079da8dda0f51df2a2d2 (patch)
treec520b5d18ca62023f964467007578211e1e3a177
parent8e82624e691387eed2261e6c34decb27348f4685 (diff)
downloadgo-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.go8
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)