You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The MLX build and NIF link set no deployment target, so MLX's objects
inherited the build host's OS (CMake "build for host") while the NIF
linked at the SDK-major .0 — producing `ld` version-mismatch warnings
and a shipped floor that drifts with the runner OS. An aot build done on
a macOS-26 host silently linked the macOS-26 libSystem `_Float16` helpers
(`__fmaxf16`/`__fminf16`) as hard imports, so it would fail to dyld-load
on the older macOS the aot variant is meant to support.
Pin an explicit per-variant floor (aot 14.0; jit 26.2, since its NAX
kernels and JACCL are gated on macOS SDK >= 26.2) and thread it through
both the MLX CMake build (CMAKE_OSX_DEPLOYMENT_TARGET) and the NIF
compile/link (MACOSX_DEPLOYMENT_TARGET) from one source of truth in
mix.exs. The floor is folded into the MLX cache dir name so a change
can't reuse a stale build. scripts/verify-nif-floor.sh asserts the built
NIF's LC_BUILD_VERSION and that a sub-26 floor imports no macOS-26
symbols; CI and the release workflow run it per variant.
Closes#202.
0 commit comments