[Spice-devel] [PATCH spice-gtk 00/15] Expand usage of compiler warnings
Hans de Goede
hdegoede at redhat.com
Tue Mar 13 07:00:04 PDT 2012
Hi,
Series looks good. I've a few remarks on patch 14/15 though. Also
if you're enable ssp why not also add -DFORTIFY_SOURCE=2 ?
Regards,
Hans
On 03/13/2012 02:39 PM, Daniel P. Berrange wrote:
> The current spice-gtk configure.ac script only enables
>
> -Wall -Wno-sign-compare -Werror -Wno-deprecated-declarations
>
> IMHO, this is not enough, and applications should strive to enable
> as many GCC warning options as is practical for their codebase.
> Rather than taking a whitelist approach to compiler warnings, take
> a blacklist approach - enable every GCC warning except those you
> don't want.
>
> GNULIB makes this very easy, since it has a record of all known
> GCC warnings, and some m4 macros to facilitate calculating the
> desired set. spice-gtk doesn't use GNULIB, but this particular
> m4 file is essentially standalone, so trivially copyable into
> the spice-gtk source without having to fully integrate with
> GNULIB.
>
> The first 14 patches in this series fix misc issues in the code
> which would otherwise trigger warnings. The last patch actually
> enables the warnings. It also enables some GCC runtime protection
> features, commonly used by distros in their packages
>
> On my Fedora 16 host, this results in the following compiler flags
> being used
>
> -Wall -W -Wformat-y2k -Wformat-security -Winit-self
> -Wmissing-include-dirs -Wunused -Wunknown-pragmas
> -Wstrict-aliasing -Wpointer-arith -Wcast-align -Wwrite-strings
> -Wlogical-op -Waggregate-return -Wstrict-prototypes
> -Wold-style-definition -Wmissing-noreturn
> -Wmissing-format-attribute -Wredundant-decls -Wnested-externs
> -Winvalid-pch -Wvolatile-register-var -Wdisabled-optimization
> -Wbuiltin-macro-redefined -Wmudflap -Wpacked-bitfield-compat
> -Wsync-nand -Wattributes -Wcoverage-mismatch -Wmultichar
> -Wcpp -Wdeprecated-declarations -Wdiv-by-zero
> -Wdouble-promotion -Wendif-labels -Wextra
> -Wformat-contains-nul -Wformat-extra-args
> -Wformat-zero-length -Wformat=2 -Wmultichar -Wnormalized=nfc
> -Woverflow -Wpointer-to-int-cast -Wpragmas
> -Wsuggest-attribute=const -Wsuggest-attribute=noreturn
> -Wsuggest-attribute=pure -Wtrampolines
> -Wno-missing-field-initializers -Wno-sign-compare
> -Wno-unused-parameter -Wno-format-nonliteral
> -Wjump-misses-init -Wno-format-nonliteral
> -Wframe-larger-than=1152 -fstack-protector-all
> --param=ssp-buffer-size=4 -fexceptions
> -fasynchronous-unwind-tables -fdiagnostics-show-option
> -funit-at-a-time -fipa-pure-const
> -Wno-suggest-attribute=pure -Wno-suggest-attribute=const
>
> It will automagically turn on -Werror if it sees $srcdir/.git
> so developers get hit with a hard stick, while end users
> building from tar.gz avoid it.
>
> For future usage the m4/spice-compile-warnings.m4 file is
> where the set of flags can be tuned.
>
> As new GCC releases come out, the m4/many-warnings.m4 file
> can be periodically refreshed from GNULIB GIT, to pick up
> any new warning flags.
>
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
More information about the Spice-devel
mailing list