+(push (lambda ()
+ ;; We redo this here to protect ourselves from this scenario:
+ ;; * Build under one version of shared lib, save a core.
+ ;; * Load core under another version of shared lib. ("Now
+ ;; where was environ again?" SIGSEGV, etc.)
+ ;; Obviously it's a KLUDGE to do this hack for every alien
+ ;; variable, but as it happens, as of sbcl-0.7.0 this is the
+ ;; only alien variable used to implement SBCL, so it's not
+ ;; worth coming up with a general solution. (A general
+ ;; solution would be nice for users who want to have their
+ ;; alien code be preserved across a save/load cycle, but this
+ ;; problem with alien variables is only one of several
+ ;; problems which'd need to be solved before that can happen.)
+ (def-alien-variable "environ" (* c-string)))
+ *after-save-initializations*)