Ok when I tried to get a minimal reproducible case I set it up incorrectly, when the flag is enabled and you run `make scripts` it prints `HOSTCXX scripts/gcc-plugins/latent_entropy_plugin.so` and gives this error:
$ make scripts HOSTCXX scripts/gcc-plugins/latent_entropy_plugin.so In file included from /.../gcc-cross-arm-linux-gnueabihf-14.2.0/include/c++/bits/stl_pair.h:60, from /.../gcc-cross-arm-linux-gnueabihf-14.2.0/include/c++/utility:69, from /.../gcc-cross-arm-linux-gnueabihf-14.2.0-lib/lib/gcc/arm-linux-gnueabihf/14.2.0/plugin/include/system.h:228, from /.../gcc-cross-arm-linux-gnueabihf-14.2.0-lib/lib/gcc/arm-linux-gnueabihf/14.2.0/plugin/include/gcc-plugin.h:28, from scripts/gcc-plugins/gcc-common.h:7, from scripts/gcc-plugins/latent_entropy_plugin.c:78: /.../gcc-cross-arm-linux-gnueabihf-14.2.0/include/c++/type_traits:526:31: error: missing binary operator before token "(" 526 | #if _GLIBCXX_USE_BUILTIN_TRAIT(__is_array) | ^ It is honestly giving me a massive wall of errors from that file and then some other errors from other c++ include files, should the plugin even be using `HOSTCXX` or should it just be using `HOSTCC`? Tadhg On 2025-04-04 1:32 p.m., Kees Cook wrote: > On Tue, Apr 01, 2025 at 05:34:05PM -0400, Tadhg McDonald-Jensen wrote: >> Hello, >> >> When cross compiling the linux kernel with >> `CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y` it tries to compile the plugin for >> the target platform instead of for the host machine causing the >> compilation to fail. >> >> I've opened a bug on bugzilla: >> https://bugzilla.kernel.org/show_bug.cgi?id=219973 >> >> Specifically I am using GNU guix and trying to compile with `ARCH=arm` >> and `CROSS_COMPILE=arm-linux-gnueabihf`, in guix the include paths are >> setup in a non typical way so if that is relevant to this error I am >> happy to provide more detail, but hopefully just the output of make >> showing `CC scripts/gcc-plugins/latent_entropy_plugin.o` instead of >> `HOSTCC` like many other files in the scripts folder is sufficient to >> reproduce and solve this issue. > > If the kernel's build system can't find the right includes, that would > explain it. I'd check final depends line from scripts/gcc-plugins/Kconfig: > > bool "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) > > Which validates the Makefile's use of that: > > GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin) > >
OpenPGP_0x85C0C8DCBBF44EE7.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature