diff --git a/ChangeLog b/ChangeLog index 93db66fd61..4e0870fef6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2016-05-10 Joseph Myers + * conform/data/sys/stat.h-data (st_blksize): Do not expect for + [XPG3]. Expect type long and XFAIL for [XPG4]. + (st_blocks): Likewise. + [BZ #20044] * posix/unistd.h [__USE_UNIX98 && !__USE_XOPEN2K] (pthread_atfork): New prototype. diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data index f5b17a31ac..c70ef4529f 100644 --- a/conform/data/sys/stat.h-data +++ b/conform/data/sys/stat.h-data @@ -44,9 +44,17 @@ element {struct stat} {struct timespec} st_atim element {struct stat} {struct timespec} st_mtim element {struct stat} {struct timespec} st_ctim #endif -#if !defined POSIX && !defined POSIX2008 +#if !defined XPG3 && !defined POSIX && !defined POSIX2008 +# ifdef XPG4 +// The XPG4 use of "long" for these fields is not compatible with the +// use of typedefs in future standards to support values outside the +// range of "long". +xfail-element {struct stat} long st_blksize +xfail-element {struct stat} long st_blocks +# else element {struct stat} blksize_t st_blksize element {struct stat} blkcnt_t st_blocks +# endif #endif # if defined XOPEN2K8 || defined POSIX2008