[libvirt] [PATCH] build: avoid warnings on older gcc

Daniel Veillard veillard at redhat.com
Wed Aug 15 07:54:02 UTC 2012


On Tue, Aug 14, 2012 at 04:42:24PM -0600, Eric Blake wrote:
> The previous patch pulled in a newer version of stat-time.h from
> gnulib, which tries to suppress some stupid gcc warnings (see
> <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>) by exploiting
> a feature of newer gcc.  But we still aim to compile on RHEL 6.3,
> with gcc 4.4.6 (not to mention even older devel platforms like
> RHEL 5), which fails to build thanks to our development -Werror.
> 
> It took me a while to figure out how to make our set of warnings
> smaller on older gcc without losing the benefit of the warnings
> when using newer gcc (such as the one on Fedora 17), but this
> should do the trick.
> 
> * m4/virt-compile-warnings.m4 (LIBVIRT_COMPILE_WARNINGS): Avoid
> warnings that gnulib can't silence on older gcc.
> ---
> 
> If I don't get a review by tomorrow, I will go ahead and push this
> under the build-breaker rule.
> 
>  m4/virt-compile-warnings.m4 | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
> 
> diff --git a/m4/virt-compile-warnings.m4 b/m4/virt-compile-warnings.m4
> index 9dee000..702506d 100644
> --- a/m4/virt-compile-warnings.m4
> +++ b/m4/virt-compile-warnings.m4
> @@ -58,6 +58,23 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
>      # Gnulib's stat-time.h violates this
>      dontwarn="$dontwarn -Waggregate-return"
> 
> +    # Gnulib uses '#pragma GCC diagnostic push' to silence some
> +    # warnings, but older gcc doesn't support this.
> +    AC_CACHE_VAL([lv_cv_gcc_pragma_push_works], [
> +      save_CFLAGS=$CFLAGS
> +      CFLAGS=-Wunknown-pragmas
> +      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
> +        #pragma GCC diagnostic push
> +        #pragma GCC diagnostic pop
> +      ]])],
> +      [lv_cv_gcc_pragma_push_works=yes],
> +      [lv_cv_gcc_pragma_push_works=no])
> +      CFLAGS=$save_CFLAGS])
> +    if test $lv_cv_gcc_pragma_push_works = no; then
> +      dontwarn="$dontwarn -Wmissing-prototypes"
> +      dontwarn="$dontwarn -Wmissing-declarations"
> +    fi
> +
>      # We might fundamentally need some of these disabled forever, but
>      # ideally we'd turn many of them on
>      dontwarn="$dontwarn -Wfloat-equal"

  Looks reasonable, ACK,

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list