summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in5
-rw-r--r--kerncompat.h4
2 files changed, 9 insertions, 0 deletions
diff --git a/Makefile.in b/Makefile.in
index 983b8b9a..95c42705 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -19,6 +19,7 @@
# all - shortcut for all of the above
# asan - enable address sanitizer compiler feature
# ubsan - undefined behaviour sanitizer compiler feature
+# bcheck - extended build checks
# W=123 build with warnings (default: off)
# DEBUG_CFLAGS additional compiler flags for debugging build
# EXTRA_CFLAGS additional compiler flags
@@ -161,6 +162,10 @@ ifneq (,$(findstring ubsan,$(D)))
DEBUG_CFLAGS_INTERNAL += -fsanitize=undefined
endif
+ifneq (,$(findstring bcheck,$(D)))
+ DEBUG_CFLAGS_INTERNAL += -DDEBUG_BUILD_CHECKS
+endif
+
MAKEOPTS = --no-print-directory Q=$(Q)
# build all by default
diff --git a/kerncompat.h b/kerncompat.h
index 4a8f8135..ed9a0425 100644
--- a/kerncompat.h
+++ b/kerncompat.h
@@ -70,7 +70,11 @@
#define __token_glue(a,b,c) ___token_glue(a,b,c)
#define ___token_glue(a,b,c) a ## b ## c
+#ifdef DEBUG_BUILD_CHECKS
#define BUILD_ASSERT(x) extern int __token_glue(compile_time_assert_,__LINE__,__COUNTER__)[1-2*!(x)] __attribute__((unused))
+#else
+#define BUILD_ASSERT(x)
+#endif
#ifndef BTRFS_DISABLE_BACKTRACE
#define MAX_BACKTRACE 16