Fix quality-score link after streaming refactor#434
Open
andreaborio wants to merge 1 commit into
Open
Conversation
The streaming refactor made ds4.o depend on ds4_distributed.o and ds4_ssd.o: ds4_session_* call ds4_dist_session_*, and ds4_engine_open/ close call ds4_ssd_*. The gguf-tools quality-score target still links only ds4.o plus the backend object, so `make -C gguf-tools quality-score` fails at link time on both the Metal and CUDA branches with undefined ds4_dist_*/ds4_ssd_* symbols and no scorer is produced. Add ds4_distributed.o and ds4_ssd.o to QUALITY_TARGETS and QUALITY_OBJS on both branches, matching the CORE_OBJS set that ds4 and ds4-server already link. Build-only change, no backend source touched, so the correctness (ds4_test) and speed (ds4-bench) tracks are unaffected. Tested on macOS / Metal (Apple M5 Pro): make -C gguf-tools quality-score before: ld: undefined symbols ds4_dist_*/ds4_ssd_*, no binary after: links and builds gguf-tools/quality-testing/score_official CUDA branch changed symmetrically but not built here (no CUDA box); it mirrors the working CUDA CORE_OBJS.
2f87fdd to
3660153
Compare
andreaborio
pushed a commit
to andreaborio/ds4
that referenced
this pull request
Jun 18, 2026
Makefile: link ds4_distributed.o/ds4_ssd.o (broken after streaming refactor; also upstream PR antirez#434). score_official.c: enable SSD streaming (40 GiB cache) so it runs on a 64 GB box. FORK_NOTES.md: upstreamability map (per-expert NOT mergeable under antirez's no-speed-regression rule).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
make -C gguf-tools quality-scorefails to link on currentmain(80ebbc3).The streaming refactor made
ds4.odepend onds4_distributed.o(
ds4_session_*→ds4_dist_session_*) andds4_ssd.o(
ds4_engine_open/close→ds4_ssd_*), but thequality-scoretarget stilllinks only
ds4.oplus the backend object. The link fails with undefinedds4_dist_*/ds4_ssd_*symbols on both the Metal and CUDA branches, and noscore_officialbinary is produced.Fix
Add
ds4_distributed.oandds4_ssd.otoQUALITY_TARGETSandQUALITY_OBJSon both branches, matching the
CORE_OBJSset thatds4andds4-serveralready link.
Reproduce / testing (per CONTRIBUTING.md)
Build-only change to a tools target; no inference backend source is touched, so
the correctness (
ds4_test) and speed (ds4-bench) regression tracks are notaffected by this change. The failure mode it addresses is the broken link.
Machine / backend: macOS, Metal, Apple M5 Pro.
Before:
After:
CUDA branch changed symmetrically but not built here (no CUDA box). It
mirrors the CUDA
CORE_OBJSalready used to buildds4-server, so it shouldlink there too — worth a confirm on a CUDA machine.
Scope
Only the two existing Makefile branches (Metal, CUDA). ROCm
quality-scorewiring is pre-existing / separate and left untouched.