| # 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. Various types of checks may be enabled |
| via boot parameter ubsan_handle |
| (see: Documentation/dev-tools/ubsan.rst). |
| |
| config UBSAN_SANITIZE_ALL |
| bool "Enable instrumentation for the entire kernel" |
| depends on UBSAN |
| depends on ARCH_HAS_UBSAN_SANITIZE_ALL |
| |
| # 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 |
| 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. |
| Enabling this option will get kernel 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 |
| |
| config TEST_UBSAN |
| tristate "Module for testing for undefined behavior detection" |
| depends on m && UBSAN |
| help |
| This is a test module for UBSAN. |
| It triggers various undefined behavior, and detect it. |