From dccff58e115d72f1e5e5738544d018bc07ab4a74 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Wed, 14 Jul 2010 10:25:54 -0700 Subject: [PATCH] Only make compiler warnings fatal with --enable-debug While in theory I like the idea of compiler warnings always being fatal. In practice this causes problems when small harmless errors cause build failures for end users. To handle this I've updated the build system such that -Werror is only used when --enable-debug is passed to configure. This is how I always build when developing so I'll catch all build warnings and end users will not get stuck by minor issues. --- config/Rules.am | 2 +- config/kernel.m4 | 2 +- config/zfs-build.m4 | 41 +++++++++++++++++------------------------ 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/config/Rules.am b/config/Rules.am index bb188427ea..b22b724a69 100644 --- a/config/Rules.am +++ b/config/Rules.am @@ -1,7 +1,7 @@ DEFAULT_INCLUDES = -include ${top_srcdir}/zfs_config.h AM_LIBTOOLFLAGS = --silent -AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing -Werror +AM_CFLAGS = -Wall -Wstrict-prototypes -fno-strict-aliasing ${DEBUG_CFLAGS} AM_CFLAGS += -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT AM_CFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 AM_CFLAGS += -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\" diff --git a/config/kernel.m4 b/config/kernel.m4 index 9c65b0feec..4cea344ccd 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -25,7 +25,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 -Werror -DHAVE_SPL -D_KERNEL" + KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL" KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\"" KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL" KERNELCPPFLAGS="$KERNELCPPFLAGS -I$SPL/include" diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index b5dac18e1c..b274b0d254 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -8,33 +8,26 @@ AC_DEFUN([ZFS_AC_LICENSE], [ AC_DEFUN([ZFS_AC_DEBUG], [ AC_MSG_CHECKING([whether debugging is enabled]) - AC_ARG_ENABLE( [debug], - AS_HELP_STRING([--enable-debug], - [Enable generic debug support (default off)]), - [ case "$enableval" in - yes) zfs_ac_debug=yes ;; - no) zfs_ac_debug=no ;; - *) AC_MSG_RESULT([Error!]) - AC_MSG_ERROR([Bad value "$enableval" for --enable-debug]) ;; - esac ] -) -if test "$zfs_ac_debug" = yes; then - AC_MSG_RESULT([yes]) - AC_DEFINE([DEBUG], [1], - [Define to 1 to enable debug tracing]) - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG " - HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG " - USERDEBUG="-DDEBUG -fstack-check" - else - AC_MSG_RESULT([no]) - AC_DEFINE([NDEBUG], [1], - [Define to 1 to disable debug tracing]) + AC_ARG_ENABLE([debug], + [AS_HELP_STRING([--enable-debug], + [Enable generic debug support @<:@default=no@:>@])], + [], + [enable_debug=no]) + + AS_IF([test "x$enable_debug" = xyes], + [ + KERNELCPPFLAGS="${KERNELCPPFLAGS} -DDEBUG -Werror" + HOSTCFLAGS="${HOSTCFLAGS} -DDEBUG -Werror" + DEBUG_CFLAGS="-DDEBUG -Werror -fstack-check" + ], + [ KERNELCPPFLAGS="${KERNELCPPFLAGS} -DNDEBUG " HOSTCFLAGS="${HOSTCFLAGS} -DNDEBUG " - USERDEBUG="-DNDEBUG" - fi + DEBUG_CFLAGS="-DNDEBUG" + ]) - AC_SUBST(USERDEBUG) + AC_SUBST(DEBUG_CFLAGS) + AC_MSG_RESULT([$enable_debug]) ]) AC_DEFUN([ZFS_AC_CONFIG_SCRIPT], [