aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorClément Chigot <chigot.c@gmail.com>2020-03-03 16:24:32 +0100
committerIan Lance Taylor <iant@golang.org>2020-03-04 17:33:06 +0000
commitcec08794ef325e84f141e1a7b4deca0bedaeab34 (patch)
treef3374ded08c1175527bab2ae48bfc7e988ce9583 /misc
parentcd9fd640db419ec81026945eb4f22bfe5ff5a27f (diff)
downloadgo-cec08794ef325e84f141e1a7b4deca0bedaeab34.tar.gz
go-cec08794ef325e84f141e1a7b4deca0bedaeab34.zip
misc/cgo/test: fix sigaltstack test on AIX
Increase the size of the signal stack as the value given by SIGSTKSZ is too small for the Go signal handler. Fixes #37609 Change-Id: I56f1006bc69a2a9fb43f9e0da00061964290a690 Reviewed-on: https://go-review.googlesource.com/c/go/+/221804 Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Diffstat (limited to 'misc')
-rw-r--r--misc/cgo/test/sigaltstack.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/misc/cgo/test/sigaltstack.go b/misc/cgo/test/sigaltstack.go
index 2c9b81ced7a..7b3f4acbb75 100644
--- a/misc/cgo/test/sigaltstack.go
+++ b/misc/cgo/test/sigaltstack.go
@@ -14,15 +14,22 @@ package cgotest
#include <stdlib.h>
#include <string.h>
+#ifdef _AIX
+// On AIX, SIGSTKSZ is too small to handle Go sighandler.
+#define CSIGSTKSZ 0x4000
+#else
+#define CSIGSTKSZ SIGSTKSZ
+#endif
+
static stack_t oss;
-static char signalStack[SIGSTKSZ];
+static char signalStack[CSIGSTKSZ];
static void changeSignalStack(void) {
stack_t ss;
memset(&ss, 0, sizeof ss);
ss.ss_sp = signalStack;
ss.ss_flags = 0;
- ss.ss_size = SIGSTKSZ;
+ ss.ss_size = CSIGSTKSZ;
if (sigaltstack(&ss, &oss) < 0) {
perror("sigaltstack");
abort();