From: Russ Cox Date: Fri, 1 Feb 2013 16:33:52 +0000 (-0800) Subject: cmd/cgo: document //export preamble restriction X-Git-Tag: go1.1rc2~1201 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ed9fc7531d80d0894d52c96a4a79968842df945b;p=gostls13.git cmd/cgo: document //export preamble restriction Fixes #3497. R=golang-dev, iant CC=golang-dev https://golang.org/cl/7235075 --- diff --git a/src/cmd/cgo/doc.go b/src/cmd/cgo/doc.go index 6f3343de54..2618832101 100644 --- a/src/cmd/cgo/doc.go +++ b/src/cmd/cgo/doc.go @@ -116,6 +116,11 @@ copied from the cgo input files. Functions with multiple return values are mapped to functions returning a struct. Not all Go types can be mapped to C types in a useful way. +Using //export in a file places a restriction on the preamble: +since it is copied into two different C output files, it must not +contain any definitions, only declarations. Definitions must be +placed in preambles in other files, or in C source files. + Cgo transforms the input file into four output files: two Go source files, a C file for 6c (or 8c or 5c), and a C file for gcc.