From ea51acbabc687a2270438b05bf765ada2968b69a Mon Sep 17 00:00:00 2001 From: Alex Brainman Date: Sun, 28 Jun 2020 16:28:52 +1000 Subject: cmd/internal/objfile: use pe.FileHeader.Machine to reliably determine GOARCH Current peFile.goarch looks for symbols like "_rt0_386_windows" to determine GOARCH. But "_rt0_386_windows" is not present in executables built with cgo. Use pe.FileHeader.Machine instead. This should work with any Windows executable, not just with Go built executable. Fixes #39682 Change-Id: Ie0ffce664f4b8b8fed69b2ecc482425b042a38d5 Reviewed-on: https://go-review.googlesource.com/c/go/+/240957 Run-TryBot: Alex Brainman TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang Reviewed-by: Emmanuel Odeke --- src/cmd/objdump/testdata/fmthellocgo.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/cmd/objdump/testdata/fmthellocgo.go (limited to 'src/cmd/objdump/testdata') diff --git a/src/cmd/objdump/testdata/fmthellocgo.go b/src/cmd/objdump/testdata/fmthellocgo.go new file mode 100644 index 0000000000..6555c3bacf --- /dev/null +++ b/src/cmd/objdump/testdata/fmthellocgo.go @@ -0,0 +1,21 @@ +package main + +import "fmt" +import "C" + +func main() { + Println("hello, world") + if flag { +//line fmthello.go:999999 + Println("bad line") + for { + } + } +} + +//go:noinline +func Println(s string) { + fmt.Println(s) +} + +var flag bool -- cgit v1.3