Module Name: src Committed By: rillig Date: Sun Nov 8 09:06:23 UTC 2020
Modified Files: src/usr.bin/make: arch.c dir.c make.c nonints.h Log Message: make(1): change return type of Arch_MemberMTime to void This makes it easier to prove that Dir_MTime always returns gn->mtime, without looking at the implementation of Arch_UpdateMemberMTime. To generate a diff of this commit: cvs rdiff -u -r1.172 -r1.173 src/usr.bin/make/arch.c cvs rdiff -u -r1.198 -r1.199 src/usr.bin/make/dir.c cvs rdiff -u -r1.192 -r1.193 src/usr.bin/make/make.c cvs rdiff -u -r1.156 -r1.157 src/usr.bin/make/nonints.h 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/arch.c diff -u src/usr.bin/make/arch.c:1.172 src/usr.bin/make/arch.c:1.173 --- src/usr.bin/make/arch.c:1.172 Sun Nov 8 08:33:07 2020 +++ src/usr.bin/make/arch.c Sun Nov 8 09:06:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: arch.c,v 1.172 2020/11/08 08:33:07 rillig Exp $ */ +/* $NetBSD: arch.c,v 1.173 2020/11/08 09:06:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -98,7 +98,7 @@ * placed in the member's GNode. Returns the * modification time. * - * Arch_MemberMTime + * Arch_UpdateMemberMTime * Find the modification time of a member of * an archive. Called when the member doesn't * already exist. Looks in the archive for the @@ -125,7 +125,7 @@ #include "config.h" /* "@(#)arch.c 8.2 (Berkeley) 1/2/94" */ -MAKE_RCSID("$NetBSD: arch.c,v 1.172 2020/11/08 08:33:07 rillig Exp $"); +MAKE_RCSID("$NetBSD: arch.c,v 1.173 2020/11/08 09:06:22 rillig Exp $"); typedef struct List ArchList; typedef struct ListNode ArchListNode; @@ -906,10 +906,10 @@ Arch_MTime(GNode *gn) return modTime; } -/* Given a non-existent archive member's node, get its modification time from - * its archived form, if it exists. gn->mtime is filled in as well. */ -time_t -Arch_MemberMTime(GNode *gn) +/* Given a non-existent archive member's node, update gn->mtime from its + * archived form, if it exists. */ +void +Arch_UpdateMemberMTime(GNode *gn) { GNodeListNode *ln; @@ -941,8 +941,6 @@ Arch_MemberMTime(GNode *gn) break; } } - - return gn->mtime; } /* Search for a library along the given search path. Index: src/usr.bin/make/dir.c diff -u src/usr.bin/make/dir.c:1.198 src/usr.bin/make/dir.c:1.199 --- src/usr.bin/make/dir.c:1.198 Sat Nov 7 20:45:21 2020 +++ src/usr.bin/make/dir.c Sun Nov 8 09:06:22 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: dir.c,v 1.198 2020/11/07 20:45:21 rillig Exp $ */ +/* $NetBSD: dir.c,v 1.199 2020/11/08 09:06:22 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990 The Regents of the University of California. @@ -134,7 +134,7 @@ #include "job.h" /* "@(#)dir.c 8.2 (Berkeley) 1/2/94" */ -MAKE_RCSID("$NetBSD: dir.c,v 1.198 2020/11/07 20:45:21 rillig Exp $"); +MAKE_RCSID("$NetBSD: dir.c,v 1.199 2020/11/08 09:06:22 rillig Exp $"); #define DIR_DEBUG0(text) DEBUG0(DIR, text) #define DIR_DEBUG1(fmt, arg1) DEBUG1(DIR, fmt, arg1) @@ -1349,13 +1349,13 @@ Dir_MTime(GNode *gn, Boolean recheck) if (fullName == NULL) fullName = bmake_strdup(gn->name); - flags = recheck ? CST_UPDATE : CST_NONE; if (cached_stats(&mtimes, fullName, &mst, flags) < 0) { if (gn->type & OP_MEMBER) { if (fullName != gn->path) free(fullName); - return Arch_MemberMTime(gn); + Arch_UpdateMemberMTime(gn); + return gn->mtime; } mst.mst_mtime = 0; Index: src/usr.bin/make/make.c diff -u src/usr.bin/make/make.c:1.192 src/usr.bin/make/make.c:1.193 --- src/usr.bin/make/make.c:1.192 Sun Nov 8 08:55:25 2020 +++ src/usr.bin/make/make.c Sun Nov 8 09:06:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: make.c,v 1.192 2020/11/08 08:55:25 rillig Exp $ */ +/* $NetBSD: make.c,v 1.193 2020/11/08 09:06:23 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -108,7 +108,7 @@ #include "job.h" /* "@(#)make.c 8.1 (Berkeley) 6/6/93" */ -MAKE_RCSID("$NetBSD: make.c,v 1.192 2020/11/08 08:55:25 rillig Exp $"); +MAKE_RCSID("$NetBSD: make.c,v 1.193 2020/11/08 09:06:23 rillig Exp $"); /* Sequence # to detect recursion. */ static unsigned int checked = 1; @@ -553,6 +553,9 @@ Make_Recheck(GNode *gn) gn->name, Targ_FmtTime(gn->mtime)); } #endif + + /* XXX: The returned mtime may differ from gn->mtime. + * Intentionally? */ return mtime; } Index: src/usr.bin/make/nonints.h diff -u src/usr.bin/make/nonints.h:1.156 src/usr.bin/make/nonints.h:1.157 --- src/usr.bin/make/nonints.h:1.156 Sat Nov 7 21:31:07 2020 +++ src/usr.bin/make/nonints.h Sun Nov 8 09:06:23 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: nonints.h,v 1.156 2020/11/07 21:31:07 rillig Exp $ */ +/* $NetBSD: nonints.h,v 1.157 2020/11/08 09:06:23 rillig Exp $ */ /*- * Copyright (c) 1988, 1989, 1990, 1993 @@ -80,7 +80,7 @@ Boolean Arch_ParseArchive(char **, GNode void Arch_Touch(GNode *); void Arch_TouchLib(GNode *); time_t Arch_MTime(GNode *); -time_t Arch_MemberMTime(GNode *); +void Arch_UpdateMemberMTime(GNode *gn); void Arch_FindLib(GNode *, SearchPath *); Boolean Arch_LibOODate(GNode *); Boolean Arch_IsLib(GNode *);