(defun symbol-hash (symbol)
"Return the hash value for symbol."
No wonder it was looping ...
For the curious, the x86 port has a VOP for symbol-hash, meaning that calls to it are open-coded (inlined) by the compiler, so the above function is not actually recursive. In fact, it's not actually called at all, except from interpreted code. Inspection of CMUCL code indicates that symbol-hash is never supposed to be used at all except when the generational gc is in use, so it looks like I have to drag more code from cmucl that sbcl has managed to junk since it split.