Skip to content

Commit 48096e4

Browse files
committed
Bump mach2 dep from 0.4.2 to 0.6
mach2 v0.4.2 emits `compile_error!("mach requires macOS or iOS")` on any target where neither `target_os = "macos"` nor `target_os = "ios"` matches. That blocks every Apple non-iOS-non-macOS platform — most pressingly arm64_32-apple-watchos for embedders shipping wasmtime on Apple Watch. The fix has been upstream in mach2 since 0.6.0 (commit `538ce75`, 2025-08-16, "Add support for tvOS, watchOS and visionOS"), which widens the cfg gate from `cfg(any(macos, ios))` to `cfg(target_vendor = "apple")` on both the `compile_error!` and the `libc` build-dep, with no public-API changes in the modules wasmtime imports (`exc`, `exception_types`, `kern_return`, `mach_init`, `mach_port`, `message`, `ndr`, `port`, `thread_act`, `thread_status`). Verified by building wasmtime as a `staticlib` for `arm64_32-apple-watchos` under `nightly-2026-01-25 + -Z build-std=std,panic_abort` with `--features pulley,runtime,std,cranelift,anyhow` — no other changes needed in `crates/wasmtime/src/runtime/vm/sys/unix/machports.rs`. The dev-only path (`cranelift-jit -> region -> mach2 0.4.x`) keeps an older mach2 in the lockfile for cranelift-jit's own host tests; that path is not part of any production embedder build and stays unchanged. Closes the watchOS port story without needing a separate mach2 release.
1 parent 9521862 commit 48096e4

2 files changed

Lines changed: 11 additions & 5 deletions

File tree

Cargo.lock

Lines changed: 10 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,7 @@ async-trait = "0.1.89"
394394
heck = "0.5"
395395
similar = "2.7.0"
396396
toml = "0.9.8"
397-
mach2 = "0.4.2"
397+
mach2 = "0.6"
398398
memfd = "0.6.5"
399399
psm = "0.1.11"
400400
proptest = "1.11.0"

0 commit comments

Comments
 (0)