bug#9140: [PATCH 2/3] large-inode: New module

2011-08-08 Thread Eric Blake

On 07/22/2011 04:10 PM, Paul Eggert wrote:

On 07/22/11 10:45, Pádraig Brady wrote:

If it works it would be better in AC_SYS_LARGEFILE (as well) I think.


OK, thanks, I pushed this into gnulib.  Assuming it works (and I don't
see why it'd hurt) I'll push it into autoconf.


Ouch.  This commit broke libvirt 0.9.4, because it unintentionally broke 
large-file support altogether.  It will probably break any other 
packages that have picked up the latest gnulib in the last few days.



Pádraig Brady suggested this in http://debbugs.gnu.org/9140#20.
* MODULES.html.sh: Add largefile, remove large-inode.
* modules/largefile, m4/largefile.m4: New files.
* modules/large-inode, m4/large-inode.m4: Remove.



-
-configure.ac-early:
-AC_REQUIRE([gl_SYS_LARGE_INODE])
-
-configure.ac:
-



+
+configure.ac:
+AC_REQUIRE([AC_SYS_LARGEFILE])
+
+configure.ac:
+


The first configure.ac should have been configure.ac-early; as a result 
of the duplicate listing, gnulib-tool completely omits AC_SYS_LARGEFILE 
from any configure.ac that was using the broken largefile module.  Test 
by looking at './configure --help | grep large' pre- and post-patch. 
I'm pushing this:


diff --git i/ChangeLog w/ChangeLog
index 72e7611..3fd0c47 100644
--- i/ChangeLog
+++ w/ChangeLog
@@ -1,3 +1,8 @@
+2011-08-08  Eric Blake  ebl...@redhat.com
+
+   largefile: fix typo that regressed large file support
+   * modules/largefile (configure.ac-early): Fix section name.
+
 2011-08-06  Karl Berry  k...@gnu.org

* MODULES.html.sh (func_all_files): _Noreturn is no longer
diff --git i/modules/largefile w/modules/largefile
index d4a2e4b..ca10d48 100644
--- i/modules/largefile
+++ w/modules/largefile
@@ -6,7 +6,7 @@ m4/largefile.m4

 Depends-on:

-configure.ac:
+configure.ac-early:
 AC_REQUIRE([AC_SYS_LARGEFILE])

 configure.ac:


--
Eric Blake   ebl...@redhat.com+1-801-349-2682
Libvirt virtualization library http://libvirt.org





bug#9140: [PATCH 2/3] large-inode: New module

2011-08-08 Thread Bruno Haible
Eric Blake wrote:
 It will probably break any other 
 packages that have picked up the latest gnulib in the last few days.

Indeed. It broke libiconv-1.14. But fortunately it's not a regression.
Large file support in the 'iconv' program would have been an undocumented
improvement. Now it's delayed to libiconv-1.15...

Thanks for having discovered and fixed this, Eric!!

Bruno
-- 
In memoriam Edward Pimental http://en.wikipedia.org/wiki/Edward_Pimental





bug#9140: [PATCH 2/3] large-inode: New module

2011-07-22 Thread Paul Eggert
Here's another module I'm adding to coreutils.
I plan to change coreutils to use it.
Another possibility, I suppose, would be to fold it into
AC_SYS_LARGEFILE.

Herb, can you please try out the effect of this module by
appending #define _DARWIN_USE_64_BIT_INODE 1 to lib/config.h
after running 'configure'?  Thanks.

* MODULES.html.sh: Add it.
* modules/large-inode, m4/large-inode.m4: New files.
---
 ChangeLog   |4 
 MODULES.html.sh |1 +
 m4/large-inode.m4   |   24 
 modules/large-inode |   22 ++
 4 files changed, 51 insertions(+), 0 deletions(-)
 create mode 100644 m4/large-inode.m4
 create mode 100644 modules/large-inode

diff --git a/ChangeLog b/ChangeLog
index 46d8d04..b95e9d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2011-07-22  Paul Eggert  egg...@cs.ucla.edu
 
+   large-inode: New module
+   * MODULES.html.sh: Add it.
+   * modules/large-inode, m4/large-inode.m4: New files.
+
extensions: Enable extensions on MacOS X 10.5 and later.
* m4/extensions.m4 (AC_USE_SYSTEM_EXTENSIONS): Define _DARWIN_C_SOURCE.
 
diff --git a/MODULES.html.sh b/MODULES.html.sh
index bcd8aac..80befa9 100755
--- a/MODULES.html.sh
+++ b/MODULES.html.sh
@@ -2656,6 +2656,7 @@ func_all_modules ()
   func_module file-set
   func_module hash-triple
   func_module i-ring
+  func_module large-inode
   func_module same-inode
   func_end_table
 
diff --git a/m4/large-inode.m4 b/m4/large-inode.m4
new file mode 100644
index 000..b41a391
--- /dev/null
+++ b/m4/large-inode.m4
@@ -0,0 +1,24 @@
+# Enable large inode numbers on systems normally without them. -*- Autoconf -*-
+
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# written by Paul Eggert
+
+AC_DEFUN([gl_SYS_LARGE_INODE],
+[
+  dnl Many systems enable large inodes if you enable large offsets.
+  AC_REQUIRE([AC_SYS_LARGEFILE])
+
+  dnl Some Mac OS X variants won't access large inode numbers by default.
+  dnl Defining _DARWIN_USE_64_BIT_INODE fixes this.  See
+  dnl 
http://developer.apple.com/library/mac/releasenotes/Darwin/SymbolVariantsRelNotes.
+  dnl
+  dnl The simplest thing is to define this symbol everywhere.
+  dnl That helps on the affected systems, and doesn't hurt anywhere.
+  AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
+[Define if you want to use large inode numbers
+ when running on Mac OS X 10.5 or later.])
+])
diff --git a/modules/large-inode b/modules/large-inode
new file mode 100644
index 000..de067ac
--- /dev/null
+++ b/modules/large-inode
@@ -0,0 +1,22 @@
+Description:
+Use large inode numbers.
+
+Files:
+m4/large-inode.m4
+
+Depends-on:
+
+configure.ac-early:
+AC_REQUIRE([gl_SYS_LARGE_INODE])
+
+configure.ac:
+
+Makefile.am:
+
+Include:
+
+License:
+LGPLv2+
+
+Maintainer:
+all
-- 
1.7.4.4







