go/src
Russ Cox 551ada4742 runtime: avoid allocation of internal panic values
If a fault happens in malloc, inevitably the next thing that happens
is a deadlock trying to allocate the panic value that says the fault
happened. Stop doing that, two ways.

First, reject panic in malloc just as we reject panic in garbage collection.

Second, runtime.panicstring was using an error implementation
backed by a Go string, so the interface held an allocated *string.
Since the actual errors are C strings, define a new error
implementation backed by a C char*, which needs no indirection
and therefore no allocation.

This second fix will avoid allocation for errors like nil panic derefs
or division by zero, so it is worth doing even though the first fix
should take care of faults during malloc.

Update #6419

R=golang-dev, dvyukov, dave
CC=golang-dev
https://golang.org/cl/13774043
2013-09-20 15:15:25 -04:00
..
cmd cmd/ld: fix "ld -s" to not discard pclntab. 2013-09-20 10:04:52 -04:00
lib9 all: compiler/bootstrap for dragonfly/amd64 2013-08-24 01:18:04 +10:00
libbio build: more "undefined behavior" fixes 2013-09-10 14:54:55 -04:00
libmach libmach: accept OS X binary generated by external linker 2013-09-10 11:50:34 -07:00
pkg runtime: avoid allocation of internal panic values 2013-09-20 15:15:25 -04:00
Make.dist
all.bash
all.bat
all.rc
clean.bash
clean.bat
clean.rc
make.bash make.bash: exit if dist fails 2013-08-19 11:18:43 +10:00
make.bat cmd/dist: fix windows build. 2013-08-02 14:29:04 -07:00
make.rc
race.bash
race.bat
run.bash cgo: enable cgo on dragonfly 2013-09-04 15:19:21 -07:00
run.bat runtime/race: add end-to-end test on windows 2013-08-15 12:13:00 +10:00
run.rc
sudo.bash