wavefnd / wavefnd/Wave

Make the macOS deployment target and SDK version explicit

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

Description

## Problem

`llvm/src/backend.rs` currently passes hard-coded `-platform_version macos 11.0 11.0` arguments to `ld64.lld`. This can produce incorrect load commands when the selected SDK or deployment policy differs and gives users no supported override.

## Scope

- Define precedence for an explicit Wave option, `MACOSX_DEPLOYMENT_TARGET`, and the compiler default.
- Derive or accept the SDK version separately from the minimum deployment target.
- Validate version strings before invoking the linker.
- Render both values in dry-run and target-spec output.
- Add linker-argument tests for x86_64 and AArch64 Darwin.
- Keep the default compatible with the current minimum unless the project deliberately changes it.

## Completion criteria

- [ ] No platform version is silently duplicated as both minimum and SDK version.
- [ ] Invalid values fail with a usage diagnostic.
- [ ] Explicit sysroot/SDK selection is reflected in linker arguments.
- [ ] Existing macOS CI builds and runtime tests pass.
- [ ] Cross-link behavior is documented.

Contributor guide

Open the contributing guide

Research direction

Start by reading llvm/src/backend.rs and tracing how Darwin linker arguments, dry-run output, and target-spec output are assembled. Identify the existing x86_64 and AArch64 Darwin linker-argument tests or their test entry points, then define the precedence and validation behavior. Done means separate deployment and SDK values are rendered, invalid values produce usage diagnostics, and the documented cross-link behavior and existing macOS checks pass.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.