crt: Define F_ARM_ANY on ARM64EC
On ARM64EC, CRT DLLs export a superset of the symbols exported by x86_64, including
most native aarch64 functions. In our import libraries, we often use F_ARM_ANY for
symbols we import directly rather than defining our own versions. This is typically
done for compatibility, which is not a concern on ARM64EC.
The makefiles already reflect this by following aarch64 rather than x86_64 in terms
of included object files. This change updates the .def files to match that behavior.
This allows using msvcrt-os on ARM64EC and fixes a few functions, such as fabsf,
that were previously missing.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-crt/def-include/func.def.in b/mingw-w64-crt/def-include/func.def.in
index 1d542a1..f180b9c 100644
--- a/mingw-w64-crt/def-include/func.def.in
+++ b/mingw-w64-crt/def-include/func.def.in
@@ -18,6 +18,9 @@
#define F_X86_ANY(x) x
#define F_NON_I386(x) x
#define F_NON_ARM64(x) x
+#if defined(__arm64ec__)
+#define F_ARM_ANY(x) x
+#endif
#elif defined(__i386__)
#define F32(x) x
#define F_I386(x) x