[quagga-dev 12161] Re: [GIT RFC] "final" warning cleanup
equinox at opensourcerouting.org
Sun Apr 19 20:01:27 BST 2015
On Thu, Mar 05, 2015 at 01:22:31PM -0500, Greg Troxel wrote:
> David Lamparter <equinox at opensourcerouting.org> writes:
> > Everything else *should* be trivial. Note the last 2 patches in the
> > branch change CFLAGS behavior and add "--enable-werror". I intend to
> > start using the latter and insta-refuse any patches that introduce
> > warnings.
> Thanks for doing this - it helps a lot to get to a 'no warnings
> allowed' state.
> I am a little uncomfortable with the notion of trying a random list of
> cflags and accepting those that don't error. But I can't think of
> trouble from this.
I've done the very same thing in 2006 on another software package
without any ill effects. In fact, I stole my own autoconf macro
(AC_C_FLAG) from there ;D
> Diffing builds from release and this branch turned up different flags,
> but it's hard to figure out from reorderingl
I did indeed change some bits there; -Wcast-qual got bumped down to
"--enable-gcc-ultra-verbose" (it was way too noisy) and -Wextra replaced
some individual flags. -Wno-unused-parameter and
-Wno-missing-field-initializers are new to silence false warnings from
> There's a note in the configure output about make not being GNU make.
> Our docs say that it's a bug if quagga doesn't build with the system
> make on recent *BSD (meaning that we may not use gnu make extensions).
> As far as I know (I build that way) this is actually true. So any
> 'require gnu make' in the configure.ac is off. This might not be a new
Indeed it works at least on FreeBSD with the system's make. Only the
solaris/ directory's Makefile seems to use GNUisms (oh the irony...),
but I'd say this is a change for another day. (Patches welcome!)
> From "./README.NetBSD build" on NetBSD 6 i386 with system gcc:
> gcc version 4.5.3 (NetBSD nb2 20110806)
> Diffing from a build on master, many warnings remain and many have been
> fixed. Broad themes of what's left (plus a few less-common ones):
> time_t printed as "long int"
> size_t printed as "long int" (instead of %z)
> array subscript has type 'char' (due to isalpha or similar on char,
> when it's documented to take an int; the spec says:
> The argument to isalpha() must be EOF or representable as an unsigned
> char; otherwise, the behavior is undefined. See the CAVEATS section of
> ctype(3) for more details.
These should all be fixed - I think - can you retest?
More information about the Quagga-dev