From: Ian Lance Taylor
+The GCC 6 releases include a complete implementation of the Go 1.6.1 +user libraries. The Go 1.6 runtime is not fully merged, but that +should not be visible to Go programs. +
+ ++The GCC 7 releases are expected to include a complete implementation +of the Go 1.8 user libraries. As with earlier releases, the Go 1.8 +runtime is not fully merged, but that should not be visible to Go +programs. +
+@@ -160,23 +173,6 @@ make make install -
-Current versions of Ubuntu and versions of GCC before 4.8 disagree on -where system libraries and header files are found. This is not a -gccgo issue. When building older versions of GCC, setting these -environment variables while configuring and building gccgo may fix the -problem. -
- --LIBRARY_PATH=/usr/lib/x86_64-linux-gnu -C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu -CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu -export LIBRARY_PATH C_INCLUDE_PATH CPLUS_INCLUDE_PATH --
@@ -364,12 +360,15 @@ or with C++ code compiled using extern "C".
-Basic types map directly: an int in Go is an int
-in C, an int32 is an int32_t,
-etc. Go byte is equivalent to C unsigned
-char.
-Pointers in Go are pointers in C. A Go struct is the same as C
-struct with the same fields and types.
+Basic types map directly: an int32 in Go is
+an int32_t in C, an int64 is
+an int64_t, etc.
+The Go type int is an integer that is the same size as a
+pointer, and as such corresponds to the C type intptr_t.
+Go byte is equivalent to C unsigned char.
+Pointers in Go are pointers in C.
+A Go struct is the same as C struct with the
+same fields and types.
@@ -380,7 +379,7 @@ structure (this is subject to change):
struct __go_string {
const unsigned char *__data;
- int __length;
+ intptr_t __length;
};
@@ -400,8 +399,8 @@ A slice in Go is a structure. The current definition is
struct __go_slice {
void *__values;
- int __count;
- int __capacity;
+ intptr_t __count;
+ intptr_t __capacity;
};
@@ -526,15 +525,3 @@ This procedure is full of unstated caveats and restrictions and we make no
guarantee that it will not change in the future. It is more useful as a
starting point for real Go code than as a regular procedure.
-
-
-The gccgo compiler has been ported to
-RTEMS. RTEMS is a real-time executive
-that provides a high performance environment for embedded applications
-on a range of processors and embedded hardware. The current gccgo
-port is for x86. The goal is to extend the port to most of the
-
-architectures supported by RTEMS. For more information on the port,
-as well as instructions on how to install it, please see this
-RTEMS Wiki page.