Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

kcsan: Ignore GCC 11+ warnings about TSan runtime support

GCC 11 has introduced a new warning option, -Wtsan [1], to warn about
unsupported operations in the TSan runtime. But KCSAN != TSan runtime,
so none of the warnings apply.

[1] https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html

Ignore the warnings.

Currently the warning only fires in the test for __atomic_thread_fence():

kernel/kcsan/kcsan_test.c: In function ‘test_atomic_builtins’:
kernel/kcsan/kcsan_test.c:1234:17: warning: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Wtsan]
1234 | __atomic_thread_fence(__ATOMIC_SEQ_CST);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

which exists to ensure the KCSAN runtime keeps supporting the builtin
instrumentation.

Signed-off-by: Marco Elver <elver@google.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>

authored by

Marco Elver and committed by
Paul E. McKenney
116af35e 8bc32b34

+6
+6
scripts/Makefile.kcsan
··· 13 13 $(call cc-option,$(call cc-param,tsan-compound-read-before-write=1),$(call cc-option,$(call cc-param,tsan-instrument-read-before-write=1))) \ 14 14 $(call cc-param,tsan-distinguish-volatile=1) 15 15 16 + ifdef CONFIG_CC_IS_GCC 17 + # GCC started warning about operations unsupported by the TSan runtime. But 18 + # KCSAN != TSan, so just ignore these warnings. 19 + kcsan-cflags += -Wno-tsan 20 + endif 21 + 16 22 ifndef CONFIG_KCSAN_WEAK_MEMORY 17 23 kcsan-cflags += $(call cc-option,$(call cc-param,tsan-instrument-func-entry-exit=0)) 18 24 endif