Update of /cvsroot/sbcl/sbcl/src/code
In directory sc8-pr-cvs1:/tmp/cvs-serv31265/src/code
Modified Files:
bsd-os.lisp float-trap.lisp foreign.lisp load.lisp ppc-vm.lisp
unix.lisp
Log Message:
0.8.2.8:
MacOS/Darwin merge. Points to note:
... thanks to Patrik Nordebo, Pierre Mai and Brian Mastenbrook;
... mmap()ed simple-streams appear not to work under darwin;
... floating point traps are currently non-functional on both ppc
platforms;
... on darwin, hitting ^C, then choosing CONTINUE results in a
memory fault;
... there's no lchown under darwin;
... x86/bsd building is also slightly non-functional currently;
... There's a OAOOM problem in src/compiler/ppc/c-call.lisp, and in
src/runtime/ppc-assem.S.
Index: bsd-os.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/bsd-os.lisp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- bsd-os.lisp 12 Jun 2001 17:08:45 -0000 1.7
+++ bsd-os.lisp 29 Jul 2003 13:01:55 -0000 1.8
@@ -16,7 +16,8 @@
"Return a string describing the supporting software."
(the string ; (to force error in case of unsupported BSD variant)
#!+FreeBSD "FreeBSD"
- #!+OpenBSD "OpenBSD"))
+ #!+OpenBSD "OpenBSD"
+ #!+Darwin "Darwin"))
(defvar *software-version* nil)
Index: float-trap.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/float-trap.lisp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- float-trap.lisp 16 Mar 2002 21:16:09 -0000 1.12
+++ float-trap.lisp 29 Jul 2003 13:01:55 -0000 1.13
@@ -100,7 +100,8 @@
(if fast-mode
(setq modes (logior float-fast-bit modes))
(setq modes (logand (lognot float-fast-bit) modes))))
- (setf (floating-point-modes) modes))
+ ;; FIXME: This apparently doesn't work on Darwin
+ #!-darwin (setf (floating-point-modes) modes))
(values))
Index: foreign.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/foreign.lisp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- foreign.lisp 24 Jun 2003 02:25:43 -0000 1.17
+++ foreign.lisp 29 Jul 2003 13:01:55 -0000 1.18
@@ -52,7 +52,7 @@
;;; On any OS where we don't support foreign object file loading, any
;;; query of a foreign symbol value is answered with "no definition
;;; known", i.e. NIL.
-#-(or linux sunos FreeBSD OpenBSD)
+#-(or linux sunos FreeBSD OpenBSD darwin)
(defun get-dynamic-foreign-symbol-address (symbol)
(declare (type simple-string symbol) (ignore symbol))
nil)
@@ -62,7 +62,7 @@
;;; work on any ELF system with dlopen(3) and dlsym(3)
;;; It also works on OpenBSD, which isn't ELF, but is otherwise modern
;;; enough to have a fairly well working dlopen/dlsym implementation.
-#-(or linux sunos FreeBSD OpenBSD)
+#-(or linux sunos FreeBSD OpenBSD darwin)
(macrolet ((define-unsupported-fun (fun-name)
`(defun ,fun-name (&rest rest)
"unsupported on this system"
@@ -70,7 +70,7 @@
(error 'unsupported-operator :name ',fun-name))))
(define-unsupported-fun load-1-foreign)
(define-unsupported-fun load-foreign))
-#+(or linux sunos FreeBSD OpenBSD)
+#+(or linux sunos FreeBSD OpenBSD darwin)
(progn
;;; flags for dlopen()
@@ -112,7 +112,9 @@
*after-save-initializations*)
(defvar *dso-linker* "/usr/bin/ld")
-(defvar *dso-linker-options* '("-shared" "-o"))
+(defvar *dso-linker-options*
+ #-darwin '("-shared" "-o")
+ #+darwin '("-bundle" "-o"))
(sb-alien:define-alien-routine dlopen system-area-pointer
(file sb-alien:c-string) (mode sb-alien:int))
Index: load.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/load.lisp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- load.lisp 26 Apr 2003 14:20:10 -0000 1.28
+++ load.lisp 29 Jul 2003 13:01:55 -0000 1.29
@@ -374,7 +374,7 @@
;;; code for foreign symbol lookup should be here.
(defun find-foreign-symbol-in-table (name table)
(let ((prefixes
- #!+(or osf1 sunos linux freebsd) #("" "ldso_stub__")
+ #!+(or osf1 sunos linux freebsd darwin) #("" "ldso_stub__")
#!+openbsd #("")))
(declare (notinline some)) ; to suppress bug 117 bogowarning
(some (lambda (prefix)
Index: ppc-vm.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/ppc-vm.lisp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- ppc-vm.lisp 21 Jul 2003 00:57:06 -0000 1.8
+++ ppc-vm.lisp 29 Jul 2003 13:01:55 -0000 1.9
@@ -112,6 +112,9 @@
;;; Given a signal context, return the floating point modes word in
;;; the same format as returned by FLOATING-POINT-MODES.
+;;;
+;;; FIXME: surely this must be accessible somewhere under Darwin?
+#!-darwin
(define-alien-routine ("os_context_fp_control" context-floating-point-modes)
(sb!alien:unsigned 32)
(context (* os-context-t)))
Index: unix.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/code/unix.lisp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- unix.lisp 27 Jul 2003 14:08:18 -0000 1.39
+++ unix.lisp 29 Jul 2003 13:01:55 -0000 1.40
@@ -293,14 +293,14 @@
;; a constant. Going the grovel_headers route doesn't seem to be
;; helpful, either, as Solaris doesn't export PATH_MAX from
;; unistd.h.
- #!-(or linux openbsd freebsd sunos osf1) (,stub,)
- #!+(or linux openbsd freebsd sunos osf1)
+ #!-(or linux openbsd freebsd sunos osf1 darwin) (,stub,)
+ #!+(or linux openbsd freebsd sunos osf1 darwin)
(or (newcharstar-string (alien-funcall (extern-alien "getcwd"
(function (* char)
(* char)
size-t))
nil
- #!+(or linux openbsd freebsd) 0
+ #!+(or linux openbsd freebsd darwin) 0
#!+(or sunos osf1) 1025))
(simple-perror "getcwd")))
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
|