[libvirt] [PATCH] Improve compiler flag checking
Daniel P. Berrange
berrange at redhat.com
Wed Jan 14 14:53:52 UTC 2009
On Sat, Dec 20, 2008 at 08:49:01AM -0800, john.levon at sun.com wrote:
> # HG changeset patch
> # User john.levon at sun.com
> # Date 1229789393 28800
> # Node ID a158bbc6df6fb8b15af875d08e73cfd3ca75f907
> # Parent 34706075e6c801cd9532490c11b20b64dfcf464b
> Improve compiler flag checking
>
> Some compilers (including GCC) don't set the return value consistently
> if an erroneous option is passed on the command line. Account for that.
>
> Signed-off-by: John Levon <john.levon at sun.com>
ACK to this patch.
> diff --git a/acinclude.m4 b/acinclude.m4
> --- a/acinclude.m4
> +++ b/acinclude.m4
> @@ -45,21 +45,9 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
> ;;
> esac
>
> - compiler_flags=
> + COMPILER_FLAGS=
> for option in $try_compiler_flags; do
> - SAVE_CFLAGS="$CFLAGS"
> - CFLAGS="$CFLAGS $option"
> - AC_MSG_CHECKING([whether gcc understands $option])
> - AC_TRY_LINK([], [],
> - has_option=yes,
> - has_option=no,)
> - CFLAGS="$SAVE_CFLAGS"
> - AC_MSG_RESULT($has_option)
> - if test $has_option = yes; then
> - compiler_flags="$compiler_flags $option"
> - fi
> - unset has_option
> - unset SAVE_CFLAGS
> + gl_COMPILER_FLAGS($option)
> done
> unset option
> unset try_compiler_flags
> @@ -85,7 +73,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
> fi
> AC_MSG_RESULT($complCFLAGS)
>
> - WARN_CFLAGS="$compiler_flags $complCFLAGS"
> + WARN_CFLAGS="$COMPILER_FLAGS $complCFLAGS"
> AC_SUBST(WARN_CFLAGS)
>
> dnl Needed to keep compile quiet on python 2.4
> diff --git a/m4/compiler-flags.m4 b/m4/compiler-flags.m4
> --- a/m4/compiler-flags.m4
> +++ b/m4/compiler-flags.m4
> @@ -25,10 +25,16 @@ AC_DEFUN([gl_COMPILER_FLAGS],
> AC_SUBST(COMPILER_FLAGS)
> ac_save_CFLAGS="$CFLAGS"
> CFLAGS="$CFLAGS $1"
> - AC_TRY_COMPILE(,
> - [int x;],
> - COMPILER_FLAGS="$COMPILER_FLAGS $1"
> - AC_MSG_RESULT(yes),
> - AC_MSG_RESULT(no))
> - CFLAGS="$ac_save_CFLAGS"
> + AC_TRY_LINK([], [], has_option=yes, has_option=no,)
> + echo 'int x;' >conftest.c
> + $CC $CFLAGS -c conftest.c 2>conftest.err
> + ret=$?
> + if test $ret != 0 -o -s conftest.err -o $has_option = "no"; then
> + AC_MSG_RESULT(no)
> + else
> + AC_MSG_RESULT(yes)
> + COMPILER_FLAGS="$COMPILER_FLAGS $1"
> + fi
> + CFLAGS="$ac_save_CFLAGS"
> + rm -f conftest*
> ])
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list