From b276eda4b4e09dc1b8b265a30b41e1493abc3031 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 20 Sep 2016 16:48:19 +0000 Subject: [PATCH] re PR go/77642 (GO Bootstrap fail starting with r239872 splitstack signature does not match) PR go/77642 runtime: pass correct type to __splitstack_find The code was passing uintptr* to a function that expected size_t*. Based on patch by Andreas Krebbel. Fixes GCC PR 77642. Reviewed-on: https://go-review.googlesource.com/29433 From-SVN: r240275 --- gcc/go/gofrontend/MERGE | 2 +- libgo/runtime/proc.c | 20 ++++++++++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 987aef7a6ef..dbe86f67301 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -b34c93bf00ec4f2ad043ec89ff96989e0d1b26aa +80720773ac1a3433b7de59ffa5c04744123247c3 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c index 6ac8857338b..20db789ddb6 100644 --- a/libgo/runtime/proc.c +++ b/libgo/runtime/proc.c @@ -2052,9 +2052,13 @@ doentersyscall() // Leave SP around for GC and traceback. #ifdef USING_SPLIT_STACK - g->gcstack = __splitstack_find(nil, nil, &g->gcstacksize, - &g->gcnextsegment, &g->gcnextsp, - &g->gcinitialsp); + { + size_t gcstacksize; + g->gcstack = __splitstack_find(nil, nil, &gcstacksize, + &g->gcnextsegment, &g->gcnextsp, + &g->gcinitialsp); + g->gcstacksize = (uintptr)gcstacksize; + } #else { void *v; @@ -2099,9 +2103,13 @@ runtime_entersyscallblock(void) // Leave SP around for GC and traceback. #ifdef USING_SPLIT_STACK - g->gcstack = __splitstack_find(nil, nil, &g->gcstacksize, - &g->gcnextsegment, &g->gcnextsp, - &g->gcinitialsp); + { + size_t gcstacksize; + g->gcstack = __splitstack_find(nil, nil, &gcstacksize, + &g->gcnextsegment, &g->gcnextsp, + &g->gcinitialsp); + g->gcstacksize = (uintptr)gcstacksize; + } #else g->gcnextsp = (byte *) &p; #endif -- 2.30.2