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