summaryrefslogtreecommitdiff
path: root/conform/data/sys/stat.h-data
diff options
context:
space:
mode:
Diffstat (limited to 'conform/data/sys/stat.h-data')
-rw-r--r--conform/data/sys/stat.h-data36
1 files changed, 26 insertions, 10 deletions
diff --git a/conform/data/sys/stat.h-data b/conform/data/sys/stat.h-data
index f5b17a31ac..03be4814ec 100644
--- a/conform/data/sys/stat.h-data
+++ b/conform/data/sys/stat.h-data
@@ -1,6 +1,6 @@
#if !defined ISO && !defined ISO99 && !defined ISO11
-#if !defined POSIX && !defined POSIX2008 && !defined XPG3 && !defined XPG4
+#if !defined POSIX && !defined POSIX2008 && !defined XPG4 && !defined XPG42
type blkcnt_t
type blksize_t
#endif
@@ -26,14 +26,17 @@ type time_t
type {struct stat}
-element {struct stat} dev_t st_dev
+// Bug 17786: st_dev has wrong type.
+// Bug 23084: st_dev has type unsigned long long instead of dev_t (unsigned).
+xfail[mips-o32-linux|i386-gnu]-element {struct stat} dev_t st_dev
element {struct stat} ino_t st_ino
element {struct stat} mode_t st_mode
element {struct stat} nlink_t st_nlink
element {struct stat} uid_t st_uid
element {struct stat} gid_t st_gid
#if !defined POSIX && !defined POSIX2008
-element {struct stat} dev_t st_rdev
+// Bug 21278: st_rdev has wrong type.
+xfail[mips-o32-linux]-element {struct stat} dev_t st_rdev
#endif
element {struct stat} off_t st_size
element {struct stat} time_t st_atime
@@ -44,15 +47,24 @@ 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 XPG4 && !defined POSIX && !defined POSIX2008
+# ifdef XPG42
+// The XPG42 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
type {struct timespec}
element {struct timespec} time_t tv_sec
-element {struct timespec} long tv_nsec
+// Bug 16437: tv_nsec has wrong type.
+xfail[x86_64-x32-linux]-element {struct timespec} long tv_nsec
# endif
#if !defined POSIX && !defined POSIX2008
@@ -62,8 +74,10 @@ constant S_IFCHR
constant S_IFIFO
constant S_IFREG
constant S_IFDIR
+# ifndef XPG4
constant S_IFLNK
constant S_IFSOCK
+# endif
#endif
constant S_IRWXU
@@ -80,7 +94,7 @@ constant S_IWOTH
constant S_IXOTH
constant S_ISUID
constant S_ISGID
-#if !defined POSIX && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined POSIX2008
constant S_ISVTX
#endif
@@ -89,7 +103,7 @@ macro S_ISCHR
macro S_ISDIR
macro S_ISFIFO
macro S_ISREG
-#if !defined POSIX
+#if !defined XPG4 && !defined POSIX
macro S_ISLNK
macro S_ISSOCK
#endif
@@ -98,7 +112,7 @@ macro S_ISSOCK
optional-macro S_TYPEISMQ
optional-macro S_TYPEISSEM
optional-macro S_TYPEISSHM
-# if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
optional-macro S_TYPEISTMO
# endif
@@ -108,7 +122,9 @@ constant UTIME_OMIT
# endif
function int chmod (const char*, mode_t)
+# ifndef XPG4
function int fchmod (int, mode_t)
+# endif
# if defined XOPEN2K8 || defined POSIX2008
function int fchmodat (int, const char*, mode_t, int)
# endif
@@ -117,7 +133,7 @@ function int fstat (int, struct stat*)
function int fstatat (int, const char*, struct stat*, int)
function int futimens (int, const struct timespec[2])
# endif
-#if !defined POSIX
+#if !defined XPG4 && !defined POSIX
function int lstat (const char*, struct stat*)
#endif
function int mkdir (const char*, mode_t)
@@ -128,7 +144,7 @@ function int mkfifo (const char*, mode_t)
# if defined XOPEN2K8 || defined POSIX2008
function int mkfifoat (int, const char*, mode_t)
# endif
-# if !defined POSIX && !defined POSIX2008
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
function int mknod (const char*, mode_t, dev_t)
# endif
# ifdef XOPEN2K8