On Thu, Aug 14, 2014 at 10:45 PM, Peter Eisentraut <peter_e@gmx.net> wrote:
make check-world creates a temporary installation in every subdirectory it runs a test in, which is stupid: it's very slow and uses a lot of disk space. It's enough to do this once per run. That is the essence of what I have implemented. It cuts the time for make check-world in half or less, and it saves gigabytes of disk space.
Something about this commit (dcae5faccab64776376d354d) broke "make check" in parallel conditions when started from a clean directory. It fails with a different error each time, one example:
make -j4 check > /dev/null
In file included from gram.y:14515:
scan.c: In function 'yy_try_NUL_trans':
scan.c:10307: warning: unused variable 'yyg'
/usr/bin/ld: tab-complete.o: No such file: No such file or directory
collect2: ld returned 1 exit status
make[3]: *** [psql] Error 1
make[2]: *** [all-psql-recurse] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [all-bin-recurse] Error 2
make: *** [all-src-recurse] Error 2
make: *** Waiting for unfinished jobs....
If I rerun it without cleaning the tree, is usually passes the second time. Or I can just separate the make and the check like "make -j4 > /dev/null && make check > /dev/null" but I've grown accustomed to being able to combine them since this problem was first fixed a couple years ago (in a commit I can't seem to find)
I have:
GNU Make 4.0
Built for x86_64-unknown-linux-gnu
I was using ccache, but I still get the problem without using it.