On Tue, 18 Apr 2023 at 14:24, Arnd Bergmann <arnd@xxxxxxxxxx> wrote: > > From: Arnd Bergmann <arnd@xxxxxxxx> > > Some unknown -mllvm options (i.e. those starting with the letter "h") > don't cause an error to be returned by clang, so the cc-option helper > adds the unknown hwasan-kernel-mem-intrinsic-prefix=1 flag to CFLAGS > with compilers that are new enough for hwasan but too old for this option. > > This causes a rather unreadable build failure: > > fixdep: error opening file: scripts/mod/.empty.o.d: No such file or directory > make[4]: *** [/home/arnd/arm-soc/scripts/Makefile.build:252: scripts/mod/empty.o] Error 2 > fixdep: error opening file: scripts/mod/.devicetable-offsets.s.d: No such file or directory > make[4]: *** [/home/arnd/arm-soc/scripts/Makefile.build:114: scripts/mod/devicetable-offsets.s] Error 2 > > Add a version check to only allow this option with clang-15, gcc-13 > or later versions. > > Fixes: 51287dcb00cc ("kasan: emit different calls for instrumentable memintrinsics") > Link: https://lore.kernel.org/all/CANpmjNMwYosrvqh4ogDO8rgn+SeDHM2b-shD21wTypm_6MMe=g@xxxxxxxxxxxxxx/ > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Reviewed-by: Marco Elver <elver@xxxxxxxxxx> Thanks! > --- > v2: use one-line version check for both clang and gcc, clarify changelog text > --- > scripts/Makefile.kasan | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/scripts/Makefile.kasan b/scripts/Makefile.kasan > index c186110ffa20..390658a2d5b7 100644 > --- a/scripts/Makefile.kasan > +++ b/scripts/Makefile.kasan > @@ -69,7 +69,9 @@ CFLAGS_KASAN := -fsanitize=kernel-hwaddress \ > $(instrumentation_flags) > > # Instrument memcpy/memset/memmove calls by using instrumented __hwasan_mem*(). > +ifeq ($(call clang-min-version, 150000)$(call gcc-min-version, 130000),y) > CFLAGS_KASAN += $(call cc-param,hwasan-kernel-mem-intrinsic-prefix=1) > +endif > > endif # CONFIG_KASAN_SW_TAGS > > -- > 2.39.2 > >