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