blob: 0e04fcb3ab3d07292c4c0964ed10fcd439ca5583 [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Andrey Ryabininc6d30852016-01-20 15:00:55 -08002config 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
Andreas Platschek04625542016-12-14 15:05:43 -080011 via boot parameter ubsan_handle
12 (see: Documentation/dev-tools/ubsan.rst).
Andrey Ryabininc6d30852016-01-20 15:00:55 -080013
14config UBSAN_SANITIZE_ALL
15 bool "Enable instrumentation for the entire kernel"
16 depends on UBSAN
17 depends on ARCH_HAS_UBSAN_SANITIZE_ALL
Andrey Ryabinindde5cf32016-03-22 14:27:45 -070018
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
Andrey Ryabininc6d30852016-01-20 15:00:55 -080023 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.
Yang Shi77075352016-02-11 16:12:55 -080028 Enabling this option will get kernel image size increased
29 significantly.
Andrey Ryabininc6d30852016-01-20 15:00:55 -080030
Anders Roxell1a6a1db2019-03-07 16:30:16 -080031config UBSAN_NO_ALIGNMENT
32 bool "Disable checking of pointers alignment"
Andrey Ryabininc6d30852016-01-20 15:00:55 -080033 depends on UBSAN
Anders Roxell1a6a1db2019-03-07 16:30:16 -080034 default y if HAVE_EFFICIENT_UNALIGNED_ACCESS
Andrey Ryabininc6d30852016-01-20 15:00:55 -080035 help
Anders Roxell1a6a1db2019-03-07 16:30:16 -080036 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
Andrey Ryabininc6d30852016-01-20 15:00:55 -080039 accesses may produce a lot of false positives.
Christian Borntraeger725c4d22016-09-12 14:37:19 +020040
Anders Roxell1a6a1db2019-03-07 16:30:16 -080041config UBSAN_ALIGNMENT
42 def_bool !UBSAN_NO_ALIGNMENT
43
Jinbum Park854686f2018-04-10 16:32:58 -070044config 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.