aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/objfile
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2020-09-11 12:07:44 -0400
committerCherry Zhang <cherryyz@google.com>2020-09-11 12:07:44 -0400
commit3ab22052fbe784088cf8e4edf686707c54f51cf2 (patch)
tree98ccab5799729e3f7978e2ee71eb0f81e5e6ac8c /src/cmd/internal/objfile
parent5402d40d5b041399392b29e4543f5fc4506197bd (diff)
parentb459bc8152210c14b66e23351690ff774cd68d2c (diff)
downloadgo-3ab22052fbe784088cf8e4edf686707c54f51cf2.tar.xz
[dev.link] all: merge branch 'master' into dev.link
Clean merge. Change-Id: Ib773b0bc00fd99d494f9331c3613bcc8285e48e3
Diffstat (limited to 'src/cmd/internal/objfile')
-rw-r--r--src/cmd/internal/objfile/macho.go2
-rw-r--r--src/cmd/internal/objfile/pe.go14
2 files changed, 7 insertions, 9 deletions
diff --git a/src/cmd/internal/objfile/macho.go b/src/cmd/internal/objfile/macho.go
index fdb7e76dfc..1d6963f7c4 100644
--- a/src/cmd/internal/objfile/macho.go
+++ b/src/cmd/internal/objfile/macho.go
@@ -60,7 +60,7 @@ func (f *machoFile) symbols() ([]Sym, error) {
} else if int(s.Sect) <= len(f.macho.Sections) {
sect := f.macho.Sections[s.Sect-1]
switch sect.Seg {
- case "__TEXT":
+ case "__TEXT", "__DATA_CONST":
sym.Code = 'R'
case "__DATA":
sym.Code = 'D'
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) {