Add an AArch64 Android compiler and runtime target contract
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
## Goal
Add `aarch64-linux-android` as Wave's first Android target, initially for command-line/native library use with the Android NDK.
## Scope
- Register the exact target and Android target-attribute identity.
- Define NDK sysroot discovery and an explicit `--sysroot` override.
- Select the correct Clang/LLD driver, API-level suffix, startup objects, bionic libraries, and dynamic loader contract.
- Validate the Android AArch64 C ABI against an NDK-built fixture.
- Support object and shared-library emission before claiming executable/runtime support.
- Add emulator/device execution only when CI can provide a reliable bounded environment.
- Keep browser/WebAssembly work in #349 and #373.
## Completion criteria
- [ ] NDK object and shared-library builds succeed for a documented API level.
- [ ] ELF metadata and undefined/imported symbols are validated.
- [ ] Missing NDK/API configuration yields a structured diagnostic.
- [ ] C ABI fixture links with the NDK toolchain.
- [ ] Documentation states exactly which Android artifact modes are supported.
Contributor guide
Research direction
No files, tests, or entry points are named. Start by locating target registration and target-attribute handling, then trace existing native target contracts and NDK sysroot configuration. Done means documented API-level object and shared-library builds, validated ELF metadata and C ABI linkage, structured configuration diagnostics, and explicit supported artifact modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, rust
- Domain
- compilers, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100