0.9.7.2:
[sbcl.git] / make-target-2.sh
index fb1c8c1..783d442 100644 (file)
@@ -1,4 +1,5 @@
 #!/bin/sh
+set -e
 
 # This is a script to be run as part of make.sh. The only time you'd
 # want to run it by itself is if you're trying to cross-compile the
 
 echo //entering make-target-2.sh
 
+LANG=C
+LC_ALL=C
+export LANG LC_ALL
+
 # Do warm init stuff, e.g. building and loading CLOS, and stuff which
 # can't be done until CLOS is running.
 #
@@ -27,12 +32,10 @@ echo //entering make-target-2.sh
 echo //doing warm init
 ./src/runtime/sbcl \
 --core output/cold-sbcl.core \
---sysinit /dev/null --userinit /dev/null <<-'EOF' || exit 1
-
+--sysinit /dev/null --userinit /dev/null <<-'EOF'
        ;; Now that we use the compiler for macros, interpreted
        ;; /SHOW doesn't work until later in init.
         #+sb-show (print "/hello, world!")
-        (sb!ext:purify)
 
         ;; Until PRINT-OBJECT and other machinery is set up,
        ;; we want limits on printing to avoid infinite output.
@@ -78,6 +81,12 @@ echo //doing warm init
                             (space 1)
                             (speed 1)))
 
+        ;; Lock internal packages
+        #+sb-package-locks
+        (dolist (p (list-all-packages))
+          (unless (member p (mapcar #'find-package '(:keyword :cl-user)))
+             (lock-package p)))
+
         (sb-int:/show "done with warm.lisp, about to SAVE-LISP-AND-DIE")
        ;; Even if /SHOW output was wanted during build, it's probably
        ;; not wanted by default after build is complete. (And if it's
@@ -85,6 +94,7 @@ echo //doing warm init
        #+sb-show (setf sb-int:*/show* nil)
         ;; The system is complete now, all standard functions are
         ;; defined.
+        (sb-kernel::ctype-of-cache-clear)
         (setq sb-c::*flame-on-necessarily-undefined-function* t)
-       (sb-ext:save-lisp-and-die "output/sbcl.core" :purify t)
+       (sb-ext:save-lisp-and-die "output/sbcl.core")
        EOF