From fe0517de0ef9017293bf2cbc2ca735e7b8949ced Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 21 Nov 2025 10:53:53 +0100 Subject: [PATCH] headerscheck ccache support --- .cirrus.tasks.yml | 5 ++--- src/tools/pginclude/headerscheck | 11 ++++------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml index 2fe9671f3dc..038d043d00e 100644 --- a/.cirrus.tasks.yml +++ b/.cirrus.tasks.yml @@ -1005,16 +1005,15 @@ task: ### # Verify headerscheck / cpluspluscheck succeed # - # - Don't use ccache, the files are uncacheable, polluting ccache's - # cache # - Use -fmax-errors, as particularly cpluspluscheck can be very verbose ### always: headers_headerscheck_script: | time ./configure \ ${LINUX_CONFIGURE_FEATURES} \ + --cache gcc.cache \ --quiet \ - CC="gcc" CXX"=g++" CLANG="clang" + 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: | diff --git a/src/tools/pginclude/headerscheck b/src/tools/pginclude/headerscheck index a52a5580bdc..c77c4eec2f6 100755 --- a/src/tools/pginclude/headerscheck +++ b/src/tools/pginclude/headerscheck @@ -72,11 +72,6 @@ else COMPILER_FLAGS="$CPPFLAGS $CFLAGS $ICU_CFLAGS" fi -# Create temp directory. -tmp=`mktemp -d /tmp/$me.XXXXXX` - -trap "ret=$?; rm -rf $tmp; exit $ret" 0 1 2 3 15 - exit_status=0 # Scan all of src/ and contrib/ for header files. @@ -200,6 +195,7 @@ do fi # OK, create .c file to include this .h file. + test_file_name=${me}_$(printf '%s' "$f" | sed 's![/.]!_!g') { $cplusplus && echo 'extern "C" {' # Ideally we'd pre-include only the appropriate one of @@ -231,7 +227,7 @@ do esac echo "#include \"$f\"" $cplusplus && echo '};' - } >$tmp/test.$ext + } >$test_file_name.$ext # Some subdirectories need extra -I switches. case "$f" in @@ -253,10 +249,11 @@ do if ! $COMPILER $COMPILER_FLAGS -I $builddir -I $srcdir \ -I $builddir/src/include -I $srcdir/src/include \ -I $builddir/src/interfaces/libpq -I $srcdir/src/interfaces/libpq \ - $EXTRAINCLUDES $EXTRAFLAGS -c $tmp/test.$ext -o $tmp/test.o + $EXTRAINCLUDES $EXTRAFLAGS -c $test_file_name.$ext -o $test_file_name.o then exit_status=1 fi + rm -f "$test_file_name.$ext" "$test_file_name.o" done exit $exit_status -- 2.51.0