[PATCH util-macros v2 2/6] Add XORG_TESTSET_CFLAG which can be used to test what flags the compiler supports

Gaetan Nadon memsize at videotron.ca
Sat Nov 5 17:42:13 PDT 2011


On Thu, 2011-11-03 at 01:19 -0700, Jeremy Huddleston wrote:

> Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>
> ---
>  xorg-macros.m4.in |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 52 insertions(+), 0 deletions(-)
> 
> diff --git a/xorg-macros.m4.in b/xorg-macros.m4.in
> index 534afba..1ece326 100644
> --- a/xorg-macros.m4.in
> +++ b/xorg-macros.m4.in
> @@ -1378,6 +1378,58 @@ AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"])
>  AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"])
>  ]) # XORG_COMPILER_BRAND
>  
> +# XORG_TESTSET_CFLAG(<variable>, <flag>, [<alternative flag>, ...])
> +# ---------------
> +# Minimum version: 1.16.0
> +#
> +# Test if the compiler works when passed the given flag as a command line argument.
> +# If it succeeds, the flag is appeneded to the given variable.  If not, it tries the
> +# next flag in the list until there are no more options.
> +#
> +# Note that this does not guarantee that the compiler supports the flag as some
> +# compilers will simply ignore arguments that they do not understand, but we do
> +# attempt to weed out false positives by using -Werror=unknown-warning-option
> +#
> +AC_DEFUN([XORG_TESTSET_CFLAG], [
> +AC_REQUIRE([AC_PROG_CC_C99])
> +m4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])])
> +m4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])])
> +
> +xorg_testset_save_CFLAGS="$CFLAGS"
> +
> +if test "x$xorg_testset_unknown_warning_option" = "x" ; then
> +	CFLAGS="$CFLAGS -Werror=unknown-warning-option"
> +	AC_MSG_CHECKING([if $CC supports -Werror=unknown-warning-option])
> +	AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
> +	                  [xorg_testset_unknown_warning_option=yes],
> +	                  [xorg_testset_unknown_warning_option=no])
> +	AC_MSG_RESULT([$xorg_testset_unknown_warning_option])
> +	CFLAGS="$xorg_testset_save_CFLAGS"
> +fi
> +
> +found="no"
> +m4_foreach([flag], m4_cdr($@), [
> +	if test $found = "no" ; then
> +		if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then
> +			CFLAGS="$CFLAGS -Werror=unknown-warning-option ]flag["
> +		else
> +			CFLAGS="$CFLAGS ]flag["
> +		fi
> +
> +		AC_MSG_CHECKING([if $CC supports ]flag[])
> +		AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])],
> +		                  [supported=yes], [supported=no])
> +		AC_MSG_RESULT([$supported])
> +		CFLAGS="$xorg_testset_save_CFLAGS"
> +
> +		if test "$supported" = "yes" ; then
> +			$1="$$1 ]flag["
> +			found="yes"
> +		fi
> +	fi
> +])
> +]) # XORG_TESTSET_CFLAG
> +
>  # XORG_CWARNFLAGS
>  # ---------------
>  # Minimum version: 1.2.0


I am not sure if some of the flags I tested make sense, for example:

        checking if gcc -std=gnu99 supports "-!!!"... yes
        checking if gcc -std=gnu99 supports "-12345"... yes

Reviewed-by: Gaetan Nadon <memsize at videotron.ca>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.x.org/archives/xorg-devel/attachments/20111105/352b9c59/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg-devel/attachments/20111105/352b9c59/attachment.pgp>


More information about the xorg-devel mailing list