[Top][All Lists]

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

Warning category skew between Autoconf and Automake - workaround in auto

From: Zack Weinberg
Subject: Warning category skew between Autoconf and Automake - workaround in autoreconf?
Date: Thu, 10 Sep 2020 14:48:03 -0400

autoreconf assumes that it can pass --warnings=<anything> to both
the tools maintained in Autoconf (autoconf, autoheader, etc.)
and to the tools maintained in Automake (automake, aclocal, etc.)
However, the set of warnings categories defined in autoconf’s
lib/Autom4te/ has diverged from the set defined in
automake’s lib/Automake/  (These were clearly once
the same file, but have not been in sync since before 2003!)
In particular, autoconf recognizes a ‘cross’ category but
automake does not, and automake recognizes ‘extra-portability’
and ‘portability-recursive’ categories but autoconf does not.

This means that if you do ‘autoreconf -Wcross’ you will get warnings
about an unknown warning category from automake and aclocal.
Conversely, ‘autoreconf -Wextra-portability’ will produce warnings
from autoreconf itself + multiple instances of autom4te (depending on
how complicated your configure script is).  This is not just cosmetic,
because ‘-Werror,cross’ or ‘-Werror,extra-portability’ will promote
the message to an error and aclocal/autom4te will exit unsuccessfully.
(Order matters: ‘-Wcross,error’ will just issue a warning.)
At least one redistributor of Autoconf has felt a need to patch
autoreconf to avoid supplying -Wcross to automake (checking first
whether ‘cross’ shows up in automake’s ‘--help’ output).

Clearly should be brought back into sync between the
two projects, but that will only fix the problem after *both* Autoconf
and Automake do a release.  So I’m wondering whether it would make
sense to merge this distributor’s patch to avoid supplying -Wcross to
automake -- perhaps generalized to arbitrary warning categories.  What
do you think?


reply via email to

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