Re: headerscheck ccache support

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Andres Freund <andres@anarazel.de>
Cc: Álvaro Herrera <alvherre@kurilemu.de>, Nazir Bilal Yavuz <byavuz81@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-03-23T07:45:00Z
Lists: pgsql-hackers
On 04.12.25 18:50, Andres Freund wrote:
> Hi,
> 
> On 2025-12-04 11:52:07 +0100, Peter Eisentraut wrote:
>> What do people think about patch 0002, which runs headerscheck and
>> cpluspluscheck in parallel on ci?  It should save several seconds of
>> wall-clock time for that task, and I don't see any drawbacks, unless you
>> want to retain the specific previous output format for some reason.
> 
> I think the output today is easier to parse, it's more obvious whether the
> error is from a cpluspluscheck violation or a headercheck violation. However,
> the runtime win seems to more than outweigh that.
> 
> 
>>  From 0a580cb2e58dcc257978d5cc20528f2e4a315880 Mon Sep 17 00:00:00 2001
>> From: Peter Eisentraut <peter@eisentraut.org>
>> Date: Fri, 28 Nov 2025 12:21:31 +0100
>> Subject: [PATCH v2.1 2/3] ci: Run headerscheck and cplusplucheck in parallel
>>
>> ---
>>   .cirrus.tasks.yml | 4 +---
>>   1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
>> index 038d043d00e..69224fcfec7 100644
>> --- a/.cirrus.tasks.yml
>> +++ b/.cirrus.tasks.yml
>> @@ -1015,9 +1015,7 @@ task:
>>           --quiet \
>>           CC="ccache gcc" CXX="ccache g++" CLANG="ccache clang"
>>         make -s -j${BUILD_JOBS} clean
>> -      time make -s headerscheck EXTRAFLAGS='-fmax-errors=10'
>> -    headers_cpluspluscheck_script: |
>> -      time make -s cpluspluscheck EXTRAFLAGS='-fmax-errors=10'
>> +      time make -s -j${BUILD_JOBS} -k -Otarget headerscheck cpluspluscheck EXTRAFLAGS='-fmax-errors=10'
> 
> Doesn't really matter, but I'd probably use ${CHECKFLAGS} instead of -Otarget
> directly.
> 
> I'd add a comment saying that we run both in the same script to increase
> parallelism and that we use -k to get the result of both. But again, this is
> just a very minor nitpick, and if you prefer not to, I'm fine.

I had forgotten about this one for a bit, but I have committed it now, 
with the adjustments that you had suggested.



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. ci: Run headerscheck and cpluspluscheck in parallel

  2. headerscheck ccache support

  3. headerscheck: Use LLVM_CPPFLAGS