Module Name: src
Committed By: sjg
Date: Sun May 19 17:55:55 UTC 2024
Modified Files:
src/usr.bin/make: dir.c main.c
src/usr.bin/make/unit-tests: deptgt-phony.exp
Log Message:
Dir_FindFile treat sysIncPath and defSysIncPath as special
Rather than play games with adding .DOTLAST and then having to
exclude that from .SYSPATH, just have Dir_FindFile check if
path is sysIncPath or defSysIncPath and behave as if .DOTLAST seen
and also skip the final search of .CURDIR.
Fix Dir_SetSYSPATH to use defSysIncPath if sysIncPath is empty.
To generate a diff of this commit:
cvs rdiff -u -r1.286 -r1.287 src/usr.bin/make/dir.c
cvs rdiff -u -r1.615 -r1.616 src/usr.bin/make/main.c
cvs rdiff -u -r1.4 -r1.5 src/usr.bin/make/unit-tests/deptgt-phony.exp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/dir.c
diff -u src/usr.bin/make/dir.c:1.286 src/usr.bin/make/dir.c:1.287
--- src/usr.bin/make/dir.c:1.286 Fri Dec 29 18:53:24 2023
+++ src/usr.bin/make/dir.c Sun May 19 17:55:54 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: dir.c,v 1.286 2023/12/29 18:53:24 rillig Exp $ */
+/* $NetBSD: dir.c,v 1.287 2024/05/19 17:55:54 sjg Exp $ */
/*
* Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -132,7 +132,7 @@
#include "job.h"
/* "@(#)dir.c 8.2 (Berkeley) 1/2/94" */
-MAKE_RCSID("$NetBSD: dir.c,v 1.286 2023/12/29 18:53:24 rillig Exp $");
+MAKE_RCSID("$NetBSD: dir.c,v 1.287 2024/05/19 17:55:54 sjg Exp $");
/*
* A search path is a list of CachedDir structures. A CachedDir has in it the
@@ -566,10 +566,12 @@ void
Dir_SetSYSPATH(void)
{
CachedDirListNode *ln;
-
+ SearchPath *path = Lst_IsEmpty(&sysIncPath->dirs)
+ ? defSysIncPath : sysIncPath;
+
Var_ReadOnly(".SYSPATH", false);
Global_Delete(".SYSPATH");
- for (ln = sysIncPath->dirs.first; ln != NULL; ln = ln->next) {
+ for (ln = path->dirs.first; ln != NULL; ln = ln->next) {
CachedDir *dir = ln->datum;
Global_Append(".SYSPATH", dir->name);
}
@@ -1163,7 +1165,9 @@ Dir_FindFile(const char *name, SearchPat
return NULL;
}
- if (path->dirs.first != NULL) {
+ if (path == sysIncPath || path == defSysIncPath)
+ seenDotLast = true;
+ else if (path->dirs.first != NULL) {
CachedDir *dir = path->dirs.first->datum;
if (dir == dotLast) {
seenDotLast = true;
Index: src/usr.bin/make/main.c
diff -u src/usr.bin/make/main.c:1.615 src/usr.bin/make/main.c:1.616
--- src/usr.bin/make/main.c:1.615 Tue May 7 18:26:22 2024
+++ src/usr.bin/make/main.c Sun May 19 17:55:54 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.615 2024/05/07 18:26:22 sjg Exp $ */
+/* $NetBSD: main.c,v 1.616 2024/05/19 17:55:54 sjg Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -111,7 +111,7 @@
#include "trace.h"
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: main.c,v 1.615 2024/05/07 18:26:22 sjg Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.616 2024/05/19 17:55:54 sjg Exp $");
#if defined(MAKE_NATIVE)
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
"The Regents of the University of California. "
@@ -1156,8 +1156,6 @@ InitDefSysIncPath(char *syspath)
else
syspath = bmake_strdup(syspath);
- /* do NOT search .CURDIR first for .include <makefile> */
- SearchPath_Add(defSysIncPath, ".DOTLAST");
for (start = syspath; *start != '\0'; start = p) {
for (p = start; *p != '\0' && *p != ':'; p++)
continue;
Index: src/usr.bin/make/unit-tests/deptgt-phony.exp
diff -u src/usr.bin/make/unit-tests/deptgt-phony.exp:1.4 src/usr.bin/make/unit-tests/deptgt-phony.exp:1.5
--- src/usr.bin/make/unit-tests/deptgt-phony.exp:1.4 Tue Apr 30 16:41:32 2024
+++ src/usr.bin/make/unit-tests/deptgt-phony.exp Sun May 19 17:55:54 2024
@@ -2,7 +2,7 @@ Expanding "depsrc-phony-pr-15164-*-wildc
Expanding "deptgt-phony-pr-15164-*-wildcard"...
Searching for .depend ...
failed.
-Searching for .depend ...[dot last]...
+Searching for .depend ...
<defsyspath> ...
failed.
Wildcard expanding "all"...