On Sun, Oct 04, 2020 at 12:08:47AM -0700, Nathan Chancellor wrote: > On Fri, Oct 02, 2020 at 03:15:24PM -0700, Kees Cook wrote: > > Instead of doing if/endif blocks with cc-option calls in the UBSAN > > Makefile, move all the tests into Kconfig and use the Makefile to > > collect the results. > > > > Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> > > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> > > Link: https://lore.kernel.org/lkml/CAHk-=wjPasyJrDuwDnpHJS2TuQfExwe=px-SzLeN8GFMAQJPmQ@xxxxxxxxxxxxxx/ > > I tested menuconfig to make sure all the flags when CONFIG_UBSAN_MISC is > flipped. > > Reviewed-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > Tested-by: Nathan Chancellor <natechancellor@xxxxxxxxx> Awesome, thank you! > One comment below. > > > [...] > > diff --git a/scripts/Makefile.ubsan b/scripts/Makefile.ubsan > > index 9716dab06bc7..72862da47baf 100644 > > --- a/scripts/Makefile.ubsan > > +++ b/scripts/Makefile.ubsan > > @@ -1,37 +1,21 @@ > > # SPDX-License-Identifier: GPL-2.0 > > > > -export CFLAGS_UBSAN := > > +# -fsanitize=* options makes GCC less smart than usual and > > +# increases the number of 'maybe-uninitialized' false-positives. > > +ubsan-cflags-$(CONFIG_UBSAN) += $(call cc-disable-warning, maybe-uninitialized) > > Is this just to force -Wno-maybe-uninitialized even when W=2? > -Wmaybe-uninitialized is already disabled globally after > commit 78a5255ffb6a ("Stop the ad-hoc games with > -Wno-maybe-initialized"). I feel like it might be worth a comment in > case that changes in the future but maybe that is a bit much. > > > [...] > > - # -fsanitize=* options makes GCC less smart than usual and > > - # increase number of 'maybe-uninitialized false-positives > > - CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) It's just a direct copying of the existing logic, but into the new "ubsan-cflags-y" style. But yes, AFAICT, that was the intent when it was added in commit a76bcf557ef4 ("Kbuild: enable -Wmaybe-uninitialized warning for "make W=1""). So for this patch, I kept the logic as it was. -- Kees Cook