btrfs-progs: ioctl: make build-time structure size checks optional
authorDavid Sterba <dsterba@suse.com>
Mon, 10 Oct 2016 07:59:18 +0000 (09:59 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 10 Oct 2016 08:11:31 +0000 (10:11 +0200)
Temporarily make the build checks optional. The structure sizes could
change on arches due to alignment requirements or padding inserted into
the structures. We need more extensive tests to make sure we'd not break
ioctls.

Signed-off-by: David Sterba <dsterba@suse.com>
Makefile.in
kerncompat.h

index 983b8b9..95c4270 100644 (file)
@@ -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
index 4a8f813..ed9a042 100644 (file)
 
 #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