bug#9140: [PATCH 2/3] large-inode: New module

2011-07-22 Thread Pádraig Brady
On 22/07/11 18:22, Paul Eggert wrote:
 Here's another module I'm adding to coreutils.
 I plan to change coreutils to use it.
 Another possibility, I suppose, would be to fold it into
 AC_SYS_LARGEFILE.
 
 Herb, can you please try out the effect of this module by
 appending #define _DARWIN_USE_64_BIT_INODE 1 to lib/config.h
 after running 'configure'?  Thanks.

If it works it would be better in AC_SYS_LARGEFILE (as well) I think.
Though the original reporter of this issue said it didn't work.
Though I now notice I asked him to put it at the top of df.c
rather than somewhere significant to fsusage.c

cheers,
Pádraig.





bug#9140: [PATCH 2/3] large-inode: New module

2011-07-22 Thread Paul Eggert
On 07/22/11 10:45, Pádraig Brady wrote:
 If it works it would be better in AC_SYS_LARGEFILE (as well) I think.

OK, thanks, I pushed this into gnulib.  Assuming it works (and I don't
see why it'd hurt) I'll push it into autoconf.

From a7df7c7d3f2f32d0cad31f65505cfee939d91f4a Mon Sep 17 00:00:00 2001
From: Paul Eggert egg...@cs.ucla.edu
Date: Fri, 22 Jul 2011 15:06:36 -0700
Subject: [PATCH] largefile: new module, replacing large-inode
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Pádraig Brady suggested this in http://debbugs.gnu.org/9140#20.
* MODULES.html.sh: Add largefile, remove large-inode.
* modules/largefile, m4/largefile.m4: New files.
* modules/large-inode, m4/large-inode.m4: Remove.
---
 ChangeLog   |6 +++
 MODULES.html.sh |2 +-
 m4/large-inode.m4   |   24 
 m4/largefile.m4 |  104 +++
 modules/large-inode |   22 ---
 modules/largefile   |   22 +++
 6 files changed, 133 insertions(+), 47 deletions(-)
 delete mode 100644 m4/large-inode.m4
 create mode 100644 m4/largefile.m4
 delete mode 100644 modules/large-inode
 create mode 100644 modules/largefile

diff --git a/ChangeLog b/ChangeLog
index b652f25..c44292e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2011-07-22  Paul Eggert  egg...@cs.ucla.edu
 
+   largefile: new module, replacing large-inode
+   Pádraig Brady suggested this in http://debbugs.gnu.org/9140#20.
+   * MODULES.html.sh: Add largefile, remove large-inode.
+   * modules/largefile, m4/largefile.m4: New files.
+   * modules/large-inode, m4/large-inode.m4: Remove.
+
fsusage: port to MacOS X 10.7 with 4 TiB file systems
* m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Reject statvfs
implementations that use only 32 bits to count blocks.
diff --git a/MODULES.html.sh b/MODULES.html.sh
index 80befa9..6d84587 100755
--- a/MODULES.html.sh
+++ b/MODULES.html.sh
@@ -2608,6 +2608,7 @@ func_all_modules ()
   func_module filenamecat-lgpl
   func_module fts
   func_module isdir
+  func_module largefile
   func_module lchmod
   func_module lchown
   func_module mkancesdirs
@@ -2656,7 +2657,6 @@ func_all_modules ()
   func_module file-set
   func_module hash-triple
   func_module i-ring
-  func_module large-inode
   func_module same-inode
   func_end_table
 
diff --git a/m4/large-inode.m4 b/m4/large-inode.m4
deleted file mode 100644
index b41a391..000
--- a/m4/large-inode.m4
+++ /dev/null
@@ -1,24 +0,0 @@
-# Enable large inode numbers on systems normally without them. -*- Autoconf -*-
-
-# Copyright (C) 2011 Free Software Foundation, Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# written by Paul Eggert
-
-AC_DEFUN([gl_SYS_LARGE_INODE],
-[
-  dnl Many systems enable large inodes if you enable large offsets.
-  AC_REQUIRE([AC_SYS_LARGEFILE])
-
-  dnl Some Mac OS X variants won't access large inode numbers by default.
-  dnl Defining _DARWIN_USE_64_BIT_INODE fixes this.  See
-  dnl 
http://developer.apple.com/library/mac/releasenotes/Darwin/SymbolVariantsRelNotes.
-  dnl
-  dnl The simplest thing is to define this symbol everywhere.
-  dnl That helps on the affected systems, and doesn't hurt anywhere.
-  AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1],
-[Define if you want to use large inode numbers
- when running on Mac OS X 10.5 or later.])
-])
diff --git a/m4/largefile.m4 b/m4/largefile.m4
new file mode 100644
index 000..6986244
--- /dev/null
+++ b/m4/largefile.m4
@@ -0,0 +1,104 @@
+# Enable large files on systems where this is not the default.
+
+# Copyright 1992-1996, 1998-2011 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# The following implementation works around a problem in autoconf = 2.68;
+# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5.
+m4_version_prereq([2.69], [] ,[
+
+# _AC_SYS_LARGEFILE_TEST_INCLUDES
+# ---
+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+[@%:@include sys/types.h
+ /* Check that off_t can represent 2**63 - 1 correctly.
+We can't simply define LARGE_OFF_T to be 9223372036854775807,
+since some C++ compilers masquerading as C compilers
+incorrectly reject 9223372036854775807.  */
+@%:@define LARGE_OFF_T (((off_t) 1  62) - 1 + ((off_t) 1  62))
+  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
+   LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1]];[]dnl
+])
+
+
+# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+#  CACHE-VAR,
+#  DESCRIPTION,
+#  PROLOGUE,