Add control-stack checking for Sparc. Based on work from SBCL.
* lisp/sunos-os.h (PROTECTION_VIOLATION_SIGNAL): Define it for stack-checking. * lisp/solaris-os.c (segv_handler): Add stack-checking support for Solaris. * lisp/os.h (os_control_stack_overflow): Give a type name to the zone enums (mostly for the debugger). * lisp/os-common.c (guard_zones): Add stack-checking support for Solaris. (os_control_stack_overflow): Add stack-checking support for Solaris. * lisp/interrupt.c (build_fake_control_stack_frame): New function for building a stack frame without the foreign call stuff. Used for stack checking. (interrupt_install_low_level_handler): Only need to install alternate signal stack for x86. * lispinit.lisp: (scrub-control-stack): Rename to %scrub-control-stack to match x86 version so control stack guard is done. * parms.lisp (static-symbols): Added new static symbols for control stack checking.
Showing
- code/lispinit.lisp 2 additions, 3 deletionscode/lispinit.lisp
- compiler/sparc/parms.lisp 7 additions, 2 deletionscompiler/sparc/parms.lisp
- lisp/interrupt.c 52 additions, 3 deletionslisp/interrupt.c
- lisp/os-common.c 35 additions, 6 deletionslisp/os-common.c
- lisp/os.h 2 additions, 2 deletionslisp/os.h
- lisp/solaris-os.c 8 additions, 3 deletionslisp/solaris-os.c
- lisp/sunos-os.h 3 additions, 1 deletionlisp/sunos-os.h
Please register or sign in to comment