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,

...

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

...

Next steps will be to:

  • Extend support in binutils , 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)

  • Add support to the compiler (GCC) 

Compiling

Binutils can be built using and autotools compatible environment including WSL and MSYS2. For example:

Code Block
languagebash
git clone git://sourceware.org/git/binutils-gdb.git
makedir build
cd build
../binutils-gdb/configure --target=aarch64-pe
make -j8
  • .

  • Validate the capabilities of the toolchain on more use-cases, such as Boost library, and identify and fix the remaining issues.

Compiling and Running

...

Running

The build above will produce the assembler and other components. For example, to assemble a file:

...