Skip to content

cmake: leave the timestamp out of precompiled headers on clang - #28816

Merged
ServeurpersoCom merged 1 commit into
ggml-org:masterfrom
ServeurpersoCom:cmake/pch-no-timestamp-clang
Sep 12, 2026
Merged

ServeurpersoCom merged 1 commit into
ggml-org:masterfrom
ServeurpersoCom:cmake/pch-no-timestamp-clang

Conversation

@ServeurpersoCom

Copy link
Copy Markdown
Contributor

Overview

icx is clang underneath, so it stores the mtime of the precompiled header sources inside the .pch and rejects the header once those timestamps move, which is what happens whenever ccache restores a header built from an earlier checkout: https://github.com/ggml-org/llama.cpp/actions/runs/34686896609/job/103535335025. This leaves the timestamp out of the header for clang and Intel LLVM compilers, MSVC and GCC are untouched.

cc @CISC

Additional information

Requirements

Clang stores the modification time of the precompiled header sources
inside the header and refuses the header when they differ. A cached
header restored from another checkout carries the timestamps of that
checkout, so the build fails. The option covers the compilers ccache
treats as MSVC while they are clang underneath, clang-cl and the Intel
LLVM drivers.
@ServeurpersoCom

Copy link
Copy Markdown
Contributor Author

Since the SYCL cache is only written on pushes to master, I'll run the two-push sequence on my fork first to confirm a restored header is accepted.

@ServeurpersoCom

Copy link
Copy Markdown
Contributor Author

Done, and it holds: the second run restores the entry written by the first, reaches 218/221 hits and recompiles ggml-cpu.cpp against the restored header with no complaint.

run 1: https://github.com/ServeurpersoCom/llama.cpp/actions/runs/34715527552/job/103611954850
run 2: https://github.com/ServeurpersoCom/llama.cpp/actions/runs/34717359934/job/103616881756

@ServeurpersoCom
ServeurpersoCom merged commit 737e098 into ggml-org:master Sep 12, 2026
22 of 26 checks passed
pl752 pushed a commit to pl752/llama.cpp that referenced this pull request Sep 15, 2026
…org#28816)

Clang stores the modification time of the precompiled header sources
inside the header and refuses the header when they differ. A cached
header restored from another checkout carries the timestamps of that
checkout, so the build fails. The option covers the compilers ccache
treats as MSVC while they are clang underneath, clang-cl and the Intel
LLVM drivers.
quimmedes pushed a commit to quimmedes/cafe-llama.cpp that referenced this pull request Sep 16, 2026
…org#28816)

Clang stores the modification time of the precompiled header sources
inside the header and refuses the header when they differ. A cached
header restored from another checkout carries the timestamps of that
checkout, so the build fails. The option covers the compilers ccache
treats as MSVC while they are clang underneath, clang-cl and the Intel
LLVM drivers.
zsogitbe pushed a commit to zsogitbe/llama.cpp that referenced this pull request Sep 17, 2026
…org#28816)

Clang stores the modification time of the precompiled header sources
inside the header and refuses the header when they differ. A cached
header restored from another checkout carries the timestamps of that
checkout, so the build fails. The option covers the compilers ccache
treats as MSVC while they are clang underneath, clang-cl and the Intel
LLVM drivers.
Te-eMster pushed a commit to Te-eMster/mx-llama.cpp that referenced this pull request Sep 18, 2026
…org#28816)

Clang stores the modification time of the precompiled header sources
inside the header and refuses the header when they differ. A cached
header restored from another checkout carries the timestamps of that
checkout, so the build fails. The option covers the compilers ccache
treats as MSVC while they are clang underneath, clang-cl and the Intel
LLVM drivers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build Compilation issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants