diff --git a/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp b/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp index 68682950e9c9d22cffb3a881f13425118518848b..3be7ae6fcea3ebb8fe915aeb721f24b4f431d009 100644 --- a/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp +++ b/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp @@ -32,10 +32,17 @@ (defun extern-alien-name (name) (declare (type simple-string name)) (concatenate 'string "_" name)) +;; When compiling the compiler, vm:fixup-code-object and +;; vm:sanctify-for-execution are undefined. Import these to get rid +;; of that error. +(import 'old-vm::fixup-code-object) +(import 'old-vm::sanctify-for-execution) (export 'extern-alien-name) (export 'fixup-code-object) (export 'sanctify-for-execution) +(in-package :cl-user) + ;;; Compile the new backend. (pushnew :bootstrap *features*) (pushnew :building-cross-compiler *features*) @@ -118,6 +125,8 @@ syms)))) (frob OLD-VM:BYTE-BITS OLD-VM:WORD-BITS OLD-VM:CHAR-BITS + OLD-VM:CHAR-BYTES + OLD-VM:LOWTAG-BITS #+long-float OLD-VM:SIMPLE-ARRAY-LONG-FLOAT-TYPE OLD-VM:SIMPLE-ARRAY-DOUBLE-FLOAT-TYPE OLD-VM:SIMPLE-ARRAY-SINGLE-FLOAT-TYPE @@ -136,17 +145,25 @@ OLD-VM:SIMPLE-BIT-VECTOR-TYPE OLD-VM:SIMPLE-STRING-TYPE OLD-VM:SIMPLE-VECTOR-TYPE OLD-VM:SIMPLE-ARRAY-TYPE OLD-VM:VECTOR-DATA-OFFSET + OLD-VM:DOUBLE-FLOAT-DIGITS OLD-VM:DOUBLE-FLOAT-EXPONENT-BYTE OLD-VM:DOUBLE-FLOAT-NORMAL-EXPONENT-MAX OLD-VM:DOUBLE-FLOAT-SIGNIFICAND-BYTE OLD-VM:SINGLE-FLOAT-EXPONENT-BYTE OLD-VM:SINGLE-FLOAT-NORMAL-EXPONENT-MAX OLD-VM:SINGLE-FLOAT-SIGNIFICAND-BYTE - )) - -;; Modular arith hacks + ) + #+double-double + (frob OLD-VM:SIMPLE-ARRAY-COMPLEX-DOUBLE-DOUBLE-FLOAT-TYPE + OLD-VM:SIMPLE-ARRAY-DOUBLE-DOUBLE-FLOAT-TYPE) + ) + +;; Modular arith hacks. When cross-compiling, the compiler wants to +;; constant-fold some stuff, and it needs the following functions to +;; do so. This just gets rid of the hundreds of errors that happen. (setf (fdefinition 'vm::ash-left-mod32) #'old-ppc::ash-left-mod32) (setf (fdefinition 'vm::lognot-mod32) #'old-ppc::lognot-mod32) +;; End modular arith hacks ;; Fused multiply hack. Don't know why this is needed for a cross-compile (setf (fdefinition 'vm::fused-multiply-add) #'old-ppc::fused-multiply-add)