162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig HAVE_GCC_PLUGINS 362306a36Sopenharmony_ci bool 462306a36Sopenharmony_ci help 562306a36Sopenharmony_ci An arch should select this symbol if it supports building with 662306a36Sopenharmony_ci GCC plugins. 762306a36Sopenharmony_ci 862306a36Sopenharmony_cimenuconfig GCC_PLUGINS 962306a36Sopenharmony_ci bool "GCC plugins" 1062306a36Sopenharmony_ci depends on HAVE_GCC_PLUGINS 1162306a36Sopenharmony_ci depends on CC_IS_GCC 1262306a36Sopenharmony_ci depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h) 1362306a36Sopenharmony_ci default y 1462306a36Sopenharmony_ci help 1562306a36Sopenharmony_ci GCC plugins are loadable modules that provide extra features to the 1662306a36Sopenharmony_ci compiler. They are useful for runtime instrumentation and static analysis. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci See Documentation/kbuild/gcc-plugins.rst for details. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ciif GCC_PLUGINS 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciconfig GCC_PLUGIN_SANCOV 2362306a36Sopenharmony_ci bool 2462306a36Sopenharmony_ci # Plugin can be removed once the kernel only supports GCC 6+ 2562306a36Sopenharmony_ci depends on !CC_HAS_SANCOV_TRACE_PC 2662306a36Sopenharmony_ci help 2762306a36Sopenharmony_ci This plugin inserts a __sanitizer_cov_trace_pc() call at the start of 2862306a36Sopenharmony_ci basic blocks. It supports all gcc versions with plugin support (from 2962306a36Sopenharmony_ci gcc-4.5 on). It is based on the commit "Add fuzzing coverage support" 3062306a36Sopenharmony_ci by Dmitry Vyukov <dvyukov@google.com>. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ciconfig GCC_PLUGIN_LATENT_ENTROPY 3362306a36Sopenharmony_ci bool "Generate some entropy during boot and runtime" 3462306a36Sopenharmony_ci help 3562306a36Sopenharmony_ci By saying Y here the kernel will instrument some kernel code to 3662306a36Sopenharmony_ci extract some entropy from both original and artificially created 3762306a36Sopenharmony_ci program state. This will help especially embedded systems where 3862306a36Sopenharmony_ci there is little 'natural' source of entropy normally. The cost 3962306a36Sopenharmony_ci is some slowdown of the boot process (about 0.5%) and fork and 4062306a36Sopenharmony_ci irq processing. 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci Note that entropy extracted this way is not cryptographically 4362306a36Sopenharmony_ci secure! 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci This plugin was ported from grsecurity/PaX. More information at: 4662306a36Sopenharmony_ci * https://grsecurity.net/ 4762306a36Sopenharmony_ci * https://pax.grsecurity.net/ 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciconfig GCC_PLUGIN_ARM_SSP_PER_TASK 5062306a36Sopenharmony_ci bool 5162306a36Sopenharmony_ci depends on GCC_PLUGINS && ARM 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ciendif 54