Fix CUDA-Linux build retry: disable ggml's own GGML_CCACHE auto-detect - #386
Conversation
The regex fix in the previous commit (8efd38e) correctly triggered the uncached retry on CUDA 13.3's sccache/nvcc fatbinary failure, but the retry still failed identically (verified live on run 31340386884): ggml's own CMakeLists.txt self-enables ccache/sccache (GGML_CCACHE, default ON) whenever it finds one on PATH and our CMAKE_C_COMPILER_LAUNCHER /CMAKE_CXX_COMPILER_LAUNCHER are unset -- exactly the retry's state, since sccache is still on PATH from the failed attempt. ggml wires itself in via the global RULE_LAUNCH_COMPILE CMake property, which wraps nvcc too, so the "uncached" retry silently re-enabled the very launcher it was trying to avoid. Pass -DGGML_CCACHE=OFF on the retry's cmake invocation so it is guaranteed genuinely uncached regardless of what's left on PATH.
|
Review Summary: This PR correctly fixes a subtle build system issue where ggml's independent GGML_CCACHE auto-detection was re-enabling the problematic sccache launcher on the retry path. The fix of passing -DGGML_CCACHE=OFF is well-targeted and properly documented. The solution is defensive, minimal, and verified live on the actual failing job. Ready to merge. |
|
The fix in build.sh is well-implemented. Key observations:
The CLAUDE.md documentation update is comprehensive and explains both the immediate fix (regex for 'Compiler killed by signal') and this deeper fix (disabling GGML_CCACHE). The narrative clearly shows why two separate fixes were needed. |
|



Summary
ggml/src/CMakeLists.txtself-enables ccache/sccache (GGML_CCACHE, defaultON) whenever it finds one onPATHandCMAKE_C_COMPILER_LAUNCHER/CMAKE_CXX_COMPILER_LAUNCHERare unset — exactly the retry's state, since sccache is still onPATHfrom the failed attempt (build.shonly clears its own$LAUNCHflags, not ggml's independent detection)RULE_LAUNCH_COMPILECMake property, which wraps nvcc too — so the "uncached" retry was silently re-enabling the very launcher it was trying to avoid-DGGML_CCACHE=OFFon the retry'scmake -Bbuildinvocation, guaranteeing a genuinely uncached build regardless of what's left onPATHCLAUDE.mdincident note (added on Fix CUDA-Linux build: retry without sccache on nvcc device-compile crash #385) to describe both fixes togetherTest plan
CLAUDE.md) updatedRelated issues / PRs
Follow-up to #385, which fixed the retry trigger but not the retry's actual effectiveness
Checklist
CONTRIBUTING.mdandCODE_OF_CONDUCT.mdhttps://claude.ai/code/session_01CtT7KLNmC8gEoDS1EiGGwD
Generated by Claude Code