1.0.21.34: fix build on x86/x86-64 lutex platforms
authorGabor Melis <mega@hotpop.com>
Tue, 21 Oct 2008 14:41:59 +0000 (14:41 +0000)
committerGabor Melis <mega@hotpop.com>
Tue, 21 Oct 2008 14:41:59 +0000 (14:41 +0000)
src/code/target-thread.lisp
src/compiler/aliencomp.lisp
version.lisp-expr

index bb7dbec..c534ca0 100644 (file)
@@ -731,7 +731,6 @@ around and can be retrieved by JOIN-THREAD."
                    (*restart-clusters* nil)
                    (*handler-clusters* (sb!kernel::initial-handler-clusters))
                    (*condition-restarts* nil)
-                   (sb!c::*saved-fp-and-pcs* ())
                    (sb!impl::*deadline* nil)
                    (sb!impl::*step-out* nil)
                    ;; internal printer variables
index 75dcf1b..3635cb4 100644 (file)
     `(lambda (function ,@names)
        (alien-funcall (deref function) ,@names))))
 
-;;; A per-thread list of frame pointer, program counter conses.
-(defvar *saved-fp-and-pcs* ())
+;;; Frame pointer, program counter conses. In each thread it's bound
+;;; locally or not bound at all.
+(defvar *saved-fp-and-pcs*)
 
 #!+:c-stack-is-control-stack
 (declaim (inline invoke-with-saved-fp-and-pc))
   (let* ((fp-and-pc (multiple-value-bind (fp pc)
                         (%caller-frame-and-pc)
                       (cons fp pc)))
-         (*saved-fp-and-pcs* (cons fp-and-pc *saved-fp-and-pcs*)))
+         (*saved-fp-and-pcs* (if (boundp '*saved-fp-and-pcs*)
+                                 (cons fp-and-pc *saved-fp-and-pcs*)
+                                 (list fp-and-pc))))
     (declare (truly-dynamic-extent fp-and-pc *saved-fp-and-pcs*))
     (funcall fn)))
 
 (defun find-saved-fp-and-pc (fp)
-  (dolist (x *saved-fp-and-pcs*)
-    (when (#!+:stack-grows-downward-not-upward
-           sap>
-           #!-:stack-grows-downward-not-upward
-           sap<
-           (int-sap (get-lisp-obj-address (car x))) fp)
-      (return (values (car x) (cdr x))))))
+  (when (boundp '*saved-fp-and-pcs*)
+    (dolist (x *saved-fp-and-pcs*)
+      (when (#!+:stack-grows-downward-not-upward
+             sap>
+             #!-:stack-grows-downward-not-upward
+             sap<
+             (int-sap (get-lisp-obj-address (car x))) fp)
+        (return (values (car x) (cdr x)))))))
 
 (deftransform alien-funcall ((function &rest args) * * :important t)
   (let ((type (lvar-type function)))
index dd190d7..c294b05 100644 (file)
@@ -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".)
-"1.0.21.33"
+"1.0.21.34"