Re: rhel8 test failure confirmation?

Bogdan <[email protected]>
Newsgroups gmane.comp.sysutils.automake.general
Message-ID <[email protected]>
Bogdan <[email protected]>, Fri Mar 03 2023 11:21:25 GMT+0100 (Central 
European Standard Time)
> Karl Berry <[email protected]>, Wed Mar 01 2023 20:01:26 GMT+0100 
> (Central European Standard Time)
>> Does anyone have access to an RHEL 8-based machine? Alma Linux, 
>> Rocky Linux,
>> original RHEL, or even (sort of) CentOS 8? It would be nice if someone
>> could run a make check there (from automake dev).
>>    git clone -q git://git.savannah.gnu.org/automake.git
>>    cd automake
>>    ./bootstrap
>>    ./configure && make >&cm.out
>>    make -j8 VERBOSE=1 check keep_testdirs=yes >&ch8.out
>> (choose whatever -j value you like)


[...]


>   This, along with my observation (below), MAY actually point to some 
> issue with Autoconf. Old systems work, new don't.


  I take that back (for now). See below.
[...]


>   When I run
> 
> make check TESTS='t/nodef.sh t/backcompat2.sh t/backcompat3.sh 
> t/get-sysconf.sh t/lex-depend.sh t/remake-aclocal-version-mismatch.sh 
> t/subdir-add2-pr46.sh t/testsuite-summary-reference-log.sh'
> 
>   I get failures in t/backcompat2.sh. Sometimes, like once-twice in 
> ten runs.
>   I've added a simple 'debug' in the form of the 'stat' command and:
> 
> --------------

[...]

> --------------
> 
> 
>   Note that 'config.h' is older (4 seconds) than './configure', which 
> shouldn't be the case as it should get updated with new values.
> 
>   What's funny, when I run just the failing test alone, it works 10 
> times in a row. A "Schroedinger bug" - when you try to observe, you 
> change the environment and the bug disappears :).
>   I'll try to do some more digging later.


  Done a bit more digging into how AM_INIT_AUTOMAKE works. No idea how 
or if caching of M4 'defines' works, but from a programming point of 
view, I see setting the [no-define] option conditionally:

	m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl

and checking it unconditionally:

	_AM_IF_OPTION([no-define]

and I ask myself: what if on the next run the value is still 
(un)defined when it shouldn't be? It shouldn't be defined, because we 
start with the empty value as the third parameter in the 
t/backcompat2.sh test, but...

  Anyway, to the point: I did a simple change - un-define the value on 
the "else" path. Diff attached (not pretty, because it's just for 
testing).
  Since the change, I've done 22 test runs of the same test set (the 
one with 8 tests, not the single one which always passed) and saw 
completely no failures.
  If it works for everybody, then perhaps some _AM_UNSET_OPTION macro 
should be created in options.m4, to keep the code nice, and that 
committed to the main code instead of my patch.
  If it works, there may be other places worth checking.

-- 
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
init-add-undef.diff (text/x-patch, 566 B)
diff --git a/m4/init.m4 b/m4/init.m4
index 9b809ad5b..a79500695 100644
--- a/m4/init.m4
+++ b/m4/init.m4
@@ -62,7 +62,7 @@ dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
 [AC_DIAGNOSE([obsolete],
              [$0: two- and three-arguments forms are deprecated.])
-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+m4_ifval([$3], [_AM_SET_OPTION([no-define])], [m4_ifdef(_AM_MANGLE_OPTION([no-define]), [m4_undefine(_AM_MANGLE_OPTION([no-define])])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
 [_AM_SET_OPTIONS([$1])dnl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.