0.8.13.31:
[sbcl.git] / src / code / cold-init.lisp
index bc7d9f5..9757734 100644 (file)
@@ -49,7 +49,7 @@
 \f
 ;;;; putting ourselves out of our misery when things become too much to bear
 
-(declaim (ftype (function (simple-string) nil) critically-unreachable))
+(declaim (ftype (function (simple-string) nil) !cold-lose))
 (defun !cold-lose (msg)
   (%primitive print msg)
   (%primitive print "too early in cold init to recover from errors")
   ;; this to be initialized, so we initialize it right away.
   (show-and-call !random-cold-init)
 
+  (show-and-call !early-package-cold-init)
   (show-and-call !package-cold-init)
   
   ;; All sorts of things need INFO and/or (SETF INFO).
   ;; FIXME: This list of modes should be defined in one place and
   ;; explicitly shared between here and REINIT.
 
-  ;; Why was this marked #!+alpha?  CMUCL does it here on all architectures
-  (set-floating-point-modes :traps '(:overflow :invalid :divide-by-zero))
+  ;; FIXME: For some unknown reason, NetBSD/x86 won't run with the
+  ;; :invalid trap enabled. That should be fixed, but not today...
+  ;; PEM -- April 5, 2004
+  (set-floating-point-modes
+   :traps '(:overflow #!-netbsd :invalid :divide-by-zero))
 
   (show-and-call !class-finalize)
 
@@ -288,17 +292,12 @@ instead (which is another name for the same thing)."))
       ;; LEAST-NEGATIVE-SINGLE-FLOAT, so the :UNDERFLOW exceptions are
       ;; disabled by default. Joe User can explicitly enable them if
       ;; desired.
-      (set-floating-point-modes :traps '(:overflow :invalid :divide-by-zero))
-
-      ;; Clear pseudo atomic in case this core wasn't compiled with
-      ;; support.
       ;;
-      ;; FIXME: In SBCL our cores are always compiled with support. So
-      ;; we don't need to do this, do we? At least not for this
-      ;; reason.. (Perhaps we should do it anyway in case someone
-      ;; manages to save an image from within a pseudo-atomic-atomic
-      ;; operation?)
-      #!+x86 (setf *pseudo-atomic-atomic* 0)))
+      ;; see also comment at the previous SET-FLOATING-POINT-MODES
+      ;; call site.
+      (set-floating-point-modes
+       :traps '(:overflow #!-netbsd :invalid :divide-by-zero))
+      (sb!thread::maybe-install-futex-functions)))
   (gc-on)
   (gc))
 \f