diff options
author | Brian Behlendorf <[email protected]> | 2015-07-13 12:30:02 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2015-07-13 12:55:26 -0700 |
commit | c2d17fd891add689786c569d7b5ea66d60d69b9b (patch) | |
tree | 3f59174db0639acfb5c82066a56676d9fa17de34 /config | |
parent | 5970eb3d60346d385d0910c00ed5199b9af223c8 (diff) |
Disable gcc bool-compare warning
As of gcc version 5.1.1 a new boolean comparison warning has been
introduced. This warning is harmless but is triggered several places
in the ZFS code base. Because warnings are promoted to errors when
building with debugging enabled it is necessary to disable the warning
when using versions of gcc which automatically enabling this check.
Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'config')
-rw-r--r-- | config/Rules.am | 1 | ||||
-rw-r--r-- | config/always-no-bool-compare.m4 | 27 | ||||
-rw-r--r-- | config/kernel.m4 | 1 | ||||
-rw-r--r-- | config/zfs-build.m4 | 1 |
4 files changed, 30 insertions, 0 deletions
diff --git a/config/Rules.am b/config/Rules.am index ff2165e12..af20ddb39 100644 --- a/config/Rules.am +++ b/config/Rules.am @@ -3,6 +3,7 @@ DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h AM_LIBTOOLFLAGS = --silent AM_CFLAGS = ${DEBUG_CFLAGS} -Wall -Wstrict-prototypes AM_CFLAGS += ${NO_UNUSED_BUT_SET_VARIABLE} +AM_CFLAGS += ${NO_BOOL_COMPARE} AM_CFLAGS += -fno-strict-aliasing AM_CPPFLAGS = -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT AM_CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 diff --git a/config/always-no-bool-compare.m4 b/config/always-no-bool-compare.m4 new file mode 100644 index 000000000..316b04b50 --- /dev/null +++ b/config/always-no-bool-compare.m4 @@ -0,0 +1,27 @@ +dnl # +dnl # Check if gcc supports -Wno-bool-compare option. +dnl # +dnl # We actually invoke gcc with the -Wbool-compare option +dnl # and infer the 'no-' version does or doesn't exist based upon +dnl # the results. This is required because when checking any of +dnl # no- prefixed options gcc always returns success. +dnl # +AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE], [ + AC_MSG_CHECKING([for -Wno-bool-compare support]) + + saved_flags="$CFLAGS" + CFLAGS="$CFLAGS -Wbool-compare" + + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], + [ + NO_BOOL_COMPARE=-Wno-bool-compare + AC_MSG_RESULT([yes]) + ], + [ + NO_BOOL_COMPARE= + AC_MSG_RESULT([no]) + ]) + + CFLAGS="$saved_flags" + AC_SUBST([NO_BOOL_COMPARE]) +]) diff --git a/config/kernel.m4 b/config/kernel.m4 index 51f8a2bf7..806c5747a 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -108,6 +108,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ dnl # -Wall -fno-strict-aliasing -Wstrict-prototypes and other dnl # compiler options are added by the kernel build system. KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE" + KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_BOOL_COMPARE" KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index ccc31d59d..f93c5b5d4 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -62,6 +62,7 @@ AC_DEFUN([ZFS_AC_DEBUG_DMU_TX], [ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [ ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE + ZFS_AC_CONFIG_ALWAYS_NO_BOOL_COMPARE ]) AC_DEFUN([ZFS_AC_CONFIG], [ |