]> git.ipfire.org Git - people/ms/linux.git/commitdiff
gcc-plugins: use KERNELVERSION for plugin version
authorMasahiro Yamada <masahiroy@kernel.org>
Tue, 24 May 2022 13:55:41 +0000 (22:55 +0900)
committerKees Cook <keescook@chromium.org>
Tue, 24 May 2022 15:25:16 +0000 (08:25 -0700)
Commit 61f60bac8c05 ("gcc-plugins: Change all version strings match
kernel") broke parallel builds.

Instead of adding the dependency between GCC plugins and utsrelease.h,
let's use KERNELVERSION, which does not require any build artifact.

Another reason why I want to avoid utsrelease.h is because it depends
on CONFIG_LOCALVERSION(_AUTO) and localversion* files.

(include/generated/utsrelease.h depends on include/config/kernel.release,
which is generated by scripts/setlocalversion)

I want to keep host tools independent of the kernel configuration.

There is no good reason to rebuild GCC plugins just because of
CONFIG_LOCALVERSION being changed.

We just want to associate the plugin versions with the kernel source
version. KERNELVERSION should be enough for our purpose.

Fixes: 61f60bac8c05 ("gcc-plugins: Change all version strings match kernel")
Reported-by: kernel test robot <lkp@intel.com>
Link: https://lore.kernel.org/linux-mm/202205230239.EZxeZ3Fv-lkp@intel.com
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20220524135541.1453693-1-masahiroy@kernel.org
scripts/gcc-plugins/Makefile
scripts/gcc-plugins/latent_entropy_plugin.c
scripts/gcc-plugins/randomize_layout_plugin.c
scripts/gcc-plugins/sancov_plugin.c
scripts/gcc-plugins/stackleak_plugin.c
scripts/gcc-plugins/structleak_plugin.c

index 6f0aecad5d671a015b50421a8d5688e3a265de5c..b34d11e2263662b5f707dd177d3b8f0277b7adc7 100644 (file)
@@ -28,7 +28,7 @@ GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin)
 
 plugin_cxxflags        = -Wp,-MMD,$(depfile) $(KBUILD_HOSTCXXFLAGS) -fPIC \
                  -include $(srctree)/include/linux/compiler-version.h \
-                 -include $(objtree)/include/generated/utsrelease.h \
+                 -DPLUGIN_VERSION=$(call stringify,$(KERNELVERSION)) \
                  -I $(GCC_PLUGINS_DIR)/include -I $(obj) -std=gnu++11 \
                  -fno-rtti -fno-exceptions -fasynchronous-unwind-tables \
                  -ggdb -Wno-narrowing -Wno-unused-variable \
index 5d415b2572a8df50e4c95e388e2c6eba248b73c8..848918764174d2efccce981614169078e7a1dae3 100644 (file)
@@ -82,7 +82,7 @@ __visible int plugin_is_GPL_compatible;
 static GTY(()) tree latent_entropy_decl;
 
 static struct plugin_info latent_entropy_plugin_info = {
-       .version        = UTS_RELEASE,
+       .version        = PLUGIN_VERSION,
        .help           = "disable\tturn off latent entropy instrumentation\n",
 };
 
index ea2aea57040498494aad036c14ab4c0582ebbb0d..951b74ba1b242389fee3e869f32a90b0ea6614d0 100644 (file)
@@ -34,7 +34,7 @@ __visible int plugin_is_GPL_compatible;
 static int performance_mode;
 
 static struct plugin_info randomize_layout_plugin_info = {
-       .version        = UTS_RELEASE,
+       .version        = PLUGIN_VERSION,
        .help           = "disable\t\t\tdo not activate plugin\n"
                          "performance-mode\tenable cacheline-aware layout randomization\n"
 };
index f3d629555b8407741d96ca0d682eaa40de712bd3..b76cb9c42cec0799149dbe5d3e40d973966472b5 100644 (file)
@@ -26,7 +26,7 @@ __visible int plugin_is_GPL_compatible;
 tree sancov_fndecl;
 
 static struct plugin_info sancov_plugin_info = {
-       .version        = UTS_RELEASE,
+       .version        = PLUGIN_VERSION,
        .help           = "sancov plugin\n",
 };
 
index de817d54b8af10ed8bf9263d209209f8422dd766..ff91885f9470be10e2df631b9129af6cd3aee2a9 100644 (file)
@@ -44,7 +44,7 @@ static bool verbose = false;
 static GTY(()) tree track_function_decl;
 
 static struct plugin_info stackleak_plugin_info = {
-       .version = UTS_RELEASE,
+       .version = PLUGIN_VERSION,
        .help = "track-min-size=nn\ttrack stack for functions with a stack frame size >= nn bytes\n"
                "arch=target_arch\tspecify target build arch\n"
                "disable\t\tdo not activate the plugin\n"
index 86b608a24ec04a9463249f832698db535035ff01..8bc04068ed398ab137be3d308455c1c4254f7ecd 100644 (file)
@@ -37,7 +37,7 @@
 __visible int plugin_is_GPL_compatible;
 
 static struct plugin_info structleak_plugin_info = {
-       .version        = UTS_RELEASE,
+       .version        = PLUGIN_VERSION,
        .help           = "disable\tdo not activate plugin\n"
                          "byref\tinit structs passed by reference\n"
                          "byref-all\tinit anything passed by reference\n"