Remove the CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE switch

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.

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20200710045515.25986-1-thuth@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Thomas Huth 2020-07-08 20:19:44 +02:00
parent 590246ead7
commit 7aa12aa215
6 changed files with 6 additions and 51 deletions

29
configure vendored
View File

@ -5728,31 +5728,6 @@ if compile_prog "" "" ; then
linux_magic_h=yes linux_magic_h=yes
fi 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 # check if we have valgrind/valgrind.h
@ -7689,10 +7664,6 @@ if test "$linux_magic_h" = "yes" ; then
echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak echo "CONFIG_LINUX_MAGIC_H=y" >> $config_host_mak
fi fi
if test "$pragma_diagnostic_available" = "yes" ; then
echo "CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE=y" >> $config_host_mak
fi
if test "$valgrind_h" = "yes" ; then if test "$valgrind_h" = "yes" ; then
echo "CONFIG_VALGRIND_H=y" >> $config_host_mak echo "CONFIG_VALGRIND_H=y" >> $config_host_mak
fi fi

View File

@ -1,15 +1,11 @@
#ifndef UI_GTK_H #ifndef UI_GTK_H
#define UI_GTK_H #define UI_GTK_H
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
/* Work around an -Wstrict-prototypes warning in GTK headers */ /* Work around an -Wstrict-prototypes warning in GTK headers */
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstrict-prototypes" #pragma GCC diagnostic ignored "-Wstrict-prototypes"
#endif
#include <gtk/gtk.h> #include <gtk/gtk.h>
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif
#include <gdk/gdkkeysyms.h> #include <gdk/gdkkeysyms.h>

View File

@ -7,14 +7,10 @@
#define QEMU_PIXMAN_H #define QEMU_PIXMAN_H
/* pixman-0.16.0 headers have a redundant declaration */ /* pixman-0.16.0 headers have a redundant declaration */
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wredundant-decls" #pragma GCC diagnostic ignored "-Wredundant-decls"
#endif
#include <pixman.h> #include <pixman.h>
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif
/* /*
* pixman image formats are defined to be native endian, * pixman image formats are defined to be native endian,

View File

@ -1327,12 +1327,10 @@ def main():
# but we can't tell which ones. Prevent issues from the compiler by # but we can't tell which ones. Prevent issues from the compiler by
# suppressing redundant declaration warnings. # suppressing redundant declaration warnings.
if anyextern: if anyextern:
output("#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE\n", output("#pragma GCC diagnostic push\n",
"# pragma GCC diagnostic push\n", "#pragma GCC diagnostic ignored \"-Wredundant-decls\"\n",
"# pragma GCC diagnostic ignored \"-Wredundant-decls\"\n", "#ifdef __clang__\n"
"# ifdef __clang__\n"
"# pragma GCC diagnostic ignored \"-Wtypedef-redefinition\"\n", "# pragma GCC diagnostic ignored \"-Wtypedef-redefinition\"\n",
"# endif\n",
"#endif\n\n") "#endif\n\n")
out_pats = {} out_pats = {}
@ -1347,9 +1345,7 @@ def main():
output('\n') output('\n')
if anyextern: if anyextern:
output("#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE\n", output("#pragma GCC diagnostic pop\n\n")
"# pragma GCC diagnostic pop\n",
"#endif\n\n")
for n in sorted(formats.keys()): for n in sorted(formats.keys()):
f = formats[n] f = formats[n]

View File

@ -1996,14 +1996,10 @@ static GSList *gd_vc_gfx_init(GtkDisplayState *s, VirtualConsole *vc,
* proper replacement (native opengl support) is only * proper replacement (native opengl support) is only
* available in 3.16+. Silence the warning if possible. * available in 3.16+. Silence the warning if possible.
*/ */
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations" #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE); gtk_widget_set_double_buffered(vc->gfx.drawing_area, FALSE);
#ifdef CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif
vc->gfx.dcl.ops = &dcl_egl_ops; vc->gfx.dcl.ops = &dcl_egl_ops;
} }
} else } else

View File

@ -251,8 +251,8 @@ Coroutine *qemu_coroutine_new(void)
} }
#ifdef CONFIG_VALGRIND_H #ifdef CONFIG_VALGRIND_H
#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && !defined(__clang__)
/* Work around an unused variable in the valgrind.h macro... */ /* Work around an unused variable in the valgrind.h macro... */
#if !defined(__clang__)
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-but-set-variable" #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#endif #endif
@ -260,7 +260,7 @@ static inline void valgrind_stack_deregister(CoroutineUContext *co)
{ {
VALGRIND_STACK_DEREGISTER(co->valgrind_stack_id); VALGRIND_STACK_DEREGISTER(co->valgrind_stack_id);
} }
#if defined(CONFIG_PRAGMA_DIAGNOSTIC_AVAILABLE) && !defined(__clang__) #if !defined(__clang__)
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif
#endif #endif