Bruno Haible wrote: >> 1) To require AC_SYS_LARGEFILE, and a module dependency to 'largefile'. >> This will make statvfs() use a 64-bit f_blocks on >> glibc/Hurd, MacOS X >= 10.4, HP-UX, Solaris. > > Here's the first proposed patch. I verified that > > - on HP-UX 11.00 and 11.31, Solaris 7 and 10, it causes statvfs() to be used > again: > checking for statvfs function (SVR4)... no > becomes > checking for statvfs function (SVR4)... yes > Since the check_f_blocks_size is in place, it proves that this causes > f_blocks to be 64-bit. > > - on MacOS X 10.5, it causes fsusage.o to call statfs$INODE64 instead of > statfs, thus also supporting large volumes. > > > 2011-07-23 Bruno Haible <br...@clisp.org> > > fsusage: Enable large volume support on glibc/Hurd, HP-UX, Solaris, > MacOS X. > * m4/fsusage.m4 (gl_FILE_SYSTEM_USAGE): Require AC_SYS_LARGEFILE. > * modules/fsusage (Depends-on): Add largefile. > > --- m4/fsusage.m4.orig Sat Jul 23 16:25:19 2011 > +++ m4/fsusage.m4 Sat Jul 23 16:24:57 2011 > @@ -1,4 +1,4 @@ > -# serial 28 > +# serial 29 > # Obtaining file system usage information. > > # Copyright (C) 1997-1998, 2000-2001, 2003-2011 Free Software Foundation, > Inc. > @@ -29,6 +29,12 @@ > > AC_DEFUN([gl_FILE_SYSTEM_USAGE], > [ > +dnl Enable large-file support. This has the effect of changing the size > +dnl of field f_blocks in 'struct statvfs' from 32 bit to 64 bit on > +dnl glibc/Hurd, HP-UX 11, Solaris (32-bit mode). It also changes the size > +dnl of field f_blocks in 'struct statfs' from 32 bit to 64 bit on > +dnl MacOS X >= 10.5 (32-bit mode). > +AC_REQUIRE([AC_SYS_LARGEFILE]) > > AC_MSG_NOTICE([checking how to get file system space usage]) > ac_fsusage_space=no > --- modules/fsusage.orig Sat Jul 23 16:25:19 2011 > +++ modules/fsusage Sat Jul 23 16:06:17 2011 > @@ -7,6 +7,7 @@ > m4/fsusage.m4 > > Depends-on: > +largefile > stdbool > stdint > full-read [test $gl_cv_fs_space = yes]
Well-documented, tested, and safe-looking. Thanks!