From: Serapheim Dimitropoulos Date: Fri, 10 Jul 2020 22:30:31 +0000 (-0700) Subject: Unconditionally enable debugging for libzpool X-Git-Tag: zfs-2.0.0~354 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=6f1db5f37ede685ebe55d1549c635e0aef4661b5;p=mirror_zfs.git Unconditionally enable debugging for libzpool We already enable -DDEBUG unconditionally (meaning regardless of this is a debug build or a performance build) for zdb and ztest as they are mostly used for development and debugging. This patch enables -DDEBUG for libzpool extending the debugging checks for zdb, ztest, and a couple of other test utilities. In addition to passing -DDEBUG we also enable -DZFS_DEBUG so all assertion checks work s expected. We do so not only in libzpool but in every utility that links to it, even if the utility doesn't directly use any functionality wrapped in ZFS_DEBUG macro definitions. The reason is that these utilities may still include headers that contain structs that have more fields when ZFS_DEBUG is defined. This can be a problem as enabling that flag for libzpool but not for zdb can lead into random problems (e.g. segmentation faults) as zdb may be have an incorrect view of a struct passed to it by libzpool. Reviewed-by: Brian Behlendorf Reviewed-by: Matthew Ahrens Signed-off-by: Serapheim Dimitropoulos Closes #10549 --- diff --git a/cmd/raidz_test/Makefile.am b/cmd/raidz_test/Makefile.am index ccfa7019c..72c914e64 100644 --- a/cmd/raidz_test/Makefile.am +++ b/cmd/raidz_test/Makefile.am @@ -4,7 +4,7 @@ include $(top_srcdir)/config/Rules.am AM_CFLAGS += $(FRAME_LARGER_THAN) # Unconditionally enable ASSERTs -AM_CPPFLAGS += -DDEBUG -UNDEBUG +AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG bin_PROGRAMS = raidz_test diff --git a/cmd/zdb/Makefile.am b/cmd/zdb/Makefile.am index 7a29e54f6..b325cb060 100644 --- a/cmd/zdb/Makefile.am +++ b/cmd/zdb/Makefile.am @@ -1,7 +1,7 @@ include $(top_srcdir)/config/Rules.am # Unconditionally enable debugging for zdb -AM_CPPFLAGS += -DDEBUG -UNDEBUG +AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG sbin_PROGRAMS = zdb diff --git a/cmd/zhack/Makefile.am b/cmd/zhack/Makefile.am index 6c5b5d096..5cddac32b 100644 --- a/cmd/zhack/Makefile.am +++ b/cmd/zhack/Makefile.am @@ -1,5 +1,8 @@ include $(top_srcdir)/config/Rules.am +# Unconditionally enable debugging for zhack +AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG + sbin_PROGRAMS = zhack zhack_SOURCES = \ diff --git a/cmd/ztest/Makefile.am b/cmd/ztest/Makefile.am index 40d029d9f..6042b44d1 100644 --- a/cmd/ztest/Makefile.am +++ b/cmd/ztest/Makefile.am @@ -7,7 +7,7 @@ AM_CFLAGS += $(NO_FORMAT_TRUNCATION) AM_CFLAGS += $(FRAME_LARGER_THAN) # Unconditionally enable ASSERTs -AM_CPPFLAGS += -DDEBUG -UNDEBUG +AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG sbin_PROGRAMS = ztest diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am index 6256d5e73..7924a425d 100644 --- a/lib/libzpool/Makefile.am +++ b/lib/libzpool/Makefile.am @@ -7,6 +7,9 @@ VPATH = \ $(top_srcdir)/module/os/linux/zfs \ $(top_srcdir)/lib/libzpool +# Unconditionally enable debugging for libzpool +AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG + # Suppress unused but set variable warnings often due to ASSERTs AM_CFLAGS += $(NO_UNUSED_BUT_SET_VARIABLE) diff --git a/tests/zfs-tests/cmd/btree_test/Makefile.am b/tests/zfs-tests/cmd/btree_test/Makefile.am index 0bb8f9917..4c9a1a4cc 100644 --- a/tests/zfs-tests/cmd/btree_test/Makefile.am +++ b/tests/zfs-tests/cmd/btree_test/Makefile.am @@ -22,7 +22,7 @@ DEFAULT_INCLUDES += \ -I$(top_srcdir)/lib/libspl/include # Unconditionally enable ASSERTs -AM_CPPFLAGS += -DDEBUG -UNDEBUG +AM_CPPFLAGS += -DDEBUG -UNDEBUG -DZFS_DEBUG pkgexec_PROGRAMS = btree_test btree_test_SOURCES = btree_test.c