X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=make-genesis-2.sh;h=4b9973e6aafde5f8446a9004989b7a2bb2c5a75c;hb=HEAD;hp=620e6800e356b793c07223647bae8e294935fa99;hpb=d7f6139a91d7d9b0667a597584ae306d958bb2f4;p=sbcl.git diff --git a/make-genesis-2.sh b/make-genesis-2.sh index 620e680..4b9973e 100644 --- a/make-genesis-2.sh +++ b/make-genesis-2.sh @@ -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 @@ -26,36 +27,15 @@ echo //entering make-genesis-2.sh # symbol table data on the C runtime. And we can get that symbol # data only after the C runtime has been built. Therefore, even # though we ran GENESIS earlier, we couldn't get it to make a .core -# file at that time; but we needed to run it earlier in order to +# file at that time; but we needed to run it earlier in order to # get to where we can write a .core file.) echo //loading and running GENESIS to create cold-sbcl.core -$SBCL_XC_HOST <<-'EOF' || exit 1 - (setf *print-level* 5 *print-length* 5) - (load "src/cold/shared.lisp") - (in-package "SB-COLD") - (setf *host-obj-prefix* "obj/from-host/" - *target-obj-prefix* "obj/from-xc/") - (load "src/cold/set-up-cold-packages.lisp") - (load "src/cold/defun-load-or-cload-xcompiler.lisp") - (load-or-cload-xcompiler #'host-load-stem) - (defparameter *target-object-file-names* - (with-open-file (s "output/object-filenames-for-genesis.lisp-expr" - :direction :input) - (read s))) - (host-load-stem "src/compiler/generic/genesis") - (sb!vm:genesis :object-file-names *target-object-file-names* - :c-header-file-name "output/sbcl2.h" - :symbol-table-file-name "src/runtime/sbcl.nm" - :core-file-name "output/cold-sbcl.core" - ;; The map file is not needed by the system, but can - ;; be very handy when debugging cold init problems. - :map-file-name "output/cold-sbcl.map") - EOF +$SBCL_XC_HOST < make-genesis-2.lisp echo //testing for consistency of first and second GENESIS passes -if cmp src/runtime/sbcl.h output/sbcl2.h; then - echo //sbcl2.h matches sbcl.h -- good. +if diff -r src/runtime/genesis output/genesis-2; then + echo //header files match between first and second GENESIS -- good else - echo error: sbcl2.h does not match sbcl.h. + echo error: header files do not match between first and second GENESIS exit 1 fi