| # SPDX-License-Identifier: GPL-2.0-only |
| config HAVE_GCC_PLUGINS |
| bool |
| help |
| An arch should select this symbol if it supports building with |
| GCC plugins. |
| |
| menuconfig GCC_PLUGINS |
| bool "GCC plugins" |
| depends on HAVE_GCC_PLUGINS |
| depends on CC_IS_GCC |
| depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h) |
| default y |
| help |
| GCC plugins are loadable modules that provide extra features to the |
| compiler. They are useful for runtime instrumentation and static analysis. |
| |
| See Documentation/kbuild/gcc-plugins.rst for details. |
| |
| if GCC_PLUGINS |
| |
| config GCC_PLUGIN_SANCOV |
| bool |
| # Plugin can be removed once the kernel only supports GCC 6+ |
| depends on !CC_HAS_SANCOV_TRACE_PC |
| help |
| This plugin inserts a __sanitizer_cov_trace_pc() call at the start of |
| basic blocks. It supports all gcc versions with plugin support (from |
| gcc-4.5 on). It is based on the commit "Add fuzzing coverage support" |
| by Dmitry Vyukov <dvyukov@google.com>. |
| |
| config GCC_PLUGIN_LATENT_ENTROPY |
| bool "Generate some entropy during boot and runtime" |
| help |
| By saying Y here the kernel will instrument some kernel code to |
| extract some entropy from both original and artificially created |
| program state. This will help especially embedded systems where |
| there is little 'natural' source of entropy normally. The cost |
| is some slowdown of the boot process (about 0.5%) and fork and |
| irq processing. |
| |
| Note that entropy extracted this way is not cryptographically |
| secure! |
| |
| This plugin was ported from grsecurity/PaX. More information at: |
| * https://grsecurity.net/ |
| * https://pax.grsecurity.net/ |
| |
| config GCC_PLUGIN_ARM_SSP_PER_TASK |
| bool |
| depends on GCC_PLUGINS && ARM |
| |
| endif |