wavefnd / wavefnd/Wave

Validate hosted AArch64 Linux cross-linking under QEMU

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

Description

## Why

The native ARM64 CI job proves that Wave runs on an AArch64 host, but it does not validate the x86_64-to-`aarch64-unknown-linux-gnu` sysroot discovery and cross-link path. RISC-V already has this style of end-to-end contract.

## Scope

- On an x86_64 Ubuntu runner, install the AArch64 GNU cross compiler, libc sysroot, binutils, and qemu-user.
- Build Wave once with bounded parallelism.
- Compile and link a small Wave program for `aarch64-unknown-linux-gnu`.
- Validate ELF class/machine and interpreter metadata.
- Execute with `qemu-aarch64 -L `.
- Add one C ABI fixture invocation if the existing AAPCS64 fixture can be reused safely.

## Completion criteria

- [ ] Automatic and explicit AArch64 sysroot paths are tested.
- [ ] The binary is confirmed as AArch64 ELF64 before execution.
- [ ] QEMU output and exit status are asserted.
- [ ] Missing/incomplete sysroots have a negative regression.
- [ ] CI uses `--jobs 2` and a bounded timeout.

Contributor guide

Open the contributing guide

Research direction

Locate the existing RISC-V end-to-end contract and the CI job for native ARM64, then inspect whether the existing AAPCS64 fixture can be reused. Run the current compiler and linker tests before adding the x86_64-to-AArch64 path. Done means automatic and explicit sysroots, ELF metadata, QEMU output and status, incomplete-sysroot failures, and bounded CI parallelism and timeout are covered.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, rust, ubuntu
Domain
build-system, ci-cd, compilers, operating-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
56/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.