mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-09 23:16:41 -04:00
Scope it to the outermost compilation-unit that didn't use :OVERRIDE.
It's still inadequate but at least it doesn't hold on to all function names
thereby causing garbage to be retained.
Rev e483e8c6ce claimed that to do this correctly, the loader must participate
in determining missed optimizations, perhaps by having %define-compiler-macro
examine which fdefns (now linkage cells) were looked up.
On top of all else, I can't see how make-genesis-2 could ever have reported
anything given that the entire cross-compiler state was reset at that point.
33 lines
1.4 KiB
Common Lisp
33 lines
1.4 KiB
Common Lisp
(load "src/cold/shared.lisp")
|
|
(in-package "SB-COLD")
|
|
(setf *host-obj-prefix* "obj/from-host/"
|
|
*target-obj-prefix* "obj/from-xc/")
|
|
(load "src/cold/set-up-cold-packages.lisp")
|
|
(load "src/cold/defun-load-or-cload-xcompiler.lisp")
|
|
(load-or-cload-xcompiler #'host-load-stem)
|
|
(load "tools-for-build/corefile.lisp" :verbose nil)
|
|
(host-cload-stem "src/compiler/generic/genesis" nil)
|
|
|
|
(let (object-file-names foptrace-file-names)
|
|
(do-stems-and-flags (stem flags 2)
|
|
(unless (member :not-target flags)
|
|
(push (stem-object-path stem flags :target-compile)
|
|
object-file-names)
|
|
(when (member :foptrace-file flags)
|
|
(push (stem-object-path stem flags :target-compile)
|
|
foptrace-file-names))))
|
|
(setf object-file-names (nreverse object-file-names))
|
|
(genesis :object-file-names object-file-names
|
|
:foptrace-file-names foptrace-file-names
|
|
:defstruct-descriptions (find-bootstrap-file "output/defstructs.lisp-expr" t)
|
|
:tls-init (read-from-file "output/tls-init.lisp-expr" :build-dependent t)
|
|
:c-header-dir-name "output/genesis-2"
|
|
:core-file-name "output/cold-sbcl.core"
|
|
;; The map file is not needed by the system, but can be
|
|
;; very handy when debugging cold init problems.
|
|
:map-file-name "output/cold-sbcl.map"))
|
|
|
|
#+cmu (ext:quit)
|
|
#+clisp (ext:quit)
|
|
#+abcl (ext:quit)
|