Motivation
The GNU toolchain is the only major C/C++ toolchain not to support targeting Windows on ARM64. Clang/LLVM and MSVC already have support.
Many downstream open-source toolchains; such as MSYS2, MINGW and Cygwin, expressed interested in supporting WoARM64 if GCC was available.
Status
Multiple patches have been up-streamed to binutils already. The patches add backend support to the GNU toolchain. The target architecture is called aarch64-pe. This enables the linker, assembler and related tools to target WoARM64.
Next steps will be to:
Extend support in binutils (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:
git clone git://sourceware.org/git/binutils-gdb.git makedir build cd build ../binutils-gdb/configure --target=aarch64-pe make -j8
There is some more information about building it here.
https://github.com/Windows-on-ARM-Experiments/research
Running
The build above will produce the assembler and other components. For example, to assemble a file:
..\gas\as-new con-app-aarch64.s -o con-app-aarch64.o
Add Comment