gcc/libgo
Ian Lance Taylor 58f7dab40d runtime: copy mstats code from Go 1.7 runtime
This replaces mem.go and the C runtime_ReadMemStats function with the Go
    1.7 mstats.go.
    
    The GCStats code is commented out for now.  The corresponding gccgo code
    is in runtime/mgc0.c.
    
    The variables memstats and worldsema are shared between the Go code and
    the C code, but are not exported.  To make this work, add temporary
    accessor functions acquireWorldsema, releaseWorldsema, getMstats (the
    latter known as mstats in the C code).
    
    Check the preemptoff field of m when allocating and when considering
    whether to start a GC.  This works with the new stopTheWorld and
    startTheWorld functions in Go, which are essentially the Go 1.7
    versions.
    
    Change the compiler to stack allocate closures when compiling the
    runtime package.  Within the runtime packages closures do not escape.
    This is similar to what the gc compiler does, except that the gc
    compiler, when compiling the runtime package, gives an error if escape
    analysis shows that a closure does escape.  I added this here because
    the Go version of ReadMemStats calls systemstack with a closure, and
    having that allocate memory was causing some tests that measure memory
    allocations to fail.
    
    Reviewed-on: https://go-review.googlesource.com/30972

From-SVN: r241124
2016-10-13 15:24:50 +00:00
..
config libgo: Update libtool support to files in current GCC trunk. 2014-11-12 03:51:36 +00:00
go runtime: copy mstats code from Go 1.7 runtime 2016-10-13 15:24:50 +00:00
runtime runtime: copy mstats code from Go 1.7 runtime 2016-10-13 15:24:50 +00:00
testsuite runtime/internal/sys: new package, API copied from Go 1.7 2016-09-11 13:23:27 +00:00
aclocal.m4 libgo: don't provide ustat on arm64 GNU/Linux 2015-09-15 03:43:01 +00:00
config.h.in runtime: copy internal locking code from Go 1.7 runtime 2016-09-30 13:45:08 +00:00
configure configure: redirect -fsplit-stack compilation to dev/null 2016-10-11 13:13:17 +00:00
configure.ac configure: redirect -fsplit-stack compilation to dev/null 2016-10-11 13:13:17 +00:00
godeps.sh libgo: change build procedure to use build tags 2016-08-06 00:36:33 +00:00
LICENSE
Makefile.am compiler, runtime: copy string code from Go 1.7 2016-10-12 18:17:52 +00:00
Makefile.in compiler, runtime: copy string code from Go 1.7 2016-10-12 18:17:52 +00:00
match.sh libgo: don't unset in shell script 2016-08-13 02:52:42 +00:00
MERGE libgo: update to Go 1.7.1 release 2016-09-10 13:14:00 +00:00
merge.sh libgo: update to go1.7rc3 2016-07-22 18:15:38 +00:00
mkrsysinfo.sh runtime: copy internal locking code from Go 1.7 runtime 2016-09-30 13:45:08 +00:00
mksysinfo.sh syscall, internal/syscall/unix: Fix getrandom, clone on sparc64 2016-10-12 14:28:05 +00:00
mvifdiff.sh runtime: introduce mvifdiff.sh script to replace GCC's move-if-change 2014-12-01 01:06:29 +00:00
PATENTS
README libgo/README: Minor updates. 2015-03-13 18:53:13 +00:00
README.gcc
sysinfo.c runtime: copy internal locking code from Go 1.7 runtime 2016-09-30 13:45:08 +00:00
VERSION libgo: update to Go 1.7.1 release 2016-09-10 13:14:00 +00:00

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.