about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--conform/data/sys/stat.h-data10
2 files changed, 13 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 93db66fd61..4e0870fef6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2016-05-10  Joseph Myers  <joseph@codesourcery.com>
 
+	* 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