]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
* lib/Autom4te/XFile.pm: Use Errno.
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 30 Sep 2003 19:29:47 +0000 (19:29 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 30 Sep 2003 19:29:47 +0000 (19:29 +0000)
(lock): Ignore ENOLCK errors.  Problem reported Andreas Schwab in
<http://mail.gnu.org/archive/html/bug-autoconf/2003-09/msg00141.html>.

ChangeLog
lib/Autom4te/XFile.pm

index 3ea84445dc1bd4431470ce40c69e69f88f5590df..ae2a43cc9763203e582b0da6e076ce97083c0eda 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-09-30  Paul Eggert  <eggert@twinsun.com>
+
+       * lib/Autom4te/XFile.pm: Use Errno.
+       (lock): Ignore ENOLCK errors.  Problem reported Andreas Schwab in
+       <http://mail.gnu.org/archive/html/bug-autoconf/2003-09/msg00141.html>.
+
 2003-09-30  Akim Demaille  <akim@epita.fr>
 
        * config/announce-gen (&print_news_deltas): Extracted from...
index 6be641d673fdaac5ef912e5905e0b2e83f26cab3..643d264ee6a48acfac4b2d012b861d4d813d2936 100644 (file)
@@ -87,6 +87,7 @@ require 5.000;
 use strict;
 use vars qw($VERSION @EXPORT @EXPORT_OK $AUTOLOAD @ISA);
 use Carp;
+use Errno;
 use IO::File;
 use File::Basename;
 use Autom4te::ChannelDefs;
@@ -216,7 +217,15 @@ sub lock
 {
   my ($fh, $mode) = @_;
   # Cannot use @_ here.
-  if (!flock ($fh, $mode))
+
+  # On some systems (e.g. GNU/Linux with NFSv2), flock(2) does not work over
+  # NFS, but Perl prefers that over fcntl(2) if it exists and if
+  # perl was not built with -Ud_flock.  Normally, this problem is harmless,
+  # so ignore the ENOLCK errors that are reported in that situation,
+  # However, if the invoker is using "make -j", the problem is not harmless,
+  # so report it in that case.  Admittedly this is a bit of a hack.
+  if (!flock ($fh, $mode)
+      && (!$!{ENOLCK} || " $ENV{'MAKEFLAGS'} " =~ / -j /))
     {
       my $file = $fh->name;
       fatal "cannot lock $file with mode $mode: $!";