Thread

  1. Re: headerscheck ccache support

    Thomas Munro <thomas.munro@gmail.com> — 2025-11-22T08:54:26Z

    On Fri, Nov 21, 2025 at 11:48 PM Peter Eisentraut <peter@eisentraut.org> wrote:
    > 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.
    
    +1
    
    I wrote an almost identical patch[1] and then lost it down the back of
    the sofa.  I was wondering about parallelising it next...
    
    [1] https://www.postgresql.org/message-id/CA%2BhUKGJjQyZUvcu6udk5OKz5rnaF4a_hm5nb_VtZHYMH%2BvsN0g%40mail.gmail.com