[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Warning category skew between Autoconf and Automake - workaround in auto
Warning category skew between Autoconf and Automake - workaround in autoreconf?
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/ChannelDefs.pm has diverged from the set defined in
automake’s lib/Automake/ChannelDefs.pm. (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 ChannelDefs.pm 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?
- Warning category skew between Autoconf and Automake - workaround in autoreconf?,
Zack Weinberg <=