Fwd: libgo/runtime: Fix signal stack size for ia64

Ian Lance Taylor iant@golang.org
Wed Aug 31 14:00:00 GMT 2016


Forgot to send to gofrontend-dev.

Ian


---------- Forwarded message ----------
From: Ian Lance Taylor <iant@google.com>
Date: Wed, Aug 31, 2016 at 6:59 AM
Subject: Re: libgo/runtime: Fix signal stack size for ia64
To: Andreas Schwab <schwab@suse.de>
Cc: gcc-patches <gcc-patches@gcc.gnu.org>


On Wed, Aug 31, 2016 at 1:24 AM, Andreas Schwab <schwab@suse.de> wrote:
> On ia64, MINSIGSTKSZ is 128K.
>
> Andreas.
>
>         * libgo/runtime/runtime.c (runtime_mpreinit): Increase stack size to
>         128K.
> ---
>  libgo/runtime/runtime.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libgo/runtime/runtime.c b/libgo/runtime/runtime.c
> index c7d33bc..e8eb957 100644
> --- a/libgo/runtime/runtime.c
> +++ b/libgo/runtime/runtime.c
> @@ -272,7 +272,7 @@ 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
> +       mp->gsignal = runtime_malg(128*1024, (byte**)&mp->gsignalstack, &mp->gsignalstacksize); // OS X wants >=8K, Linux >=2K, ia64 >=128K
>         mp->gsignal->m = mp;
>  }

Thanks.  There doesn't seem to be a need to increase the stack size on
all architectures, so I applied this patch.  Bootstrapped and ran Go
tests on x86_64-pc-linux-gnu, which I admit means little.  Committed
to mainline.  Let me know if it doesn't fix the problem on ia64 (does
Go really work on ia64?).

Ian
-------------- next part --------------
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 239872)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -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.
Index: libgo/runtime/runtime.c
===================================================================
--- libgo/runtime/runtime.c	(revision 239872)
+++ libgo/runtime/runtime.c	(working copy)
@@ -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;
 }
 


More information about the Gcc-patches mailing list