Message ID | 20220827193836.2582079-1-elliott@hpe.com (mailing list archive) |
---|---|
State | Mainlined |
Commit | 3832d1fd84b6220842d92513239005b2c116633b |
Headers | show |
Series | docs/core-api: expand Fedora instructions for GCC plugins | expand |
On Sat, Aug 27, 2022 at 02:38:36PM -0500, Robert Elliott wrote: > In Fedora 36, cross-compiling an allmodconfig configuration > for other architectures on x86 fails with this problem: > > In file included from ../scripts/gcc-plugins/gcc-common.h:95, > from ../scripts/gcc-plugins/latent_entropy_plugin.c:78: > /usr/lib/gcc/aarch64-linux-gnu/12/plugin/include/builtins.h:23:10: fatal > error: mpc.h: No such file or directory > 23 | #include <mpc.h> > | ^~~~~~~ > compilation terminated. > > In that distro, that header file is available in the separate > libmpc-devel package. > > Although future versions of Fedora might correctly mark > that dependency, mention this additional package. > > To help detect such problems ahead of time, describe the > gcc -print-file-name=plugin > command that is used by scripts/gcc-plugins/Kconfig to detect > plugins [1]. > > [1] https://lore.kernel.org/lkml/CAHk-=wjjiYjCp61gdAMpDOsUBU-A2hFFKJoVx5VAC7yV4K6WYg@xxxxxxxxxxxxxx/ > > Fixes: 43e96ef8b70c50f ("docs/core-api: Add Fedora instructions for GCC plugins"); > Signed-off-by: Robert Elliott <elliott@hpe.com> Thanks! Reviewed-by: Kees Cook <keescook@chromium.org> Jon, do you want to take this since it's entirely in the .rst file?
Kees Cook <keescook@chromium.org> writes: > On Sat, Aug 27, 2022 at 02:38:36PM -0500, Robert Elliott wrote: >> In Fedora 36, cross-compiling an allmodconfig configuration >> for other architectures on x86 fails with this problem: >> >> In file included from ../scripts/gcc-plugins/gcc-common.h:95, >> from ../scripts/gcc-plugins/latent_entropy_plugin.c:78: >> /usr/lib/gcc/aarch64-linux-gnu/12/plugin/include/builtins.h:23:10: fatal >> error: mpc.h: No such file or directory >> 23 | #include <mpc.h> >> | ^~~~~~~ >> compilation terminated. >> >> In that distro, that header file is available in the separate >> libmpc-devel package. >> >> Although future versions of Fedora might correctly mark >> that dependency, mention this additional package. >> >> To help detect such problems ahead of time, describe the >> gcc -print-file-name=plugin >> command that is used by scripts/gcc-plugins/Kconfig to detect >> plugins [1]. >> >> [1] https://lore.kernel.org/lkml/CAHk-=wjjiYjCp61gdAMpDOsUBU-A2hFFKJoVx5VAC7yV4K6WYg@xxxxxxxxxxxxxx/ >> >> Fixes: 43e96ef8b70c50f ("docs/core-api: Add Fedora instructions for GCC plugins"); >> Signed-off-by: Robert Elliott <elliott@hpe.com> > > Thanks! > > Reviewed-by: Kees Cook <keescook@chromium.org> > > Jon, do you want to take this since it's entirely in the .rst file? Yes, I'll do that. Thanks, jon
diff --git a/Documentation/kbuild/gcc-plugins.rst b/Documentation/kbuild/gcc-plugins.rst index 0ba76719f1b9..c578c6ba3eb6 100644 --- a/Documentation/kbuild/gcc-plugins.rst +++ b/Documentation/kbuild/gcc-plugins.rst @@ -90,7 +90,11 @@ e.g., on Ubuntu for gcc-10:: Or on Fedora:: - dnf install gcc-plugin-devel + dnf install gcc-plugin-devel libmpc-devel + +Or on Fedora when using cross-compilers that include plugins:: + + dnf install libmpc-devel Enable the GCC plugin infrastructure and some plugin(s) you want to use in the kernel config:: @@ -99,6 +103,19 @@ in the kernel config:: CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y ... +Run gcc (native or cross-compiler) to ensure plugin headers are detected:: + + gcc -print-file-name=plugin + CROSS_COMPILE=arm-linux-gnu- ${CROSS_COMPILE}gcc -print-file-name=plugin + +The word "plugin" means they are not detected:: + + plugin + +A full path means they are detected:: + + /usr/lib/gcc/x86_64-redhat-linux/12/plugin + To compile the minimum tool set including the plugin(s):: make scripts
In Fedora 36, cross-compiling an allmodconfig configuration for other architectures on x86 fails with this problem: In file included from ../scripts/gcc-plugins/gcc-common.h:95, from ../scripts/gcc-plugins/latent_entropy_plugin.c:78: /usr/lib/gcc/aarch64-linux-gnu/12/plugin/include/builtins.h:23:10: fatal error: mpc.h: No such file or directory 23 | #include <mpc.h> | ^~~~~~~ compilation terminated. In that distro, that header file is available in the separate libmpc-devel package. Although future versions of Fedora might correctly mark that dependency, mention this additional package. To help detect such problems ahead of time, describe the gcc -print-file-name=plugin command that is used by scripts/gcc-plugins/Kconfig to detect plugins [1]. [1] https://lore.kernel.org/lkml/CAHk-=wjjiYjCp61gdAMpDOsUBU-A2hFFKJoVx5VAC7yV4K6WYg@xxxxxxxxxxxxxx/ Fixes: 43e96ef8b70c50f ("docs/core-api: Add Fedora instructions for GCC plugins"); Signed-off-by: Robert Elliott <elliott@hpe.com> --- Documentation/kbuild/gcc-plugins.rst | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-)