|
From: | Jacob Bachmeyer |
Subject: | Re: 1.16.90 regression: configure now takes 7 seconds to start |
Date: | Mon, 17 Jun 2024 23:02:21 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.22) Gecko/20090807 SeaMonkey/1.1.17 Mnenhy/0.7.6.0 |
Zack Weinberg wrote:
On Mon, Jun 17, 2024, at 10:30 PM, Jacob Bachmeyer wrote: ... Don't have enough brain right now to comment on any of the rest of your suggestions, but:once conftest.file is newer than configure, surely config.status, which is produced after all tests are run, /must/ also be newer than configure?How is this last check/delay actually necessary? Are there broken systems out there that play games with causality?I regret to say, yes, there are. For example, this can happen with NFS if there are multiple clients updating the same files and they don't all agree on the current time. Think build farm with several different configurations being built out of the same srcdir - separate build dirs, of course, but that doesn't actually help here since the issue is ensuring the Makefile doesn't think *configure* (not config.status) needs rebuilt.
Wait... all of configure's non-system dependencies are in the release tarball and presumably (if "make dist" worked correctly) backdated older than configure when the tarball is unpacked. Does "make dist" need to touch configure to ensure that it is newer than its dependencies before rolling the tarball?
How can configure [appear to] need to be rebuilt here? No build should touch it or its dependencies.
Or, to put this another way, under what conditions can "checking that generated files are newer than configure" actually fail? If we do not know of any, then perhaps we should add a hidden "--enable--wait-for-newer-config.status" (double-hyphen intentional) option, and unless that option is given, bail out with a message asking (1) to report the system and environment configuration to the Automake list and (2) rerun configure with that option to sleep until config.status is newer instead of bailing out.
-- Jacob
[Prev in Thread] | Current Thread | [Next in Thread] |