svn commit: r228822 - head/sys/conf
Alexander Best
arundel at freebsd.org
Fri Dec 23 00:43:41 UTC 2011
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
>
> #
-------------- next part --------------
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
+.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-all
mailing list