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

Reply via email to