xref: /openbmc/linux/lib/Kconfig.ubsan (revision 3557b3fd)
1config ARCH_HAS_UBSAN_SANITIZE_ALL
2	bool
3
4config UBSAN
5	bool "Undefined behaviour sanity checker"
6	help
7	  This option enables undefined behaviour sanity checker
8	  Compile-time instrumentation is used to detect various undefined
9	  behaviours in runtime. Various types of checks may be enabled
10	  via boot parameter ubsan_handle
11	  (see: Documentation/dev-tools/ubsan.rst).
12
13config UBSAN_SANITIZE_ALL
14	bool "Enable instrumentation for the entire kernel"
15	depends on UBSAN
16	depends on ARCH_HAS_UBSAN_SANITIZE_ALL
17
18	# We build with -Wno-maybe-uninitilzed, but we still want to
19	# use -Wmaybe-uninitilized in allmodconfig builds.
20	# So dependsy bellow used to disable this option in allmodconfig
21	depends on !COMPILE_TEST
22	default y
23	help
24	  This option activates instrumentation for the entire kernel.
25	  If you don't enable this option, you have to explicitly specify
26	  UBSAN_SANITIZE := y for the files/directories you want to check for UB.
27	  Enabling this option will get kernel image size increased
28	  significantly.
29
30config UBSAN_NO_ALIGNMENT
31	bool "Disable checking of pointers alignment"
32	depends on UBSAN
33	default y if HAVE_EFFICIENT_UNALIGNED_ACCESS
34	help
35	  This option disables the check of unaligned memory accesses.
36	  This option should be used when building allmodconfig.
37	  Disabling this option on architectures that support unaligned
38	  accesses may produce a lot of false positives.
39
40config UBSAN_ALIGNMENT
41	def_bool !UBSAN_NO_ALIGNMENT
42
43config TEST_UBSAN
44	tristate "Module for testing for undefined behavior detection"
45	depends on m && UBSAN
46	help
47	  This is a test module for UBSAN.
48	  It triggers various undefined behavior, and detect it.
49