…e new revision dropped
AMD removes public LoomC symbols without notice: loom 32d0c76a (in hrx-system
4ba76c18) dropped loomc_amdgpu_runtime_global_flags_t and
loomc_amdgpu_emit_options_t, which our ggml/src/ggml-hrx/loom-jit.cpp uses.
CI here builds without HRX, so #353, #357 and #361 merged a submodule pair that
does not compile with ONEBIT_HRX=ON, and #359 and #363 pinned hrx-system back by
hand (KNOWN-ISSUES.md).
The bump now checks, at the header level, that every loomc_* / LOOMC_*
identifier used under ggml/src/ggml-hrx at the new llama.cpp revision is still
declared under loom/binding/c/include at the new hrx-system revision. If one is
missing, the PR moves llama.cpp only, keeps hrx-system where it is, and says so
in its body and in a workflow warning. When neither submodule moves, no PR is
opened (#361 moved one gitlink only).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Why
mainlost its HRX build twice this week. #353/#357 and then #361 movedthird_party/hrx-systemto4ba76c18eafe, whose loom commit32d0c76a("Make AMDGPU runtime globals compiler-owned") deletedloomc_amdgpu_runtime_global_flags_t,loomc_amdgpu_emit_options_tandLOOMC_STRUCTURE_TYPE_AMDGPU_EMIT_OPTIONS. Ourggml/src/ggml-hrx/loom-jit.cppuses them, so-DONEBIT_HRX=ONfails with 10 errors. #359 and #363 pinned hrx-system back to98d05d94by hand; KNOWN-ISSUES.md records it. Thebuildcheck here does not build HRX, so nothing stopped the merges, and the scheduled run will propose the same pair again every day.What
A new step between the hrx-system merge and the PR: collect every
loomc_*/LOOMC_*identifier used underggml/src/ggml-hrxat the new llama.cpp revision and check each is still declared somewhere underloom/binding/c/includeat the new hrx-system revision. Both trees are already present as blob-less clones, so this costs a few blob fetches.::warningnaming the symbols, and says so in the PR body.The PR branch name now carries the hrx-system revision actually pinned, so a held bump and a later real bump get different branches.
Header-level, so it cannot catch a signature change on a symbol that still exists; it catches the removal class that bit us. The fork port of loom-jit.cpp to the compiler-owned globals is in progress separately; once it lands this guard simply stops firing.
Checked
python3 -c 'import yaml; yaml.safe_load(open(".github/workflows/bump-hrx.yml"))'parses. Workflow-only change, no code or pin moves.🤖 Generated with Claude Code