qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Remove the CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE switch


From: Paolo Bonzini
Subject: Re: [PATCH] Remove the CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE switch
Date: Thu, 9 Jul 2020 11:58:15 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0

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_)
>  {
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]