Comment 0 for bug 309068

Revision history for this message
Nikodemus Siivola (nikodemus) wrote :

  On those architectures where :C-STACK-IS-CONTROL-STACK is in
  *FEATURES*, we handle SIG_MEMORY_FAULT (SEGV or BUS) on an altstack,
  so we cannot handle the signal directly (as in interrupt_handle_now())
  in the case when the signal comes from some external agent (the user
  using kill(1), or a fault in some foreign code, for instance). As
  of sbcl-0.8.20.20, this is fixed by calling
  arrange_return_to_lisp_function() to a new error-signalling
  function, but as a result the error reporting is poor: we cannot
  even tell the user at which address the fault occurred. We should
  arrange such that arguments can be passed to the function called from
  arrange_return_to_lisp_function(), but this looked hard to do in
  general without suffering from memory leaks.