automake
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build and test failures with Autoconf 2.70


From: Karl Berry
Subject: Re: Build and test failures with Autoconf 2.70
Date: Sat, 19 Dec 2020 19:33:25 -0700

    They all appear to be cases of autoconf and/or aclocal
    getting run when the test suite does not expect them to be run.  I am
    stumped as to why

In short: because the 2.70 autom4te decided not to update configure.

I don't know why not, but I have a guess: maybe the new autom4te ignores
everything after AC_OUTPUT. Is that correct? Because that is where some
of these tests are adding a new AC_ macro.

In long:

I focused on the libobj-basic test since it was simpler than the
distcheck-* tests. That test ends with a common sequence. First append
to configure.ac to test an additional case:

cat configure.proto - > configure.ac <<END
AC_LIBSOURCES([maude.c, liver.c])
END

Then run the autotools (I added --verbose:)

$ACLOCAL --verbose
$AUTOCONF --verbose
$AUTOMAKE --verbose
./configure

And then run make check:
$MAKE check

With 2.70, the make check fails because it tries to run autoconf.
make -dn in the build directory (namely
../t/distcheck-missing-m4.dir/distcheck-missing-m4-1.0/_build/sub)
reported that autoconf was needed because configure.ac and aclocal.m4
were newer than configure. And this was, in fact, true.

So, backing up in the test, I checked the timestamps after each one of
the above steps, by inserting the line
  ls -lt --full-time aclocal.m4 configure.ac configure
to libobj-basic.sh in all those places.

This showed that in the successful run with autoconf 2.69, it was the
$AUTOCONF run that updated configure (as one would expect).

In the failing run with autoconf 2.70, the $AUTOCONF run ends with the line:
autom4te: 'configure' is unchanged

The failure follows.

I'll attach the modified test and the failing and successful log files
for the heck of it.  (I could not discern any notable difference from
the autom4te output.)  Here is the final configure.ac in question:
------------------------------------
AC_INIT([libobj-basic], [1.0])
AM_INIT_AUTOMAKE
AC_CONFIG_FILES([Makefile])
AC_PROG_CC
AM_PROG_AR
AC_PROG_RANLIB
AC_OUTPUT
AC_LIBSOURCES([maude.c, liver.c])
------------------------------------

I don't think we're so lucky that all of the failing tests are failing
because of this, but I think it might account for more than one. -k

Attachment: libobj-basic.sh
Description: Binary data

Attachment: a69ok-libobj-basic.log.gz
Description: Binary data

Attachment: a70fail-libobj-basic.log.gz
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]