mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-07 01:49:09 +00:00
m4: Update manywarnings from gnulib
Fixes these noisy errors on Fedora 21: gcc: warning: switch '-Wmudflap' is no longer supported
This commit is contained in:
parent
e270edcbfd
commit
39733d25f5
@ -1,5 +1,5 @@
|
||||
# manywarnings.m4 serial 3
|
||||
dnl Copyright (C) 2008-2012 Free Software Foundation, Inc.
|
||||
# manywarnings.m4 serial 7
|
||||
dnl Copyright (C) 2008-2014 Free Software Foundation, Inc.
|
||||
dnl This file is free software; the Free Software Foundation
|
||||
dnl gives unlimited permission to copy and/or distribute it,
|
||||
dnl with or without modifications, as long as this notice is preserved.
|
||||
@ -35,14 +35,12 @@ AC_DEFUN([gl_MANYWARN_COMPLEMENT],
|
||||
# make sure your gcc understands it.
|
||||
AC_DEFUN([gl_MANYWARN_ALL_GCC],
|
||||
[
|
||||
dnl First, check if -Wno-missing-field-initializers is needed.
|
||||
dnl -Wmissing-field-initializers is implied by -W, but that issues
|
||||
dnl warnings with GCC version before 4.7, for the common idiom
|
||||
dnl of initializing types on the stack to zero, using { 0, }
|
||||
dnl First, check for some issues that only occur when combining multiple
|
||||
dnl gcc warning categories.
|
||||
AC_REQUIRE([AC_PROG_CC])
|
||||
if test -n "$GCC"; then
|
||||
|
||||
dnl First, check -W -Werror -Wno-missing-field-initializers is supported
|
||||
dnl Check if -W -Werror -Wno-missing-field-initializers is supported
|
||||
dnl with the current $CC $CFLAGS $CPPFLAGS.
|
||||
AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported])
|
||||
AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [
|
||||
@ -77,108 +75,171 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC],
|
||||
])
|
||||
AC_MSG_RESULT([$gl_cv_cc_nomfi_needed])
|
||||
fi
|
||||
|
||||
dnl Next, check if -Werror -Wuninitialized is useful with the
|
||||
dnl user's choice of $CFLAGS; some versions of gcc warn that it
|
||||
dnl has no effect if -O is not also used
|
||||
AC_MSG_CHECKING([whether -Wuninitialized is supported])
|
||||
AC_CACHE_VAL([gl_cv_cc_uninitialized_supported], [
|
||||
gl_save_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -Werror -Wuninitialized"
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]], [[]])],
|
||||
[gl_cv_cc_uninitialized_supported=yes],
|
||||
[gl_cv_cc_uninitialized_supported=no])
|
||||
CFLAGS="$gl_save_CFLAGS"])
|
||||
AC_MSG_RESULT([$gl_cv_cc_uninitialized_supported])
|
||||
|
||||
fi
|
||||
|
||||
# List all gcc warning categories.
|
||||
# To compare this list to your installed GCC's, run this Bash command:
|
||||
#
|
||||
# comm -3 \
|
||||
# <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \
|
||||
# <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort |
|
||||
# grep -v -x -f <(
|
||||
# awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec))
|
||||
|
||||
gl_manywarn_set=
|
||||
for gl_manywarn_item in \
|
||||
-Wall \
|
||||
-W \
|
||||
-Wformat-y2k \
|
||||
-Wformat-nonliteral \
|
||||
-Wformat-security \
|
||||
-Winit-self \
|
||||
-Wmissing-include-dirs \
|
||||
-Wswitch-default \
|
||||
-Wswitch-enum \
|
||||
-Wunused \
|
||||
-Wunknown-pragmas \
|
||||
-Wstrict-aliasing \
|
||||
-Wstrict-overflow \
|
||||
-Wsystem-headers \
|
||||
-Wfloat-equal \
|
||||
-Wtraditional \
|
||||
-Wtraditional-conversion \
|
||||
-Wdeclaration-after-statement \
|
||||
-Wundef \
|
||||
-Wshadow \
|
||||
-Wunsafe-loop-optimizations \
|
||||
-Wpointer-arith \
|
||||
-Wbad-function-cast \
|
||||
-Wc++-compat \
|
||||
-Wcast-qual \
|
||||
-Wcast-align \
|
||||
-Wwrite-strings \
|
||||
-Wconversion \
|
||||
-Wsign-conversion \
|
||||
-Wlogical-op \
|
||||
-Waggregate-return \
|
||||
-Wstrict-prototypes \
|
||||
-Wold-style-definition \
|
||||
-Wmissing-prototypes \
|
||||
-Wmissing-declarations \
|
||||
-Wmissing-noreturn \
|
||||
-Wmissing-format-attribute \
|
||||
-Wpacked \
|
||||
-Wpadded \
|
||||
-Wredundant-decls \
|
||||
-Wnested-externs \
|
||||
-Wunreachable-code \
|
||||
-Winline \
|
||||
-Winvalid-pch \
|
||||
-Wlong-long \
|
||||
-Wvla \
|
||||
-Wvolatile-register-var \
|
||||
-Wdisabled-optimization \
|
||||
-Wstack-protector \
|
||||
-Woverlength-strings \
|
||||
-Wbuiltin-macro-redefined \
|
||||
-Wmudflap \
|
||||
-Wpacked-bitfield-compat \
|
||||
-Wsync-nand \
|
||||
; do
|
||||
gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
|
||||
done
|
||||
# The following are not documented in the manual but are included in
|
||||
# output from gcc --help=warnings.
|
||||
for gl_manywarn_item in \
|
||||
-Wattributes \
|
||||
-Wcoverage-mismatch \
|
||||
-Wmultichar \
|
||||
-Wunused-macros \
|
||||
; do
|
||||
gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
|
||||
done
|
||||
# More warnings from gcc 4.6.2 --help=warnings.
|
||||
for gl_manywarn_item in \
|
||||
-Wabi \
|
||||
-Waddress \
|
||||
-Waggressive-loop-optimizations \
|
||||
-Wall \
|
||||
-Warray-bounds \
|
||||
-Wattributes \
|
||||
-Wbad-function-cast \
|
||||
-Wbuiltin-macro-redefined \
|
||||
-Wcast-align \
|
||||
-Wchar-subscripts \
|
||||
-Wclobbered \
|
||||
-Wcomment \
|
||||
-Wcomments \
|
||||
-Wcoverage-mismatch \
|
||||
-Wcpp \
|
||||
-Wdate-time \
|
||||
-Wdeprecated \
|
||||
-Wdeprecated-declarations \
|
||||
-Wdisabled-optimization \
|
||||
-Wdiv-by-zero \
|
||||
-Wdouble-promotion \
|
||||
-Wempty-body \
|
||||
-Wendif-labels \
|
||||
-Wenum-compare \
|
||||
-Wextra \
|
||||
-Wformat-contains-nul \
|
||||
-Wformat-extra-args \
|
||||
-Wformat-nonliteral \
|
||||
-Wformat-security \
|
||||
-Wformat-y2k \
|
||||
-Wformat-zero-length \
|
||||
-Wformat=2 \
|
||||
-Wfree-nonheap-object \
|
||||
-Wignored-qualifiers \
|
||||
-Wimplicit \
|
||||
-Wimplicit-function-declaration \
|
||||
-Wimplicit-int \
|
||||
-Winit-self \
|
||||
-Winline \
|
||||
-Wint-to-pointer-cast \
|
||||
-Winvalid-memory-model \
|
||||
-Winvalid-pch \
|
||||
-Wjump-misses-init \
|
||||
-Wlogical-op \
|
||||
-Wmain \
|
||||
-Wmaybe-uninitialized \
|
||||
-Wmissing-braces \
|
||||
-Wmissing-declarations \
|
||||
-Wmissing-field-initializers \
|
||||
-Wmissing-include-dirs \
|
||||
-Wmissing-parameter-type \
|
||||
-Wmissing-prototypes \
|
||||
-Wmultichar \
|
||||
-Wnormalized=nfc \
|
||||
-Wnarrowing \
|
||||
-Wnested-externs \
|
||||
-Wnonnull \
|
||||
-Wold-style-declaration \
|
||||
-Wold-style-definition \
|
||||
-Wopenmp-simd \
|
||||
-Woverflow \
|
||||
-Woverlength-strings \
|
||||
-Woverride-init \
|
||||
-Wpacked \
|
||||
-Wpacked-bitfield-compat \
|
||||
-Wparentheses \
|
||||
-Wpointer-arith \
|
||||
-Wpointer-sign \
|
||||
-Wpointer-to-int-cast \
|
||||
-Wpragmas \
|
||||
-Wreturn-local-addr \
|
||||
-Wreturn-type \
|
||||
-Wsequence-point \
|
||||
-Wshadow \
|
||||
-Wsizeof-pointer-memaccess \
|
||||
-Wstack-protector \
|
||||
-Wstrict-aliasing \
|
||||
-Wstrict-overflow \
|
||||
-Wstrict-prototypes \
|
||||
-Wsuggest-attribute=const \
|
||||
-Wsuggest-attribute=format \
|
||||
-Wsuggest-attribute=noreturn \
|
||||
-Wsuggest-attribute=pure \
|
||||
-Wswitch \
|
||||
-Wswitch-default \
|
||||
-Wsync-nand \
|
||||
-Wsystem-headers \
|
||||
-Wtrampolines \
|
||||
-Wtrigraphs \
|
||||
-Wtype-limits \
|
||||
-Wuninitialized \
|
||||
-Wunknown-pragmas \
|
||||
-Wunsafe-loop-optimizations \
|
||||
-Wunused \
|
||||
-Wunused-but-set-parameter \
|
||||
-Wunused-but-set-variable \
|
||||
-Wunused-function \
|
||||
-Wunused-label \
|
||||
-Wunused-local-typedefs \
|
||||
-Wunused-macros \
|
||||
-Wunused-parameter \
|
||||
-Wunused-result \
|
||||
-Wunused-value \
|
||||
-Wunused-variable \
|
||||
-Wvarargs \
|
||||
-Wvariadic-macros \
|
||||
-Wvector-operation-performance \
|
||||
-Wvla \
|
||||
-Wvolatile-register-var \
|
||||
-Wwrite-strings \
|
||||
\
|
||||
; do
|
||||
gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item"
|
||||
done
|
||||
|
||||
# Disable the missing-field-initializers warning if needed
|
||||
# gcc --help=warnings outputs an unusual form for this option; list
|
||||
# it here so that the above 'comm' command doesn't report a false match.
|
||||
gl_manywarn_set="$gl_manywarn_set -Wnormalized=nfc"
|
||||
|
||||
# These are needed for older GCC versions.
|
||||
if test -n "$GCC"; then
|
||||
case `($CC --version) 2>/dev/null` in
|
||||
'gcc (GCC) '[[0-3]].* | \
|
||||
'gcc (GCC) '4.[[0-7]].*)
|
||||
gl_manywarn_set="$gl_manywarn_set -fdiagnostics-show-option"
|
||||
gl_manywarn_set="$gl_manywarn_set -funit-at-a-time"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Disable specific options as needed.
|
||||
if test "$gl_cv_cc_nomfi_needed" = yes; then
|
||||
gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers"
|
||||
fi
|
||||
|
||||
if test "$gl_cv_cc_uninitialized_supported" = no; then
|
||||
gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized"
|
||||
fi
|
||||
|
||||
$1=$gl_manywarn_set
|
||||
])
|
||||
|
||||
Loading…
Reference in New Issue
Block a user