From 9446bd07ca0409dd06de935b0821875d2f58965a 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 0bc31fd266..1401b72fd0 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], [