Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > On Mon, Jul 25, 2022 at 5:39 AM Michael Ellerman <mpe@xxxxxxxxxxxxxx> wrote: >> >> Further digging shows that the build failures only occur with compilers >> that default to 64-bit long double. > > Where the heck do we have 'long double' things anywhere in the kernel? There's one or two uses, but not in any code that's relevant to this issue AFAICS. > I tried to grep for it, and failed miserably. I found some constants > that would qualify, but they were in the v4l colorspaces-details.rst > doc file. > > Strange. It doesn't seem to matter if you use long double or not. It's just that if the long double size is 64-bits the linker refuses to link a mixture of soft/hard-float objects. The 64-bit ABI says long double is 128-bits, so the compilers that are using 64-bit long double are either not built correctly, or we are not passing the correct flags to them. There's an -mlong-double-128 flag which we can pass at build time which seems to do the right thing, I will probably add that to the kernel CFLAGS, but I want that to get a bit more testing. cheers