Mercurial > gnulib
changeset 19045:bf63563adfd2
fts: port recent changes to CentOS 6
Problem reported by Tom G. Christensen in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-08/msg00064.html
* lib/fts.c (fsword): New type.
(struct dev_type, filesystem_type): Use it.
* m4/fts.m4 (gl_FUNC_FTS_CORE): Check for __fsword_t.
Also, check for f_type only if fstatfs and sys/vfs.h work.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Thu, 10 Aug 2017 06:06:06 -0700 |
parents | ca6b7b50af65 |
children | 6f934f8dfa24 |
files | ChangeLog lib/fts.c m4/fts.m4 |
diffstat | 3 files changed, 31 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Aug 09 15:56:01 2017 -0700 +++ b/ChangeLog Thu Aug 10 06:06:06 2017 -0700 @@ -1,3 +1,13 @@ +2017-08-10 Paul Eggert <eggert@cs.ucla.edu> + + fts: port recent changes to CentOS 6 + Problem reported by Tom G. Christensen in: + http://lists.gnu.org/archive/html/bug-gnulib/2017-08/msg00064.html + * lib/fts.c (fsword): New type. + (struct dev_type, filesystem_type): Use it. + * m4/fts.m4 (gl_FUNC_FTS_CORE): Check for __fsword_t. + Also, check for f_type only if fstatfs and sys/vfs.h work. + 2017-08-09 Paul Eggert <eggert@cs.ucla.edu> tempname: do not depend on secure_getenv
--- a/lib/fts.c Wed Aug 09 15:56:01 2017 -0700 +++ b/lib/fts.c Thu Aug 10 06:06:06 2017 -0700 @@ -699,11 +699,17 @@ # define S_MAGIC_TMPFS 0x1021994 # define S_MAGIC_XFS 0x58465342 +# ifdef HAVE___FSWORD_T +typedef __fsword_t fsword; +# else +typedef long int fsword; +# endif + /* Map a stat.st_dev number to a file system type number f_ftype. */ struct dev_type { dev_t st_dev; - __fsword_t f_type; + fsword f_type; }; /* Use a tiny initial size. If a traversal encounters more than @@ -730,7 +736,7 @@ /* Return the file system type of P, or 0 if not known. Try to cache known values. */ -static __fsword_t +static fsword filesystem_type (FTSENT const *p) { FTS *sp = p->fts_fts;
--- a/m4/fts.m4 Wed Aug 09 15:56:01 2017 -0700 +++ b/m4/fts.m4 Thu Aug 10 06:06:06 2017 -0700 @@ -1,4 +1,4 @@ -#serial 20 +#serial 21 dnl Copyright (C) 2005-2017 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -16,7 +16,16 @@ AC_CHECK_FUNCS_ONCE([fstatfs]) AC_CHECK_HEADERS_ONCE([sys/param.h sys/vfs.h])dnl - AC_CHECK_MEMBERS([struct statfs.f_type],,, - [$ac_includes_default - #include <sys/vfs.h>]) + if test "$ac_cv_func_fstatfs,$ac_cv_header_sys_vfs_h" = yes,yes; then + AC_CHECK_MEMBERS([struct statfs.f_type], [], [], + [[$ac_includes_default + #include <sys/vfs.h> + ]]) + if test "$ac_cv_member_struct_statfs_f_type" = yes; then + AC_CHECK_TYPES([__fsword_t], [], [], + [[$ac_includes_default + #include <sys/vfs.h> + ]]) + fi + fi ])