diff --git a/ChangeLog b/ChangeLog index 61e1572f70..350717663c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat May 3 00:06:30 2014 Naohisa Goto + + * file.c (HAVE_STRUCT_STATVFS_F_BASETYPE): File::Statfs#fstypename + is supported on AIX, HP-UX, and Solaris, by using the value of + struct statvfs.f_basetype. + + * configure.in (HAVE_STRUCT_STATVFS_F_BASETYPE): check struct + statvfs.f_basetype which is available on AIX, HP-UX, and Solaris. + Fri May 2 21:04:02 2014 Nobuyoshi Nakada * parse.y (next_id): no reason to set ID_STATIC_SYM here, as ID diff --git a/configure.in b/configure.in index 29ae4f6c37..1258daac42 100644 --- a/configure.in +++ b/configure.in @@ -1746,9 +1746,12 @@ AC_CHECK_MEMBERS([struct statfs.f_type, struct statfs.f_fstypename], [], [], [@% @%:@ include @%:@endif]) ]) -# NetBSD +# AIX, HP-UX, NetBSD, Solaris AC_CHECK_TYPES([struct statvfs], [], [], [@%:@ include ]) +# NetBSD AC_CHECK_MEMBERS([struct statvfs.f_fstypename], [], [], [@%:@ include ]) +# AIX, HP-UX, Solaris +AC_CHECK_MEMBERS([struct statvfs.f_basetype], [], [], [@%:@ include ]) AC_CHECK_TYPES([clockid_t], [], [], [@%:@ifdef HAVE_TIME_H @%:@ include diff --git a/file.c b/file.c index 4edfdeaa7a..dcadfa2da7 100644 --- a/file.c +++ b/file.c @@ -87,8 +87,11 @@ typedef struct statvfs statfs_t; # ifdef HAVE_FSTATVFS # define FSTATFS(f, s) fstatvfs((f), (s)) # endif -# ifdef HAVE_STRUCT_STATVFS_F_FSTYPENAME +# if defined(HAVE_STRUCT_STATVFS_F_FSTYPENAME) /* NetBSD */ # define HAVE_STRUCT_STATFS_T_F_FSTYPENAME 1 +# elif defined(HAVE_STRUCT_STATVFS_F_BASETYPE) /* AIX, HP-UX, Solaris */ +# define HAVE_STRUCT_STATFS_T_F_FSTYPENAME 1 +# define f_fstypename f_basetype # endif # ifdef HAVE_STRUCT_STATVFS_F_TYPE # define HAVE_STRUCT_STATFS_T_F_TYPE 1