I am seeing the following compile problem with gmake -j2:

        /bin/sh ../../../config/install-sh -c -d '/usr/local/pgsql/lib'
        /bin/sh ../../../../config/install-sh -c -m 644 ./plpgsql.control 
'/usr/local/pgsql/share/extension'
        /bin/sh ../../../config/install-sh -c -m 644 ./plperl.control 
'/usr/local/pgsql/share/extension'
        /bin/sh ../../../../config/install-sh -c -m 644 ./plpgsql--1.0.sql 
'/usr/local/pgsql/share/extension'
        /bin/sh ../../../config/install-sh -c -m 644 ./plperl--1.0.sql 
'/usr/local/pgsql/share/extension'
        /bin/sh ../../../../config/install-sh -c -m 644 
./plpgsql--unpackaged--1.0.sql '/usr/local/pgsql/share/extension'
        /bin/sh ../../../config/install-sh -c -m 644 
./plperl--unpackaged--1.0.sql '/usr/local/pgsql/share/extension'
        /bin/sh ../../../../config/install-sh -c -d 
'/usr/local/pgsql/share/extension'
        /bin/sh ../../../config/install-sh -c -m 644 ./plperlu.control 
'/usr/local/pgsql/share/extension'
        mkdir: /usr/local/pgsql/share/extension: File exists
        /bin/sh ../../../config/install-sh -c -m 644 ./plperlu--1.0.sql 
'/usr/local/pgsql/share/extension'
        mkdir: /usr/local/pgsql/share/extension: File exists
        gmake[3]: *** [installdirs] Error 1
        gmake[3]: Leaving directory 
`/usr/var/local/src/gen/pgsql/postgresql/src/pl/plpgsql/src'
        gmake[2]: *** [install] Error 2
        gmake[2]: Leaving directory 
`/usr/var/local/src/gen/pgsql/postgresql/src/pl/plpgsql'
        gmake[1]: *** [install-plpgsql-recurse] Error 2
        gmake[1]: *** Waiting for unfinished jobs....
        /bin/sh ../../../config/install-sh -c -m 644 
./plperlu--unpackaged--1.0.sql '/usr/local/pgsql/share/extension'
        /bin/sh ../../../config/install-sh -c -d 
'/usr/local/pgsql/share/extension'
        /bin/sh ../../../config/install-sh -c -m 755  plperl.so 
'/usr/local/pgsql/lib/plperl.so'
        mkdir: /usr/local/pgsql/share/extension: File exists
        mkdir: /usr/local/pgsql/share/extension: File exists
        gmake[2]: *** [installdirs] Error 1
        gmake[2]: Leaving directory 
`/usr/var/local/src/gen/pgsql/postgresql/src/pl/plperl'
        gmake[1]: *** [install-plperl-recurse] Error 2
        gmake[1]: Leaving directory 
`/usr/var/local/src/gen/pgsql/postgresql/src/pl'
        gmake: *** [install-pl-recurse] Error 2

This only happens with parallel gmake and I think is caused by the
assumption that "mkdir extension" will happen before any files are
installed, which doesn't happen with parallel gmake.

I have fixed the bug with the attached, applied patch which moves
'installdirs' to a dependency of the extension directory file install,
rather than a more top-level target so the parallel gmake always creates
the directory first.

-- 
  Bruce Momjian  <br...@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/src/pl/plperl/GNUmakefile b/src/pl/plperl/GNUmakefile
index 71e2cef..155b60f 100644
--- a/src/pl/plperl/GNUmakefile
+++ b/src/pl/plperl/GNUmakefile
@@ -74,14 +74,14 @@ Util.c: Util.xs
 	$(PERL) $(perl_privlibexp)/ExtUtils/xsubpp -typemap $(perl_privlibexp)/ExtUtils/typemap $< >$@
 
 
-install: all installdirs install-lib install-data
+install: all install-lib install-data
 
 installdirs: installdirs-lib
 	$(MKDIR_P) '$(DESTDIR)$(datadir)/extension'
 
 uninstall: uninstall-lib uninstall-data
 
-install-data:
+install-data: installdirs
 	@for file in $(addprefix $(srcdir)/, $(DATA)); do \
 	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'"; \
 	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'; \
diff --git a/src/pl/plpgsql/src/Makefile b/src/pl/plpgsql/src/Makefile
index d748ef6..52fbc1c 100644
--- a/src/pl/plpgsql/src/Makefile
+++ b/src/pl/plpgsql/src/Makefile
@@ -27,14 +27,14 @@ all: all-lib
 include $(top_srcdir)/src/Makefile.shlib
 
 
-install: all installdirs install-lib install-data
+install: all install-lib install-data
 
 installdirs: installdirs-lib
 	$(MKDIR_P) '$(DESTDIR)$(datadir)/extension'
 
 uninstall: uninstall-lib uninstall-data
 
-install-data:
+install-data: installdirs
 	@for file in $(addprefix $(srcdir)/, $(DATA)); do \
 	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'"; \
 	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'; \
diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile
index baf22f3..86d8741 100644
--- a/src/pl/plpython/Makefile
+++ b/src/pl/plpython/Makefile
@@ -106,14 +106,14 @@ all: all-lib
 distprep: spiexceptions.h
 
 
-install: all installdirs install-lib install-data
+install: all install-lib install-data
 
 installdirs: installdirs-lib
 	$(MKDIR_P) '$(DESTDIR)$(datadir)/extension'
 
 uninstall: uninstall-lib uninstall-data
 
-install-data:
+install-data: installdirs
 	@for file in $(addprefix $(srcdir)/, $(DATA)); do \
 	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'"; \
 	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'; \
diff --git a/src/pl/tcl/Makefile b/src/pl/tcl/Makefile
index c7797c6..faffd09 100644
--- a/src/pl/tcl/Makefile
+++ b/src/pl/tcl/Makefile
@@ -54,7 +54,7 @@ all: all-lib
 	$(MAKE) -C modules $@
 
 
-install: all installdirs install-lib install-data
+install: all install-lib install-data
 	$(MAKE) -C modules $@
 
 installdirs: installdirs-lib
@@ -64,7 +64,7 @@ installdirs: installdirs-lib
 uninstall: uninstall-lib uninstall-data
 	$(MAKE) -C modules $@
 
-install-data:
+install-data: installdirs
 	@for file in $(addprefix $(srcdir)/, $(DATA)); do \
 	  echo "$(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'"; \
 	  $(INSTALL_DATA) $$file '$(DESTDIR)$(datadir)/extension'; \
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to