meson: hide tsan related warnings

When building with gcc-12 -fsanitize=thread, gcc reports some
constructions not supported with tsan.
Found on debian stable.

qemu/include/qemu/atomic.h:36:52: error: ‘atomic_thread_fence’ is not supported with ‘-fsanitize=thread’ [-Werror=tsan]
   36 | #define smp_mb()                     ({ barrier(); __atomic_thread_fence(__ATOMIC_SEQ_CST); })
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20240910174013.1433331-2-pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20241023113406.1284676-5-alex.bennee@linaro.org>
This commit is contained in:
Pierrick Bouvier 2024-10-23 12:33:52 +01:00 committed by Alex Bennée
parent e4239ee92f
commit cf6fbba724

View File

@ -538,7 +538,15 @@ if get_option('tsan')
prefix: '#include <sanitizer/tsan_interface.h>')
error('Cannot enable TSAN due to missing fiber annotation interface')
endif
qemu_cflags = ['-fsanitize=thread'] + qemu_cflags
tsan_warn_suppress = []
# gcc (>=11) will report constructions not supported by tsan:
# "error: atomic_thread_fence is not supported with -fsanitize=thread"
# https://gcc.gnu.org/gcc-11/changes.html
# However, clang does not support this warning and this triggers an error.
if cc.has_argument('-Wno-tsan')
tsan_warn_suppress = ['-Wno-tsan']
endif
qemu_cflags = ['-fsanitize=thread'] + tsan_warn_suppress + qemu_cflags
qemu_ldflags = ['-fsanitize=thread'] + qemu_ldflags
endif