Add ARM64X support

Extend the aarch64-w64-mingw32 prefix to provide ARM64EC libraries
alongside standard AArch64 libraries, replacing the separate
arm64ec-w64-mingw32 prefix. This aligns with how MSVC distributes
ARM64EC libraries and enables the linker to process both targets
simultaneously into a single hybrid binary.

This extensively utilizes LLVM's -marm64x option, compiling both
targets in a single compiler invocation to produce hybrid object
files (unlike MSVC tools, which require separate compilation passes).
This commit is contained in:
Jacek Caban authored and Martin Storsjö committed 2026-07-27 19:08:32 +02:00
1 parent 5e3f73a650
commit 64effa9a71
10 files changed
+127 -33

No files matched your search

+20 -2
View File
@@ -55,18 +55,36 @@ if command -v gmake >/dev/null; then
MAKE=gmake
fi
ARM64X_FLAGS=""
for arch in $ARCHS; do
case $arch in
arm64ec) ARM64X_FLAGS="-marm64x" ;;
esac
done
cd mingw-w64/mingw-w64-libraries
for lib in winpthreads winstorecompat; do
cd $lib
FLAGS=""
for arch in $ARCHS; do
case $arch in
aarch64)
FLAGS="$ARM64X_FLAGS"
;;
arm64ec)
continue
;;
esac
[ -z "$CLEAN" ] || rm -rf build-$arch
mkdir -p build-$arch
cd build-$arch
arch_prefix="$PREFIX/$arch-w64-mingw32"
../configure --host=$arch-w64-mingw32 --prefix="$arch_prefix" --libdir="$arch_prefix/lib" \
--enable-silent-rules \
CFLAGS="$USE_CFLAGS" \
CXXFLAGS="$USE_CFLAGS"
CFLAGS="$USE_CFLAGS $FLAGS" \
CXXFLAGS="$USE_CFLAGS $FLAGS" \
LDFLAGS="$FLAGS"
$MAKE -j$CORES
$MAKE install
cd ..