Messages in this thread | | | From | Marco Elver <> | Date | Tue, 5 May 2020 19:07:22 +0200 | Subject | Re: [PATCH] ubsan, kcsan: don't combine sanitizer with kcov |
| |
On Tue, 5 May 2020 at 17:29, Arnd Bergmann <arnd@arndb.de> wrote: > > On Tue, May 5, 2020 at 5:20 PM 'Marco Elver' via Clang Built Linux > <clang-built-linux@googlegroups.com> wrote: > > > > --- a/lib/Kconfig.kcsan > > > +++ b/lib/Kconfig.kcsan > > > @@ -5,7 +5,7 @@ config HAVE_ARCH_KCSAN > > > > > > menuconfig KCSAN > > > bool "KCSAN: dynamic data race detector" > > > - depends on HAVE_ARCH_KCSAN && DEBUG_KERNEL && !KASAN && !KCOV > > > + depends on HAVE_ARCH_KCSAN && DEBUG_KERNEL && !KASAN && !(KCOV > > > && CC_IS_CLANG) > > > > I wonder if we can just add this: depends on !(KCOV && > > !$(cc-option,-Werror -fsanitize=thread -fsanitize-coverage=trace-pc)) > > > > Similarly for UBSAN. > > > > That way, once Clang supports this combination, we don't need another > > patch to fix it. > > Good idea. It probably get a little more complicated because kcov uses > different flags depending on other options: > > kcov-flags-$(CONFIG_CC_HAS_SANCOV_TRACE_PC) += -fsanitize-coverage=trace-pc > kcov-flags-$(CONFIG_KCOV_ENABLE_COMPARISONS) += -fsanitize-coverage=trace-cmp > kcov-flags-$(CONFIG_GCC_PLUGIN_SANCOV) += > -fplugin=$(objtree)/scripts/gcc-plugins/sancov_plugin.so > > Do you have any preference on whether we should make KCSAN or KCOV > conditional in this case? It may be easier to move the compiletime check > into CONFIG_KCOV_ENABLE_COMPARISONS and > CONFIG_CC_HAS_SANCOV_TRACE_PC.
Whichever is easier. I think if we have a config that tries to set both, but then one gets silently disabled, it likely already breaks the usecase. It'd be nice if there was a way to warn about only one being selected so that a developer can then go back and choose the one they're most interested in (or change compiler).
Thanks, -- Marco
| |