Kconfig.ubsan 1.55 KB
Newer Older
1 2 3
config ARCH_HAS_UBSAN_SANITIZE_ALL
	bool

4 5 6
config ARCH_WANTS_UBSAN_NO_NULL
	def_bool n

7 8 9 10 11 12
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
13 14
	  via boot parameter ubsan_handle
	  (see: Documentation/dev-tools/ubsan.rst).
15 16 17 18 19

config UBSAN_SANITIZE_ALL
	bool "Enable instrumentation for the entire kernel"
	depends on UBSAN
	depends on ARCH_HAS_UBSAN_SANITIZE_ALL
20 21 22 23 24

	# We build with -Wno-maybe-uninitilzed, but we still want to
	# use -Wmaybe-uninitilized in allmodconfig builds.
	# So dependsy bellow used to disable this option in allmodconfig
	depends on !COMPILE_TEST
25 26 27 28 29
	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.
Yang Shi's avatar
Yang Shi committed
30 31
	  Enabling this option will get kernel image size increased
	  significantly.
32 33 34 35 36 37 38

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.
Yang Shi's avatar
Yang Shi committed
39
	  Enabling this option on architectures that support unaligned
40
	  accesses may produce a lot of false positives.
41 42 43 44 45 46 47 48

config UBSAN_NULL
	bool "Enable checking of null pointers"
	depends on UBSAN
	default y if !ARCH_WANTS_UBSAN_NO_NULL
	help
	  This option enables detection of memory accesses via a
	  null pointer.