From: Anthony Martin Date: Thu, 13 Mar 2014 02:42:58 +0000 (-0700) Subject: runtime: call symtabinit earlier X-Git-Tag: go1.3beta1~374 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=64e041652aa2c431ff2aec6745dfecf32abac66a;p=gostls13.git runtime: call symtabinit earlier Otherwise, we won't get a stack trace in some of the early init. Here's one example: http://build.golang.org/log/a96d10f6aee1fa3e3ae51f41da46d414a7ab02de After walking the stack by hand in acid, I was able to determine that the stackalloc inside mpreinit was causing the throw. LGTM=rsc R=rsc, dvyukov CC=golang-codereviews https://golang.org/cl/72450044 --- diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c index eb7dfe4f84..d3ad740136 100644 --- a/src/pkg/runtime/proc.c +++ b/src/pkg/runtime/proc.c @@ -146,6 +146,7 @@ runtime·schedinit(void) runtime·sched.maxmcount = 10000; runtime·precisestack = true; // haveexperiment("precisestack"); + runtime·symtabinit(); runtime·mallocinit(); mcommoninit(m); @@ -159,9 +160,6 @@ runtime·schedinit(void) runtime·goenvs(); runtime·parsedebugvars(); - // Allocate internal symbol table representation now, we need it for GC anyway. - runtime·symtabinit(); - runtime·sched.lastpoll = runtime·nanotime(); procs = 1; p = runtime·getenv("GOMAXPROCS");