Re: [PATCH] gcc-plugins: Fix build for upcoming GCC release

From: Kees Cook
Date: Fri Jan 13 2023 - 18:20:13 EST


On Fri, Jan 13, 2023 at 09:30:33AM -0800, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <palmer@xxxxxxxxxxxx>
>
> The upcoming GCC release has refactored the gimple plugin interface a
> bit and unless gimple-iterator.h is included before gimple-fold.h I end
> up with a bunch of missing declarations when building the stack
> protector plugin.
>
> Link: https://inbox.sourceware.org/gcc-patches/CAFiYyc2q%2Bc-0uZb-zAskmR_U%2BM%2BxQfp-W00ZbLErfjx=j5qHGg@xxxxxxxxxxxxxx/
> Signed-off-by: Palmer Dabbelt <palmer@xxxxxxxxxxxx>
> ---
> scripts/gcc-plugins/gcc-common.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Does this work for you?


diff --git a/scripts/gcc-plugins/gcc-common.h b/scripts/gcc-plugins/gcc-common.h
index 9a1895747b15..309b39cee275 100644
--- a/scripts/gcc-plugins/gcc-common.h
+++ b/scripts/gcc-plugins/gcc-common.h
@@ -72,6 +72,9 @@
#include "stor-layout.h"
#include "internal-fn.h"
#include "gimple-expr.h"
+#if BUILDING_GCC_VERSION >= 13000
+#include "gimple-iterator.h"
+#endif
#include "gimple-fold.h"
#include "context.h"
#include "tree-ssa-alias.h"
@@ -88,7 +91,9 @@
#include "gimple.h"
#include "tree-phinodes.h"
#include "tree-cfg.h"
+#if BUILDING_GCC_VERSION < 13000
#include "gimple-iterator.h"
+#endif
#include "gimple-ssa.h"
#include "ssa-iterators.h"


>
> diff --git a/scripts/gcc-plugins/gcc-common.h b/scripts/gcc-plugins/gcc-common.h
> index 9a1895747b15..2c3a3079128a 100644
> --- a/scripts/gcc-plugins/gcc-common.h
> +++ b/scripts/gcc-plugins/gcc-common.h
> @@ -72,6 +72,7 @@
> #include "stor-layout.h"
> #include "internal-fn.h"
> #include "gimple-expr.h"
> +#include "gimple-iterator.h"
> #include "gimple-fold.h"
> #include "context.h"
> #include "tree-ssa-alias.h"
> @@ -88,7 +89,6 @@
> #include "gimple.h"
> #include "tree-phinodes.h"
> #include "tree-cfg.h"
> -#include "gimple-iterator.h"
> #include "gimple-ssa.h"
> #include "ssa-iterators.h"
>
> --
> 2.39.0
>

--
Kees Cook