summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2003-05-26 20:23:14 +0000
committerJim Meyering <jim@meyering.net>2003-05-26 20:23:14 +0000
commite4ac725a11b6e8cc5b1e1f7f30a118d073e2dc89 (patch)
tree63f5915ed50bb0486b54d50b6ce6dca6bb5ea78a
parent1df8b738db6355899d5eff4c14ecf6a25a388f38 (diff)
downloadcoreutils-e4ac725a11b6e8cc5b1e1f7f30a118d073e2dc89.tar.xz
Fix portability problem on FreeBSD5.0: don't include
<sys/statvfs.h> on systems without HAVE_STRUCT_STATVFS_F_BASETYPE. Use #if/#elif/... cascade so we get only one set of include files.
-rw-r--r--src/stat.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/stat.c b/src/stat.c
index 841cffa09..af19a17be 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -25,24 +25,22 @@
#include <grp.h>
#include <unistd.h>
#include <time.h>
-#if HAVE_SYS_STATVFS_H
-# include <sys/statvfs.h>
-#endif
#if HAVE_SYS_VFS_H
# include <sys/vfs.h>
-#endif
-
-#if !HAVE_SYS_STATVFS_H && !HAVE_SYS_VFS_H
-# if HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H
+#elif HAVE_SYS_STATVFS_H && HAVE_STRUCT_STATVFS_F_BASETYPE
+# include <sys/statvfs.h>
+#elif HAVE_SYS_MOUNT_H && HAVE_SYS_PARAM_H
+/* NOTE: freebsd5.0 needs sys/param.h and sys/mount.h for statfs.
+ It does have statvfs.h, but shouldn't use it, since it doesn't
+ HAVE_STRUCT_STATVFS_F_BASETYPE. So find a clean way to fix it. */
/* NetBSD 1.5.2 needs these, for the declaration of struct statfs. */
-# include <sys/param.h>
-# include <sys/mount.h>
-# elif HAVE_NETINET_IN_H && HAVE_NFS_NFS_CLNT_H && HAVE_NFS_VFS_H
+# include <sys/param.h>
+# include <sys/mount.h>
+#elif HAVE_NETINET_IN_H && HAVE_NFS_NFS_CLNT_H && HAVE_NFS_VFS_H
/* Ultrix 4.4 needs these for the declaration of struct statfs. */
-# include <netinet/in.h>
-# include <nfs/nfs_clnt.h>
-# include <nfs/vfs.h>
-# endif
+# include <netinet/in.h>
+# include <nfs/nfs_clnt.h>
+# include <nfs/vfs.h>
#endif
#include "system.h"