mirror of
https://github.com/golang/go
synced 2024-11-26 15:06:52 -07:00
cmd/cgo: fix a problem with 'go build -compiler gccgo'
Port of https://golang.org/cl/154360045 to Git. Original author is Xia Bin <snyh@snyh.org> (already a contributor). Fixes #8945. Change-Id: I28bcaf3348794202ca59fbc3466bd7b9670030e4 Reviewed-on: https://go-review.googlesource.com/11658 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
840965f8d7
commit
4e61c516f4
16
misc/cgo/test/issue8945.go
Normal file
16
misc/cgo/test/issue8945.go
Normal file
@ -0,0 +1,16 @@
|
||||
// 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.
|
||||
|
||||
// +build gccgo
|
||||
|
||||
package cgotest
|
||||
|
||||
//typedef void (*PFunc)();
|
||||
//PFunc success_cb;
|
||||
import "C"
|
||||
|
||||
//export Test
|
||||
func Test() {
|
||||
_ = C.success_cb
|
||||
}
|
@ -118,11 +118,11 @@ func (p *Package) writeDefs() {
|
||||
}
|
||||
|
||||
if !cVars[n.C] {
|
||||
fmt.Fprintf(fm, "extern char %s[];\n", n.C)
|
||||
fmt.Fprintf(fm, "void *_cgohack_%s = %s;\n\n", n.C, n.C)
|
||||
if *gccgo {
|
||||
fmt.Fprintf(fc, "extern byte *%s;\n", n.C)
|
||||
} else {
|
||||
fmt.Fprintf(fm, "extern char %s[];\n", n.C)
|
||||
fmt.Fprintf(fm, "void *_cgohack_%s = %s;\n\n", n.C, n.C)
|
||||
fmt.Fprintf(fgo2, "//go:linkname __cgo_%s %s\n", n.C, n.C)
|
||||
fmt.Fprintf(fgo2, "//go:cgo_import_static %s\n", n.C)
|
||||
fmt.Fprintf(fgo2, "var __cgo_%s byte\n", n.C)
|
||||
|
Loading…
Reference in New Issue
Block a user