Implement NetBSD amd64 code generation, std providers and executable cases
- Dominant language
- Rust
- Stars
- 53
- Forks
- 16
- Avg merge
- 4h 22m
- Merged PRs (30d)
- 46
Description
NetBSD case entries are disabled and the compiler target registry contains no NetBSD triples. Existing generated arithmetic/assembly placeholders do not test NetBSD runtime behavior.
Implement `x86_64-unknown-netbsd` under #471: target registration, Clang C ABI comparison, NetBSD startup and dynamic-loader selection, sysroot discovery/validation, and std filesystem/time/memory/process/socket providers using NetBSD headers. Versioned libc symbols and architecture-specific ABI layouts must be checked explicitly. Add a native VM execution job with substantive language and std cases, then extend to arm64 using independently verified platform information.
Acceptance: Wave and C call each other for scalar, small/large aggregate and variadic arguments; shared language cases plus OS provider/error-path cases execute in a NetBSD VM. Distinguish compile-only coverage from executable support. Do not enable unsupported architecture cells merely to complete a rectangular matrix.
Official ports: https://www.netbsd.org/ports/
Parent: #471. Keep the handwritten frontend and existing dependency choices.
Contributor guide
Research direction
Read parent issue #471, the disabled NetBSD case entries, and the compiler target registry first; use the official NetBSD ports information to verify platform details. Map the target, ABI, startup, loader, sysroot, provider, and VM-job requirements before changing them. Done means the stated scalar, aggregate, variadic, language, standard-library, and error-path cases execute in a NetBSD VM, with unsupported architecture cells left disabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, rust
- Domain
- compilers, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100