From: Christophe Rhodes Date: Sun, 25 May 2003 22:26:13 +0000 (+0000) Subject: 0.8.0.1: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=3e067c214b51d4800ef1f1e56860d3711900f64d;p=sbcl.git 0.8.0.1: Fix build on FreeBSD ... don't #include , which defines a struct thread; (thanks to Henrik Motakef) ... do sigaltstack() if #+c-stack-is-control-stack (which is, in practice, all the time). (this /may/ break building on OpenBSD, which uses the same OS-dependent routines; it is possible that OpenBSD needs something from ; if so, we need to find some compromise) --- diff --git a/src/runtime/bsd-os.c b/src/runtime/bsd-os.c index 3e3cfb6..64aba2c 100644 --- a/src/runtime/bsd-os.c +++ b/src/runtime/bsd-os.c @@ -34,7 +34,6 @@ #include #include /* #include */ -#include #include "validate.h" vm_size_t os_vm_page_size; @@ -263,6 +262,16 @@ struct thread *arch_os_get_current_thread() { return all_threads; } int arch_os_thread_init(struct thread *thread) { + stack_t sigstack; +#ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK + /* Signal handlers are run on the control stack, so if it is exhausted + * we had better use an alternate stack for whatever signal tells us + * we've exhausted it */ + sigstack.ss_sp=((void *) thread)+dynamic_values_bytes; + sigstack.ss_flags=0; + sigstack.ss_size = 32*SIGSTKSZ; + sigaltstack(&sigstack,0); +#endif return 1; /* success */ } int arch_os_thread_cleanup(struct thread *thread) { diff --git a/version.lisp-expr b/version.lisp-expr index 2e4dc1d..4d50ca0 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.0" +"0.8.0.1"