From 389e96ae957157e6bf64e08d43b5e16ae1c56601 Mon Sep 17 00:00:00 2001 From: Derek Parker Date: Wed, 20 Feb 2019 13:26:18 -0800 Subject: [PATCH] pkg/proc: Disable default compression on DWZ test When compression is applied by default running the DWZ tool on the resulting binary will crash. The actual default compression code will look and see if compression makes any difference and if so replace the normal `.debug_*` section with `.zdebug_*`. This is why it may not have been hit before. On one of my workstations I build with 1.12rc1 and no compression happens, but on a Fedora VM I build and the binary results in compressed DWARF sections. Adding this flag will make this test more consistent overall. --- pkg/proc/test/support.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/proc/test/support.go b/pkg/proc/test/support.go index 9e09da861e..107fc69583 100644 --- a/pkg/proc/test/support.go +++ b/pkg/proc/test/support.go @@ -103,7 +103,8 @@ func BuildFixture(name string, flags BuildFlags) Fixture { tmpfile := filepath.Join(os.TempDir(), fmt.Sprintf("%s.%s", name, hex.EncodeToString(r))) buildFlags := []string{"build"} - if ver, _ := goversion.Parse(runtime.Version()); runtime.GOOS == "windows" && ver.Major > 0 && !ver.AfterOrEqual(goversion.GoVersion{1, 9, -1, 0, 0, ""}) { + var ver goversion.GoVersion + if ver, _ = goversion.Parse(runtime.Version()); runtime.GOOS == "windows" && ver.Major > 0 && !ver.AfterOrEqual(goversion.GoVersion{1, 9, -1, 0, 0, ""}) { // Work-around for https://github.com/golang/go/issues/13154 buildFlags = append(buildFlags, "-ldflags=-linkmode internal") } @@ -125,6 +126,11 @@ func BuildFixture(name string, flags BuildFlags) Fixture { if flags&BuildModePIE != 0 { buildFlags = append(buildFlags, "-buildmode=pie") } + if ver.AfterOrEqual(goversion.GoVersion{1, 11, -1, 0, 0, ""}) { + if flags&EnableDWZCompression != 0 { + buildFlags = append(buildFlags, "-ldflags=-compressdwarf=false") + } + } if path != "" { buildFlags = append(buildFlags, name+".go") }