Patchwork Recent Go patch broke Alpha bootstrap

login
register
mail settings
Submitter Uros Bizjak
Date Nov. 7, 2013, 10:25 p.m.
Message ID <CAFULd4bOF+khsusED1tU8-tbH56CiRFhB7WKr7=mzo-eCfFmPQ@mail.gmail.com>
Download mbox | patch
Permalink /patch/289485/
State New
Headers show

Comments

Uros Bizjak - Nov. 7, 2013, 10:25 p.m.
Hello!

Recent Go mega-patch broke Alpha bootstrap. Following fixlet is needed:

--cut here--
                newg->gcinitial_sp = *ret_stack;
                newg->gcstack_size = stacksize;
--cut here--

However, all runtime tests panic with:

gmake[2]: *** [os/check] Error 1
runtime: address space conflict: map(0xc000001000) = 0xc000002000
fatal error: runtime: address space conflict

runtime stack:
runtime_dopanic
        ../../../gcc-svn/trunk/libgo/runtime/panic.c:81
runtime_throw
        ../../../gcc-svn/trunk/libgo/runtime/panic.c:115
runtime_SysMap
        ../../../gcc-svn/trunk/libgo/runtime/mem.c:185
runtime_MHeap_MapSpans
        ../../../gcc-svn/trunk/libgo/runtime/mheap.c:81
runtime_MHeap_SysAlloc
        ../../../gcc-svn/trunk/libgo/runtime/malloc.goc:524
MHeap_Grow
        ../../../gcc-svn/trunk/libgo/runtime/mheap.c:241
MHeap_AllocLocked
        ../../../gcc-svn/trunk/libgo/runtime/mheap.c:126
runtime_MHeap_Alloc
        ../../../gcc-svn/trunk/libgo/runtime/mheap.c:95
runtime_mallocgc
        ../../../gcc-svn/trunk/libgo/runtime/malloc.goc:124
runtime_malg
        ../../../gcc-svn/trunk/libgo/runtime/proc.c:2101
__go_go
        ../../../gcc-svn/trunk/libgo/runtime/proc.c:2164
main
        ../../../gcc-svn/trunk/libgo/runtime/go-main.c:42

        :0

        :0

        :0

The fixed place is mentioned in the trace, so I guess there is
additional issue to fix.

Uros.

Patch

Index: runtime/proc.c
===================================================================
--- runtime/proc.c      (revision 204522)
+++ runtime/proc.c      (working copy)
@@ -2098,7 +2098,7 @@ 
                __splitstack_block_signals_context(&newg->stack_context[0],
                                                   &dont_block_signals, nil);
 #else
-               *ret_stack = runtime_mallocgc(stacksize,
FlagNoProfiling|FlagNoGC, 0, 0);
+               *ret_stack = runtime_mallocgc(stacksize, 0,
FlagNoProfiling|FlagNoGC);
                *ret_stacksize = stacksize;