On 2023-12-01 08:18, Bruno Haible wrote:
Zack Weinberg wrote:
...
2023-12-01+08:27:37.7201689730 configure
2023-12-01+08:27:39.8531823020 autom4te.cache/requests
...
2023-12-01+06:44:03.2893079030 stderr-raw
2023-12-01+06:44:05.4383178570 configure
2023-12-01+06:44:05.4393178610 autom4te.cache/requests
A difference between Zack's good output and your bad output is that
Zack's build did not rebuild configure (it's two seconds older than
autom4te.cache/requests) but yours did.
I'm not sure exactly what's going wrong. Part of the problem is that I
suspects later actions by the bad 'configure' overwrote some timestamps
that were treated incorrectly.
In reading the code it's clear that it's confused about timestamps in
this area as it is using the maximum of two timestamps when it should be
using the minimum. I installed the attached patch, which fixes that bug.
However, I don't know whether that will address the problem you observed.From 49ab3a4c5756d7ef40b03111f4c8a351d6bca7b8 Mon Sep 17 00:00:00 2001
From: Paul Eggert <egg...@cs.ucla.edu>
Date: Fri, 1 Dec 2023 09:58:37 -0800
Subject: [PATCH] Be more conservative about cache timestamps
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* bin/autom4te.in (up_to_date): Fix thinko by using the
minimum of the cache files’ timestamps, not the maximum.
---
bin/autom4te.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/bin/autom4te.in b/bin/autom4te.in
index edc51fcf..38a61ac9 100644
--- a/bin/autom4te.in
+++ b/bin/autom4te.in
@@ -948,11 +948,11 @@ sub up_to_date ($)
return 0
if ! -f $tfile || ! -f $ofile;
- # The younger of the cache files must be older than the oldest of
- # the dependencies.
+ # Both cache files must be younger than all dependencies,
+ # so use the minimum of the two cache files' timestamps.
my $tmtime = mtime ($tfile);
my $omtime = mtime ($ofile);
- my ($file, $mtime) = ($tmtime < $omtime
+ my ($file, $mtime) = ($omtime < $tmtime
? ($ofile, $omtime) : ($tfile, $tmtime));
# stdin is always out of date.
--
2.40.1