From 0abf67fd58b7b8e08fc5dffbc89270bd58f1dbd1 Mon Sep 17 00:00:00 2001 From: Douglas Katzman Date: Wed, 30 Jun 2021 00:15:35 -0400 Subject: [PATCH] Relax requirement on current directory during build After this it is more-or-less possible to have the SBCL root directory be a subdirectory of the current dir. Everything in src/cold finds required files as siblings, so if SBCL is in "mumble/something/sbcl", you needn't change dir into "sbcl" but instead, while in "mumble" it works to load "something/sbcl/src/cold/shared" A quick not-too-exciting example: * (setq *sbcl-local-target-features-file* "sbcl/local-target-features.lisp-expr") "sbcl/local-target-features.lisp-expr" * (load "sbcl/src/cold/shared") T In real-world usage, the SBCL directory would be buried deeper in the tree and you don't want to physically change dir into it because reasons. It should be easier to parallelize crossbuild-runner too. With suitable input and output directories, each architecture can place its artifacts into a different fasl tree while pulling sources from the common location. --- make-c-runtime.sh | 1 + make-host-1.lisp | 2 +- make-host-2.lisp | 2 +- src/assembly/master.lisp | 5 +- src/code/misc.lisp | 3 +- src/code/target-char.lisp | 4 +- .../cold/base-target-features.lisp-expr | 0 .../cold/build-order.lisp-expr | 0 src/cold/chill.lisp | 5 +- .../cold/common-lisp-exports.lisp-expr | 0 src/cold/compile-cold-sbcl.lisp | 2 +- src/cold/defun-load-or-cload-xcompiler.lisp | 4 + .../cold/package-data-list.lisp-expr | 0 src/cold/set-up-cold-packages.lisp | 9 +- src/cold/shared.lisp | 111 ++++++++++-------- src/cold/shebang.lisp | 42 ++----- src/cold/slam.lisp | 2 +- src/cold/warm.lisp | 10 +- src/compiler/backend.lisp | 9 +- src/compiler/generic/genesis.lisp | 10 +- tests/input-manifest.lisp-expr | 1 - 21 files changed, 110 insertions(+), 112 deletions(-) rename base-target-features.lisp-expr => src/cold/base-target-features.lisp-expr (100%) rename build-order.lisp-expr => src/cold/build-order.lisp-expr (100%) rename common-lisp-exports.lisp-expr => src/cold/common-lisp-exports.lisp-expr (100%) rename package-data-list.lisp-expr => src/cold/package-data-list.lisp-expr (100%) diff --git a/make-c-runtime.sh b/make-c-runtime.sh index cd2d7602c..c8a5ba7c6 100755 --- a/make-c-runtime.sh +++ b/make-c-runtime.sh @@ -12,6 +12,7 @@ time $SBCL_XC_HOST <