From 6b5db12aa2f8841629cac89d9deb87486512fdb4 Mon Sep 17 00:00:00 2001 From: Daniel Hiltgen Date: Wed, 8 Apr 2026 20:51:47 -0700 Subject: [PATCH] mlx: remove stale x86 libmlx library (#15443) Fixes #15433 --- scripts/build_darwin.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/build_darwin.sh b/scripts/build_darwin.sh index 5ef385feb..f53e1c484 100755 --- a/scripts/build_darwin.sh +++ b/scripts/build_darwin.sh @@ -200,10 +200,15 @@ _build_macapp() { # Copy .so files from both architectures (names don't collide: arm64=libggml-cpu.so, amd64=libggml-cpu-*.so) cp dist/darwin-arm64/lib/ollama/*.so dist/Ollama.app/Contents/Resources/ 2>/dev/null || true cp dist/darwin-amd64/lib/ollama/*.so dist/Ollama.app/Contents/Resources/ 2>/dev/null || true - # Lipo common dylibs into universal binaries, copy amd64-only ones as-is + # Lipo common dylibs into universal binaries, copy amd64-only ones as-is. + # Skip MLX dylibs (libmlx*.dylib) — on arm64 these live in variant + # subdirs (mlx_metal_v3/) and are lipo'd there below. Copying the + # amd64 flat copy here would produce an x86_64-only dylib in + # Resources/ that shadows the variant subdirs. for F in dist/darwin-amd64/lib/ollama/*.dylib; do [ -f "$F" ] && [ ! -L "$F" ] || continue BASE=$(basename "$F") + case "$BASE" in libmlx*) continue ;; esac if [ -f "dist/darwin-arm64/lib/ollama/$BASE" ]; then lipo -create -output "dist/Ollama.app/Contents/Resources/$BASE" "$F" "dist/darwin-arm64/lib/ollama/$BASE" else