Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 https://github.com/Windows-on-ARM-Experiments/mingw-woarm64-build

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 called aarch64-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