2018-03-07 17:37:28

by Justin Mitchell

[permalink] [raw]
Subject: [PATCH] nfs-utils: Test if extra compiler warnings are available

Some of the latest compiler warnings flags are not available
on older compilers so this adds macros to test they are supported

Signed-off-by: Justin Mitchell <[email protected]>
---
configure.ac | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index f4eba1f..e0c9039 100644
--- a/configure.ac
+++ b/configure.ac
@@ -550,7 +550,6 @@ my_am_cflags="\
-Werror=strict-prototypes \
-Werror=missing-prototypes \
-Werror=missing-declarations \
- -Werror=format-overflow=2 \
-Werror=format=2 \
-Werror=undef \
-Werror=missing-include-dirs \
@@ -560,15 +559,29 @@ my_am_cflags="\
-Werror=return-type \
-Werror=switch \
-Werror=overflow \
- -Werror=int-conversion \
-Werror=parentheses \
- -Werror=incompatible-pointer-types \
- -Werror=misleading-indentation \
-Werror=aggregate-return \
-Werror=unused-result \
-fno-strict-aliasing \
"

+AC_DEFUN([CHECK_CCSUPPORT], [
+ my_save_cflags="$CFLAGS"
+ CFLAGS=$1
+ AC_MSG_CHECKING([whether CC supports $1])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ [AC_MSG_RESULT([yes])]
+ [$2+=$1],
+ [AC_MSG_RESULT([no])]
+ )
+ CFLAGS="$my_save_cflags"
+])
+
+CHECK_CCSUPPORT([-Werror=format-overflow=2], [my_am_cflags])
+CHECK_CCSUPPORT([-Werror=int-conversion], [my_am_cflags])
+CHECK_CCSUPPORT([-Werror=incompatible-pointer-types], [my_am_cflags])
+CHECK_CCSUPPORT([-Werror=misleading-indentation], [my_am_cflags])
+
AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])

# Make sure that $ACLOCAL_FLAGS are used during a rebuild
--
1.8.3.1






2018-03-10 16:34:07

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] nfs-utils: Test if extra compiler warnings are available



On 03/07/2018 12:37 PM, Justin Mitchell wrote:
> Some of the latest compiler warnings flags are not available
> on older compilers so this adds macros to test they are supported
>
> Signed-off-by: Justin Mitchell <[email protected]>
Committed... after a few changes...

steved.
> ---
> configure.ac | 21 +++++++++++++++++----
> 1 file changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index f4eba1f..e0c9039 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -550,7 +550,6 @@ my_am_cflags="\
> -Werror=strict-prototypes \
> -Werror=missing-prototypes \
> -Werror=missing-declarations \
> - -Werror=format-overflow=2 \
> -Werror=format=2 \
> -Werror=undef \
> -Werror=missing-include-dirs \
> @@ -560,15 +559,29 @@ my_am_cflags="\
> -Werror=return-type \
> -Werror=switch \
> -Werror=overflow \
> - -Werror=int-conversion \
> -Werror=parentheses \
> - -Werror=incompatible-pointer-types \
> - -Werror=misleading-indentation \
> -Werror=aggregate-return \
> -Werror=unused-result \
> -fno-strict-aliasing \
> "
>
> +AC_DEFUN([CHECK_CCSUPPORT], [
> + my_save_cflags="$CFLAGS"
> + CFLAGS=$1
> + AC_MSG_CHECKING([whether CC supports $1])
> + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
> + [AC_MSG_RESULT([yes])]
> + [$2+=$1],
> + [AC_MSG_RESULT([no])]
> + )
> + CFLAGS="$my_save_cflags"
> +])
> +
> +CHECK_CCSUPPORT([-Werror=format-overflow=2], [my_am_cflags])
> +CHECK_CCSUPPORT([-Werror=int-conversion], [my_am_cflags])
> +CHECK_CCSUPPORT([-Werror=incompatible-pointer-types], [my_am_cflags])
> +CHECK_CCSUPPORT([-Werror=misleading-indentation], [my_am_cflags])
> +
> AC_SUBST([AM_CFLAGS], ["$my_am_cflags"])
>
> # Make sure that $ACLOCAL_FLAGS are used during a rebuild
>