summaryrefslogtreecommitdiffstats
path: root/lib/Kconfig.ubsan
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Kconfig.ubsan')
-rw-r--r--lib/Kconfig.ubsan35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/Kconfig.ubsan b/lib/Kconfig.ubsan
new file mode 100644
index 0000000000..09f4a0ab8a
--- /dev/null
+++ b/lib/Kconfig.ubsan
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: GPL-2.0-only
+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.
+
+config UBSAN_SANITIZE_ALL
+ bool "Enable instrumentation for all of barebox"
+ depends on UBSAN
+ depends on ARCH_HAS_UBSAN_SANITIZE_ALL
+ default y
+ help
+ This option activates instrumentation for all of barebox.
+ 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.
+ Enabling this option will get barebox image size increased
+ significantly.
+
+config UBSAN_NO_ALIGNMENT
+ bool "Disable checking of pointers alignment"
+ depends on UBSAN
+ default y if HAVE_EFFICIENT_UNALIGNED_ACCESS
+ help
+ This option disables the check of unaligned memory accesses.
+ This option should be used when building allmodconfig.
+ Disabling this option on architectures that support unaligned
+ accesses may produce a lot of false positives.
+
+config UBSAN_ALIGNMENT
+ def_bool !UBSAN_NO_ALIGNMENT