]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/objfile: don't require runtime.symtab symbol for XCOFF
authorCherry Zhang <cherryyz@google.com>
Wed, 23 Dec 2020 22:33:18 +0000 (17:33 -0500)
committerCherry Zhang <cherryyz@google.com>
Mon, 11 Jan 2021 18:19:08 +0000 (18:19 +0000)
For some reason (that I didn't look into), externally linked
AIX binaries don't have runtime.symtab symbol. Since recent Go
releases (Go 1.3 maybe?), that symbol is empty and not necessary
anyway. Don't require it.

Fixes #40972.

Change-Id: I73a1f0142195ea6debdba8a4f6e12cadc3980dc5
Reviewed-on: https://go-review.googlesource.com/c/go/+/279995
Trust: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Than McIntosh <thanm@google.com>
src/cmd/internal/objfile/xcoff.go
src/cmd/objdump/objdump_test.go

index d438c802264f693ff311c8079d723d985d04c543..d6df4db8f01d0615abc9df6d814bede5507591e0 100644 (file)
@@ -94,9 +94,7 @@ func (f *xcoffFile) pcln() (textStart uint64, symtab, pclntab []byte, err error)
        if pclntab, err = loadXCOFFTable(f.xcoff, "runtime.pclntab", "runtime.epclntab"); err != nil {
                return 0, nil, nil, err
        }
-       if symtab, err = loadXCOFFTable(f.xcoff, "runtime.symtab", "runtime.esymtab"); err != nil {
-               return 0, nil, nil, err
-       }
+       symtab, _ = loadXCOFFTable(f.xcoff, "runtime.symtab", "runtime.esymtab") // ignore error, this symbol is not useful anyway
        return textStart, symtab, pclntab, nil
 }
 
index edaca774f7dfba6d39cbbf9a56b9a79ff2fe96f5..1748e13a537806bfa725ef54b792e2e95b2b0e30 100644 (file)
@@ -237,9 +237,6 @@ func testGoAndCgoDisasm(t *testing.T, printCode bool, printGnuAsm bool) {
        t.Parallel()
        testDisasm(t, "fmthello.go", printCode, printGnuAsm)
        if build.Default.CgoEnabled {
-               if runtime.GOOS == "aix" {
-                       return // issue 40972
-               }
                testDisasm(t, "fmthellocgo.go", printCode, printGnuAsm)
        }
 }
@@ -261,8 +258,6 @@ func TestDisasmExtld(t *testing.T) {
        switch runtime.GOOS {
        case "plan9", "windows":
                t.Skipf("skipping on %s", runtime.GOOS)
-       case "aix":
-               t.Skipf("skipping on AIX, see issue 40972")
        }
        t.Parallel()
        testDisasm(t, "fmthello.go", false, false, "-ldflags=-linkmode=external")