Skip to content

Commit

Permalink
misc/cgo/testplugin: disable DWARF tests on darwin
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
aarzilli authored and bradfitz committed Sep 5, 2018
1 parent bcf3e06 commit 3fd3649
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
8 changes: 4 additions & 4 deletions misc/cgo/testplugin/src/checkdwarf/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,21 +71,21 @@ 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)
}

rdr := data.Reader()
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 {
Expand All @@ -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)
}
6 changes: 5 additions & 1 deletion misc/cgo/testplugin/test.bash
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 3fd3649

Please sign in to comment.