[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#68860: race condition with make recheck
From: |
Bogdan |
Subject: |
bug#68860: race condition with make recheck |
Date: |
Sun, 25 Aug 2024 20:43:31 +0200 |
User-agent: |
Mozilla Thunderbird |
Karl Berry <karl@freefriends.org>, 2024-08-25 10:45:
Thanks much, Bogdan.
-recheck: all %CHECK_DEPS%
+recheck: all-am %CHECK_DEPS%
Do you have a grip on all-am? Looking at handle_all in bin/automake, I
admit I remain baffled as to what all those pieces of all-am are, and
why it's done as it is.
Te be honest, not really :). At least, not fully. As far as I
understand/remember, those "all-am" were the ones processed
recursively. But, I may be wrong, seeing this comment in handle_all:
# We need to make sure config.h is built before we recurse.
# We also want to make sure that built sources are built
# before any ordinary 'all' targets are run. We can't do this
# by changing the order of dependencies to the "all" because
# that breaks when using parallel makes. Instead we handle
# things explicitly.
So, "all" just checks/remakes config.h before starting "the real work"
in all-am (be it recursive or not, parallel or not).
- $output_rules .= "check-am: all-am\n";
+ $output_rules .= "check-am: all-am";
if (@check)
{
- pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t ", @check);
+ $output_rules .= " @check";
+ #pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t ", @check);
depend ('.MAKE', 'check-am');
}
+ $output_rules .= "\n";
So I gather the basic fix to output the check targets as dependencies of
check-am, instead of as sub-makes. That seems a plausible reason and fix
for the parallel bug to me.
Yes, I'm adding the dependencies as I believe they should be. Here
and in check.am. Maybe the check.am is too much (especially seeing
that skipping the dependency on config.h may *not* be desired) and
fixing only the code will be enough.
As it is with non-deterministic problem, it's not 100% guaranteed
that this fixes the problem. But, a few runs of parallel 'make
recheck' seems to prove it.
Anyway, I will tweak a few words and install this soon. --thanks again, karl.
No problem. And thanks :)
--
Regards - Bogdan ('bogdro') D. (GNU/Linux & FreeDOS)
X86 assembly (DOS, GNU/Linux): http://bogdro.evai.pl/index-en.php
Soft(EN): http://bogdro.evai.pl/soft http://bogdro.evai.pl/soft4asm
www.Xiph.org www.TorProject.org www.LibreOffice.org www.GnuPG.org