Re: [PATCH 3/3] Revert "hardening: Disable GCC randstruct for COMPILE_TEST"
From: Kees Cook <kees@kernel.org>
Date: 2025-05-30 05:12:26
Also in:
linux-hardening, lkml, llvm
On Thu, May 29, 2025 at 09:06:46PM -0300, Thiago Jung Bauermann wrote:
This commit was reported by our CI as breaking the allmodconfig build for the arm and arm64 architectures when using GCC 15. This is due to https://github.com/KSPP/linux/issues/367 : 00:05:08 arch/arm64/kernel/kexec_image.c:132:14: internal compiler error: in comptypes_check_enum_int, at c/c-typeck.cc:1519 00:05:08 132 | const struct kexec_file_ops kexec_image_ops = { 00:05:08 | ^~~~~~~~~~~~~~
I'm not able to reproduce this. Which specific version of GCC 15 and on what distro are you seeing this? This is Fedora 42 for me: $ aarch64-linux-gnu-gcc --version aarch64-linux-gnu-gcc (GCC) 15.1.1 20250425 (Red Hat Cross 15.1.1-1) ... $ make O=gcc-arm64 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- allmodconfig $ grep RANDSTRUCT gcc-arm64/.config # CONFIG_RANDSTRUCT_NONE is not set CONFIG_RANDSTRUCT_FULL=y # CONFIG_RANDSTRUCT_PERFORMANCE is not set CONFIG_RANDSTRUCT=y CONFIG_GCC_PLUGIN_RANDSTRUCT=y CONFIG_RANDSTRUCT_KUNIT_TEST=m $ make O=gcc-arm64 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- all -s $ file gcc-arm64/vmlinux gcc-arm64/vmlinux: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), statically linked, BuildID[sha1]=b53656cb73bb82f4e19edbfa54241c203daa3fed, not stripped And the new KUnit randstruct selftests all pass as well: $ ./tools/testing/kunit/kunit.py run \ --arch arm64 --cross_compile aarch64-linux-gnu- \ --kconfig_add CONFIG_RANDSTRUCT_FULL=y randstruct ... # Totals: pass:5 fail:0 skip:0 total:5 -- Kees Cook