diff --git a/src/code/ppc-vm.lisp b/src/code/ppc-vm.lisp
index bba9f78b31a7dca53c6687314d767a87b2b27a79..fa6a64325a6f5473a1c28176bfd9094f2f73b209 100644
--- a/src/code/ppc-vm.lisp
+++ b/src/code/ppc-vm.lisp
@@ -19,12 +19,13 @@
 
 (intl:textdomain "cmucl-ppc-vm")
 
+(eval-when (:compile-toplevel :load-toplevel :execute)
 (export '(fixup-code-object internal-error-arguments
 	  sigcontext-program-counter sigcontext-register
 	  sigcontext-float-register sigcontext-floating-point-modes
 	  extern-alien-name sanctify-for-execution
 	  sigcontext-lr))
-
+)
 
 ;;;; The sigcontext structure.
 ;;;; Note that the layout of this thing matches the word offsets PT_xxx, not
diff --git a/src/compiler/ppc/c-callback.lisp b/src/compiler/ppc/c-callback.lisp
index 928de09f86903d17c7e992d4804c7a2bc0de4a6a..29d6731569a10bbbb1ad383c081b5cb661cbb1b9 100644
--- a/src/compiler/ppc/c-callback.lisp
+++ b/src/compiler/ppc/c-callback.lisp
@@ -19,8 +19,10 @@
 (in-package "PPC")
 
 
+(eval-when (:compile-toplevel :load-toplevel :execute)
 (export '(make-callback-trampoline callback-accessor-form
 	  compatible-function-types-p))
+)
 
 (defun callback-accessor-form (type sp offset)
   (let ((parsed-type (alien::parse-alien-type type)))
diff --git a/src/compiler/ppc/parms.lisp b/src/compiler/ppc/parms.lisp
index a885626c9f03081e089fae8c209ff3b079b091b9..deac614983f2ee6a11cbb2f832b822be2e3bcec3 100644
--- a/src/compiler/ppc/parms.lisp
+++ b/src/compiler/ppc/parms.lisp
@@ -49,6 +49,7 @@
 
 ;;;; Machine Architecture parameters:
 
+(eval-when (:compile-toplevel :load-toplevel :execute)
 (export '(word-bits byte-bits char-bits word-shift word-bytes char-bytes
 	  float-sign-shift
 
@@ -66,6 +67,7 @@
 	  float-imprecise-trap-bit float-invalid-trap-bit
 	  float-divide-by-zero-trap-bit
 	  float-invalid-op-1-byte))
+)
 
 #+double-double
 (export '(double-double-float-digits))
@@ -166,11 +168,13 @@
 
 
 ;;;; Description of the target address space.
+(eval-when (:compile-toplevel :load-toplevel :execute)
 (export '(target-read-only-space-start
 	  target-static-space-start
 	  target-dynamic-space-start
           target-foreign-linkage-space-start
 	  target-foreign-linkage-entry-size))
+)
 
 
 ;;; Where to put the different spaces.
@@ -188,12 +192,14 @@
 
 ;;;; Other random constants.
 
+(eval-when (:compile-toplevel :load-toplevel :execute)
 (export '(halt-trap pending-interrupt-trap error-trap cerror-trap
 	  breakpoint-trap function-end-breakpoint-trap
 	  after-breakpoint-trap
 	  object-not-list-trap object-not-instance-trap
 	  trace-table-normal trace-table-call-site
 	  trace-table-function-prologue trace-table-function-epilogue))
+)
 
 
 (defenum (:suffix -trap :start 8)
@@ -217,8 +223,9 @@
 
 
 ;;;; Static symbols.
+(eval-when (:compile-toplevel :load-toplevel :execute)
 (export '(static-symbols static-functions))
-
+)
 
 ;;; These symbols are loaded into static space directly after NIL so
 ;;; that the system can compute their address by adding a constant
diff --git a/src/tools/cross-scripts/cross-x86-ppc-darwin.lisp b/src/tools/cross-scripts/cross-x86-ppc-darwin.lisp
index 0d492de2c7af3e40b32fcb9b6993605af0910e0d..417d4e082628ae7c6430c9ba7d9f2e8a76cfed03 100644
--- a/src/tools/cross-scripts/cross-x86-ppc-darwin.lisp
+++ b/src/tools/cross-scripts/cross-x86-ppc-darwin.lisp
@@ -158,8 +158,10 @@
 				       (find-symbol ,(symbol-name sym)
 						    :vm))))
 			       syms))))
-  (frob OLD-VM:BYTE-BITS OLD-VM:WORD-BITS
+  (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