2024-03-12 15:03:57

by Thomas Weißschuh

[permalink] [raw]
Subject: [PATCH 2/2] gcc-plugins: disable plugins when gmp.h is unavailable

The header gmp.h is meant to be picked up from the host system.

When it is unavailable the plugin build fails:

In file included from ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/gcc-plugin.h:28,
from ../scripts/gcc-plugins/gcc-common.h:7,
from ../scripts/gcc-plugins/stackleak_plugin.c:30:
./crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/system.h:703:10: fatal error: gmp.h: No such file or directory
703 | #include <gmp.h>
| ^~~~~~~

Signed-off-by: Thomas Weißschuh <[email protected]>
---
scripts/gcc-plugins/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/scripts/gcc-plugins/Kconfig b/scripts/gcc-plugins/Kconfig
index e383cda05367..a664fb5cdde5 100644
--- a/scripts/gcc-plugins/Kconfig
+++ b/scripts/gcc-plugins/Kconfig
@@ -10,6 +10,7 @@ menuconfig GCC_PLUGINS
depends on HAVE_GCC_PLUGINS
depends on CC_IS_GCC
depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h)
+ depends on $(host-cc-option,-include gmp.h)
default y
help
GCC plugins are loadable modules that provide extra features to the

--
2.44.0



2024-03-12 21:54:00

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH 2/2] gcc-plugins: disable plugins when gmp.h is unavailable

On Tue, Mar 12, 2024 at 04:03:30PM +0100, Thomas Wei?schuh wrote:
> The header gmp.h is meant to be picked up from the host system.
>
> When it is unavailable the plugin build fails:
>
> In file included from ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/gcc-plugin.h:28,
> from ../scripts/gcc-plugins/gcc-common.h:7,
> from ../scripts/gcc-plugins/stackleak_plugin.c:30:
> ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/system.h:703:10: fatal error: gmp.h: No such file or directory
> 703 | #include <gmp.h>
> | ^~~~~~~
>
> Signed-off-by: Thomas Wei?schuh <[email protected]>
> ---
> scripts/gcc-plugins/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/scripts/gcc-plugins/Kconfig b/scripts/gcc-plugins/Kconfig
> index e383cda05367..a664fb5cdde5 100644
> --- a/scripts/gcc-plugins/Kconfig
> +++ b/scripts/gcc-plugins/Kconfig
> @@ -10,6 +10,7 @@ menuconfig GCC_PLUGINS
> depends on HAVE_GCC_PLUGINS
> depends on CC_IS_GCC
> depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h)
> + depends on $(host-cc-option,-include gmp.h)

Why does the prior depends not fail? That's where plugin detection is
happening.

--
Kees Cook

2024-03-13 03:48:51

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH 2/2] gcc-plugins: disable plugins when gmp.h is unavailable

On Wed, Mar 13, 2024 at 6:53 AM Kees Cook <[email protected]> wrote:
>
> On Tue, Mar 12, 2024 at 04:03:30PM +0100, Thomas Weißschuh wrote:
> > The header gmp.h is meant to be picked up from the host system.
> >
> > When it is unavailable the plugin build fails:
> >
> > In file included from ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/gcc-plugin.h:28,
> > from ../scripts/gcc-plugins/gcc-common.h:7,
> > from ../scripts/gcc-plugins/stackleak_plugin.c:30:
> > ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/132.0/plugin/include/system.h:703:10: fatal error: gmp.h: No such file or directory
> > 703 | #include <gmp.h>
> > | ^~~~~~~
> >
> > Signed-off-by: Thomas Weißschuh <[email protected]>
> > ---
> > scripts/gcc-plugins/Kconfig | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/scripts/gcc-plugins/Kconfig b/scripts/gcc-plugins/Kconfig
> > index e383cda05367..a664fb5cdde5 100644
> > --- a/scripts/gcc-plugins/Kconfig
> > +++ b/scripts/gcc-plugins/Kconfig
> > @@ -10,6 +10,7 @@ menuconfig GCC_PLUGINS
> > depends on HAVE_GCC_PLUGINS
> > depends on CC_IS_GCC
> > depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h)
> > + depends on $(host-cc-option,-include gmp.h)
>
> Why does the prior depends not fail? That's where plugin detection is
> happening.
>
> --
> Kees Cook
>



This patch set should be rejected.


It was already discussed in the past.
Just install a proper package, then gcc-plugin will work.

https://lore.kernel.org/all/CAHk-=wjjiYjCp61gdAMpDOsUBU-A2hFFKJoVx5VAC7yV4K6WYg@mail.gmail.com/






--
Best Regards
Masahiro Yamada

2024-03-13 14:42:30

by Thomas Weißschuh

[permalink] [raw]
Subject: Re: [PATCH 2/2] gcc-plugins: disable plugins when gmp.h is unavailable

On Wed, Mar 13, 2024 at 12:47:59PM +0900, Masahiro Yamada wrote:
> On Wed, Mar 13, 2024 at 6:53 AM Kees Cook <[email protected]> wrote:
> >
> > On Tue, Mar 12, 2024 at 04:03:30PM +0100, Thomas Weißschuh wrote:
> > > The header gmp.h is meant to be picked up from the host system.
> > >
> > > When it is unavailable the plugin build fails:
> > >
> > > In file included from ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/gcc-plugin.h:28,
> > > from ../scripts/gcc-plugins/gcc-common.h:7,
> > > from ../scripts/gcc-plugins/stackleak_plugin.c:30:
> > > ../crosstools/gcc-13.2.0-nolibc/i386-linux/bin/../lib/gcc/i386-linux/13.2.0/plugin/include/system.h:703:10: fatal error: gmp.h: No such file or directory
> > > 703 | #include <gmp.h>
> > > | ^~~~~~~
> > >
> > > Signed-off-by: Thomas Weißschuh <[email protected]>
> > > ---
> > > scripts/gcc-plugins/Kconfig | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/scripts/gcc-plugins/Kconfig b/scripts/gcc-plugins/Kconfig
> > > index e383cda05367..a664fb5cdde5 100644
> > > --- a/scripts/gcc-plugins/Kconfig
> > > +++ b/scripts/gcc-plugins/Kconfig
> > > @@ -10,6 +10,7 @@ menuconfig GCC_PLUGINS
> > > depends on HAVE_GCC_PLUGINS
> > > depends on CC_IS_GCC
> > > depends on $(success,test -e $(shell,$(CC) -print-file-name=plugin)/include/plugin-version.h)
> > > + depends on $(host-cc-option,-include gmp.h)
> >
> > Why does the prior depends not fail? That's where plugin detection is
> > happening.
> >
> > --
> > Kees Cook
>
> This patch set should be rejected.
>
>
> It was already discussed in the past.
> Just install a proper package, then gcc-plugin will work.
>
> https://lore.kernel.org/all/CAHk-=wjjiYjCp61gdAMpDOsUBU-A2hFFKJoVx5VAC7yV4K6WYg@mail.gmail.com/

Thanks for the pointer.

As there is already consensus I agree that the patches should not be used.

Thomas