Mercurial > hg > octave-lojdl > gnulib-hg
changeset 13450:0394cf0c5bad
fsusage: Clarify which code applies to which platforms.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 04 Jul 2010 23:48:16 +0200 |
parents | 5b079003ae5a |
children | 10e009bcb096 |
files | ChangeLog lib/fsusage.c m4/fsusage.m4 |
diffstat | 3 files changed, 35 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2010-07-04 Bruno Haible <bruno@clisp.org> + + fsusage: Clarify which code applies to which platforms. + * m4/fsusage.m4 (gl_FSUSAGE): Clarify which test succeeds on which + platform. + * lib/fsusage.c (get_fs_usage): Likewise. + 2010-07-04 Bruno Haible <bruno@clisp.org> havelib: Fix bug when AC_LIB_FROMPACKAGE is used more than twice.
--- a/lib/fsusage.c +++ b/lib/fsusage.c @@ -94,7 +94,7 @@ int get_fs_usage (char const *file, char const *disk, struct fs_usage *fsp) { -#if defined STAT_STATVFS /* POSIX */ +#if defined STAT_STATVFS /* POSIX, except glibc/Linux */ struct statvfs fsd; @@ -156,7 +156,7 @@ : (fsd.s_isize - 2) * INOPB * (fsd.s_type == Fs2b ? 2 : 1)); fsp->fsu_ffree = PROPAGATE_ALL_ONES (fsd.s_tinode); -#elif defined STAT_STATFS3_OSF1 +#elif defined STAT_STATFS3_OSF1 /* OSF/1 */ struct statfs fsd; @@ -165,7 +165,9 @@ fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_fsize); -#elif defined STAT_STATFS2_BSIZE /* 4.3BSD, SunOS 4, HP-UX, AIX */ +#elif defined STAT_STATFS2_BSIZE /* glibc/Linux, 4.3BSD, SunOS 4, \ + MacOS X < 10.4, FreeBSD < 5.0, \ + NetBSD < 3.0, OpenBSD < 4.4 */ struct statfs fsd; @@ -189,7 +191,7 @@ } # endif /* STATFS_TRUNCATES_BLOCK_COUNTS */ -#elif defined STAT_STATFS2_FSIZE /* 4.4BSD */ +#elif defined STAT_STATFS2_FSIZE /* 4.4BSD and older NetBSD */ struct statfs fsd; @@ -198,7 +200,8 @@ fsp->fsu_blocksize = PROPAGATE_ALL_ONES (fsd.f_fsize); -#elif defined STAT_STATFS4 /* SVR3, Dynix, Irix, AIX */ +#elif defined STAT_STATFS4 /* SVR3, Dynix, old Irix, old AIX, \ + Dolphin */ # if !_AIX && !defined _SEQUENT_ && !defined DOLPHIN # define f_bavail f_bfree
--- a/m4/fsusage.m4 +++ b/m4/fsusage.m4 @@ -1,4 +1,4 @@ -# serial 25 +# serial 26 # Obtaining file system usage information. # Copyright (C) 1997-1998, 2000-2001, 2003-2010 Free Software Foundation, Inc. @@ -44,7 +44,8 @@ # systems. That system is reported to work fine with STAT_STATFS4 which # is what it gets when this test fails. if test $ac_fsusage_space = no; then - # SVR4 + # glibc/{Hurd,kFreeBSD}, MacOS X >= 10.4, FreeBSD >= 5.0, NetBSD >= 3.0, + # OpenBSD >= 4.4, AIX, HP-UX, IRIX, Solaris, Cygwin, Interix, BeOS. AC_CACHE_CHECK([for statvfs function (SVR4)], [fu_cv_sys_stat_statvfs], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> #if defined __GLIBC__ && defined __linux__ @@ -97,8 +98,13 @@ fi if test $ac_fsusage_space = no; then -# AIX - AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl + # glibc/Linux, MacOS X < 10.4, FreeBSD < 5.0, NetBSD < 3.0, OpenBSD < 4.4. + # (glibc/{Hurd,kFreeBSD}, MacOS X >= 10.4, FreeBSD >= 5.0, NetBSD >= 3.0, + # OpenBSD >= 4.4, AIX, HP-UX, OSF/1, Cygwin already handled above.) + # (On IRIX you need to include <sys/statfs.h>, not only <sys/mount.h> and + # <sys/vfs.h>.) + # (On Solaris, statfs has 4 arguments.) + AC_MSG_CHECKING([for two-argument statfs with statfs.f_bsize dnl member (AIX, 4.3BSD)]) AC_CACHE_VAL([fu_cv_sys_stat_statfs2_bsize], [AC_RUN_IFELSE([AC_LANG_SOURCE([[ @@ -131,7 +137,8 @@ fi if test $ac_fsusage_space = no; then -# SVR3 + # SVR3 + # (Solaris already handled above.) AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) AC_CACHE_VAL([fu_cv_sys_stat_statfs4], [AC_RUN_IFELSE([AC_LANG_SOURCE([[ @@ -150,13 +157,17 @@ if test $fu_cv_sys_stat_statfs4 = yes; then ac_fsusage_space=yes AC_DEFINE([STAT_STATFS4], [1], - [ Define if statfs takes 4 args. (SVR3, Dynix, Irix, Dolphin)]) + [ Define if statfs takes 4 args. (SVR3, Dynix, old Irix, old AIX, Dolphin)]) fi fi if test $ac_fsusage_space = no; then -# 4.4BSD and NetBSD - AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl + # 4.4BSD and older NetBSD + # (OSF/1 already handled above.) + # (On AIX, you need to include <sys/statfs.h>, not only <sys/mount.h>.) + # (On Solaris, statfs has 4 arguments and 'struct statfs' is not declared in + # <sys/mount.h>.) + AC_MSG_CHECKING([for two-argument statfs with statfs.f_fsize dnl member (4.4BSD and NetBSD)]) AC_CACHE_VAL([fu_cv_sys_stat_statfs2_fsize], [AC_RUN_IFELSE([AC_LANG_SOURCE([[ @@ -223,6 +234,7 @@ if test $ac_fsusage_space = no; then # SVR2 + # (AIX, HP-UX, OSF/1 already handled above.) AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <sys/filsys.h> ]])], [AC_DEFINE([STAT_READ_FILSYS], [1],