Re: [PATCH] kbuild: pass -fno-pic when probing for -mfentry

From: Nathan Chancellor

Date: Tue Oct 20 2026 - 17:54:24 EST


Hi Ricardo,

On Tue, Oct 20, 2026 at 06:10:52AM +0000, Ricardo Ribalda wrote:
> Some distros (namely Debian) configure their 32-bit toolchain with
> --enable-default-pie.
>
> To properly probe for -mfentry on them we need to pass -fno-pic,
> otherwise allmodconfig will fail with:
>
> ./arch/x86/include/asm/ftrace.h:9:3: error: #error Compiler does not support fentry?
>
> Fixes: 454e00cf8ee5 ("kbuild: avoid re-running compiler and linker probes")
> Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
> ---
> I found this while testing next with media-ci.
>
> Full logs:
> https://gitlab.freedesktop.org/linux-media/users/ribalda/-/jobs/113299249#L4729

Thanks a lot for the patch/report. I noticed another problem with this
check and the fix is quite ugly, so I think I would rather just back out
of this move altogether, along with documenting these pitfalls for
future travelers:

https://lore.kernel.org/20261020-kconfig-fix-mfentry-check-v1-0-428258bc0fc0@xxxxxxxxxx/

> ---
> scripts/Kconfig.toolchain | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/Kconfig.toolchain b/scripts/Kconfig.toolchain
> index b0b9a663ddbe..53b361cf365a 100644
> --- a/scripts/Kconfig.toolchain
> +++ b/scripts/Kconfig.toolchain
> @@ -170,8 +170,10 @@ config CC_HAS_MNOP_MCOUNT
> def_bool $(cc-option,-mnop-mcount)
>
> # s390-linux-gnu-gcc did not support -mfentry until gcc-9.
> +# 32-bit x86 gcc does not support -mfentry in combination with -fpic, which will
> +# be enabled by default when gcc is configured with --enable-default-pie.
> config CC_HAS_MFENTRY
> - def_bool $(cc-option,-mfentry)
> + def_bool $(cc-option,-fno-pic -mfentry)
>
> config LD_OPT_FORCE_GROUP_ALLOCATION
> def_string "$(ld-option-str,--force-group-allocation)"
>
> ---
> base-commit: 3d229ce89862b8e82d71a9e11d6f840ca272a6d6
> change-id: 20261020-pie-6774df20b0fa
>
> Best regards,
> --
> Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
>

--
Cheers,
Nathan