Message ID | 20240529162852.1209-1-samuel.holland@sifive.com (mailing list archive) |
---|---|
State | Accepted |
Commit | be2fc65d66e0406cc9d39d40becaecdf4ee765f3 |
Headers | show |
Series | powerpc: Limit ARCH_HAS_KERNEL_FPU_SUPPORT to PPC64 | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/github-powerpc_ppctests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_selftests | success | Successfully ran 8 jobs. |
snowpatch_ozlabs/github-powerpc_sparse | fail | Job manually cancelled |
snowpatch_ozlabs/github-powerpc_clang | success | Successfully ran 6 jobs. |
snowpatch_ozlabs/github-powerpc_kernel_qemu | fail | Job manually cancelled |
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@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202405250851.Z4daYSWG-lkp@intel.com/ > Reported-by: Guenter Roeck <linux@roeck-us.net> > Closes: https://lore.kernel.org/lkml/eeffaec3-df63-4e55-ab7a-064a65c00efa@roeck-us.net/ > Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Tested-by: Guenter Roeck <linux@roeck-us.net> > --- > > 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 >
On Wed, 29 May 2024 09:28:50 -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 > > [...] Applied to powerpc/fixes. [1/1] powerpc: Limit ARCH_HAS_KERNEL_FPU_SUPPORT to PPC64 https://git.kernel.org/powerpc/c/be2fc65d66e0406cc9d39d40becaecdf4ee765f3 cheers
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
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@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202405250851.Z4daYSWG-lkp@intel.com/ Reported-by: Guenter Roeck <linux@roeck-us.net> Closes: https://lore.kernel.org/lkml/eeffaec3-df63-4e55-ab7a-064a65c00efa@roeck-us.net/ Signed-off-by: Samuel Holland <samuel.holland@sifive.com> --- arch/powerpc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)