aboutsummaryrefslogtreecommitdiff
path: root/libgo/go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2023-07-20 11:21:13 -0700
committerIan Lance Taylor <iant@golang.org>2023-07-20 12:29:11 -0700
commit4e9ed68ee7ef2c80dcfd038c54e937646cc0ece2 (patch)
tree13f70efcee22822bd2e62e4594f088a833421917 /libgo/go
parentb50a851eef4b70aabf28fa875d9b2a302d17b66a (diff)
downloadgcc-4e9ed68ee7ef2c80dcfd038c54e937646cc0ece2.zip
gcc-4e9ed68ee7ef2c80dcfd038c54e937646cc0ece2.tar.gz
gcc-4e9ed68ee7ef2c80dcfd038c54e937646cc0ece2.tar.bz2
cmd/go: don't collect package CGOLDFLAGS when using gccgo
They are already collected via cmd/cgo. The gccgo_link_c test is tweaked to do real linking as with this change the cgo ldflags are not fully reflected in go build -n output, since they now only come from the built archive. This is a backport of https://go.dev/cl/497117 from the main repo. For golang/go#60287 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/511675
Diffstat (limited to 'libgo/go')
-rw-r--r--libgo/go/cmd/go/internal/work/gccgo.go10
-rw-r--r--libgo/go/cmd/go/testdata/script/gccgo_link_c.txt3
2 files changed, 2 insertions, 11 deletions
diff --git a/libgo/go/cmd/go/internal/work/gccgo.go b/libgo/go/cmd/go/internal/work/gccgo.go
index 1e82500..c1026c7 100644
--- a/libgo/go/cmd/go/internal/work/gccgo.go
+++ b/libgo/go/cmd/go/internal/work/gccgo.go
@@ -413,16 +413,9 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string
}
for _, a := range allactions {
- // Gather CgoLDFLAGS, but not from standard packages.
- // The go tool can dig up runtime/cgo from GOROOT and
- // think that it should use its CgoLDFLAGS, but gccgo
- // doesn't use runtime/cgo.
if a.Package == nil {
continue
}
- if !a.Package.Standard {
- cgoldflags = append(cgoldflags, a.Package.CgoLDFLAGS...)
- }
if len(a.Package.CgoFiles) > 0 {
usesCgo = true
}
@@ -452,9 +445,6 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string
ldflags = append(ldflags, cgoldflags...)
ldflags = append(ldflags, envList("CGO_LDFLAGS", "")...)
- if root.Package != nil {
- ldflags = append(ldflags, root.Package.CgoLDFLAGS...)
- }
if cfg.Goos != "aix" {
ldflags = str.StringList("-Wl,-(", ldflags, "-Wl,-)")
}
diff --git a/libgo/go/cmd/go/testdata/script/gccgo_link_c.txt b/libgo/go/cmd/go/testdata/script/gccgo_link_c.txt
index db2a291..8d67ae2 100644
--- a/libgo/go/cmd/go/testdata/script/gccgo_link_c.txt
+++ b/libgo/go/cmd/go/testdata/script/gccgo_link_c.txt
@@ -4,8 +4,9 @@
[!cgo] skip
[!exec:gccgo] skip
-go build -n -compiler gccgo cgoref
+! go build -x -compiler gccgo cgoref
stderr 'gccgo.*\-L [^ ]*alibpath \-lalib' # make sure that Go-inline "#cgo LDFLAGS:" ("-L alibpath -lalib") passed to gccgo linking stage
+! stderr 'gccgo.*-lalib.*-lalib' # make sure -lalib is only passed once
-- cgoref/cgoref.go --
package main