misc/cgo/testplugin: disable DWARF tests on darwin

For some reason on darwin the linker still can't add debug sections to
plugins. Executables importing "plugin" do have them, however.

Because of issue 25841, plugins on darwin would likely have bad debug
info anyway so, for now, this isn't a great loss.

This disables the check for debug sections in plugins for darwin only.

Updates #27502

Change-Id: Ib8f62dac1e485006b0c2b3ba04f86d733db5ee9a
Reviewed-on: https://go-review.googlesource.com/133435
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
Alessandro Arzilli 2018-09-05 07:07:56 +02:00 committed by Brad Fitzpatrick
parent bcf3e063cc
commit 3fd364988c
2 changed files with 9 additions and 5 deletions

View File

@ -71,13 +71,13 @@ func main() {
}
if exe == nil {
fmt.Fprintf(os.Stderr, "could not open %s", exePath)
fmt.Fprintf(os.Stderr, "could not open %s\n", exePath)
os.Exit(1)
}
data, err := exe.DWARF()
if err != nil {
fmt.Fprintf(os.Stderr, "error opening DWARF: %v", err)
fmt.Fprintf(os.Stderr, "%s: error opening DWARF: %v\n", exePath, err)
os.Exit(1)
}
@ -85,7 +85,7 @@ func main() {
for {
e, err := rdr.Next()
if err != nil {
fmt.Fprintf(os.Stderr, "error reading DWARF: %v", err)
fmt.Fprintf(os.Stderr, "%s: error reading DWARF: %v\n", exePath, err)
os.Exit(1)
}
if e == nil {
@ -101,6 +101,6 @@ func main() {
}
}
fmt.Fprintf(os.Stderr, "no entry with a name ending in %q was found", dieSuffix)
fmt.Fprintf(os.Stderr, "%s: no entry with a name ending in %q was found\n", exePath, dieSuffix)
os.Exit(1)
}

View File

@ -33,7 +33,11 @@ GOPATH=$(pwd) go build -gcflags "$GO_GCFLAGS" -buildmode=plugin -o=unnamed2.so u
GOPATH=$(pwd) go build -gcflags "$GO_GCFLAGS" host
# test that DWARF sections are emitted for plugins and programs importing "plugin"
go run src/checkdwarf/main.go plugin2.so plugin2.UnexportedNameReuse
if [ $GOOS != "darwin" ]; then
# On macOS, for some reason, the linker doesn't add debug sections to .so,
# see issue #27502.
go run src/checkdwarf/main.go plugin2.so plugin2.UnexportedNameReuse
fi
go run src/checkdwarf/main.go host main.main
LD_LIBRARY_PATH=$(pwd) ./host