wavefnd / wavefnd/Wave

Add Windows GNU AArch64 target support

Open
#412 0 comments 0 reactions 0 assignees View on GitHub
cross-platform enhancement help wanted needs testing os support
Dominant language
Rust
Stars
53
Forks
16
Avg merge
4h 22m
Merged PRs (30d)
46

Description

Companion to #385 for standard-library providers. This issue covers compiler, object, linker, and ABI support rather than the std API.

## Target contract

Support exact AArch64 MinGW triples, starting with `aarch64-w64-windows-gnu`. Add a `pc` alias only if the toolchain ecosystem uses and validates it.

## Scope

- Add the target registry entry and AArch64 LLVM feature coverage.
- Emit ARM64 COFF objects and select the correct LLD/MinGW linker flavor.
- Implement the Windows ARM64 C ABI classifier; do not assume the Darwin/Linux AAPCS64 classifier is sufficient.
- Discover or accept an explicit MinGW AArch64 sysroot.
- Add PE/COFF machine validation and a C interop fixture.
- Add compile/link CI when a maintained runner or cross toolchain is available.

## Completion criteria

- [ ] target-list/spec and dry-run output are correct.
- [ ] Generated objects report ARM64 COFF.
- [ ] Scalar, aggregate, return, and variadic C ABI cases are covered.
- [ ] Missing runtime pieces produce a structured sysroot/toolchain error.
- [ ] Existing x86_64 Windows GNU and #292 MSVC work remain distinct.

Contributor guide

Open the contributing guide

Research direction

Start with the target-list/spec and dry-run output, then compare the existing x86_64 Windows GNU support with the distinct #292 MSVC work. Investigate the target registry, LLVM feature coverage, PE/COFF validation, linker selection, sysroot handling, and C interop fixture; done means all listed target, object, ABI, error, and CI criteria pass.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, ci-cd, compilers, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.