From 3cb84fe9335228f10257ac049b838a166fb531c4 Mon Sep 17 00:00:00 2001 From: Paul Smith <psmith@gnu.org> Date: Sat, 1 Oct 2022 17:17:26 -0400 Subject: [PATCH] * src/filedef.h (is_ordinary_mtime): Check for "ordinary" mod time. * src/remake.c (update_file_1): Use the new macro. --- src/filedef.h | 2 ++ src/remake.c | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/filedef.h b/src/filedef.h index 304a07f6..ac7df008 100644 --- a/src/filedef.h +++ b/src/filedef.h @@ -212,6 +212,8 @@ FILE_TIMESTAMP f_mtime (struct file *file, int search); << FILE_TIMESTAMP_LO_BITS) \ + ORDINARY_MTIME_MIN + FILE_TIMESTAMPS_PER_S - 1) +#define is_ordinary_mtime(_t) ((_t) >= ORDINARY_MTIME_MIN && (_t) <= ORDINARY_MTIME_MAX) + /* Modtime value to use for 'infinitely new'. We used to get the current time from the system and use that whenever we wanted 'new'. But that causes trouble when the machine running make and the machine holding a file have diff --git a/src/remake.c b/src/remake.c index 69a0e6cb..a97431b9 100644 --- a/src/remake.c +++ b/src/remake.c @@ -491,8 +491,7 @@ update_file_1 (struct file *file, unsigned int depth) noexist = this_mtime == NONEXISTENT_MTIME; if (noexist) DBF (DB_BASIC, _("File '%s' does not exist.\n")); - else if (ORDINARY_MTIME_MIN <= this_mtime && this_mtime <= ORDINARY_MTIME_MAX - && file->low_resolution_time) + else if (is_ordinary_mtime (this_mtime) && file->low_resolution_time) { /* Avoid spurious rebuilds due to low resolution time stamps. */ int ns = FILE_TIMESTAMP_NS (this_mtime);