From: Billy Laws <[email protected]>
This introduces basic ARM64EC build support by reusing a modified ARM64
configuration. In the future, the goal is to include both native and
ARM64EC object files in aarch64 archives.
This setup is still subject to change.
---
mingw-w64-crt/Makefile.am | 6 +++++-
mingw-w64-crt/configure.ac | 10 ++++++++--
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/mingw-w64-crt/Makefile.am b/mingw-w64-crt/Makefile.am
index 4f0119be8..291d24b24 100644
--- a/mingw-w64-crt/Makefile.am
+++ b/mingw-w64-crt/Makefile.am
@@ -28,7 +28,11 @@ CPPFLAGS32=-m32 -masm=att
CPPFLAGS64=-m64 -masm=att
AM_DLLTOOLFLAGS=-k --as=$(AS) --output-lib $@
DLLTOOLFLAGSARM32=-m arm
-DLLTOOLFLAGSARM64=-m arm64
+if ARM64EC
+ DLLTOOLFLAGSARM64=-m arm64ec
+else
+ DLLTOOLFLAGSARM64=-m arm64
+endif
DLLTOOLFLAGS32=--as-flags=--32 -m i386
DLLTOOLFLAGS64=--as-flags=--64 -m i386:x86-64
DTDEFARM32=$(DLLTOOL) $(DLLTOOLFLAGSARM32) $(AM_DLLTOOLFLAGS) --input-def
diff --git a/mingw-w64-crt/configure.ac b/mingw-w64-crt/configure.ac
index f4f8d954d..ee0e0e9b0 100644
--- a/mingw-w64-crt/configure.ac
+++ b/mingw-w64-crt/configure.ac
@@ -156,7 +156,7 @@ AC_ARG_ENABLE([libarm64],
[Build the WinARM64 libraries])],
[],
[AS_CASE([$host_cpu],
- [aarch64*],[enable_libarm64=yes],
+ [aarch64* | arm64*],[enable_libarm64=yes],
[*],[enable_libarm64=no])
])
AC_MSG_RESULT([$enable_libarm64])
@@ -181,7 +181,7 @@ AS_CASE([$host_cpu],
libx8632suffx=lib
libarm64suffx=libarm64
libarm32suffx=libarm32],
- [aarch64*],[
+ [aarch64* | arm64*],[
libx8664suffx=libx8664
libx8632suffx=libx8632
libarm64suffx=lib
@@ -210,6 +210,8 @@ AC_SUBST([LIBX8632SUFFIXDIR],[$libx8632suffx])
AC_SUBST([LIBARM64SUFFIXDIR],[$libarm64suffx])
AC_SUBST([LIBARM32SUFFIXDIR],[$libarm32suffx])
+AM_CONDITIONAL([ARM64EC],[test $host_cpu = arm64ec])
+
# Checks for features.
AC_MSG_CHECKING([whether to enable globbing])
@@ -377,6 +379,10 @@ AC_MSG_CHECKING([whether the linker provides __ImageBase
symbol])
cat <<_ACEOF >conftest.$ac_ext
extern unsigned char __ImageBase[[]];
+
+// Define a dummy call helper to satisfy the linker on ARM64EC
+void *__os_arm64x_dispatch_ret = 0;
+
void __main(void) {
}
int main(void) {
--
2.49.0
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public