diff --git a/lisp/Config.x86_darwin b/lisp/Config.x86_darwin index 6d6b91651ddfd8dc3fbb6e5dc38eb03977d3d436..bc8e6f362fc01010ee1be771c5d99ff3e15b8ecb 100644 --- a/lisp/Config.x86_darwin +++ b/lisp/Config.x86_darwin @@ -27,6 +27,10 @@ ifdef FEATURE_SSE2 RUNTIME += -DFEATURE_SSE2 endif +# Compile code that will run on OSX 10.4 (Tiger) +MIN_VER = -mmacosx-version-min=10.4 +RUNTIME += $(MIN_VER) + CPPFLAGS = -Di386 -DDARWIN $(RUNTIME) CFLAGS = -Wstrict-prototypes -Wall -g3 $(CPPFLAGS) $(INCLUDES) ASFLAGS = -g3 $(INCLUDES) $(RUNTIME) @@ -35,7 +39,7 @@ UNDEFSYMPATTERN = -Xlinker -u -Xlinker & ASSEM_SRC = x86-assem.S ARCH_SRC = x86-arch.c OS_SRC = Darwin-os.c os-common.c e_rem_pio2.c k_rem_pio2.c -# OS_LINK_FLAGS = -dynamic -export-dynamic +OS_LINK_FLAGS = $(MIN_VER) OS_LIBS = # This has aliasing problems, so turn off aliasing. diff --git a/lisp/Darwin-os.c b/lisp/Darwin-os.c index 737b4bde99dbe9ce043e28ddcc7a11e05d26f5b0..e6111c32ad24f550e068465010fc8338b18d370a 100644 --- a/lisp/Darwin-os.c +++ b/lisp/Darwin-os.c @@ -14,7 +14,7 @@ * Frobbed for OpenBSD by Pierre R. Mai, 2001. * Frobbed for Darwin by Pierre R. Mai, 2003. * - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Darwin-os.c,v 1.23 2008/12/10 02:39:13 rtoy Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/Darwin-os.c,v 1.24 2008/12/29 14:40:34 rtoy Exp $ * */ @@ -200,6 +200,33 @@ sc_reg(os_context_t * context, int offset) unsigned long * os_sigcontext_reg(ucontext_t *scp, int index) { +#if __DARWIN_UNIX03 + /* Nothing needed for 10.5 */ +#else + /* This is for 10.4 */ +#define __ss ss +#define __eax eax +#define __ecx ecx +#define __edx edx +#define __ebx ebx +#define __esp esp +#define __ebp ebp +#define __esi esi +#define __edi edi +#define __eip eip +#define __fs fs +#define __fpu_stmm0 fpu_stmm0 +#define __fpu_stmm1 fpu_stmm1 +#define __fpu_stmm2 fpu_stmm2 +#define __fpu_stmm3 fpu_stmm3 +#define __fpu_stmm4 fpu_stmm4 +#define __fpu_stmm5 fpu_stmm5 +#define __fpu_stmm6 fpu_stmm6 +#define __fpu_stmm7 fpu_stmm7 +#define __fpu_fcw fpu_fcw +#define __fpu_fsw fpu_fsw +#define __fpu_mxcsr fpu_mxcsr +#endif switch (index) { case 0: return (unsigned long *) &scp->uc_mcontext->__ss.__eax; diff --git a/lisp/x86-lispregs.h b/lisp/x86-lispregs.h index 09866b600b1b0b08609db2b855680e4e4961f8e4..0e9735e241e0a0f27361441a4411f22df426be20 100644 --- a/lisp/x86-lispregs.h +++ b/lisp/x86-lispregs.h @@ -1,5 +1,5 @@ /* x86-lispregs.h -*- Mode: C; -*- - * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-lispregs.h,v 1.12 2008/01/03 11:41:54 cshapiro Exp $ + * $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/x86-lispregs.h,v 1.13 2008/12/29 14:40:34 rtoy Rel $ */ #ifndef _X86_LISPREGS_H_ @@ -49,7 +49,13 @@ #define SC_SP(scp) SC_REG(scp, reg_ESP) #if defined(DARWIN) +#if __DARWIN_UNIX03 +/* For 10.5 */ #define SC_EFLAGS(sc) ((sc)->uc_mcontext->__ss.__eflags) +#else +/* For 10.4 */ +#define SC_EFLAGS(sc) ((sc)->uc_mcontext->ss.eflags) +#endif #elif defined(__linux__) #define SC_EFLAGS(sc) ((sc)->uc_mcontext.gregs[REG_EFL]) #endif