diff options
author | Pav Lucistnik <pav@FreeBSD.org> | 2006-01-28 15:52:14 +0000 |
---|---|---|
committer | Pav Lucistnik <pav@FreeBSD.org> | 2006-01-28 15:52:14 +0000 |
commit | ab2ccf43a81f28b57db046a4d4aedc032d4a9e75 (patch) | |
tree | 307403aa4ce69aa9c4b020bda324f4b7f7e0af8a /lang/sbcl | |
parent | 8ff1b31408d700500f570b694cfe5a7ffcf742dc (diff) | |
download | ports-ab2ccf43a81f28b57db046a4d4aedc032d4a9e75.tar.gz ports-ab2ccf43a81f28b57db046a4d4aedc032d4a9e75.zip |
Notes
Diffstat (limited to 'lang/sbcl')
-rw-r--r-- | lang/sbcl/Makefile | 5 | ||||
-rw-r--r-- | lang/sbcl/distinfo | 12 | ||||
-rw-r--r-- | lang/sbcl/files/patch-backtrace | 122 | ||||
-rw-r--r-- | lang/sbcl/files/patch-floating-point | 65 | ||||
-rw-r--r-- | lang/sbcl/files/patch-sigsegv | 61 | ||||
-rw-r--r-- | lang/sbcl/pkg-plist | 1 |
6 files changed, 153 insertions, 113 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile index 64780dc2fcfa..533a298a82c4 100644 --- a/lang/sbcl/Makefile +++ b/lang/sbcl/Makefile @@ -6,7 +6,7 @@ # PORTNAME= sbcl -PORTVERSION= 0.9.8 +PORTVERSION= 0.9.9 CATEGORIES= lang lisp MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} MASTER_SITE_SUBDIR= sbcl @@ -28,10 +28,9 @@ LISP_CMD= "" BUILD_DEPENDS= lisp:${PORTSDIR}/lang/cmucl LISP_CMD= "lisp -noinit -batch" .else -BOOT_VERSION= ${PORTVERSION} +BOOT_VERSION= 0.9.8 .endif -USE_REINPLACE= yes USE_BZIP2= yes USE_GMAKE= yes diff --git a/lang/sbcl/distinfo b/lang/sbcl/distinfo index a7c0fc65b82c..a69c8f06bc84 100644 --- a/lang/sbcl/distinfo +++ b/lang/sbcl/distinfo @@ -1,9 +1,9 @@ -MD5 (sbcl-0.9.8-source.tar.bz2) = 4a8a3de71aff073b4e23e5bc2e432b27 -SHA256 (sbcl-0.9.8-source.tar.bz2) = 08a02e2db4a20446282cd6475d17aaf2625a35080f5bac5e7833fe31186bb2d6 -SIZE (sbcl-0.9.8-source.tar.bz2) = 2674853 -MD5 (sbcl-0.9.8-html.tar.bz2) = 598bc9c1fe88b8ea0d97082fc528fba4 -SHA256 (sbcl-0.9.8-html.tar.bz2) = 4edd847864f1ac0b1e9d039d0559d2d534540bd66d0c71d25b0bb8723c97502d -SIZE (sbcl-0.9.8-html.tar.bz2) = 119641 +MD5 (sbcl-0.9.9-source.tar.bz2) = 4aafb2ce07bd7933f7edec29b404a595 +SHA256 (sbcl-0.9.9-source.tar.bz2) = 117762d02aa4748964c814fb20b0481322fdec1948b748c9159b0942a675eb8c +SIZE (sbcl-0.9.9-source.tar.bz2) = 2695081 +MD5 (sbcl-0.9.9-html.tar.bz2) = a884ab78a3e4f5ecc516fc7197fe2fd6 +SHA256 (sbcl-0.9.9-html.tar.bz2) = 324c36660f37f9cbccab9c07d4f714f761b177350585d34c3d890c9f4557f0b6 +SIZE (sbcl-0.9.9-html.tar.bz2) = 119734 MD5 (sbcl-0.9.8-i386-freebsd-binary.tar.bz2) = 8012db9ebc4d06b93e934ca94fb9f1fe SHA256 (sbcl-0.9.8-i386-freebsd-binary.tar.bz2) = 87332cf3e51910eabe195cf70b32669083d1b49b419b191e0b901354401d1f45 SIZE (sbcl-0.9.8-i386-freebsd-binary.tar.bz2) = 7250813 diff --git a/lang/sbcl/files/patch-backtrace b/lang/sbcl/files/patch-backtrace index 62a5d0e0a555..acd553e7b897 100644 --- a/lang/sbcl/files/patch-backtrace +++ b/lang/sbcl/files/patch-backtrace @@ -1,17 +1,117 @@ Index: src/code/debug-int.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/debug-int.lisp,v -retrieving revision 1.97 -diff -u -r1.97 debug-int.lisp ---- src/code/debug-int.lisp 14 Jul 2005 16:30:31 -0000 1.97 -+++ src/code/debug-int.lisp 27 Aug 2005 01:36:06 -0000 -@@ -572,6 +572,9 @@ - ;; FIXME: Where is this documented? Is it really true of every CPU - ;; architecture? Is it even necessarily true in current SBCL? - (>= (sap-int ra) 4096) -+ ;; On FreeBSD, kernel area is not valid as return address. -+ ;; FIXME: How to obtain the address instead of magic number? -+ #!+freebsd (< (sap-int ra) #xC0000000) +retrieving revision 1.101 +diff -u -r1.101 debug-int.lisp +--- src/code/debug-int.lisp 28 Sep 2005 13:42:24 -0000 1.101 ++++ src/code/debug-int.lisp 26 Jan 2006 01:59:07 -0000 +@@ -559,6 +559,9 @@ + + (defconstant sb!vm::nargs-offset #.sb!vm::ecx-offset) + ++(sb!alien:define-alien-variable "user_space_start" sb!alien:unsigned-long) ++(sb!alien:define-alien-variable "user_space_end" sb!alien:unsigned-long) ++ + ;;; Check for a valid return address - it could be any valid C/Lisp + ;;; address. + ;;; +@@ -567,11 +570,7 @@ + (defun ra-pointer-valid-p (ra) + (declare (type system-area-pointer ra)) + (and +- ;; not the first page (which is unmapped) +- ;; +- ;; FIXME: Where is this documented? Is it really true of every CPU +- ;; architecture? Is it even necessarily true in current SBCL? +- (>= (sap-int ra) 4096) ++ (>= user-space-end (sap-int ra) user-space-start) ;; not a Lisp stack pointer (not (control-stack-pointer-valid-p ra)))) +Index: src/runtime/bsd-os.c +=================================================================== +RCS file: /cvsroot/sbcl/sbcl/src/runtime/bsd-os.c,v +retrieving revision 1.31 +diff -u -r1.31 bsd-os.c +--- src/runtime/bsd-os.c 22 Jan 2006 18:55:07 -0000 1.31 ++++ src/runtime/bsd-os.c 26 Jan 2006 01:59:07 -0000 +@@ -53,6 +53,8 @@ + + #ifdef __FreeBSD__ + #include <sys/sysctl.h> ++#include <link.h> ++#include <dlfcn.h> + + static void freebsd_init(); + #endif /* __FreeBSD__ */ +@@ -311,6 +313,25 @@ + fast_bzero_pointer = fast_bzero_base; + } + #endif /* LISP_FEATURE_X86 */ ++ /* extract lowermost address from linkmap */ ++ { ++ Link_map *map; ++ ++ if (dlinfo(RTLD_SELF, RTLD_DI_LINKMAP, &map) == 0 ++ && map != NULL && map->l_addr != NULL) ++ user_space_start = (unsigned long)map->l_addr; ++ } ++ ++ /* extract uppermost address from "kern.usrstack" mib */ ++ { ++ size_t len; ++ unsigned long tmp; ++ ++ len = sizeof(tmp); ++ if (sysctlbyname("kern.usrstack", &tmp, &len, NULL, 0) == 0 ++ && tmp > user_space_start) ++ user_space_end = tmp; ++ } + } + #endif /* __FreeBSD__ */ + +Index: src/runtime/globals.c +=================================================================== +RCS file: /cvsroot/sbcl/sbcl/src/runtime/globals.c,v +retrieving revision 1.18 +diff -u -r1.18 globals.c +--- src/runtime/globals.c 14 Jul 2005 15:41:11 -0000 1.18 ++++ src/runtime/globals.c 26 Jan 2006 01:59:07 -0000 +@@ -16,6 +16,7 @@ + #include <stdio.h> + #include <sys/types.h> + #include <unistd.h> ++#include <limits.h> + + #include "sbcl.h" + #include "runtime.h" +@@ -54,6 +55,14 @@ + pthread_key_t specials=0; + #endif + ++/* Valid user address space. */ ++ ++/* not the first page (which is unmapped) ++ * good default for most architectures. */ ++unsigned long user_space_start = 4096; ++ ++unsigned long user_space_end = ULONG_MAX; ++ + void globals_init(void) + { + /* Space, stack, and free pointer vars are initialized by +Index: src/runtime/globals.h +=================================================================== +RCS file: /cvsroot/sbcl/sbcl/src/runtime/globals.h,v +retrieving revision 1.25 +diff -u -r1.25 globals.h +--- src/runtime/globals.h 14 Jul 2005 15:41:11 -0000 1.25 ++++ src/runtime/globals.h 26 Jan 2006 01:59:07 -0000 +@@ -99,4 +99,7 @@ + + #endif /* LANGUAGE_ASSEMBLY */ + ++extern unsigned long user_space_start; ++extern unsigned long user_space_end; ++ + #endif /* _INCLUDED_GLOBALS_H_ */ diff --git a/lang/sbcl/files/patch-floating-point b/lang/sbcl/files/patch-floating-point index 35e178797a76..43087e2efc1b 100644 --- a/lang/sbcl/files/patch-floating-point +++ b/lang/sbcl/files/patch-floating-point @@ -1,10 +1,10 @@ Index: src/code/float-trap.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/float-trap.lisp,v -retrieving revision 1.18 -diff -u -r1.18 float-trap.lisp ---- src/code/float-trap.lisp 14 Jul 2005 16:30:34 -0000 1.18 -+++ src/code/float-trap.lisp 27 Sep 2005 22:36:42 -0000 +retrieving revision 1.19 +diff -u -r1.19 float-trap.lisp +--- src/code/float-trap.lisp 6 Oct 2005 19:43:00 -0000 1.19 ++++ src/code/float-trap.lisp 26 Jan 2006 20:43:33 -0000 @@ -153,10 +153,28 @@ `(not (zerop (logand ,(dpb (float-trap-mask traps) float-traps-byte 0) (floating-point-modes))))) @@ -38,12 +38,12 @@ diff -u -r1.18 float-trap.lisp Index: src/code/target-signal.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/code/target-signal.lisp,v -retrieving revision 1.28 -diff -u -r1.28 target-signal.lisp ---- src/code/target-signal.lisp 4 Sep 2005 20:14:49 -0000 1.28 -+++ src/code/target-signal.lisp 27 Sep 2005 22:36:42 -0000 -@@ -149,6 +149,10 @@ - +retrieving revision 1.33 +diff -u -r1.33 target-signal.lisp +--- src/code/target-signal.lisp 17 Oct 2005 09:18:47 -0000 1.33 ++++ src/code/target-signal.lisp 26 Jan 2006 20:43:33 -0000 +@@ -164,6 +164,10 @@ + ;;;; etc. +;;; extract si_code from siginfo_t @@ -56,20 +56,20 @@ diff -u -r1.28 target-signal.lisp Index: src/runtime/interrupt.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v -retrieving revision 1.94 -diff -u -r1.94 interrupt.c ---- src/runtime/interrupt.c 13 Sep 2005 12:28:41 -0000 1.94 -+++ src/runtime/interrupt.c 27 Sep 2005 22:36:42 -0000 -@@ -426,7 +426,7 @@ - if (sigismember(&deferrable_sigset,signal)) +retrieving revision 1.109 +diff -u -r1.109 interrupt.c +--- src/runtime/interrupt.c 5 Jan 2006 14:13:14 -0000 1.109 ++++ src/runtime/interrupt.c 26 Jan 2006 20:43:33 -0000 +@@ -454,7 +454,7 @@ check_interrupts_enabled_or_lose(context); + #endif -#ifdef LISP_FEATURE_LINUX +#if defined(LISP_FEATURE_LINUX) || defined(__FreeBSD__) /* Under Linux on some architectures, we appear to have to restore the FPU control word from the context, as after the signal is delivered we appear to have a null FPU control word. */ -@@ -606,7 +606,7 @@ +@@ -644,7 +644,7 @@ os_context_t *context = arch_os_get_context(&void_context); struct thread *thread=arch_os_get_current_thread(); struct interrupt_data *data=thread->interrupt_data; @@ -78,7 +78,7 @@ diff -u -r1.94 interrupt.c os_restore_fp_control(context); #endif if(maybe_defer_handler(interrupt_handle_now,data,signal,info,context)) -@@ -623,7 +623,7 @@ +@@ -661,7 +661,7 @@ { os_context_t *context = (os_context_t*)void_context; @@ -87,7 +87,7 @@ diff -u -r1.94 interrupt.c os_restore_fp_control(context); #endif check_blockables_blocked_or_lose(); -@@ -641,7 +641,7 @@ +@@ -679,7 +679,7 @@ os_context_t *context = arch_os_get_context(&void_context); struct thread *thread=arch_os_get_current_thread(); struct interrupt_data *data=thread->interrupt_data; @@ -96,9 +96,9 @@ diff -u -r1.94 interrupt.c os_restore_fp_control(context); #endif if(maybe_defer_handler(low_level_interrupt_handle_now,data, -@@ -1139,3 +1139,9 @@ - +@@ -1276,3 +1276,9 @@ SHOW("returning from interrupt_init()"); + #endif } + +int @@ -109,11 +109,11 @@ diff -u -r1.94 interrupt.c Index: src/runtime/x86-arch.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/src/runtime/x86-arch.c,v -retrieving revision 1.32 -diff -u -r1.32 x86-arch.c ---- src/runtime/x86-arch.c 27 Sep 2005 15:52:50 -0000 1.32 -+++ src/runtime/x86-arch.c 27 Sep 2005 22:36:42 -0000 -@@ -229,7 +229,7 @@ +retrieving revision 1.36 +diff -u -r1.36 x86-arch.c +--- src/runtime/x86-arch.c 3 Jan 2006 09:52:38 -0000 1.36 ++++ src/runtime/x86-arch.c 26 Jan 2006 20:43:33 -0000 +@@ -248,7 +248,7 @@ single-stepping (as far as I can tell) this is somewhat moot, but it might be worth either moving this code up or deleting the single-stepping code entirely. -- CSR, 2002-07-15 */ @@ -128,7 +128,7 @@ RCS file: /cvsroot/sbcl/sbcl/src/runtime/x86-bsd-os.c,v retrieving revision 1.7 diff -u -r1.7 x86-bsd-os.c --- src/runtime/x86-bsd-os.c 14 Jul 2005 15:41:21 -0000 1.7 -+++ src/runtime/x86-bsd-os.c 27 Sep 2005 22:36:42 -0000 ++++ src/runtime/x86-bsd-os.c 26 Jan 2006 20:43:33 -0000 @@ -85,6 +85,52 @@ #endif /* __NetBSD__ */ @@ -185,11 +185,11 @@ diff -u -r1.7 x86-bsd-os.c Index: tools-for-build/grovel-headers.c =================================================================== RCS file: /cvsroot/sbcl/sbcl/tools-for-build/grovel-headers.c,v -retrieving revision 1.10 -diff -u -r1.10 grovel-headers.c ---- tools-for-build/grovel-headers.c 14 Jul 2005 20:24:19 -0000 1.10 -+++ tools-for-build/grovel-headers.c 27 Sep 2005 22:36:42 -0000 -@@ -223,5 +223,15 @@ +retrieving revision 1.12 +diff -u -r1.12 grovel-headers.c +--- tools-for-build/grovel-headers.c 16 Jan 2006 15:39:58 -0000 1.12 ++++ tools-for-build/grovel-headers.c 26 Jan 2006 20:43:33 -0000 +@@ -234,6 +234,16 @@ defsignal("sigxcpu", SIGXCPU); defsignal("sigxfsz", SIGXFSZ); #endif @@ -203,5 +203,6 @@ diff -u -r1.10 grovel-headers.c + defconstant("fpe-fltinv", FPE_FLTINV); + defconstant("fpe-fltsub", FPE_FLTSUB); +#endif + #endif // _WIN32 return 0; } diff --git a/lang/sbcl/files/patch-sigsegv b/lang/sbcl/files/patch-sigsegv deleted file mode 100644 index 9e83e2f17c29..000000000000 --- a/lang/sbcl/files/patch-sigsegv +++ /dev/null @@ -1,61 +0,0 @@ -Index: src/runtime/bsd-os.c -=================================================================== -RCS file: /cvsroot/sbcl/sbcl/src/runtime/bsd-os.c,v -retrieving revision 1.29 -diff -u -r1.29 bsd-os.c ---- src/runtime/bsd-os.c 4 Dec 2005 22:25:07 -0000 1.29 -+++ src/runtime/bsd-os.c 28 Dec 2005 01:24:17 -0000 -@@ -204,6 +204,10 @@ - SHOW("os_install_interrupt_handlers()/bsd-os/defined(GENCGC)"); - undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT, - memory_fault_handler); -+#ifdef SIG_MEMORY_FAULT2 -+ undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT2, -+ memory_fault_handler); -+#endif - SHOW("leaving os_install_interrupt_handlers()"); - } - -@@ -230,6 +234,10 @@ - SHOW("os_install_interrupt_handlers()/bsd-os/!defined(GENCGC)"); - undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT, - sigsegv_handler); -+#ifdef SIG_MEMORY_FAULT2 -+ undoably_install_low_level_interrupt_handler(SIG_MEMORY_FAULT2, -+ sigsegv_handler); -+#endif - } - - #endif /* defined GENCGC */ -Index: src/runtime/bsd-os.h -=================================================================== -RCS file: /cvsroot/sbcl/sbcl/src/runtime/bsd-os.h,v -retrieving revision 1.14 -diff -u -r1.14 bsd-os.h ---- src/runtime/bsd-os.h 17 Apr 2005 19:41:28 -0000 1.14 -+++ src/runtime/bsd-os.h 28 Dec 2005 01:24:17 -0000 -@@ -55,6 +55,7 @@ - * so we need to implement single stepping in a more roundabout way. */ - #define CANNOT_GET_TO_SINGLE_STEP_FLAG - #define SIG_MEMORY_FAULT SIGBUS -+#define SIG_MEMORY_FAULT2 SIGSEGV - - #elif defined __OpenBSD__ - -Index: src/runtime/interrupt.c -=================================================================== -RCS file: /cvsroot/sbcl/sbcl/src/runtime/interrupt.c,v -retrieving revision 1.106 -diff -u -r1.106 interrupt.c ---- src/runtime/interrupt.c 4 Dec 2005 22:25:07 -0000 1.106 -+++ src/runtime/interrupt.c 28 Dec 2005 01:24:17 -0000 -@@ -1140,6 +1140,9 @@ - (sigaction_nodefer_works ? SA_NODEFER : 0); - #ifdef LISP_FEATURE_C_STACK_IS_CONTROL_STACK - if((signal==SIG_MEMORY_FAULT) -+#ifdef SIG_MEMORY_FAULT2 -+ || (signal==SIG_MEMORY_FAULT2) -+#endif - #ifdef SIG_INTERRUPT_THREAD - || (signal==SIG_INTERRUPT_THREAD) - #endif diff --git a/lang/sbcl/pkg-plist b/lang/sbcl/pkg-plist index 30c2ef4e45a7..f4754daa1eab 100644 --- a/lang/sbcl/pkg-plist +++ b/lang/sbcl/pkg-plist @@ -32,6 +32,7 @@ %%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Additional-Distributed-Documentation.html %%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Automatic-Recompilation-of-Stale-Fasls.html %%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Beyond-the-ANSI-Standard.html +%%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Bivalent-Streams.html %%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Calling-Lisp-From-C.html %%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dbsd_002dsockets_003ahost_002dent.html %%PORTDOCS%%%%DOCSDIR%%/html/sbcl/Class-sb_002dbsd_002dsockets_003ainet_002dsocket.html |