From 2f23f0f940774a3470689eef2b583cf5ab901020 Mon Sep 17 00:00:00 2001 From: Rich Ercolani <214141+rincebrain@users.noreply.github.com> Date: Mon, 7 Jun 2021 15:29:27 -0400 Subject: [PATCH] Force --enable-debug on FreeBSD if INVARIANTS is set There's already logic to force INVARIANTS on for building if it's present in the running kernel; however, not having DEBUG enabled when DEBUG and INVARIANTS are can cause strange panics. Reviewed-by: Brian Behlendorf Reviewed-by: Ryan Moeller Signed-off-by: Rich Ercolani Closes #12185 Closes #12163 --- config/zfs-build.m4 | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index c4fe07c810..1af4356cde 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -34,6 +34,9 @@ dnl # When debugging is enabled: dnl # - Enable all ASSERTs (-DDEBUG) dnl # - Promote all compiler warnings to errors (-Werror) dnl # +dnl # (If INVARIANTS is detected, we need to force DEBUG, or strange panics +dnl # can ensue.) +dnl # AC_DEFUN([ZFS_AC_DEBUG], [ AC_MSG_CHECKING([whether assertion support will be enabled]) AC_ARG_ENABLE([debug], @@ -49,6 +52,20 @@ AC_DEFUN([ZFS_AC_DEBUG], [ [ZFS_AC_DEBUG_DISABLE], [AC_MSG_ERROR([Unknown option $enable_debug])]) + AS_CASE(["x$enable_invariants"], + ["xyes"], + [], + ["xno"], + [], + [ZFS_AC_DEBUG_INVARIANTS_DETECT]) + + AS_CASE(["x$enable_invariants"], + ["xyes"], + [ZFS_AC_DEBUG_ENABLE], + ["xno"], + [], + [AC_MSG_ERROR([Unknown option $enable_invariants])]) + AC_SUBST(DEBUG_CFLAGS) AC_SUBST(DEBUG_CPPFLAGS) AC_SUBST(DEBUG_LDFLAGS)