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
This commit is contained in:
Ian Lance Taylor 2016-09-20 16:48:19 +00:00
parent c79222478d
commit b276eda4b4
2 changed files with 15 additions and 7 deletions

View File

@ -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.

View File

@ -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