diff options
-rw-r--r-- | configure.in | 11 | ||||
-rw-r--r-- | file.c | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/configure.in b/configure.in index d44a3c5c5f..03d6596db4 100644 --- a/configure.in +++ b/configure.in @@ -1732,6 +1732,7 @@ AC_CHECK_TYPES([struct statfs], [], [], [@%:@ifdef HAVE_SYS_PARAM_H @%:@ifdef HAVE_SYS_VFS_H @%:@ include <sys/vfs.h> @%:@endif]) +AS_IF([test "$ac_cv_type_struct_statfs" = yes], [ AC_CHECK_MEMBERS([struct statfs.f_fstypename], [], [], [@%:@ifdef HAVE_SYS_PARAM_H @%:@ include <sys/param.h> @%:@endif @@ -1741,6 +1742,16 @@ AC_CHECK_MEMBERS([struct statfs.f_fstypename], [], [], [@%:@ifdef HAVE_SYS_PARAM @%:@ifdef HAVE_SYS_VFS_H @%:@ include <sys/vfs.h> @%:@endif]) +AC_CHECK_TYPES([fsid_t], [], [], [@%:@ifdef HAVE_SYS_PARAM_H +@%:@ include <sys/param.h> +@%:@endif +@%:@ifdef HAVE_SYS_MOUNT_H +@%:@ include <sys/mount.h> +@%:@endif +@%:@ifdef HAVE_SYS_VFS_H +@%:@ include <sys/vfs.h> +@%:@endif]) +]) AC_CHECK_TYPES([clockid_t], [], [], [@%:@ifdef HAVE_TIME_H @%:@ include <time.h> @@ -5540,12 +5540,16 @@ statfs_ffree(VALUE self) static VALUE statfs_fsid(VALUE self) { +#ifdef HAVE_FSID_T union { uint64_t v; fsid_t f; } n = {0}; n.f = get_statfs(self)->f_fsid; return LL2NUM(n.v); +#else + return LONG2NUM(get_statfs(self)->f_fsid); +#endif } #ifdef HAVE_STRUCT_STATFS_F_FSTYPENAME |