linux/lib/Kconfig.ubsan
<<
>>
Prefs
   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