Improve compiler flag checking

This commit is contained in:
John Levon 2009-01-14 15:23:26 +00:00
parent 37abbb387e
commit d052118dae
3 changed files with 22 additions and 21 deletions

View File

@ -1,3 +1,10 @@
Wed Jan 14 15:13:17 GMT 2009 John Levon <levon@movementarian.org>
* acinclude.m4:
* m4/compiler-flags.m4: Some compilers (including GCC) don't set
the return value consistently if an erroneous option is passed on
the command line. Account for that.
Tue Jan 13 13:21:13 +0100 2009 Jim Meyering <meyering@redhat.com> Tue Jan 13 13:21:13 +0100 2009 Jim Meyering <meyering@redhat.com>
qemud.c: fix error in yesterday's change: s/X_OK/R_OK/ qemud.c: fix error in yesterday's change: s/X_OK/R_OK/

View File

@ -45,21 +45,9 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
;; ;;
esac esac
compiler_flags= COMPILER_FLAGS=
for option in $try_compiler_flags; do for option in $try_compiler_flags; do
SAVE_CFLAGS="$CFLAGS" gl_COMPILER_FLAGS($option)
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
done done
unset option unset option
unset try_compiler_flags unset try_compiler_flags
@ -85,7 +73,7 @@ AC_DEFUN([LIBVIRT_COMPILE_WARNINGS],[
fi fi
AC_MSG_RESULT($complCFLAGS) AC_MSG_RESULT($complCFLAGS)
WARN_CFLAGS="$compiler_flags $complCFLAGS" WARN_CFLAGS="$COMPILER_FLAGS $complCFLAGS"
AC_SUBST(WARN_CFLAGS) AC_SUBST(WARN_CFLAGS)
dnl Needed to keep compile quiet on python 2.4 dnl Needed to keep compile quiet on python 2.4

View File

@ -25,10 +25,16 @@ AC_DEFUN([gl_COMPILER_FLAGS],
AC_SUBST(COMPILER_FLAGS) AC_SUBST(COMPILER_FLAGS)
ac_save_CFLAGS="$CFLAGS" ac_save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $1" CFLAGS="$CFLAGS $1"
AC_TRY_COMPILE(, AC_TRY_LINK([], [], has_option=yes, has_option=no,)
[int x;], echo 'int x;' >conftest.c
COMPILER_FLAGS="$COMPILER_FLAGS $1" $CC $CFLAGS -c conftest.c 2>conftest.err
AC_MSG_RESULT(yes), ret=$?
AC_MSG_RESULT(no)) if test $ret != 0 -o -s conftest.err -o $has_option = "no"; then
CFLAGS="$ac_save_CFLAGS" AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes)
COMPILER_FLAGS="$COMPILER_FLAGS $1"
fi
CFLAGS="$ac_save_CFLAGS"
rm -f conftest*
]) ])