2023-01-13 18:00:50

by Palmer Dabbelt

[permalink] [raw]
Subject: [PATCH] gcc-plugins: Fix build for upcoming GCC release

From: Palmer Dabbelt <[email protected]>

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%[email protected]/
Signed-off-by: Palmer Dabbelt <[email protected]>
---
scripts/gcc-plugins/gcc-common.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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


2023-01-13 23:36:27

by Kees Cook

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

On Fri, Jan 13, 2023 at 09:30:33AM -0800, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <[email protected]>
>
> 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%[email protected]/
> Signed-off-by: Palmer Dabbelt <[email protected]>

Eek, actually, I've unapplied this. It breaks on GCC 12.

--
Kees Cook

2023-01-13 23:40:29

by Kees Cook

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

On Fri, 13 Jan 2023 09:30:33 -0800, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <[email protected]>
>
> 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.
>
> [...]

Applied to for-next/hardening, thanks!

[1/1] gcc-plugins: Fix build for upcoming GCC release
https://git.kernel.org/kees/c/6d778f2045c7

--
Kees Cook

2023-01-14 00:15:35

by Kees Cook

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

On Fri, Jan 13, 2023 at 09:30:33AM -0800, Palmer Dabbelt wrote:
> From: Palmer Dabbelt <[email protected]>
>
> 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%[email protected]/
> Signed-off-by: Palmer Dabbelt <[email protected]>
> ---
> 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