lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <7f679eb9-9641-4d79-aaa0-1f11d3754f9b@gmail.com>
Date: Wed, 9 Apr 2025 17:20:45 -0400
From: Tadhg McDonald-Jensen <tadhgmister@...il.com>
To: Kees Cook <kees@...nel.org>
Cc: linux-hardening@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: cross compile fails with GCC_PLUGIN_LATENT_ENTROPY

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)
> 
> 
Download attachment "OpenPGP_0x85C0C8DCBBF44EE7.asc" of type "application/pgp-keys" (665 bytes)

Download attachment "OpenPGP_signature.asc" of type "application/pgp-signature" (237 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