svn commit: r228822 - head/sys/conf
Alexander Best
arundel at freebsd.org
Fri Dec 23 00:46:23 UTC 2011
On Fri Dec 23 11, Alexander Best wrote:
> On Fri Dec 23 11, Dimitry Andric wrote:
> > Author: dim
> > Date: Fri Dec 23 00:23:37 2011
> > New Revision: 228822
> > URL: http://svn.freebsd.org/changeset/base/228822
> >
> > Log:
> > When building the kernel with clang, it produces several warnings which
> > might be useful in some cases, but which are not severe enough to error
> > out the whole kernel build. Display them anyway, so there is at least
> > some incentive to fix them eventually.
> >
> > Start with -Wtautological-compare warnings. These usually occur when
> > people check if unsigned quantities are negative, or similar cases. To
> > clean these up would be painful, and might give problems if the base
> > type which is compared against changes to signed later on.
>
> ... or is signed on one arch, but unsigned on another. ;)
>
> any reason you add -Wno-error-tautological-compare to CWARNFLAGS seperately
> and not in the upper CWARNFLAGS?= definition? the way you implemented it here
> makes it impossible to specify custom CWARNFLAGS, where users might want to
> keep -Wtautological-compare as an error and not turn it into a warning.
>
> i already sent you the following patch, which takes a different approach
> towards the issue you're trying to solve.
>
> of course it's debatable, whether -Wno-error-tautological-compare should be
> mandatory, or not. -fno-strict-aliasing e.g. is a flag which also gets appended
> (only to COPTFLAGS) even when users set custom COPTFLAGS
>
> cheers.
> alex
>
> >
> > MFC after: 1 week
> >
> > Modified:
> > head/sys/conf/kern.mk
> >
> > Modified: head/sys/conf/kern.mk
> > ==============================================================================
> > --- head/sys/conf/kern.mk Fri Dec 23 00:19:17 2011 (r228821)
> > +++ head/sys/conf/kern.mk Fri Dec 23 00:23:37 2011 (r228822)
> > @@ -19,6 +19,10 @@ NO_WCONSTANT_CONVERSION= -Wno-constant-c
> > NO_WARRAY_BOUNDS= -Wno-array-bounds
> > NO_WSHIFT_COUNT_NEGATIVE= -Wno-shift-count-negative
> > NO_WSHIFT_COUNT_OVERFLOW= -Wno-shift-count-overflow
> > +# Several other warnings which might be useful in some cases, but not severe
> > +# enough to error out the whole kernel build. Display them anyway, so there is
> > +# some incentive to fix them eventually.
> > +CWARNFLAGS+= -Wno-error-tautological-compare
> > .endif
> >
> > #
> Index: conf/kern.mk
> ===================================================================
> --- conf/kern.mk (revision 228556)
> +++ conf/kern.mk (working copy)
> @@ -1,12 +1,24 @@
> # $FreeBSD$
>
> #
> +# Clang implies -Wtautological-compare when -Wall was specified. Since this
> +# will produce errors for valid code, we need to disable -Wtautological-compare.
> +# GCC doesn't recognize this warning, nor does it have a similar warning flag.
> +# However specifying -Wextra implies -Wtautological-compare semantics.
> +#
> +.if ${CC:T:Mclang} == "clang"
> +NO_TAUTCOMP= -Wno-tautological-compare
s/-Wno-tautological-compare/-Wno-error-tautological-compare/
sorry.
> +.else
> +NO_TAUTCOMP=
> +.endif
> +
> +#
> # Warning flags for compiling the kernel and components of the kernel:
> #
> CWARNFLAGS?= -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes \
> -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual \
> -Wundef -Wno-pointer-sign -fformat-extensions \
> - -Wmissing-include-dirs -fdiagnostics-show-option
> + -Wmissing-include-dirs -fdiagnostics-show-option ${NO_TAUTCOMP}
> #
> # The following flags are next up for working on:
> # -Wextra
More information about the svn-src-head
mailing list