diff options
Diffstat (limited to 'src/cmd/internal/objfile')
| -rw-r--r-- | src/cmd/internal/objfile/pe.go | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/cmd/internal/objfile/pe.go b/src/cmd/internal/objfile/pe.go index 259b59a4f4..b20cda9a44 100644 --- a/src/cmd/internal/objfile/pe.go +++ b/src/cmd/internal/objfile/pe.go @@ -182,18 +182,16 @@ func loadPETable(f *pe.File, sname, ename string) ([]byte, error) { } func (f *peFile) goarch() string { - // Not sure how to get the info we want from PE header. - // Look in symbol table for telltale rt0 symbol. - if _, err := findPESymbol(f.pe, "_rt0_386_windows"); err == nil { + switch f.pe.Machine { + case pe.IMAGE_FILE_MACHINE_I386: return "386" - } - if _, err := findPESymbol(f.pe, "_rt0_amd64_windows"); err == nil { + case pe.IMAGE_FILE_MACHINE_AMD64: return "amd64" - } - if _, err := findPESymbol(f.pe, "_rt0_arm_windows"); err == nil { + case pe.IMAGE_FILE_MACHINE_ARMNT: return "arm" + default: + return "" } - return "" } func (f *peFile) loadAddress() (uint64, error) { |
