- Update to 0.9.9
PR: ports/92398 Submitted by: NIIMI Satoshi <sa2c@sa2c.net> (maintainer)
This commit is contained in:
parent
8ff1b31408
commit
ab2ccf43a8
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=154650
6 changed files with 153 additions and 113 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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_ */
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue