1
0
mirror of https://git.code.sf.net/p/mingw-w64/mingw-w64 synced 2025-04-18 17:44:18 +03:00

crt: Add initial ARM64EC build system support

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.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
This commit is contained in:
Billy Laws 2023-09-16 00:03:00 +01:00 committed by Jacek Caban
parent 22f9ed9987
commit 4d83e142b6
2 changed files with 13 additions and 3 deletions

View File

@ -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

View File

@ -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) {