Hamza Mahfooz <hamza.mahfooz@xxxxxxx> writes: > On 4/4/23 06:28, Michael Ellerman wrote: >> The amdgpu driver builds some of its code with hard-float enabled, >> whereas the rest of the kernel is built with soft-float. >> >> When building with 64-bit long double, if soft-float and hard-float >> objects are linked together, the build fails due to incompatible ABI >> tags. >> >> In the past there have been build errors in the amdgpu driver caused by >> this, some of those were due to bad intermingling of soft & hard-float >> code, but those issues have now all been fixed since commit c92b7fe0d92a >> ("drm/amd/display: move remaining FPU code to dml folder"). >> >> However it's still possible for soft & hard-float objects to end up >> linked together, if the amdgpu driver is built-in to the kernel along >> with the test_emulate_step.c code, which uses soft-float. That happens >> in an allyesconfig build. >> >> Currently those build errors are avoided because the amdgpu driver is >> gated on 128-bit long double being enabled. But that's not a detail the >> amdgpu driver should need to be aware of, and if another driver starts >> using hard-float the same problem would occur. >> >> All versions of the 64-bit ABI specify that long-double is 128-bits. >> However some compilers, notably the kernel.org ones, are built to use >> 64-bit long double by default. >> >> Apart from this issue of soft vs hard-float, the kernel doesn't care >> what size long double is. In particular the kernel using 128-bit long >> double doesn't impact userspace's ability to use 64-bit long double, as >> musl does. >> >> So always build the 64-bit kernel with 128-bit long double. That should >> avoid any build errors due to the incompatible ABI tags. Excluding the >> code that uses soft/hard-float, the vmlinux is identical with/without >> the flag. >> >> It does mean any code which is incorrectly intermingling soft & >> hard-float code will build without error, so those bugs will need to be >> caught by testing rather than at build time. >> >> For more background see: >> - commit d11219ad53dc ("amdgpu: disable powerpc support for the newer display engine") >> - commit c653c591789b ("drm/amdgpu: Re-enable DCN for 64-bit powerpc") >> - https://lore.kernel.org/r/dab9cbd8-2626-4b99-8098-31fe76397d2d@xxxxxxxxxxxxxxxx >> >> Signed-off-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> > > Reviewed-by: Hamza Mahfooz <hamza.mahfooz@xxxxxxx> Thanks. > If you'd prefer to have this go through the amdgpu branch, please let > me know. I think it makes more sense to go via the powerpc tree, it will get more testing on powerpc that way. cheers