gcc/libgo
Ian Lance Taylor 3619ab8bd4 runtime: fix isSystemGoroutine for gccgo
The gc toolchain decides whether a goroutine is a system goroutine by
    comparing startpc to a list of saved special PCs.  In gccgo that
    approach does not work as startpc is often a thunk that invokes the
    real function with arguments, so the thunk address never matches the
    saved special PCs.
    
    This patch fixes gccgo's understanding of system goroutines.  Since
    there are only a limited number of them, we simply change each one to
    mark itself as special.
    
    This fixes stack dumps and functions like runtime.NumGoroutine to
    behave more like gc.  It also fixes the goprint test in the gc
    testsuite.
    
    Reviewed-on: https://go-review.googlesource.com/43156

From-SVN: r247931
2017-05-11 20:55:41 +00:00
..
config libgo: Update libtool support to files in current GCC trunk. 2014-11-12 03:51:36 +00:00
go runtime: fix isSystemGoroutine for gccgo 2017-05-11 20:55:41 +00:00
runtime Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
testsuite Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
aclocal.m4 libgo: fixes for Solaris build 2016-12-13 18:03:45 +00:00
config.h.in Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
configure Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
configure.ac Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
godeps.sh libgo: change build procedure to use build tags 2016-08-06 00:36:33 +00:00
libgo.imp Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
LICENSE
Makefile.am Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
Makefile.in Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
match.sh Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
MERGE libgo: update to Go 1.8.1 release 2017-04-17 22:10:58 +00:00
merge.sh libgo: update to go1.8rc3 2017-01-27 15:01:57 +00:00
mkrsysinfo.sh Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
mksigtab.sh Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +00:00
mksysinfo.sh Big merge of changes to gofrontend repo that were postponed due to the 2017-05-10 17:26:09 +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, reflect: rewrite Go to FFI type conversion in Go 2016-11-18 00:15:38 +00:00
VERSION libgo: update to Go 1.8.1 release 2017-04-17 22:10:58 +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.