gcc/libgo
Ian Lance Taylor 2b193803d7 runtime: If no split stacks, allocate stacks using mmap on 64-bit systems.
When not using split stacks, libgo allocate large stacks for each
    goroutine.  On a 64-bit system, libgo allocates a maximum of 128G for
    the Go heap, and allocates 4M for each stack.  When the stacks are
    allocated from the Go heap, the result is that a program can only create
    32K goroutines, which is not enough for an active Go server.  This patch
    changes libgo to allocate the stacks using mmap directly, rather than
    allocating them out of the Go heap.  This change is only done for 64-bit
    systems when not using split stacks.  When using split stacks, the
    stacks are allocated using mmap directly anyhow.  On a 32-bit system,
    there is no maximum size for the Go heap, or, rather, the maximum size
    is the available address space anyhow.
    
    Reviewed-on: https://go-review.googlesource.com/16531

From-SVN: r229636
2015-10-31 23:48:19 +00:00
..
config libgo: Update libtool support to files in current GCC trunk. 2014-11-12 03:51:36 +00:00
go libgo: Update from Go 1.5 to Go 1.5.1. 2015-10-31 15:23:52 +00:00
runtime runtime: If no split stacks, allocate stacks using mmap on 64-bit systems. 2015-10-31 23:48:19 +00:00
testsuite runtime: Remove now unnecessary pad field from ParFor. 2015-10-31 00:59:47 +00:00
aclocal.m4 libgo: don't provide ustat on arm64 GNU/Linux 2015-09-15 03:43:01 +00:00
config.h.in libgo: Use __USING_SJLJ_EXCEPTIONS__ rather than configure test. 2015-05-16 00:17:46 +00:00
configure libgo: If compiler can split-stack and linker can not, use -fno-split-stack. 2015-09-15 21:15:37 +00:00
configure.ac libgo: If compiler can split-stack and linker can not, use -fno-split-stack. 2015-09-15 21:15:37 +00:00
godeps.sh
LICENSE
Makefile.am runtime: Remove now unnecessary pad field from ParFor. 2015-10-31 00:59:47 +00:00
Makefile.in runtime: Remove now unnecessary pad field from ParFor. 2015-10-31 00:59:47 +00:00
MERGE libgo: Update from Go 1.5 to Go 1.5.1. 2015-10-31 15:23:52 +00:00
merge.sh runtime: Remove now unnecessary pad field from ParFor. 2015-10-31 00:59:47 +00:00
mksysinfo.sh runtime: Remove now unnecessary pad field from ParFor. 2015-10-31 00:59:47 +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
VERSION libgo: Update from Go 1.5 to Go 1.5.1. 2015-10-31 15:23:52 +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.