diff options
author | Chris Manghane <cmang@golang.org> | 2014-10-15 13:13:37 -0700 |
---|---|---|
committer | Chris Manghane <cmang@golang.org> | 2014-10-15 13:13:37 -0700 |
commit | 25c63c2c30f4807b073f849d248144d97893ce70 (patch) | |
tree | 8cdb0ce7c1166fffefbf1c1f144fc68455dade7c | |
parent | 4d314181e21d951a420d1f2740ff3e863435d1f5 (diff) | |
download | go-25c63c2c30f4807b073f849d248144d97893ce70.tar.gz |
cmd/go: add '_go_' suffix to go files compiled by gccgo to avoid naming conflicts
Fixes issue 8828.
LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/154410043
-rw-r--r-- | misc/cgo/test/issue8828.go | 16 | ||||
-rw-r--r-- | misc/cgo/test/issue8828/issue8828.c | 7 | ||||
-rw-r--r-- | misc/cgo/test/issue8828/trivial.go | 8 | ||||
-rw-r--r-- | src/cmd/go/build.go | 2 |
4 files changed, 32 insertions, 1 deletions
diff --git a/misc/cgo/test/issue8828.go b/misc/cgo/test/issue8828.go new file mode 100644 index 000000000..304797c92 --- /dev/null +++ b/misc/cgo/test/issue8828.go @@ -0,0 +1,16 @@ +// compile + +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Issue 8828: compiling a file with -compiler=gccgo fails if a .c file +// has the same name as compiled directory. + +package cgotest + +import "./issue8828" + +func p() { + issue8828.Bar() +} diff --git a/misc/cgo/test/issue8828/issue8828.c b/misc/cgo/test/issue8828/issue8828.c new file mode 100644 index 000000000..2950f87cf --- /dev/null +++ b/misc/cgo/test/issue8828/issue8828.c @@ -0,0 +1,7 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +void foo() +{ +} diff --git a/misc/cgo/test/issue8828/trivial.go b/misc/cgo/test/issue8828/trivial.go new file mode 100644 index 000000000..e7b9a4e57 --- /dev/null +++ b/misc/cgo/test/issue8828/trivial.go @@ -0,0 +1,8 @@ +package issue8828 + +//void foo(); +import "C" + +func Bar() { + C.foo() +} diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index 9c7b42650..49b84709e 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -1852,7 +1852,7 @@ func (gccgoToolchain) linker() string { } func (gccgoToolchain) gc(b *builder, p *Package, archive, obj string, importArgs []string, gofiles []string) (ofile string, output []byte, err error) { - out := p.Name + ".o" + out := "_go_.o" ofile = obj + out gcargs := []string{"-g"} gcargs = append(gcargs, b.gccArchArgs()...) |