diff --git a/doc/gccgo_install.html b/doc/gccgo_install.html index a01a5468e1..e4e471b76c 100644 --- a/doc/gccgo_install.html +++ b/doc/gccgo_install.html @@ -224,12 +224,9 @@ gccgo -o main main.o mypackage.o # Explicitly links with mypackage.o
Some Go features are not yet implemented in gccgo
. As of
-2009-11-06, the following are not implemented:
+2010-08-23, the following are not implemented:
struct
is the same as C
struct
with the same fields and types.
-The Go string
type is a pointer to a structure.
-The current definition is
-(this is expected to change):
+The Go string
type is currently defined as a two-element
+structure (this is subject to change):
struct __go_string { - size_t __length; - unsigned char __data[]; + const unsigned char *__data; + int __length; };@@ -310,9 +306,10 @@ when the functions have equivalent types.
Go interface
, channel
, and map
-types have no corresponding C type (they roughly correspond to pointers
-to structs in C, but the structs are deliberately undocumented). C
-enum
types correspond to some Go type, but precisely
+types have no corresponding C type (interface
is a
+two-element struct and channel
and map
are
+pointers to structs in C, but the structs are deliberately undocumented). C
+enum
types correspond to some integer type, but precisely
which one is difficult to predict in general; use a cast. C union
types have no corresponding Go type. C struct
types containing
bitfields have no corresponding Go type. C++ class
types have
@@ -359,12 +356,15 @@ i := c_open(&name[0], os.O_RDONLY, 0);
The name of Go functions accessed from C is subject to change. At present
the name of a Go function that does not have a receiver is
-package.Functionname
. To call it from C you must set the
-name using a gcc
extension similar to the gccgo
+prefix.package.Functionname
. The prefix is set by
+the -fgo-prefix
option used when the package is compiled;
+if the option is not used, the default is simply go
.
+To call the function from C you must set the name using
+a gcc
extension similar to the gccgo
extension.
-extern int go_function(int) __asm__ ("mypackage.Function"); +extern int go_function(int) __asm__ ("myprefix.mypackage.Function");