headerscheck ccache support
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-11-21T10:48:10Z
Lists: pgsql-hackers
Attachments
- 0001-headerscheck-ccache-support.patch (text/plain) patch 0001
Currently, headerscheck and cpluspluscheck are very slow, and they defeat use of ccache. I have fixed that, and now they are much faster. :-) The problem was (I think) that the test files are created in a randomly-named directory (`mktemp -d /tmp/$me.XXXXXX`), and this directory is named on the compiler command line, which is part of the cache key. My solution is to create the test files in the build directory. For example, for src/include/storage/ipc.h I generate headerscheck_src_include_storage_ipc_h.c (or .cpp) Now ccache works. (And it's also a bit easier to debug everything with this naming.) The observed speedup on Cirrus CI for headerscheck plus cpluspluscheck is from about 1min 20s to only 20s. In local use, the speedups are similar. (I noticed that on Cirrus CI, the first uncached run with this patch was quite a bit slower. I don't know if this was because of the additional cache population that was happening, or if it was a fluke. Maybe others can try it in their environments. Maybe it's not a problem in the long run.)
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
ci: Run headerscheck and cpluspluscheck in parallel
- 085a531983e2 19 (unreleased) landed
-
headerscheck ccache support
- 40bdd839f52a 19 (unreleased) landed
-
headerscheck: Use LLVM_CPPFLAGS
- d0b7a0b4c8f4 19 (unreleased) landed