UBSAN: run-time undefined behavior sanity checker
[cascardo/linux.git] / lib / Kconfig.ubsan
diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
new file mode 100644 (file)
index 0000000..49518fb
--- /dev/null
@@ -0,0 +1,29 @@
+config ARCH_HAS_UBSAN_SANITIZE_ALL
+       bool
+
+config UBSAN
+       bool "Undefined behaviour sanity checker"
+       help
+         This option enables undefined behaviour sanity checker
+         Compile-time instrumentation is used to detect various undefined
+         behaviours in runtime. Various types of checks may be enabled
+         via boot parameter ubsan_handle (see: Documentation/ubsan.txt).
+
+config UBSAN_SANITIZE_ALL
+       bool "Enable instrumentation for the entire kernel"
+       depends on UBSAN
+       depends on ARCH_HAS_UBSAN_SANITIZE_ALL
+       default y
+       help
+         This option activates instrumentation for the entire kernel.
+         If you don't enable this option, you have to explicitly specify
+         UBSAN_SANITIZE := y for the files/directories you want to check for UB.
+
+config UBSAN_ALIGNMENT
+       bool "Enable checking of pointers alignment"
+       depends on UBSAN
+       default y if !HAVE_EFFICIENT_UNALIGNED_ACCESS
+       help
+         This option enables detection of unaligned memory accesses.
+         Enabling this option on architectures that support unalligned
+         accesses may produce a lot of false positives.