X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fruntime%2Fbsd-os.c;h=eb07274f8ecb3a174232c888d3c9a5356a0e0d99;hb=5563d2712045491695f68c018dbdd1233faca4e5;hp=5d09d9d9f2a8b522c157c3b76453aeaab9f06ccc;hpb=1f23c9f7828d8aebeda92c8c1126114e10461ffa;p=sbcl.git diff --git a/src/runtime/bsd-os.c b/src/runtime/bsd-os.c index 5d09d9d..eb07274 100644 --- a/src/runtime/bsd-os.c +++ b/src/runtime/bsd-os.c @@ -32,6 +32,9 @@ #include "interr.h" #include "lispregs.h" #include "thread.h" +#include "runtime.h" +#include "genesis/static-symbols.h" +#include "genesis/fdefn.h" #include #include @@ -189,7 +192,7 @@ memory_fault_handler(int signal, siginfo_t *siginfo, void *void_context) if (!gencgc_handle_wp_violation(fault_addr)) if(!handle_guard_page_triggered(context,fault_addr)) #ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK - arrange_return_to_lisp_function(context, SymbolFunction(MEMORY_FAULT_HANDLER)); + arrange_return_to_lisp_function(context, SymbolFunction(MEMORY_FAULT_ERROR)); #else interrupt_handle_now(signal, siginfo, context); #endif @@ -217,7 +220,7 @@ sigsegv_handler(int signal, siginfo_t *info, void* void_context) if(!handle_guard_page_triggered(context,addr)) interrupt_handle_now(signal, info, context); /* Work around G5 bug; fix courtesy gbyers */ - sigreturn(void_context); + DARWIN_FIX_CONTEXT(context); } void