1# SPDX-License-Identifier: GPL-2.0-only 2config HAVE_GCC_PLUGINS 3 bool 4 help 5 An arch should select this symbol if it supports building with 6 GCC plugins. 7 8menuconfig GCC_PLUGINS 9 bool "GCC plugins" 10 depends on HAVE_GCC_PLUGINS 11 depends on CC_IS_GCC 12 # ANDROID: GCC_PLUGINS are broken for 32-bit ARM builds (gcc 12.2.0) 13 depends on !ARM 14 depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h) 15 default y 16 help 17 GCC plugins are loadable modules that provide extra features to the 18 compiler. They are useful for runtime instrumentation and static analysis. 19 20 See Documentation/kbuild/gcc-plugins.rst for details. 21 22if GCC_PLUGINS 23 24config GCC_PLUGIN_SANCOV 25 bool 26 # Plugin can be removed once the kernel only supports GCC 6+ 27 depends on !CC_HAS_SANCOV_TRACE_PC 28 help 29 This plugin inserts a __sanitizer_cov_trace_pc() call at the start of 30 basic blocks. It supports all gcc versions with plugin support (from 31 gcc-4.5 on). It is based on the commit "Add fuzzing coverage support" 32 by Dmitry Vyukov <dvyukov@google.com>. 33 34config GCC_PLUGIN_LATENT_ENTROPY 35 bool "Generate some entropy during boot and runtime" 36 help 37 By saying Y here the kernel will instrument some kernel code to 38 extract some entropy from both original and artificially created 39 program state. This will help especially embedded systems where 40 there is little 'natural' source of entropy normally. The cost 41 is some slowdown of the boot process (about 0.5%) and fork and 42 irq processing. 43 44 Note that entropy extracted this way is not cryptographically 45 secure! 46 47 This plugin was ported from grsecurity/PaX. More information at: 48 * https://grsecurity.net/ 49 * https://pax.grsecurity.net/ 50 51config GCC_PLUGIN_ARM_SSP_PER_TASK 52 bool 53 depends on GCC_PLUGINS && ARM 54 55endif 56