After https://golang.org/cl/64793, we started to include Mach-O object
files which don't have symbol table into cgo archive.
However, toolchains didn't handle those files yet.
Fixes #21959
Change-Id: Ibb2f6492f1fa59368f2dfd4cff19783997539875
Reviewed-on: https://go-review.googlesource.com/65170
Reviewed-by: Ian Lance Taylor <iant@golang.org>
func (f *machoFile) symbols() ([]Sym, error) {
if f.macho.Symtab == nil {
- return nil, fmt.Errorf("missing symbol table")
+ return nil, nil
}
// Build sorted list of addresses of all symbols.
entries := f.Entries()
+ var found bool
+
for _, e := range entries {
syms, err := e.Symbols()
if err != nil {
errorf("reading %s: %v", file, err)
}
if len(syms) == 0 {
- errorf("reading %s: no symbols", file)
+ continue
}
+ found = true
+
switch *sortOrder {
case "address":
sort.Slice(syms, func(i, j int) bool { return syms[i].Addr < syms[j].Addr })
}
}
+ if !found {
+ errorf("reading %s: no symbols", file)
+ }
+
w.Flush()
}