X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcold%2Fshared.lisp;h=5f86752620730c51836e54beb9b4890e6bd86cc3;hb=fea8ea02847ddc0864546a02480fb3e97d6fa318;hp=20b519ac1ae161a4a5269a9e9e9dda61b67c4cca;hpb=242432ac5aa332bff0edfc519c80062cf8b61c93;p=sbcl.git diff --git a/src/cold/shared.lisp b/src/cold/shared.lisp index 20b519a..5f86752 100644 --- a/src/cold/shared.lisp +++ b/src/cold/shared.lisp @@ -23,6 +23,17 @@ (in-package "SB-COLD") +;;; FIXME: This is embarassing -- SBCL violates SBCL style-package +;;; locks on the host lisp. Rather then find and fix all the cases +;;; right now, let's just remain self-hosting. The problems at least +;;; involve a few defvars and local macros with names in the CL +;;; package. +#+sbcl +(let ((plp (find-symbol PACKAGE-LOCKED-P :sb-ext))) + (when (and plp (fboundp plp)) + (dolist (p (list-all-packages)) + (sb-ext::unlock-package p)))) + ;;; prefixes for filename stems when cross-compiling. These are quite arbitrary ;;; (although of course they shouldn't collide with anything we don't want to ;;; write over). In particular, they can be either relative path names (e.g. @@ -46,7 +57,8 @@ ;; that we never explicitly refer to host object file suffixes, ;; only to the result of CL:COMPILE-FILE-PATHNAME. #+lispworks ".ufsl" ; as per Lieven Marchand sbcl-devel 2002-02-01 - #+openmcl ".pfsl" + #+(and openmcl (not darwin)) ".pfsl" + #+(and openmcl darwin) ".dfsl" ;; On most xc hosts, any old extension works, so we use an ;; arbitrary one. ".lisp-obj")) @@ -311,7 +323,7 @@ (defparameter *stems-and-flags* (read-from-file "build-order.lisp-expr")) (defmacro do-stems-and-flags ((stem flags) &body body) - (let ((stem-and-flags (gensym "STEM-AND-FLAGS-"))) + (let ((stem-and-flags (gensym "STEM-AND-FLAGS"))) `(dolist (,stem-and-flags *stems-and-flags*) (let ((,stem (first ,stem-and-flags)) (,flags (rest ,stem-and-flags)))