These patches bring the headers in mingw-w64 in sync with Billy's ARM64EC fork.
The changes are straightforward but reflect a design decision not to expose x86-specific MinGW hacks to ARM64EC. The most notable difference is the handling of 80-bit long double. Additionally, x86 MinGW's fenv.h defines structures like fenv_t and certain constants that are incompatible with other fenv.h implementations. Instead of carrying over these quirks, ARM64EC uses ARM64 variants that align with MSVC and the broader Windows ecosystem. ARM64EC allows freely mixing x86 and ARM code—you can link x86 and ARM64 object files in the same binary, and the toolchain handles cross-boundary function calls. However, this solution won't work for code that relies on long double or other incompatible structures. Supporting such cases would require extending x86-specific hacks to ARM64EC, which I'd prefer to avoid where possible. My suggestion is to declare such mixing unsupported when using affected features; otherwise, it remains fine. IMHO, this kind of mixing is most useful for x86 assembly that's difficult to port to ARM64EC, and those cases are unlikely to be affected anyway. Billy Laws (2): headers: Use ARM definitions for ARM64EC in fenv.h. headers: Use aarch64 math function vaariants for ARM64EC. Jacek Caban (1): headers: Reorder long double implementation #ifdefs in math.h. mingw-w64-headers/crt/fenv.h | 4 ++-- mingw-w64-headers/crt/math.h | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) -- 2.45.2 _______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public