MinGW GNU Toolchain
Project
The GNU toolchain is the only major C/C++ toolchain with limited support of Windows on Arm64 target. Clang/LLVM and MSVC already have a solid support.
Many downstream open-source toolchains, such as MinGW, Cygwin, and MSYS2 expressed interested in supporting WoARM64 if GCC was available.
The Arm64 porting is happening at GitHub - Windows-on-ARM-Experiments/mingw-woarm64-build: Workflows and build scripts for Windows on Arm64 GNU cross-compiler for `aarch64-w64-mingw32` target.
Status
Many patches have been already upstreamed to binutils, MinGW, and GCC projects, allowing to cross-compile (Linux x64/Arm64 → Windows Arm64) and pass tests of several target C projects like FFmpeg, OpenSSL, OpenBLAS, libjpeg-turbo, and libxml2, and should be released with GCC 15.
The C++ support is limited as SEH and C++ exceptions are not implemented properly.
The target binutils architecture is called
aarch64-pe
, the compiler target is calledaarch64-w64-mingw32
.
Next Steps
Allow native compilation.
Extend C++ support in binutils and GCC (SEH and TLS are still missing).
Validate the capabilities of the toolchain on more use-cases, such as Boost library, and identify and fix the remaining issues.
Compiling and Running
For detailed instructions on how to cross-compile binaries for
aarch64-w64-mingw32
target refer to GitHub - Windows-on-ARM-Experiments/mingw-woarm64-build: Workflows and build scripts for Windows on Arm64 GNU cross-compiler for `aarch64-w64-mingw32` target.