From eb558632924e73935c87ddb6d65fc54bb112d3a3 Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Thu, 3 Nov 2011 11:50:23 -0700 Subject: [PATCH] vm: restore sigaltstack setup on unix #ifdef __OpenBSD__ is different from #ifndef __OpenBSD --- vm/os-unix.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/vm/os-unix.cpp b/vm/os-unix.cpp index 41b3b13c1a..30924c6bfe 100755 --- a/vm/os-unix.cpp +++ b/vm/os-unix.cpp @@ -257,6 +257,16 @@ static void init_sigaction_with_handler(struct sigaction *act, void factor_vm::unix_init_signals() { + signal_callstack_seg = new segment(callstack_size,false); + + stack_t signal_callstack; + signal_callstack.ss_sp = (char *)signal_callstack_seg->start; + signal_callstack.ss_size = signal_callstack_seg->size; + signal_callstack.ss_flags = 0; + + if(sigaltstack(&signal_callstack,(stack_t *)NULL) < 0) + fatal_error("sigaltstack() failed",0); + struct sigaction memory_sigaction; struct sigaction synchronous_sigaction; struct sigaction enqueue_sigaction;