Update from main archive 960811
authordrepper <drepper>
Mon, 12 Aug 1996 02:03:44 +0000 (02:03 +0000)
committerdrepper <drepper>
Mon, 12 Aug 1996 02:03:44 +0000 (02:03 +0000)
Makerules
autolock.sh [new file with mode: 0755]
config.make.in
configure.in
nss.h [new file with mode: 0644]

index f2d190a..4248dad 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -455,8 +455,8 @@ object-suffixes-left := $(object-suffixes)
 include $(o-iterator)
 define do-ar
 $(patsubst %,cd %;,$(objdir)) \
-$(AR) cru$(verbose) ${O%-lib} \
-      $(patsubst $(objpfx)%,%,$^)
+$(AUTOLOCK) ${O%-lib}.lck $(AR) cru$(verbose) ${O%-lib} \
+                               $(patsubst $(objpfx)%,%,$^)
 rm -f $@
 touch $@
 endef
diff --git a/autolock.sh b/autolock.sh
new file mode 100755 (executable)
index 0000000..88e2733
--- /dev/null
@@ -0,0 +1,45 @@
+#! /bin/sh
+# interlock - wrap program invocation in lock to allow
+#             parallel builds to work.
+# Written by Tom Tromey <tromey@cygnus.com>, Aug 10 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# Usage:
+#   interlock lock-dir-name program args-to-program...
+
+dirname="$1"
+program="$2"
+
+shift
+shift
+
+while (mkdir $dirname > /dev/null 2>&1 && exit 1 || exit 0); do
+   # Wait a bit.
+   sleep 1
+done
+
+# Race condition here: if interrupted after the loop but before this
+# trap, the lock can be left around.
+trap "rmdir $dirname > /dev/null 2>&1" 1 2 3 15
+
+# We have the lock, so run the program.
+$program ${1+"$@"}
+ret=$?
+
+# Release the lock.
+rmdir $dirname > /dev/null 2>&1
+
+exit $ret
index b099199..a496e29 100644 (file)
@@ -34,6 +34,7 @@ CC = @CC@
 BUILD_CC = @BUILD_CC@
 CFLAGS = @CFLAGS@
 AR = @AR@
+AUTOLOCK = @AUTOLOCK@
 RANLIB = @RANLIB@
 AS = $(CC) -c
 
index 631a035..aebc785 100644 (file)
@@ -308,6 +308,8 @@ fi
 AC_PROG_CPP
 AC_CHECK_TOOL(AR, ar)
 AC_CHECK_TOOL(RANLIB, ranlib, :)
+AUTOLOCK="`(cd $srcdir; pwd)`/autolock.sh"
+AC_SUBST(AUTOLOCK)
 
 AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
 echo '#include <stddef.h>
diff --git a/nss.h b/nss.h
new file mode 100644 (file)
index 0000000..0541335
--- /dev/null
+++ b/nss.h
@@ -0,0 +1 @@
+#include <nss/nss.h>