+30
-18
scripts/Makefile.gcc-plugins
+30
-18
scripts/Makefile.gcc-plugins
···
1
1
# SPDX-License-Identifier: GPL-2.0
2
+
2
3
gcc-plugin-$(CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) += cyc_complexity_plugin.so
3
4
4
5
gcc-plugin-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) += latent_entropy_plugin.so
5
-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) += -DLATENT_ENTROPY_PLUGIN
6
+
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) \
7
+
+= -DLATENT_ENTROPY_PLUGIN
6
8
ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY
7
-
DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable
9
+
DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable
8
10
endif
9
-
10
-
gcc-plugin-$(CONFIG_GCC_PLUGIN_SANCOV) += sancov_plugin.so
11
-
gcc-plugin-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) += structleak_plugin.so
12
-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE) += -fplugin-arg-structleak_plugin-verbose
13
-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) += -fplugin-arg-structleak_plugin-byref-all
14
-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) += -DSTRUCTLEAK_PLUGIN
15
-
16
-
gcc-plugin-$(CONFIG_GCC_PLUGIN_RANDSTRUCT) += randomize_layout_plugin.so
17
-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_RANDSTRUCT) += -DRANDSTRUCT_PLUGIN
18
-
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE) += -fplugin-arg-randomize_layout_plugin-performance-mode
19
-
20
-
GCC_PLUGINS_CFLAGS := $(strip $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) $(gcc-plugin-cflags-y))
21
-
22
-
export GCC_PLUGINS_CFLAGS GCC_PLUGIN
23
11
export DISABLE_LATENT_ENTROPY_PLUGIN
24
12
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))
13
+
gcc-plugin-$(CONFIG_GCC_PLUGIN_SANCOV) += sancov_plugin.so
27
14
15
+
gcc-plugin-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) += structleak_plugin.so
16
+
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE) \
17
+
+= -fplugin-arg-structleak_plugin-verbose
18
+
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) \
19
+
+= -fplugin-arg-structleak_plugin-byref-all
20
+
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_STRUCTLEAK) \
21
+
+= -DSTRUCTLEAK_PLUGIN
22
+
23
+
gcc-plugin-$(CONFIG_GCC_PLUGIN_RANDSTRUCT) += randomize_layout_plugin.so
24
+
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_RANDSTRUCT) \
25
+
+= -DRANDSTRUCT_PLUGIN
26
+
gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE) \
27
+
+= -fplugin-arg-randomize_layout_plugin-performance-mode
28
+
29
+
# All the plugin CFLAGS are collected here in case a build target needs to
30
+
# filter them out of the KBUILD_CFLAGS.
31
+
GCC_PLUGINS_CFLAGS := $(strip $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) $(gcc-plugin-cflags-y))
32
+
# The sancov_plugin.so is included via CFLAGS_KCOV, so it is removed here.
33
+
GCC_PLUGINS_CFLAGS := $(filter-out %/sancov_plugin.so, $(GCC_PLUGINS_CFLAGS))
34
+
export GCC_PLUGINS_CFLAGS
35
+
36
+
# Add the flags to the build!
28
37
KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
38
+
39
+
# All enabled GCC plugins are collected here for building below.
29
40
GCC_PLUGIN := $(gcc-plugin-y)
41
+
export GCC_PLUGIN
30
42
31
43
# Actually do the build, if requested.
32
44
PHONY += gcc-plugins