From: Ian Lance Taylor Date: Wed, 31 Aug 2016 13:59:03 +0000 (+0000) Subject: runtime: make gsignal stack at least SIGSTKSZ bytes X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fc4eaccf101f7dab11074ef9af9b2ca71ea3e6b0;p=gcc.git runtime: make gsignal stack at least SIGSTKSZ bytes The default stack size for the gsignal goroutine, 32K, is not enough on ia64. Make sure that the stack size is at least SIGSTKSZ. Reviewed-on: https://go-review.googlesource.com/28224 From-SVN: r239894 --- diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 633dfcfdd8a..71a9f5bcd5e 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -394486a1cec9bbb81216311ed153179d9fe1c2c5 +c8cf90f2daf62428ca6aa0b5674572cd99f25fe3 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/runtime.c b/libgo/runtime/runtime.c index c7d33bcef4c..9abd096555d 100644 --- a/libgo/runtime/runtime.c +++ b/libgo/runtime/runtime.c @@ -272,7 +272,14 @@ runtime_tickspersecond(void) void runtime_mpreinit(M *mp) { - mp->gsignal = runtime_malg(32*1024, (byte**)&mp->gsignalstack, &mp->gsignalstacksize); // OS X wants >=8K, Linux >=2K + int32 stacksize = 32 * 1024; // OS X wants >=8K, Linux >=2K + +#ifdef SIGSTKSZ + if(stacksize < SIGSTKSZ) + stacksize = SIGSTKSZ; +#endif + + mp->gsignal = runtime_malg(stacksize, (byte**)&mp->gsignalstack, &mp->gsignalstacksize); mp->gsignal->m = mp; }