X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fload.lisp;h=e8b9921da4917ce5a43ec41ea5e60f93489ac3e0;hb=c7de1989d006e0b3a4f26143b7a81c9bdb754101;hp=f7f7ca997403e6d7a1a03fed11e142065f21cec7;hpb=97fc8a15f100e0b6a7d575f5057be839a9a5d621;p=sbcl.git diff --git a/src/code/load.lisp b/src/code/load.lisp index f7f7ca9..e8b9921 100644 --- a/src/code/load.lisp +++ b/src/code/load.lisp @@ -268,9 +268,21 @@ stream implementation +backend-fasl-file-implementation+)))) - ;; TO DO: Check for *FEATURES* which affect binary compatibility. - ;; (And don't forget to return T.:-) - )))) + ;; Read and validate *FEATURES* which affect binary compatibility. + (let ((faff-in-this-file (string-from-stream))) + (unless (string= faff-in-this-file *features-affecting-fasl-format*) + (error + "~@" + '*features* + stream + *features-potentially-affecting-fasl-format* + *features-affecting-fasl-format* + faff-in-this-file))) + ;; success + t)))) ;; Setting this variable gives you a trace of fops as they are loaded and ;; executed. @@ -362,7 +374,7 @@ ;;; code for foreign symbol lookup should be here. (defun find-foreign-symbol-in-table (name table) (let ((prefixes - #!+(or osf1 sunos linux freebsd) #("" "ldso_stub__") + #!+(or osf1 sunos linux freebsd darwin) #("" "ldso_stub__") #!+openbsd #(""))) (declare (notinline some)) ; to suppress bug 117 bogowarning (some (lambda (prefix)