From: Paolo Bonzini <pbonzini@redhat.com>
To: Thomas Huth <thuth@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>,
"Daniel P . Berrange" <berrange@redhat.com>,
Eduardo Habkost <ehabkost@redhat.com>,
"qemu-trivial@nongnu.org" <qemu-trivial@nongnu.org>,
Gerd Hoffmann <kraxel@redhat.com>,
Stefan Hajnoczi <stefanha@redhat.com>,
Cleber Rosa <crosa@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [PATCH] Remove the CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE switch
Date: Thu, 9 Jul 2020 11:58:15 +0200 [thread overview]
Message-ID: <27814bf4-a370-f8c0-4820-37c027b46b03@redhat.com> (raw)
In-Reply-To: <20200709053456.4900-1-thuth@redhat.com>
On 09/07/20 07:34, Thomas Huth wrote:
> GCC supports "#pragma GCC diagnostic" since version 4.6, and
> Clang seems to support it, too, since its early versions 3.x.
> That means that our minimum required compiler versions all support
> this pragma already and we can remove the test from configure and
> all the related #ifdefs in the code.
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> configure | 29 -----------------------------
> include/ui/gtk.h | 4 ----
> include/ui/qemu-pixman.h | 4 ----
> scripts/decodetree.py | 12 ++++--------
> ui/gtk.c | 4 ----
> util/coroutine-ucontext.c | 4 ----
> 6 files changed, 4 insertions(+), 53 deletions(-)
Cc: qemu-trivial@nongnu.org
Looks good, thanks!
Paolo
> diff --git a/configure b/configure
> index ee6c3c6792..fbf119bbc0 100755
> --- a/configure
> +++ b/configure
> @@ -5703,31 +5703,6 @@ if compile_prog "" "" ; then
> linux_magic_h=yes
> fi
>
> -########################################
> -# check whether we can disable warning option with a pragma (this is needed
> -# to silence warnings in the headers of some versions of external libraries).
> -# This test has to be compiled with -Werror as otherwise an unknown pragma is
> -# only a warning.
> -#
> -# If we can't selectively disable warning in the code, disable -Werror so that
> -# the build doesn't fail anyway.
> -
> -pragma_disable_unused_but_set=no
> -cat > $TMPC << EOF
> -#pragma GCC diagnostic push
> -#pragma GCC diagnostic ignored "-Wstrict-prototypes"
> -#pragma GCC diagnostic pop
> -
> -int main(void) {
> - return 0;
> -}
> -EOF
> -if compile_prog "-Werror" "" ; then
> - pragma_diagnostic_available=yes
> -else
> - werror=no
> -fi
> -
> ########################################
> # check if we have valgrind/valgrind.h
>
> @@ -7661,10 +7636,6 @@ if test "$linux_magic_h" = "yes" ; then
> echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak
> fi
>
> -if test "$pragma_diagnostic_available" = "yes" ; then
> - echo "CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE=y" >> $config_host_mak
> -fi
> -
> if test "$valgrind_h" = "yes" ; then
> echo "CONFIG_VALGRIND_H=y" >> $config_host_mak
> fi
> diff --git a/include/ui/gtk.h b/include/ui/gtk.h
> index d1b230848a..eaeb450f91 100644
> --- a/include/ui/gtk.h
> +++ b/include/ui/gtk.h
> @@ -1,15 +1,11 @@
> #ifndef UI_GTK_H
> #define UI_GTK_H
>
> -#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
> /* Work around an -Wstrict-prototypes warning in GTK headers */
> #pragma GCC diagnostic push
> #pragma GCC diagnostic ignored "-Wstrict-prototypes"
> -#endif
> #include <gtk/gtk.h>
> -#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
> #pragma GCC diagnostic pop
> -#endif
>
> #include <gdk/gdkkeysyms.h>
>
> diff --git a/include/ui/qemu-pixman.h b/include/ui/qemu-pixman.h
> index 3b7cf70157..87737a6f16 100644
> --- a/include/ui/qemu-pixman.h
> +++ b/include/ui/qemu-pixman.h
> @@ -7,14 +7,10 @@
> #define QEMU_PIXMAN_H
>
> /* pixman-0.16.0 headers have a redundant declaration */
> -#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
> #pragma GCC diagnostic push
> #pragma GCC diagnostic ignored "-Wredundant-decls"
> -#endif
> #include <pixman.h>
> -#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
> #pragma GCC diagnostic pop
> -#endif
>
> /*
> * pixman image formats are defined to be native endian,
> diff --git a/scripts/decodetree.py b/scripts/decodetree.py
> index 530d41ca62..694757b6c2 100755
> --- a/scripts/decodetree.py
> +++ b/scripts/decodetree.py
> @@ -1327,12 +1327,10 @@ def main():
> # but we can't tell which ones. Prevent issues from the compiler by
> # suppressing redundant declaration warnings.
> if anyextern:
> - output("#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE\n",
> - "# pragma GCC diagnostic push\n",
> - "# pragma GCC diagnostic ignored \"-Wredundant-decls\"\n",
> - "# ifdef __clang__\n"
> + output("#pragma GCC diagnostic push\n",
> + "#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n",
> + "#ifdef __clang__\n"
> "# pragma GCC diagnostic ignored \"-Wtypedef-redefinition\"\n",
> - "# endif\n",
> "#endif\n\n")
>
> out_pats = {}
> @@ -1347,9 +1345,7 @@ def main():
> output('\n')
>
> if anyextern:
> - output("#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE\n",
> - "# pragma GCC diagnostic pop\n",
> - "#endif\n\n")
> + output("#pragma GCC diagnostic pop\n\n")
>
> for n in sorted(formats.keys()):
> f = formats[n]
> diff --git a/ui/gtk.c b/ui/gtk.c
> index d4b49bd7da..b0cc08ad6d 100644
> --- a/ui/gtk.c
> +++ b/ui/gtk.c
> @@ -1996,14 +1996,10 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s, VirtualConsole *vc,
> * proper replacement (native opengl support) is only
> * available in 3.16+. Silence the warning if possible.
> */
> -#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
> #pragma GCC diagnostic push
> #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
> -#endif
> gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE);
> -#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
> #pragma GCC diagnostic pop
> -#endif
> vc->gfx.dcl.ops = &dcl_egl_ops;
> }
> } else
> diff --git a/util/coroutine-ucontext.c b/util/coroutine-ucontext.c
> index f0b66320e1..a4e6446ed9 100644
> --- a/util/coroutine-ucontext.c
> +++ b/util/coroutine-ucontext.c
> @@ -237,19 +237,15 @@ Coroutine *qemu_coroutine_new(void)
> }
>
> #ifdef CONFIG_VALGRIND_H
> -#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && !defined(__clang__)
> /* Work around an unused variable in the valgrind.h macro... */
> #pragma GCC diagnostic push
> #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
> -#endif
> static inline void valgrind_stack_deregister(CoroutineUContext *co)
> {
> VALGRIND_STACK_DEREGISTER(co->valgrind_stack_id);
> }
> -#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && !defined(__clang__)
> #pragma GCC diagnostic pop
> #endif
> -#endif
>
> void qemu_coroutine_delete(Coroutine *co_)
> {
>
next prev parent reply other threads:[~2020-07-09 9:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-09 5:34 [PATCH] Remove the CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE switch Thomas Huth
2020-07-09 8:39 ` Daniel P. Berrangé
2020-07-09 9:58 ` Paolo Bonzini [this message]
2020-07-09 10:51 ` Stefan Hajnoczi
2020-07-09 10:59 ` Thomas Huth
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=27814bf4-a370-f8c0-4820-37c027b46b03@redhat.com \
--to=pbonzini@redhat.com \
--cc=berrange@redhat.com \
--cc=crosa@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kraxel@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=rth@twiddle.net \
--cc=stefanha@redhat.com \
--cc=thuth@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).