1.0.27.46: Fix build on systems with "src" in the path.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 25 Apr 2009 03:12:13 +0000 (03:12 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 25 Apr 2009 03:12:13 +0000 (03:12 +0000)
  1.0.27.31 introduced an actual check that the path for all source
files is correctly externalized as an LPN at cold-init time.  Due to a
longstanding bug in MAKE-FILE-INFO-NAMESTRING, not fixed with
1.0.27.31, it is possible for the system to create a pathname such as
"SYS:SRC;LISP;SBCL;SBCL-GIT;OUTPUT;STUFF-GROVELED-FROM-HEADERS.LISP".
Once the SYS: logical pathname translations are set up, this path is
not valid, causing a build failure.  Fixed, at the cost of disallowing
paths in SYS:SRC that have a final directory of OUTPUT, not likely to
be an issue in practice.

src/code/source-location.lisp
version.lisp-expr

index 7eb411b..3d488d2 100644 (file)
@@ -37,8 +37,9 @@
     (let ((src (position "src" dir :test #'string=
                          :from-end t)))
       (cond
-        (src (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP"
-                     (subseq dir src) (pathname-name untruename)))
+        ((and src (not (string= (car (last dir)) "output")))
+         (format nil "SYS:~{~:@(~A~);~}~:@(~A~).LISP"
+                 (subseq dir src) (pathname-name untruename)))
         (t (aver (string-equal (car (last dir)) "output"))
            (aver (string-equal (pathname-name untruename) "stuff-groveled-from-headers"))
            (aver (string-equal (pathname-type untruename) "lisp"))
index e8a526b..f811532 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.27.45"
+"1.0.27.46"