On Tue, 18 Mar 2025, Pali Rohár wrote:

But it
should probably be updated to use F_LD64() instead of F_ARM_ANY(), like the
other patch currently in review.

// Martin

I'm not sure if the F_LD64 is the best option.

It's specifically about whether long doubles are 64 bit or not, so it's exactly the right condition IMO.

The point is twofold; for arm64ec, it's unclear whether that should be included in F_ARM_ANY or not. arm64ec uses the x86_64 ABI but with arm64 instructions. Ideally for 100% x86_64 ABI compatibility, it should use 80 bit long doubles, but that's not implemented yet, and it remains to be seen if that's feasible to implement at all.

Secondly, there are people requesting it to be possible to build and use mingw-w64-crt with the GCC/Clang options "-mlong-double64", which makes long double==double on x86. The reasons for wanting to use that option can be discussed (I don't entirely agree with all of them), but by using F_LD64() here we get the right choice implicitly for the cases when the compiler is configured this way automatically.

And if changing from F_ARM_ANY to F_LD64 is needed then it should be done globally for all files, not just for this one. So I would propose to put this change out of the scope.

Well that's pretty much what "crt: Use F_LD64 for long double functions" does. But as that one isn't merged yet, I guess it is not reasonable to make this one to start the pattern.

So I pushed this patch now, and the other one can be updated to cover these instances as well.

// Martin

_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to