...
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
...
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 | ||
---|---|---|
| ||
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
For detailed instructions on how to cross-compile binaries for
aarch64-w64-mingw32
target refer to https://github.com/Windows-on-ARM-Experiments/
...
Running
The build above will produce the assembler and other components. For example, to assemble a file:
...