;; !UNIX-COLD-INIT. And *TYPE-SYSTEM-INITIALIZED* could be changed to
;; *TYPE-SYSTEM-INITIALIZED-WHEN-BOUND* so that it doesn't need to
;; be explicitly set in order to be meaningful.
- (setf *before-gc-hooks* nil
- *after-gc-hooks* nil
+ (setf *after-gc-hooks* nil
*gc-inhibit* 1
*need-to-collect-garbage* nil
sb!unix::*interrupts-enabled* t
(setf (svref *!load-time-values* (third toplevel-thing))
(funcall (second toplevel-thing))))
(:load-time-value-fixup
- (setf (sap-ref-32 (second toplevel-thing) 0)
+ (setf (sap-ref-word (second toplevel-thing) 0)
(get-lisp-obj-address
(svref *!load-time-values* (third toplevel-thing)))))
- #!+(and x86 gencgc)
+ #!+(and (or x86 x86-64) gencgc)
(:load-time-code-fixup
(sb!vm::!envector-load-time-code-fixup (second toplevel-thing)
(third toplevel-thing)
(show-and-call os-cold-init-or-reinit)
+ (show-and-call thread-init-or-reinit)
(show-and-call stream-cold-init-or-reset)
(show-and-call !loader-cold-init)
(show-and-call !foreign-cold-init)
(terpri)
(/show0 "going into toplevel loop")
(handling-end-of-the-world
- (thread-init-or-reinit)
(toplevel-init)
(critically-unreachable "after TOPLEVEL-INIT")))
;;;; initialization functions
(defun thread-init-or-reinit ()
+ (sb!thread::init-initial-thread)
(sb!thread::init-job-control)
(sb!thread::get-foreground))
(without-interrupts
(without-gcing
(os-cold-init-or-reinit)
+ (thread-init-or-reinit)
(stream-reinit)
(signal-cold-init-or-reinit)
(setf (sb!alien:extern-alien "internal_errors_enabled" boolean) t)
;; see also comment at the previous SET-FLOATING-POINT-MODES
;; call site.
(set-floating-point-modes
- :traps '(:overflow #!-netbsd :invalid :divide-by-zero))
- (sb!thread::maybe-install-futex-functions)))
- (thread-init-or-reinit)
+ :traps '(:overflow #!-netbsd :invalid :divide-by-zero))))
(gc-reinit)
;; make sure TIME works correctly from saved cores
(setf *internal-real-time-base-seconds* nil)