Re: headerscheck ccache support
| От | Peter Eisentraut |
|---|---|
| Тема | Re: headerscheck ccache support |
| Дата | |
| Msg-id | cce91d86-bf43-46a1-9429-113fe748f70e@eisentraut.org обсуждение исходный текст |
| Ответ на | Re: headerscheck ccache support (Álvaro Herrera <alvherre@kurilemu.de>) |
| Ответы |
Re: headerscheck ccache support
Re: headerscheck ccache support Re: headerscheck ccache support |
| Список | pgsql-hackers |
On 21.11.25 13:14, Álvaro Herrera wrote: >> Now ccache works. > > Sounds reasonable. I notice that you're cleaning this file in a `rm` > line in the loop, > >> @@ -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 > > but this means that if the script is interrupted halfway through, one > file or two files might remain in place. Would it be possible to have > the current file name in a variable, so that the `trap` line can delete > them? Here is another patch set. I have made some tweaks to address the issue you raise, and I took some code and inspiration from Thomas Munro's patch. The solution I chose is to create a temporary subdirectory in the build directory, and create the test files in there. That way the trap can just blow away the directory, as before. > I've been also wondering about testing whether `parallel` is installed, > and use that if so. Another approach I had in mind for some time is to just write out a makefile with the test compile commands, and run that with make -j. Demo patch attached. (I'm not seriously proposing this. For one thing, we probably wouldn't want to introduce a dependency on make. But you could probably write an equivalent ninja.build file.) But this doesn't seem to buy very much. The overhead of the shell script to write out the test files appears to become significant compared the the actual compile commands. Another simple idea is to run headerscheck and cpluspluscheck in parallel. You can already do that manually, and we could do that on CI to save about 50% wall-clock time. Patch attached.
Вложения
В списке pgsql-hackers по дате отправления: