Re: [PATCH -tip v3 03/11] kcsan: Support distinguishing volatile accesses
From: Marco Elver
Date: Fri May 22 2020 - 06:34:15 EST
On Fri, 22 May 2020 at 12:26, Borislav Petkov <bp@xxxxxxxxx> wrote:
>
> On Thu, May 21, 2020 at 04:20:39PM +0200, Marco Elver wrote:
> > diff --git a/scripts/Makefile.kcsan b/scripts/Makefile.kcsan
> > index 20337a7ecf54..75d2942b9437 100644
> > --- a/scripts/Makefile.kcsan
> > +++ b/scripts/Makefile.kcsan
> > @@ -9,7 +9,10 @@ else
> > cc-param = --param -$(1)
> > endif
> >
> > +# Keep most options here optional, to allow enabling more compilers if absence
> > +# of some options does not break KCSAN nor causes false positive reports.
> > CFLAGS_KCSAN := -fsanitize=thread \
> > - $(call cc-option,$(call cc-param,tsan-instrument-func-entry-exit=0) -fno-optimize-sibling-calls)
> > + $(call cc-option,$(call cc-param,tsan-instrument-func-entry-exit=0) -fno-optimize-sibling-calls) \
> > + $(call cc-param,tsan-distinguish-volatile=1)
>
> gcc 9 doesn't like this:
>
> cc1: error: invalid --param name â-tsan-distinguish-volatileâ
> make[1]: *** [scripts/Makefile.build:100: scripts/mod/devicetable-offsets.s] Error 1
> make[1]: *** Waiting for unfinished jobs....
> cc1: error: invalid --param name â-tsan-distinguish-volatileâ
> make[1]: *** [scripts/Makefile.build:267: scripts/mod/empty.o] Error 1
> make: *** [Makefile:1141: prepare0] Error 2
> make: *** Waiting for unfinished jobs....
>
> git grep "tsan-distinguish-volatile" in gcc's git doesn't give anything.
>
> Hmm.
Yeah, my patch for GCC is still pending. But we probably need more
fixes for GCC, before we can re-enable it.
We restrict supported compilers later in the series:
https://lore.kernel.org/lkml/20200521142047.169334-7-elver@xxxxxxxxxx/
More background is also in the cover letter:
https://lore.kernel.org/lkml/20200521142047.169334-1-elver@xxxxxxxxxx/
Thanks,
-- Marco