diff --git a/config/Rules.am b/config/Rules.am index ff2165e12a..af20ddb396 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 0000000000..316b04b504 --- /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 51f8a2bf77..806c5747ae 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 ccc31d59d5..f93c5b5d4c 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], [