On 7/8/26 23:14, Martin Storsjö wrote:
On Wed, 8 Jul 2026, Jacek Caban via Mingw-w64-public wrote:
This option is meant to be used alongside --host=aarch64-w64-mingw32
to enable
a hybrid ARM64X build. Enable the compilation of all ARM64EC-specific
files in
preparation for using -marm64x and ensure that including them on
unintended
targets is harmless via preprocessor guards.
Perhaps you could point out, that the old way of building standalone
arm64ec libraries still works as well, and was/is picked up if
configuring with an arm64ec triple.
diff --git a/mingw-w64-crt/configure.ac b/mingw-w64-crt/configure.ac
index 1f1c11eb6..5e5d2f7f3 100644
--- a/mingw-w64-crt/configure.ac
+++ b/mingw-w64-crt/configure.ac
@@ -170,6 +170,18 @@ AS_VAR_IF([enable_libarm64],[yes],[
AS_IF([AS_VAR_TEST_SET([LIB32]) || AS_VAR_TEST_SET([LIB64]) ||
AS_VAR_TEST_SET([LIBARM32])],
[AC_MSG_WARN([Building the runtime to use libarm64 with lib32,
lib64 or libarm32 is unsupported.])])])
+AC_MSG_CHECKING([whether to build the ARM64EC libraries])
+AC_ARG_ENABLE([arm64ec],
+ [AS_HELP_STRING([--enable-arm64ec], [Build the ARM64EC libraries])],
The option description makes this a little bit confusing, as you don't
need to set this when configuring with --host=arm64ec-... And "the
arm64ec libraries" also sounds vague, what are they? As we produce the
exact same set of files as before...
"Include arm64ec specific files even if building for another
architecture" is specific, but also sounds very weird if one isn't
familiar with the setup.
In one sense, the option you'd want is --enable-arm64x, which would
both include the files, and implicitly add -marm64x to cflags. But
there are merits to having the two aspects separated like this too.
I changed the description and renamed the option in the new version.
+ [],
+ [AS_VAR_SET([enable_arm64ec],[no])])
+AC_MSG_RESULT([$enable_arm64ec])
+AS_CASE([$enable_arm64ec],
+ [no],[],
+ [yes],[AS_VAR_SET([ARM64X])],
+ [AC_MSG_ERROR([invalid argument. Must be either yes or no.])])
+AM_CONDITIONAL([ARM64X], [AS_VAR_TEST_SET([ARM64X])])
+
AS_CASE([$host_cpu],
[x86_64],[
libx8664suffx=lib
@@ -210,7 +222,7 @@ AC_SUBST([LIBX8632SUFFIXDIR],[$libx8632suffx])
AC_SUBST([LIBARM64SUFFIXDIR],[$libarm64suffx])
AC_SUBST([LIBARM32SUFFIXDIR],[$libarm32suffx])
-AM_CONDITIONAL([ARM64EC],[test $host_cpu = arm64ec])
+AM_CONDITIONAL([ARM64EC],[test $host_cpu = arm64ec -o
x$enable_arm64ec = xyes])
# Checks for features.
diff --git a/mingw-w64-crt/math/fabsf.c b/mingw-w64-crt/math/fabsf.c
index e7e9d8fa7..62cbec9ca 100644
--- a/mingw-w64-crt/math/fabsf.c
+++ b/mingw-w64-crt/math/fabsf.c
@@ -3,6 +3,9 @@
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this
package.
*/
+
+#ifndef __aarch64__
+
This change isn't entirely right; we build this file for aarch64 too,
for msvcrt. (Are we lacking CI coverage so we didn't catch if
aarch64/msvcrt builds end up missing the fabsf function?)
It's also present in msvcrt.dll importlib for native ARMs, so I think
that we don't need to provide it.
Thanks for the review!
Jacek
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public