1 # SPDX-License-Identifier: GPL-2.0 1 # SPDX-License-Identifier: GPL-2.0 >> 2 gcc-plugin-$(CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) += cyc_complexity_plugin.so 2 3 3 gcc-plugin-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) 4 gcc-plugin-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) += latent_entropy_plugin.so 4 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_LATENT_E !! 5 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) += -DLATENT_ENTROPY_PLUGIN 5 += -DLATENT_ENTROPY_PLUGIN << 6 ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY 6 ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY 7 DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin- !! 7 DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable 8 endif 8 endif 9 export DISABLE_LATENT_ENTROPY_PLUGIN << 10 9 >> 10 gcc-plugin-$(CONFIG_GCC_PLUGIN_SANCOV) += sancov_plugin.so 11 gcc-plugin-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) 11 gcc-plugin-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) += structleak_plugin.so 12 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLE !! 12 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE) += -fplugin-arg-structleak_plugin-verbose 13 += -fplugin-arg-structleak_plu !! 13 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) += -fplugin-arg-structleak_plugin-byref-all 14 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLE !! 14 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) += -DSTRUCTLEAK_PLUGIN 15 += -fplugin-arg-structleak_plu !! 15 16 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLE !! 16 gcc-plugin-$(CONFIG_GCC_PLUGIN_RANDSTRUCT) += randomize_layout_plugin.so 17 += -fplugin-arg-structleak_plu !! 17 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_RANDSTRUCT) += -DRANDSTRUCT_PLUGIN 18 ifdef CONFIG_GCC_PLUGIN_STRUCTLEAK !! 18 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE) += -fplugin-arg-randomize_layout_plugin-performance-mode 19 DISABLE_STRUCTLEAK_PLUGIN += -fplugin-arg- << 20 endif << 21 export DISABLE_STRUCTLEAK_PLUGIN << 22 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLE << 23 += -DSTRUCTLEAK_PLUGIN << 24 << 25 gcc-plugin-$(CONFIG_GCC_PLUGIN_STACKLEAK) << 26 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEA << 27 += -DSTACKLEAK_PLUGIN << 28 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEA << 29 += -fplugin-arg-stackleak_plug << 30 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEA << 31 += -fplugin-arg-stackleak_plug << 32 gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STACKLEA << 33 += -fplugin-arg-stackleak_plug << 34 ifdef CONFIG_GCC_PLUGIN_STACKLEAK << 35 DISABLE_STACKLEAK_PLUGIN += -fplugin-arg-s << 36 endif << 37 export DISABLE_STACKLEAK_PLUGIN << 38 << 39 gcc-plugin-$(CONFIG_GCC_PLUGIN_ARM_SSP_PER_TAS << 40 ifdef CONFIG_GCC_PLUGIN_ARM_SSP_PER_TASK << 41 DISABLE_ARM_SSP_PER_TASK_PLUGIN += -fplugi << 42 endif << 43 export DISABLE_ARM_SSP_PER_TASK_PLUGIN << 44 19 45 # All the plugin CFLAGS are collected here in << 46 # filter them out of the KBUILD_CFLAGS. << 47 GCC_PLUGINS_CFLAGS := $(strip $(addprefix -fpl 20 GCC_PLUGINS_CFLAGS := $(strip $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) $(gcc-plugin-cflags-y)) 48 export GCC_PLUGINS_CFLAGS << 49 21 50 # Add the flags to the build! !! 22 export GCC_PLUGINS_CFLAGS GCC_PLUGIN GCC_PLUGIN_SUBDIR >> 23 export DISABLE_LATENT_ENTROPY_PLUGIN >> 24 >> 25 # sancov_plugin.so can be only in CFLAGS_KCOV because avoid duplication. >> 26 GCC_PLUGINS_CFLAGS := $(filter-out %/sancov_plugin.so, $(GCC_PLUGINS_CFLAGS)) >> 27 51 KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) 28 KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) >> 29 GCC_PLUGIN := $(gcc-plugin-y) >> 30 GCC_PLUGIN_SUBDIR := $(gcc-plugin-subdir-y) 52 31 53 # Some plugins are enabled outside of this Mak !! 32 # Actually do the build, if requested. 54 # be included in GCC_PLUGIN so they can get bu !! 33 PHONY += gcc-plugins 55 gcc-plugin-external-$(CONFIG_GCC_PLUGIN_SANCOV !! 34 gcc-plugins: scripts_basic 56 += sancov_plugin.so !! 35 ifdef CONFIG_GCC_PLUGINS 57 gcc-plugin-external-$(CONFIG_GCC_PLUGIN_RANDST !! 36 $(Q)$(MAKE) $(build)=scripts/gcc-plugins 58 += randomize_layout_plugin.so !! 37 endif 59 !! 38 @: 60 # All enabled GCC plugins are collected here f << 61 # scripts/gcc-scripts/Makefile. << 62 GCC_PLUGIN := $(gcc-plugin-y) $(gcc-plugin-ext << 63 export GCC_PLUGIN <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.