I tried another experiment, which was "make -j100 all" on my relatively new Linux box (2 dual-core CPUs). It blew up real good, as per attached stderr output, which shows evidence of more missing dependencies as well as some additional cases of concurrent attempts to build the same target.
It's clear to me that we are very far from having a handle on what it'll really take to run parallel builds safely, and I am therefore now of the opinion that we ought to revert the patch. Hypothetical gains in parallelism are useless if we can't actually use parallel building reliably. We are currently worse off than before in terms of time to build the system. regards, tom lane /usr/bin/ld: cannot find -lpgport collect2: ld returned 1 exit status make[3]: *** [refint.so] Error 1 make[2]: *** [../../../contrib/spi/refint.so] Error 2 make[2]: *** Waiting for unfinished jobs.... path.c: In function 'get_html_path': path.c:615: error: 'HTMLDIR' undeclared (first use in this function) path.c:615: error: (Each undeclared identifier is reported only once path.c:615: error: for each function it appears in.) path.c: In function 'get_man_path': path.c:624: error: 'MANDIR' undeclared (first use in this function) make[3]: *** [path.o] Error 1 make[3]: *** Deleting file `path.o' make[3]: *** Waiting for unfinished jobs.... /usr/bin/ld: cannot find -lpgport collect2: ld returned 1 exit status make[3]: *** [autoinc.so] Error 1 make[2]: *** [../../../contrib/spi/autoinc.so] Error 2 make[2]: *** [submake-libpgport] Error 2 make[2]: *** Waiting for unfinished jobs.... ln: creating symbolic link `libpgtypes.so.3': File exists make[4]: *** [libpgtypes.so.3.2] Error 1 make[4]: *** Deleting file `libpgtypes.so.3.2' make[3]: *** [all-pgtypeslib-recurse] Error 2 make[3]: *** Waiting for unfinished jobs.... make[1]: *** [all-test/regress-recurse] Error 2 make[1]: *** Waiting for unfinished jobs.... In file included from gram.y:12102: scan.c: In function 'yy_try_NUL_trans': scan.c:16246: warning: unused variable 'yyg' ln: creating symbolic link `libpq.so.5': File exists make[4]: *** [libpq.so.5.4] Error 1 make[4]: *** Deleting file `libpq.so.5.4' make[3]: *** [submake-libpq] Error 2 make[2]: *** [all-pg_dump-recurse] Error 2 make[2]: *** Waiting for unfinished jobs.... ln: creating symbolic link `libpq.so.5': File exists make[6]: *** [libpq.so.5.4] Error 1 make[6]: *** Deleting file `libpq.so.5.4' make[5]: *** [submake-libpq] Error 2 make[4]: *** [submake-ecpglib] Error 2 make[3]: *** [all-compatlib-recurse] Error 2 /usr/bin/ld: cannot open linker script file ../../../src/interfaces/libpq/libpq.so: No such file or directory collect2: ld returned 1 exit status make[3]: *** [psql] Error 1 make[2]: *** [all-psql-recurse] Error 2 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [createdb] Error 1 make[3]: *** Waiting for unfinished jobs.... ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [createuser] Error 1 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [dropuser] Error 1 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [vacuumdb] Error 1 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [dropdb] Error 1 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [clusterdb] Error 1 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [reindexdb] Error 1 make[2]: *** [all-scripts-recurse] Error 2 ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_reset_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1426: undefined reference to `pthread_sigmask' ../../../src/interfaces/libpq/libpq.a(fe-secure.o): In function `pq_block_sigpipe': /home/tgl/pgsql/src/interfaces/libpq/fe-secure.c:1363: undefined reference to `pthread_sigmask' collect2: ld returned 1 exit status make[3]: *** [pg_ctl] Error 1 make[2]: *** [all-pg_ctl-recurse] Error 2 make[1]: *** [all-bin-recurse] Error 2 make[2]: *** [all-ecpg-recurse] Error 2 make[1]: *** [all-interfaces-recurse] Error 2 make[1]: *** [all-backend-recurse] Error 2 make: *** [all-src-recurse] Error 2 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers