commit: e34c0cb7d58c06e7245d9f5347d5da8e817b95ce Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> AuthorDate: Thu Feb 2 19:01:33 2023 +0000 Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> CommitDate: Thu Feb 2 19:01:33 2023 +0000 URL: https://gitweb.gentoo.org/proj/linux-patches.git/commit/?id=e34c0cb7
gcc-plugins: drop -std=gnu++11 to fix GCC 13 build See: https://lore.kernel.org/all/20230201230009.2252783-1-sam <AT> gentoo.org/ Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> 0000_README | 4 ++ ...rop-std-gnu-plus-plus-to-fix-GCC-13-build.patch | 46 ++++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/0000_README b/0000_README index 0965d9a9..1f899f11 100644 --- a/0000_README +++ b/0000_README @@ -115,6 +115,10 @@ Patch: 2930_gcc-plugins-Reorg-gimple-incs-for-gcc-13.patch From: https://lore.kernel.org/lkml/mhng-8bc81919-3023-4d72-bd44-2443606b4fd7@palmer-ri-x1c9a/T/ Desc: gcc-plugins: Reorganize gimple includes for GCC 13 +Patch: 2940_gcc-plugins-drop-std-gnu-plus-plus-to-fix-GCC-13-build.patch +From: https://lore.kernel.org/all/20230201230009.2252783-1-...@gentoo.org/ +Desc: gcc-plugins: drop -std=gnu++11 to fix GCC 13 build + Patch: 3000_Support-printing-firmware-info.patch From: https://bugs.gentoo.org/732852 Desc: Print firmware info (Reqs CONFIG_GENTOO_PRINT_FIRMWARE_INFO). Thanks to Georgy Yakovlev diff --git a/2940_gcc-plugins-drop-std-gnu-plus-plus-to-fix-GCC-13-build.patch b/2940_gcc-plugins-drop-std-gnu-plus-plus-to-fix-GCC-13-build.patch new file mode 100644 index 00000000..55797805 --- /dev/null +++ b/2940_gcc-plugins-drop-std-gnu-plus-plus-to-fix-GCC-13-build.patch @@ -0,0 +1,46 @@ +From 5a6b64adc18d9adfb497a529ff004d59b6df151f Mon Sep 17 00:00:00 2001 +From: Sam James <s...@gentoo.org> +Date: Wed, 1 Feb 2023 23:00:09 +0000 +Subject: gcc-plugins: drop -std=gnu++11 to fix GCC 13 build + +The latest GCC 13 snapshot (13.0.1 20230129) gives the following: +``` +cc1: error: cannot load plugin ./scripts/gcc-plugins/randomize_layout_plugin.so + :./scripts/gcc-plugins/randomize_layout_plugin.so: undefined symbol: tree_code_type +``` + +This ends up being because of https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=b0241ce6e37031 +upstream in GCC which changes the visibility of some types used by the kernel's +plugin infrastructure like tree_code_type. + +After discussion with the GCC folks, we found that the kernel needs to be building +plugins with the same flags used to build GCC - and GCC defaults to gnu++17 +right now. The minimum GCC version needed to build the kernel is GCC 5.1 +and GCC 5.1 already defaults to gnu++14 anyway, so just drop the flag, as +all GCCs that could be used to build GCC already default to an acceptable +version which was >= the version we forced via flags until now. + +Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108634 +Signed-off-by: Sam James <s...@gentoo.org> +Signed-off-by: Kees Cook <keesc...@chromium.org> +Link: https://lore.kernel.org/r/20230201230009.2252783-1-...@gentoo.org +--- + scripts/gcc-plugins/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile +index b34d11e226366..320afd3cf8e82 100644 +--- a/scripts/gcc-plugins/Makefile ++++ b/scripts/gcc-plugins/Makefile +@@ -29,7 +29,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 \ + -DPLUGIN_VERSION=$(call stringify,$(KERNELVERSION)) \ +- -I $(GCC_PLUGINS_DIR)/include -I $(obj) -std=gnu++11 \ ++ -I $(GCC_PLUGINS_DIR)/include -I $(obj) \ + -fno-rtti -fno-exceptions -fasynchronous-unwind-tables \ + -ggdb -Wno-narrowing -Wno-unused-variable \ + -Wno-format-diag +-- +cgit +