]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: fix windows/386 build
authorRuss Cox <rsc@golang.org>
Fri, 7 Mar 2014 19:19:05 +0000 (14:19 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 7 Mar 2014 19:19:05 +0000 (14:19 -0500)
From the trace it appears that stackalloc is being
called with 0x1800 which is 6k = 4k + (StackSystem=2k).
Make StackSystem 4k too, to make stackalloc happy.
It's already 4k on windows/amd64.

TBR=khr
CC=golang-codereviews
https://golang.org/cl/72600043

src/pkg/runtime/stack.h

index df965e158763322061d95071a67a1cfc8e69402c..f2e4e43198da7df63d022352cfc9bdcd30d6456e 100644 (file)
@@ -57,13 +57,15 @@ enum {
        // to each stack below the usual guard area for OS-specific
        // purposes like signal handling. Used on Windows and on
        // Plan 9 because they do not use a separate stack.
+       // The new stack code requires stacks to be a power of two,
+       // and the default start size is 4k, so make StackSystem also 4k
+       // to keep the sum a power of two. StackSystem used to be
+       // 512*sizeof(uintptr) on Windows and 512 bytes on Plan 9.
 #ifdef GOOS_windows
-       StackSystem = 512 * sizeof(uintptr),
+       StackSystem = 4096,
 #else
 #ifdef GOOS_plan9
-       // The size of the note handler frame varies among architectures,
-       // but 512 bytes should be enough for every implementation.
-       StackSystem = 512,
+       StackSystem = 4096,
 #else
        StackSystem = 0,
 #endif // Plan 9