Re: [PATCH] powerpc: Limit ARCH_HAS_KERNEL_FPU_SUPPORT to PPC64

From: Guenter Roeck
Date: Wed May 29 2024 - 18:20:10 EST


On Wed, May 29, 2024 at 09:28:50AM -0700, Samuel Holland wrote:
> When building a 32-bit kernel, some toolchains do not allow mixing soft
> float and hard float object files:
>
> LD vmlinux.o
> powerpc64le-unknown-linux-musl-ld: lib/test_fpu_impl.o uses hard float, arch/powerpc/kernel/udbg.o uses soft float
> powerpc64le-unknown-linux-musl-ld: failed to merge target specific data of file lib/test_fpu_impl.o
> make[2]: *** [scripts/Makefile.vmlinux_o:62: vmlinux.o] Error 1
> make[1]: *** [Makefile:1152: vmlinux_o] Error 2
> make: *** [Makefile:240: __sub-make] Error 2
>
> This is not an issue when building a 64-bit kernel. To unbreak the
> build, limit ARCH_HAS_KERNEL_FPU_SUPPORT to 64-bit kernels. This is okay
> because the only real user of this option, amdgpu, was previously
> limited to PPC64 anyway; see commit a28e4b672f04 ("drm/amd/display: use
> ARCH_HAS_KERNEL_FPU_SUPPORT").
>
> Fixes: 01db473e1aa3 ("powerpc: implement ARCH_HAS_KERNEL_FPU_SUPPORT")
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202405250851.Z4daYSWG-lkp@xxxxxxxxx/
> Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx>
> Closes: https://lore.kernel.org/lkml/eeffaec3-df63-4e55-ab7a-064a65c00efa@xxxxxxxxxxxx/
> Signed-off-by: Samuel Holland <samuel.holland@xxxxxxxxxx>

Tested-by: Guenter Roeck <linux@xxxxxxxxxxxx>

> ---
>
> arch/powerpc/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 3c968f2f4ac4..c88c6d46a5bc 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -137,7 +137,7 @@ config PPC
> select ARCH_HAS_GCOV_PROFILE_ALL
> select ARCH_HAS_HUGEPD if HUGETLB_PAGE
> select ARCH_HAS_KCOV
> - select ARCH_HAS_KERNEL_FPU_SUPPORT if PPC_FPU
> + select ARCH_HAS_KERNEL_FPU_SUPPORT if PPC64 && PPC_FPU
> select ARCH_HAS_MEMBARRIER_CALLBACKS
> select ARCH_HAS_MEMBARRIER_SYNC_CORE
> select ARCH_HAS_MEMREMAP_COMPAT_ALIGN if PPC_64S_HASH_MMU
> --
> 2.44.1
>