mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
Remove acinclude.m4 file
Split the bit acinclude.m4 file into smaller pieces named as m4/virt-XXXXX.m4 * .gitignore: Ignore gettext related files * acinclude.m4: Delete * m4/virt-compile-warnings.m4: Checks for GCC compiler flags * m4/virt-pkgconfig-back-compat.m4: Backcompat check for pkgconfig program
This commit is contained in:
134
m4/virt-compile-warnings.m4
Normal file
134
m4/virt-compile-warnings.m4
Normal file
@@ -0,0 +1,134 @@
|
||||
dnl
|
||||
dnl Enable all known GCC compiler warnings, except for those
|
||||
dnl we can't yet cope with
|
||||
dnl
|
||||
AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
|
||||
dnl ******************************
|
||||
dnl More compiler warnings
|
||||
dnl ******************************
|
||||
|
||||
AC_ARG_ENABLE(compile-warnings,
|
||||
[AC_HELP_STRING([--enable-compile-warnings=@<:@no/yes/error@:>@],
|
||||
[Turn on compiler warnings])],,
|
||||
[enable_compile_warnings="m4_default([$1],[yes])"])
|
||||
|
||||
case "$enable_compile_warnings" in
|
||||
no)
|
||||
try_compiler_flags=""
|
||||
;;
|
||||
yes|minimum|maximum|error)
|
||||
|
||||
# List of warnings that are not relevant / wanted
|
||||
|
||||
# Don't care about C++ compiler compat
|
||||
dontwarn="$dontwarn -Wc++-compat"
|
||||
# Don't care about ancient C standard compat
|
||||
dontwarn="$dontwarn -Wtraditional"
|
||||
# Don't care about ancient C standard compat
|
||||
dontwarn="$dontwarn -Wtraditional-conversion"
|
||||
# Ignore warnings in /usr/include
|
||||
dontwarn="$dontwarn -Wsystem-headers"
|
||||
# Happy for compiler to add struct padding
|
||||
dontwarn="$dontwarn -Wpadded"
|
||||
# GCC very confused with -O2
|
||||
dontwarn="$dontwarn -Wunreachable-code"
|
||||
# Too many to deal with
|
||||
dontwarn="$dontwarn -Wconversion"
|
||||
# Too many to deal with
|
||||
dontwarn="$dontwarn -Wsign-conversion"
|
||||
# GNULIB gettext.h violates
|
||||
dontwarn="$dontwarn -Wvla"
|
||||
# Many GNULIB header violations
|
||||
dontwarn="$dontwarn -Wundef"
|
||||
# Need to allow bad cast for execve()
|
||||
dontwarn="$dontwarn -Wcast-qual"
|
||||
# We need to use long long in many places
|
||||
dontwarn="$dontwarn -Wlong-long"
|
||||
# We allow manual list of all enum cases without default:
|
||||
dontwarn="$dontwarn -Wswitch-default"
|
||||
# We allow optional default: instead of listing all enum values
|
||||
dontwarn="$dontwarn -Wswitch-enum"
|
||||
# Not a problem since we don't use -fstrict-overflow
|
||||
dontwarn="$dontwarn -Wstrict-overflow"
|
||||
# Not a problem since we don't use -funsafe-loop-optimizations
|
||||
dontwarn="$dontwarn -Wunsafe-loop-optimizations"
|
||||
# Things like virAsprintf mean we can't use this
|
||||
dontwarn="$dontwarn -Wformat-nonliteral"
|
||||
|
||||
# We might fundamentally need some of these disabled forever, but ideally
|
||||
# we'd turn many of them on
|
||||
dontwarn="$dontwarn -Wfloat-equal"
|
||||
dontwarn="$dontwarn -Wdeclaration-after-statement"
|
||||
dontwarn="$dontwarn -Wcast-qual"
|
||||
dontwarn="$dontwarn -Wconversion"
|
||||
dontwarn="$dontwarn -Wsign-conversion"
|
||||
dontwarn="$dontwarn -Wold-style-definition"
|
||||
dontwarn="$dontwarn -Wmissing-noreturn"
|
||||
dontwarn="$dontwarn -Wpacked"
|
||||
dontwarn="$dontwarn -Wunused-macros"
|
||||
dontwarn="$dontwarn -Woverlength-strings"
|
||||
dontwarn="$dontwarn -Wmissing-format-attribute"
|
||||
dontwarn="$dontwarn -Wstack-protector"
|
||||
|
||||
# Get all possible GCC warnings
|
||||
gl_MANYWARN_ALL_GCC([maybewarn])
|
||||
|
||||
# Remove the ones we don't want, blacklisted earlier
|
||||
gl_MANYWARN_COMPLEMENT([wantwarn], [$maybewarn], [$dontwarn])
|
||||
|
||||
# Check for $CC support of each warning
|
||||
for w in $wantwarn; do
|
||||
gl_WARN_ADD([$w])
|
||||
done
|
||||
|
||||
# GNULIB uses '-W' (aka -Wextra) which includes a bunch of stuff.
|
||||
# Unfortunately, this means you can't simply use '-Wsign-compare'
|
||||
# with gl_MANYWARN_COMPLEMENT
|
||||
# So we have -W enabled, and then have to explicitly turn off...
|
||||
gl_WARN_ADD([-Wno-sign-compare])
|
||||
|
||||
# GNULIB expects this to be part of -Wc++-compat, but we turn
|
||||
# that one off, so we need to manually enable this again
|
||||
gl_WARN_ADD([-Wjump-misses-init])
|
||||
|
||||
# This should be < 256 really, but with PATH_MAX everywhere
|
||||
# we have doom, even with 4096. In fact we have some functions
|
||||
# with several PATH_MAX sized variables :-( We should kill off
|
||||
# all PATH_MAX usage and then lower this limit
|
||||
gl_WARN_ADD([-Wframe-larger-than=65700])
|
||||
dnl gl_WARN_ADD([-Wframe-larger-than=4096])
|
||||
dnl gl_WARN_ADD([-Wframe-larger-than=256])
|
||||
|
||||
# Extra special flags
|
||||
gl_WARN_ADD([-Wp,-D_FORTIFY_SOURCE=2])
|
||||
dnl Fedora only uses -fstack-protector, but doesn't seem to
|
||||
dnl be great overhead in adding -fstack-protector-all instead
|
||||
dnl gl_WARN_ADD([-fstack-protector])
|
||||
gl_WARN_ADD([-fstack-protector-all])
|
||||
gl_WARN_ADD([--param=ssp-buffer-size=4])
|
||||
gl_WARN_ADD([-fexceptions])
|
||||
gl_WARN_ADD([-fasynchronous-unwind-tables])
|
||||
gl_WARN_ADD([-fdiagnostics-show-option])
|
||||
|
||||
if test "$enable_compile_warnings" = "error"
|
||||
then
|
||||
gl_WARN_ADD([-Werror])
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
|
||||
;;
|
||||
esac
|
||||
|
||||
WARN_LDFLAGS=$WARN_CFLAGS
|
||||
AC_SUBST([WARN_CFLAGS])
|
||||
AC_SUBST([WARN_LDFLAGS])
|
||||
|
||||
dnl Needed to keep compile quiet on python 2.4
|
||||
save_WARN_CFLAGS=$WARN_CFLAGS
|
||||
WARN_CFLAGS=
|
||||
gl_WARN_ADD([-Wno-redundant-decls])
|
||||
WARN_PYTHON_CFLAGS=$WARN_CFLAGS
|
||||
AC_SUBST(WARN_PYTHON_CFLAGS)
|
||||
WARN_CFLAGS=$save_WARN_CFLAGS
|
||||
])
|
||||
23
m4/virt-pkgconfig-back-compat.m4
Normal file
23
m4/virt-pkgconfig-back-compat.m4
Normal file
@@ -0,0 +1,23 @@
|
||||
dnl
|
||||
dnl To support the old pkg-config from RHEL4 vintage, we need
|
||||
dnl to define the PKG_PROG_PKG_CONFIG macro if its not already
|
||||
dnl present
|
||||
m4_ifndef([PKG_PROG_PKG_CONFIG],
|
||||
[AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
|
||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
|
||||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||
fi
|
||||
if test -n "$PKG_CONFIG"; then
|
||||
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
PKG_CONFIG=""
|
||||
fi
|
||||
fi[]dnl
|
||||
])])
|
||||
Reference in New Issue
Block a user