Subject: [PATCH 2/3] large-inode: New module

From: Paul Eggert <[email-masked]>
Date: Fri, 22 Jul 2011 10:22:37 -0700

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  <[email-masked]>
 
+	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 0000000..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 0000000..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