From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Peter Maydell" <peter.maydell@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>,
qemu-devel@nongnu.org, "Beraldo Leal" <bleal@redhat.com>,
"David Hildenbrand" <david@redhat.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Paolo Bonzini" <pbonzini@redhat.com>,
kvm@vger.kernel.org,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
qemu-s390x@nongnu.org,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Ilya Leoshkevich" <iii@linux.ibm.com>
Subject: Re: [PATCH v2 1/4] meson: hide tsan related warnings
Date: Fri, 16 Aug 2024 09:44:29 +0100 [thread overview]
Message-ID: <Zr8RbcFVN0cgwp-H@redhat.com> (raw)
In-Reply-To: <66f144dd-f098-443b-8a34-d68bbdecc48f@redhat.com>
On Fri, Aug 16, 2024 at 07:44:28AM +0200, Thomas Huth wrote:
> On 15/08/2024 19.54, Peter Maydell wrote:
> > On Thu, 15 Aug 2024 at 12:05, Daniel P. Berrangé <berrange@redhat.com> wrote:
> > >
> > > On Thu, Aug 15, 2024 at 11:12:39AM +0100, Peter Maydell wrote:
> > > > On Wed, 14 Aug 2024 at 23:42, Pierrick Bouvier
> > > > <pierrick.bouvier@linaro.org> wrote:
> > > > >
> > > > > 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>
> > > > > ---
> > > > > meson.build | 10 +++++++++-
> > > > > 1 file changed, 9 insertions(+), 1 deletion(-)
> > > > >
> > > > > diff --git a/meson.build b/meson.build
> > > > > index 81ecd4bae7c..52e5aa95cc0 100644
> > > > > --- a/meson.build
> > > > > +++ b/meson.build
> > > > > @@ -499,7 +499,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
> > > >
> > > > That last part sounds like a clang bug -- -Wno-foo is supposed
> > > > to not be an error on compilers that don't implement -Wfoo for
> > > > any value of foo (unless some other warning/error would also
> > > > be emitted).
> > >
> > > -Wno-foo isn't an error, but it is a warning... which we then
> > > turn into an error due to -Werror, unless we pass -Wno-unknown-warning-option
> > > to clang.
> >
> > Which is irritating if you want to be able to blanket say
> > '-Wno-silly-compiler-warning' and not see any of that
> > warning regardless of compiler version. That's why the
> > gcc behaviour is the way it is (i.e. -Wno-such-thingy
> > is neither a warning nor an error if it would be the only
> > warning/error), and if clang doesn't match it that's a shame.
>
> I thought that Clang would behave the same way as GCC, but apparently it
> does not (anymore?):
It is nothing new - clang has behaved this way wrt unknown warning flags
for as long as I remember.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2024-08-16 8:45 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-14 22:41 [PATCH v2 0/4] build qemu with gcc and tsan Pierrick Bouvier
2024-08-14 22:41 ` [PATCH v2 1/4] meson: hide tsan related warnings Pierrick Bouvier
2024-08-15 9:50 ` Thomas Huth
2024-08-15 17:57 ` Pierrick Bouvier
2024-08-15 10:12 ` Peter Maydell
2024-08-15 11:05 ` Daniel P. Berrangé
2024-08-15 17:43 ` Pierrick Bouvier
2024-08-15 17:54 ` Peter Maydell
2024-08-15 17:58 ` Pierrick Bouvier
2024-08-16 5:44 ` Thomas Huth
2024-08-16 8:44 ` Daniel P. Berrangé [this message]
2024-08-14 22:41 ` [PATCH v2 2/4] target/i386: fix build warning (gcc-12 -fsanitize=thread) Pierrick Bouvier
2024-08-14 22:47 ` Richard Henderson
2024-08-15 17:54 ` Pierrick Bouvier
2024-08-15 9:49 ` Thomas Huth
2024-08-16 10:59 ` Philippe Mathieu-Daudé
2024-08-16 17:54 ` Pierrick Bouvier
2024-08-14 22:41 ` [PATCH v2 3/4] target/s390x: " Pierrick Bouvier
2024-08-14 22:57 ` Ilya Leoshkevich
2024-08-14 22:41 ` [PATCH v2 4/4] docs/devel: update tsan build documentation Pierrick Bouvier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zr8RbcFVN0cgwp-H@redhat.com \
--to=berrange@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=bleal@redhat.com \
--cc=david@redhat.com \
--cc=iii@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=marcandre.lureau@redhat.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.