Make `make cross-target' work in three stages.
authorTaylor R Campbell <campbell@mumble.net>
Tue, 11 Dec 2018 15:35:34 +0000 (15:35 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Tue, 11 Dec 2018 15:35:34 +0000 (15:35 +0000)
1. moc->com in runtime, so the next stages can use a compiled runtime
2. moc->com in the whole tree
3. fni->inf in the whole tree

XXX Maybe the latter stages can be combined; for now this change just
splits the first two apart.  Even better, maybe we can nix this step
altogether and teach the cross-fasdumper to do this part itself.
Wouldn't be hard to teach the cross-fasdumper to do the relocation
that currently requires sketchy with-absolutely-no-interrupts crap.
For compile-scode, could maybe just fasdump to a bytevector in memory
and invent a primitive to fasload from that.

src/Makefile.in

index 98573e51b95fcf8a235578519bcb547224ba2056..9d16487a6e9e00e285aa3c44d7670972d54f3982 100644 (file)
@@ -583,8 +583,12 @@ cross-target: stamp_cross-finished lib/runtime.com lib/all.com
 stamp_cross-finished: stamp_cross-host microcode/scheme
        (echo '(let ((env (->environment (quote (runtime)))))' && \
         echo '  (load "../compiler/base/crsend" env)' && \
-        echo '  ((access finish-cross-compilation:files env) ".."))') \
+        echo '  ((access finish-cross-compilation:files env) "."))') \
        | (cd runtime && ../run-build --batch-mode --fasl make.bin)
+       (echo '(let ((env (->environment (quote (runtime)))))' && \
+        echo '  (load "../compiler/base/crsend" env)' && \
+        echo '  ((access finish-cross-compilation:files env) ".."))') \
+       | (cd runtime && ../run-build --batch-mode --fasl make.com)
        (echo '(let ((env (->environment (quote (runtime)))))' && \
         echo '  (load "../compiler/base/crsend" env)' && \
         echo '  ((access finish-cross-compilation:info-files env) ".."))') \