Warning category skew between Autoconf and Automake - workaround in autoreconf?

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

 



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?

zw





[Index of Archives]     [GCC Help]     [Kernel Discussion]     [RPM Discussion]     [Red Hat Development]     [Yosemite News]     [Linux USB]     [Samba]

  Powered by Linux