From f99c0c60fb657af7ac121397654f4fd29b8a281a Mon Sep 17 00:00:00 2001 From: gerd <gerd> Date: Sat, 1 Feb 2003 19:47:17 +0000 Subject: [PATCH] * compiler/generic/new-genesis.lisp (symbol-table-version): Function more or less extracted from LOAD-FOREIGN-SYMBOL-TABLE. (genesis): Use it to get the version in a linkage-table build. --- compiler/generic/new-genesis.lisp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/compiler/generic/new-genesis.lisp b/compiler/generic/new-genesis.lisp index 6147f4350..5fa5ebe36 100644 --- a/compiler/generic/new-genesis.lisp +++ b/compiler/generic/new-genesis.lisp @@ -4,7 +4,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.50 2002/11/19 13:17:14 toy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/generic/new-genesis.lisp,v 1.51 2003/02/01 19:47:17 gerd Exp $") ;;; ;;; ********************************************************************** ;;; @@ -2391,6 +2391,17 @@ (defvar *genesis-c-header-name* t) (defvar *genesis-symbol-table* nil) +#+linkage-table +(defun symbol-table-version (filename) + "Return the version number from the symbol table file Filename. + Value is 0 if Filename is null or the file doesn't exist." + (if (and filename (probe-file filename)) + (with-open-file (file filename) + (let* ((version-line (read-line file)) + (last-space (position #\Space version-line :from-end t))) + (parse-integer version-line :start (1+ last-space)))) + 0)) + (defun genesis (file-list &optional (symbol-table *genesis-symbol-table*) (core-name *genesis-core-name*) @@ -2414,7 +2425,8 @@ #+linkage-table (init-foreign-linkage) (let ((version #-linkage-table (load-foreign-symbol-table symbol-table) - #+linkage-table 0)) + #+linkage-table (symbol-table-version + symbol-table))) (initialize-spaces) (initialize-symbols) (initialize-layouts) -- GitLab