Messages in this thread | | | From | Arnd Bergmann <> | Date | Tue, 5 May 2020 17:28:55 +0200 | Subject | Re: [PATCH] ubsan, kcsan: don't combine sanitizer with kcov |
| |
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.
Arnd
| |