History

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.

Marco Elver committed 4 years ago

Commit 116af351 parent 8bc32b31 file · +6 −0Browse files

Showing the changes to scripts (1 of 1 file). Show all

Unified · Split

scripts/Makefile.kcsan+6−0
@@ -13,6 +13,12 @@ kcsan-cflags := -fsanitize=thread -fno-optimize-sibling-calls \ · 12 unmodified lines
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))) \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 $(call cc-param,tsan-distinguish-volatile=1)14 $(call cc-param,tsan-distinguish-volatile=1)
15 15
16ifdef CONFIG_CC_IS_GCC
17# GCC started warning about operations unsupported by the TSan runtime. But
18# KCSAN != TSan, so just ignore these warnings.
19kcsan-cflags += -Wno-tsan
20endif
21
16ifndef CONFIG_KCSAN_WEAK_MEMORY22ifndef CONFIG_KCSAN_WEAK_MEMORY
17kcsan-cflags += $(call cc-option,$(call cc-param,tsan-instrument-func-entry-exit=0))23kcsan-cflags += $(call cc-option,$(call cc-param,tsan-instrument-func-entry-exit=0))
18endif24endif