Skip to content

Commit f78246a

Browse files
committed
chore(diag): also prove the pin fixes it, on the same Sonoma runner
The shipped build dies on macOS 14 with a STRONG reference to _OBJC_CLASS_$_MTLResidencySetDescriptor (Metal, macOS 15+) from libggml-metal — not on the libc++ symbols predicted. Locally the pinned rebuild turns that same reference WEAK. This job checks the prediction that follows: that it therefore runs.
1 parent da69f1e commit f78246a

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

‎.github/workflows/diag-libcpp-floor.yml‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,44 @@ jobs:
7777
else
7878
echo "INCONCLUSIVE — neither a loader error nor the usage message. Read the logs above."
7979
fi
80+
81+
# The other half: does the deployment-target pin that landed in #527 actually make the
82+
# payload runnable on Sonoma, or does it only move the failure? Builds from main with
83+
# the pin and runs the result on the same runner that just rejected the shipped one.
84+
rebuilt-stt-on-sonoma:
85+
runs-on: macos-14
86+
steps:
87+
- uses: actions/checkout@v4
88+
with:
89+
ref: main
90+
91+
- name: Confirm the pin is in the tree under test
92+
run: |
93+
sw_vers -productVersion
94+
grep -n 'MACOS_DEPLOYMENT_TARGET=' scripts/build-whisper-stt.sh
95+
96+
- name: Build whisper-stt-server with the pin
97+
run: bash scripts/build-whisper-stt.sh
98+
99+
- name: What the rebuilt binary declares and imports
100+
run: |
101+
cd electron/native/bin/darwin-arm64
102+
vtool -show-build whisper-stt-server | grep -E 'minos|sdk'
103+
echo "--- the Metal class that killed the shipped build ---"
104+
nm -m libggml-metal.dylib | grep MTLResidencySet || echo " (not referenced)"
105+
echo "--- the 15.4-gated libc++ symbols ---"
106+
echo "count: $(nm -m whisper-stt-server | grep undefined | grep -c 'bad_function_callE')"
107+
108+
- name: Try to run it
109+
run: |
110+
cd electron/native/bin/darwin-arm64
111+
set +e
112+
./whisper-stt-server --help > out.txt 2> err.txt
113+
echo "exit=$?"
114+
echo "--- stdout ---"; cat out.txt
115+
echo "--- stderr ---"; cat err.txt
116+
if grep -qiE 'symbol not found' err.txt; then
117+
echo "FIX INSUFFICIENT: still cannot load on $(sw_vers -productVersion)."
118+
exit 1
119+
fi
120+
echo "FIX CONFIRMED: the pinned build loads and runs on $(sw_vers -productVersion)."

0 commit comments

Comments
 (0)