From d6fa581a4c487cd55ca62b853a36842e2fd381a3 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 3 Jul 2015 12:41:37 -0600 Subject: [PATCH] increase signal-handling stack size On 64-bit Linux platforms other than x86_64 (e.g., AArch64), SIGSTKSZ isn't big enough. Use a stack 10 times as large. --- racket/src/racket/gc2/sighand.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/racket/src/racket/gc2/sighand.c b/racket/src/racket/gc2/sighand.c index 6c46acda45..9f5ac3cbcf 100644 --- a/racket/src/racket/gc2/sighand.c +++ b/racket/src/racket/gc2/sighand.c @@ -219,9 +219,10 @@ static void initialize_signal_handler(GCTYPE *gc) # ifdef NEED_SIGSTACK { stack_t ss; + uintptr_t sz = 10*SIGSTKSZ; - ss.ss_sp = malloc(SIGSTKSZ); - ss.ss_size = SIGSTKSZ; + ss.ss_sp = malloc(sz); + ss.ss_size = sz; ss.ss_flags = 0; sigaltstack(&ss, NULL);