From 8c5976f8b33a4378ea18dd963317bcbd39fc309b Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 3 Dec 2018 16:02:10 -0800 Subject: [PATCH] cmd/cgo: don't pass CGO_CFLAGS -g options to debug info generation Fixes #26144 Change-Id: Ie69dab1bd819eaf158be11769903b2636bbcf516 Reviewed-on: https://go-review.googlesource.com/c/152165 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Emmanuel Odeke Reviewed-by: Nikhil Benesch --- src/cmd/cgo/gcc.go | 8 +++++++- src/cmd/dist/test.go | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index e7766e740f..8cbe6d329c 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -91,7 +91,13 @@ func (p *Package) addToFlag(flag string, args []string) { p.CgoFlags[flag] = append(p.CgoFlags[flag], args...) if flag == "CFLAGS" { // We'll also need these when preprocessing for dwarf information. - p.GccOptions = append(p.GccOptions, args...) + // However, discard any -g options: we need to be able + // to parse the debug info, so stick to what we expect. + for _, arg := range args { + if !strings.HasPrefix(arg, "-g") { + p.GccOptions = append(p.GccOptions, arg) + } + } } } diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index 2d7f7bd2f9..c88a7c05df 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -1038,7 +1038,10 @@ func (t *tester) cgoTest(dt *distTest) error { "linux-386", "linux-amd64", "linux-arm", "linux-ppc64le", "linux-s390x", "netbsd-386", "netbsd-amd64": - t.addCmd(dt, "misc/cgo/test", t.goTest(), "-ldflags", "-linkmode=external") + cmd := t.addCmd(dt, "misc/cgo/test", t.goTest(), "-ldflags", "-linkmode=external") + // A -g argument in CGO_CFLAGS should not affect how the test runs. + cmd.Env = append(os.Environ(), "CGO_CFLAGS=-g0") + t.addCmd(dt, "misc/cgo/testtls", t.goTest(), "-ldflags", "-linkmode=auto") t.addCmd(dt, "misc/cgo/testtls", t.goTest(), "-ldflags", "-linkmode=external") -- 2.50.0