Index: MultiSource/Applications/siod/slib.c =================================================================== --- MultiSource/Applications/siod/slib.c +++ MultiSource/Applications/siod/slib.c @@ -129,7 +129,7 @@ struct user_type_hooks *user_types = NULL; long user_tc_next = tc_user_min; struct gc_protected *protected_registers = NULL; -jmp_buf save_regs_gc_mark; +ucontext_t ucontext; double gc_rt; long gc_cells_collected; char *user_ch_readm = ""; @@ -1266,9 +1266,9 @@ {heap->type = tc_free_cell; heap->gc_mark = 0; ++heap;} - setjmp(save_regs_gc_mark); - mark_locations((LISP *) save_regs_gc_mark, - (LISP *) (((char *) save_regs_gc_mark) + sizeof(save_regs_gc_mark))); + getcontext(&ucontext); + mark_locations((LISP *) &ucontext.uc_mcontext, + (LISP *) (((char *) &ucontext.uc_mcontext) + sizeof(mcontext_t))); mark_protected_registers(); mark_locations((LISP *) stack_start_ptr, (LISP *) &stack_end);