bug#9140: [PATCH 2/3] large-inode: New module
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
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
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
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
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,