aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2016-08-31 13:59:03 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2016-08-31 13:59:03 +0000
commitfc4eaccf101f7dab11074ef9af9b2ca71ea3e6b0 (patch)
treeca5652656a78eacecf4964497dbf32fbd729937d
parent96f14006f55ac11e82e33913f765101c28b00d27 (diff)
downloadgcc-fc4eaccf101f7dab11074ef9af9b2ca71ea3e6b0.zip
gcc-fc4eaccf101f7dab11074ef9af9b2ca71ea3e6b0.tar.gz
gcc-fc4eaccf101f7dab11074ef9af9b2ca71ea3e6b0.tar.bz2
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
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--libgo/runtime/runtime.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 633dfcf..71a9f5b 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 c7d33bc..9abd096 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;
}