mirror of git://gcc.gnu.org/git/gcc.git
Use the new -fgo-c-header option to build a header file for the Go
runtime code in libgo/go/runtime, and use the new header file in the C
runtime code in libgo/runtime. This will ensure that the Go code and C
code share the same data structures as we convert the runtime from C to
Go.
The new file libgo/go/runtime/runtime2.go is copied from the Go 1.7
release, and then edited to remove unnecessary data structures and
modify others for use with libgo.
The new file libgo/go/runtime/mcache.go is an initial version of the
same files in the Go 1.7 release, and will be replaced by the Go 1.7
file when we convert to the new memory allocator.
The new file libgo/go/runtime/type.go describes the gccgo version of the
reflection data structures, and replaces the Go 1.7 runtime file which
describes the gc version of those structures.
Using the new header file means changing a number of struct fields to
use Go naming conventions (that is, no underscores) and to rename
constants to have a leading underscore so that they are not exported
from the Go package. These names were updated in the C code.
The C code was also changed to drop the thread-local variable m, as was
done some time ago in the gc sources. Now the m field is always
accessed using g->m, where g is the single remaining thread-local
variable. This in turn required some adjustments to set g->m correctly
in all cases.
Also pass the new -fgo-compiling-runtime option when compiling the
runtime package, although that option doesn't do anything yet.
Reviewed-on: https://go-review.googlesource.com/28051
From-SVN: r239872
|
||
|---|---|---|
| .. | ||
| config | ||
| go | ||
| runtime | ||
| testsuite | ||
| LICENSE | ||
| MERGE | ||
| Makefile.am | ||
| Makefile.in | ||
| PATENTS | ||
| README | ||
| README.gcc | ||
| VERSION | ||
| aclocal.m4 | ||
| config.h.in | ||
| configure | ||
| configure.ac | ||
| godeps.sh | ||
| match.sh | ||
| merge.sh | ||
| mksysinfo.sh | ||
| mvifdiff.sh | ||
README
See ../README. This is the runtime support library for the Go programming language. This library is intended for use with the Go frontend. This library should not be stripped when it is installed. Go code relies on being able to look up file/line information, which comes from the debugging info using the libbacktrace library. The library has only been tested on GNU/Linux using glibc, and on Solaris. It should not be difficult to port to other operating systems. Directories: go A copy of the Go library from http://golang.org/, with several changes for gccgo. runtime Runtime functions, written in C, which are called directly by the compiler or by the library. Contributing ============ To contribute patches to the files in this directory, please see http://golang.org/doc/gccgo_contribute.html . The master copy of these files is hosted at http://code.google.com/p/gofrontend . Changes to these files require signing a Google contributor license agreement. If you are the copyright holder, you will need to agree to the individual contributor license agreement at http://code.google.com/legal/individual-cla-v1.0.html. This agreement can be completed online. If your organization is the copyright holder, the organization will need to agree to the corporate contributor license agreement at http://code.google.com/legal/corporate-cla-v1.0.html. If the copyright holder for your code has already completed the agreement in connection with another Google open source project, it does not need to be completed again.