On 4/23/15 1:22 PM, Jeff Janes wrote:
> 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....
I think the problem is that "check" depends on "all", but now also
depends on temp-install, which in turn runs install and all. With a
sufficient amount of parallelism, you end up running two "all"s on top
of each other.
It seems this can be fixed by removing the check: all dependency. Try
removing that in the top-level GNUmakefile.in and see if the problem
goes away. For completeness, we should then also remove it in the other
makefiles.