gcc/libgo
Ian Lance Taylor fdbc38a6e8 compiler, runtime: Use function descriptors.
This changes the representation of a Go value of function type
from being a pointer to function code (like a C function
pointer) to being a pointer to a struct.  The first field of
the struct points to the function code.  The remaining fields,
if any, are the addresses of variables referenced in enclosing
functions.  For each call to a function, the address of the
function descriptor is passed as the last argument.

This lets us avoid generating trampolines, and removes the use
of writable/executable sections of the heap.

From-SVN: r200181
2013-06-18 23:49:49 +00:00
..
config re PR bootstrap/39150 (Configure scripts have no 64-Bit Solaris defined (only i386-solaris*).) 2011-07-07 09:24:16 +00:00
go compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
runtime compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
testsuite re PR go/56017 (libgo testsuite does not support cross testing) 2013-02-09 23:02:09 +00:00
LICENSE LICENSE: separate, change PATENTS text. 2010-12-06 22:27:47 +00:00
MERGE libgo: Update Go library to master revision 15502/229081515358. 2013-01-30 01:37:13 +00:00
Makefile.am compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
Makefile.in compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
PATENTS LICENSE: separate, change PATENTS text. 2010-12-06 22:27:47 +00:00
README It's a contributor license agreement, not a copyright LA. 2010-12-03 20:41:15 +00:00
README.gcc libgo/README.gcc: Mention GCCGO_RUN_ALL_TESTS. 2011-03-09 19:17:56 +00:00
aclocal.m4 Add Go frontend, libgo library, and Go testsuite. 2010-12-03 04:34:57 +00:00
config.h.in libgo: Update Go library to master revision 15489/921e53d4863c. 2013-01-29 20:52:43 +00:00
configure compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
configure.ac compiler, runtime: Use function descriptors. 2013-06-18 23:49:49 +00:00
godeps.sh libgo: Generate dependencies automatically. 2011-12-03 00:16:12 +00:00
merge.sh libgo: Update to revision 15193:6fdc1974457c of master library. 2012-12-22 01:15:33 +00:00
mksysinfo.sh re PR go/56171 (syscall FAILs on Solaris) 2013-02-11 19:03:04 +00:00

README

See ../README.

This is the runtime support library for the Go programming language.
This library is intended for use with the Go frontend.

The library has only been tested on GNU/Linux using glibc.  It should
not be difficult to port to other operating systems.

The library has only been tested on x86/x86_64 systems.  It should not
be difficult to port to other architectures.

Directories:

go
  A copy of the Go library from http://golang.org/, with a few
  changes for gccgo.  Notably, the reflection interface is different.

runtime
  Runtime functions, written in C, which are called directly by the
  compiler or by the library.

syscalls
  System call support.

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.