diff options
Diffstat (limited to 'src/cmd/nm/nm_test.go')
| -rw-r--r-- | src/cmd/nm/nm_test.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cmd/nm/nm_test.go b/src/cmd/nm/nm_test.go index 8176ddd7f4..e47d57d9cb 100644 --- a/src/cmd/nm/nm_test.go +++ b/src/cmd/nm/nm_test.go @@ -136,6 +136,11 @@ func testGoExec(t *testing.T, iscgo, isexternallinker bool) { "runtime.noptrdata": "D", } + if runtime.GOOS == "aix" && iscgo { + // pclntab is moved to .data section on AIX. + runtimeSyms["runtime.epclntab"] = "D" + } + out, err = exec.Command(testnmpath, exe).CombinedOutput() if err != nil { t.Fatalf("go tool nm: %v\n%s", err, string(out)) @@ -146,7 +151,10 @@ func testGoExec(t *testing.T, iscgo, isexternallinker bool) { // On AIX, .data and .bss addresses are changed by the loader. // Therefore, the values returned by the exec aren't the same // than the ones inside the symbol table. + // In case of cgo, .text symbols are also changed. switch code { + case "T", "t", "R", "r": + return iscgo case "D", "d", "B", "b": return true } @@ -267,6 +275,9 @@ func testGoLib(t *testing.T, iscgo bool) { if runtime.GOOS == "darwin" || (runtime.GOOS == "windows" && runtime.GOARCH == "386") { syms = append(syms, symType{"D", "_cgodata", true, false}) syms = append(syms, symType{"T", "_cgofunc", true, false}) + } else if runtime.GOOS == "aix" { + syms = append(syms, symType{"D", "cgodata", true, false}) + syms = append(syms, symType{"T", ".cgofunc", true, false}) } else { syms = append(syms, symType{"D", "cgodata", true, false}) syms = append(syms, symType{"T", "cgofunc", true, false}) |
