]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: add '_go_' suffix to go files compiled by gccgo to avoid naming conflicts
authorChris Manghane <cmang@golang.org>
Wed, 15 Oct 2014 20:13:37 +0000 (13:13 -0700)
committerChris Manghane <cmang@golang.org>
Wed, 15 Oct 2014 20:13:37 +0000 (13:13 -0700)
Fixes #8828.

LGTM=rsc
R=rsc
CC=golang-codereviews
https://golang.org/cl/154410043

misc/cgo/test/issue8828.go [new file with mode: 0644]
misc/cgo/test/issue8828/issue8828.c [new file with mode: 0644]
misc/cgo/test/issue8828/trivial.go [new file with mode: 0644]
src/cmd/go/build.go

diff --git a/misc/cgo/test/issue8828.go b/misc/cgo/test/issue8828.go
new file mode 100644 (file)
index 0000000..304797c
--- /dev/null
@@ -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 (file)
index 0000000..2950f87
--- /dev/null
@@ -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 (file)
index 0000000..e7b9a4e
--- /dev/null
@@ -0,0 +1,8 @@
+package issue8828
+
+//void foo();
+import "C"
+
+func Bar() {
+       C.foo()
+}
index 9c7b42650a9fd447835048afeb358bab24d01232..49b84709e2db68adfab9a08d53bc79bf80554768 100644 (file)
@@ -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()...)