]> Cypherpunks repositories - gostls13.git/commitdiff
misc/cgo/testplugin: disable DWARF tests on darwin
authorAlessandro Arzilli <alessandro.arzilli@gmail.com>
Wed, 5 Sep 2018 05:07:56 +0000 (07:07 +0200)
committerBrad Fitzpatrick <bradfitz@golang.org>
Wed, 5 Sep 2018 11:27:37 +0000 (11:27 +0000)
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>
misc/cgo/testplugin/src/checkdwarf/main.go
misc/cgo/testplugin/test.bash

index b689c4af15f47bfa7f1b5ea10b12872ec7730d68..7886c834e7ca26359c5395916562d638eab8c456 100644 (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)
 }
index 5a87f5e74673d5d6e2961a899c7f73e55a6ebe09..1b94bc4badbcfb1e0c1997176ed9b6dfe25621c4 100755 (executable)
@@ -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