summaryrefslogtreecommitdiff
path: root/conform/data/sys
diff options
context:
space:
mode:
Diffstat (limited to 'conform/data/sys')
-rw-r--r--conform/data/sys/ipc.h-data9
-rw-r--r--conform/data/sys/mman.h-data4
-rw-r--r--conform/data/sys/msg.h-data5
-rw-r--r--conform/data/sys/resource.h-data2
-rw-r--r--conform/data/sys/select.h-data7
-rw-r--r--conform/data/sys/shm.h-data5
-rw-r--r--conform/data/sys/socket.h-data5
-rw-r--r--conform/data/sys/stat.h-data36
-rw-r--r--conform/data/sys/statvfs.h-data5
-rw-r--r--conform/data/sys/time.h-data2
-rw-r--r--conform/data/sys/timeb.h-data2
-rw-r--r--conform/data/sys/types.h-data6
-rw-r--r--conform/data/sys/uio.h-data2
-rw-r--r--conform/data/sys/un.h-data4
-rw-r--r--conform/data/sys/wait.h-data28
15 files changed, 77 insertions, 45 deletions
diff --git a/conform/data/sys/ipc.h-data b/conform/data/sys/ipc.h-data
index 70dc3f6fe6..09e8f68f8e 100644
--- a/conform/data/sys/ipc.h-data
+++ b/conform/data/sys/ipc.h-data
@@ -1,10 +1,11 @@
#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
type {struct ipc_perm}
-element {struct ipc_perm} uid_t uid
-element {struct ipc_perm} gid_t gid
-element {struct ipc_perm} uid_t cuid
-element {struct ipc_perm} gid_t cgid
+// Bug 23082: uid/gid/cuid/cgid/mode have type unsigned short instead of uid_t and mode_t.
+xfail[i386-gnu]-element {struct ipc_perm} uid_t uid
+xfail[i386-gnu]-element {struct ipc_perm} gid_t gid
+xfail[i386-gnu]-element {struct ipc_perm} uid_t cuid
+xfail[i386-gnu]-element {struct ipc_perm} gid_t cgid
// Bug 18231: wrong type for mode member.
xfail-element {struct ipc_perm} mode_t mode
diff --git a/conform/data/sys/mman.h-data b/conform/data/sys/mman.h-data
index 3a88684bc5..a74388338e 100644
--- a/conform/data/sys/mman.h-data
+++ b/conform/data/sys/mman.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined XPG4
constant PROT_READ
constant PROT_WRITE
constant PROT_EXEC
@@ -17,7 +17,7 @@ constant MCL_FUTURE
constant MAP_FAILED
-# if !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+# if !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
constant POSIX_MADV_NORMAL
constant POSIX_MADV_SEQUENTIAL
constant POSIX_MADV_RANDOM
diff --git a/conform/data/sys/msg.h-data b/conform/data/sys/msg.h-data
index a8290cab52..f5e9f1c82a 100644
--- a/conform/data/sys/msg.h-data
+++ b/conform/data/sys/msg.h-data
@@ -9,8 +9,9 @@ constant MSG_NOERROR
element {struct msqid_ds} {struct ipc_perm} msg_perm
element {struct msqid_ds} msgqnum_t msg_qnum
element {struct msqid_ds} msglen_t msg_qbytes
-element {struct msqid_ds} pid_t msg_lspid
-element {struct msqid_ds} pid_t msg_lrpid
+// Bug 23083: msg_lspid/msg_lrpid have type unsigned short instead of pid_t.
+xfail[i386-gnu]-element {struct msqid_ds} pid_t msg_lspid
+xfail[i386-gnu]-element {struct msqid_ds} pid_t msg_lrpid
element {struct msqid_ds} time_t msg_stime
element {struct msqid_ds} time_t msg_rtime
element {struct msqid_ds} time_t msg_ctime
diff --git a/conform/data/sys/resource.h-data b/conform/data/sys/resource.h-data
index 5c46dea301..cedbee1a40 100644
--- a/conform/data/sys/resource.h-data
+++ b/conform/data/sys/resource.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
constant PRIO_PROCESS
constant PRIO_PGRP
constant PRIO_USER
diff --git a/conform/data/sys/select.h-data b/conform/data/sys/select.h-data
index d414ec4624..44d63ebd2d 100644
--- a/conform/data/sys/select.h-data
+++ b/conform/data/sys/select.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined XPG42 && !defined UNIX98
type time_t
type suseconds_t
@@ -10,10 +10,11 @@ type sigset_t
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
type fd_set
-#if defined XPG3 || defined XPG4 || defined UNIX98
+#if defined XPG4 || defined XPG42 || defined UNIX98
element fd_set long fds_bits []
#endif
diff --git a/conform/data/sys/shm.h-data b/conform/data/sys/shm.h-data
index a006cdbb92..778b194f50 100644
--- a/conform/data/sys/shm.h-data
+++ b/conform/data/sys/shm.h-data
@@ -9,8 +9,9 @@ type {struct shmid_ds}
element {struct shmid_ds} {struct ipc_perm} shm_perm
element {struct shmid_ds} size_t shm_segsz
-element {struct shmid_ds} pid_t shm_lpid
-element {struct shmid_ds} pid_t shm_cpid
+// Bug 23085: shm_lpid/shm_cpid have type unsigned short instead of pid_t
+xfail[i386-gnu]-element {struct shmid_ds} pid_t shm_lpid
+xfail[i386-gnu]-element {struct shmid_ds} pid_t shm_cpid
element {struct shmid_ds} shmatt_t shm_nattch
element {struct shmid_ds} time_t shm_atime
element {struct shmid_ds} time_t shm_dtime
diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data
index 442d4d288a..8796c57570 100644
--- a/conform/data/sys/socket.h-data
+++ b/conform/data/sys/socket.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
type socklen_t
type sa_family_t
@@ -113,7 +113,7 @@ function int setsockopt (int, int, int, const void*, socklen_t)
function int shutdown (int, int)
function int socket (int, int, int)
function int socketpair (int, int, int, int[2])
-#if !defined XPG4 && !defined UNIX98
+#if !defined XPG42 && !defined UNIX98
function int sockatmark (int)
#endif
@@ -136,4 +136,5 @@ allow MSG_*
allow PF_*
allow SCM_*
allow SHUT_*
+allow *_t
#endif
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
diff --git a/conform/data/sys/statvfs.h-data b/conform/data/sys/statvfs.h-data
index fa56fbeee1..2a74813e3d 100644
--- a/conform/data/sys/statvfs.h-data
+++ b/conform/data/sys/statvfs.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
type {struct statvfs}
element {struct statvfs} {unsigned long} f_bsize
@@ -9,7 +9,8 @@ element {struct statvfs} fsblkcnt_t f_bavail
element {struct statvfs} fsfilcnt_t f_files
element {struct statvfs} fsfilcnt_t f_ffree
element {struct statvfs} fsfilcnt_t f_favail
-element {struct statvfs} {unsigned long} f_fsid
+// Bug 23086: f_fsid has type unsigned long long instead of unsigned long
+xfail[i386-gnu]-element {struct statvfs} {unsigned long} f_fsid
element {struct statvfs} {unsigned long} f_flag
element {struct statvfs} {unsigned long} f_namemax
diff --git a/conform/data/sys/time.h-data b/conform/data/sys/time.h-data
index 1d07bd6380..30523e1af4 100644
--- a/conform/data/sys/time.h-data
+++ b/conform/data/sys/time.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 && !defined XPG4
type {struct timeval}
element {struct timeval} time_t tv_sec
diff --git a/conform/data/sys/timeb.h-data b/conform/data/sys/timeb.h-data
index 08ae3c0932..9638f73c8f 100644
--- a/conform/data/sys/timeb.h-data
+++ b/conform/data/sys/timeb.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined POSIX2008 && !defined XOPEN2K8
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008 && !defined XOPEN2K8
type {struct timeb}
element {struct timeb} time_t time
diff --git a/conform/data/sys/types.h-data b/conform/data/sys/types.h-data
index 36c5efac63..cc28eb76d4 100644
--- a/conform/data/sys/types.h-data
+++ b/conform/data/sys/types.h-data
@@ -1,9 +1,13 @@
#if !defined ISO && !defined ISO99 && !defined ISO11
#if !defined POSIX
+# if !defined XPG4 && !defined XPG42
type blkcnt_t
type blksize_t
+# endif
type clock_t
+# if !defined XPG4 && !defined XPG42
type clockid_t
+# endif
#endif
type dev_t
# if !defined POSIX
@@ -22,7 +26,7 @@ type mode_t
type nlink_t
type off_t
type pid_t
-#if !defined XPG3 && !defined XPG4
+#if !defined XPG4 && !defined XPG42
type pthread_attr_t
#if !defined POSIX && !defined UNIX98
type pthread_barrier_t
diff --git a/conform/data/sys/uio.h-data b/conform/data/sys/uio.h-data
index 06cea074cd..b9fc66177c 100644
--- a/conform/data/sys/uio.h-data
+++ b/conform/data/sys/uio.h-data
@@ -1,4 +1,4 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3 && !defined POSIX2008
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4 && !defined POSIX2008
type {struct iovec}
element {struct iovec} {void*} iov_base
diff --git a/conform/data/sys/un.h-data b/conform/data/sys/un.h-data
index 3bf7968683..08bf9bcfd7 100644
--- a/conform/data/sys/un.h-data
+++ b/conform/data/sys/un.h-data
@@ -1,8 +1,10 @@
-#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG3
+#if !defined ISO && !defined ISO99 && !defined ISO11 && !defined POSIX && !defined XPG4
type {struct sockaddr_un}
element {struct sockaddr_un} sa_family_t sun_family
element {struct sockaddr_un} char sun_path []
type sa_family_t
+
+allow sun_*
#endif
diff --git a/conform/data/sys/wait.h-data b/conform/data/sys/wait.h-data
index e0787e3b5d..ed3869b34f 100644
--- a/conform/data/sys/wait.h-data
+++ b/conform/data/sys/wait.h-data
@@ -7,8 +7,9 @@ constant WNOHANG
constant WUNTRACED
macro WEXITSTATUS
-# if !defined POSIX && !defined POSIX2008
-macro WIFCONTINUED
+# if !defined XPG4 && !defined POSIX && !defined POSIX2008
+// Bug 23091: hurd: missing waitid support.
+xfail[i386-gnu]-macro WIFCONTINUED
# endif
macro WIFEXITED
macro WIFSIGNALED
@@ -16,17 +17,18 @@ macro WIFSTOPPED
macro WSTOPSIG
macro WTERMSIG
-# ifndef POSIX
-constant WEXITED
-constant WSTOPPED
+// Bug 23091: hurd: missing waitid support.
+# if !defined XPG4 && !defined POSIX
+xfail[i386-gnu]-constant WEXITED
+xfail[i386-gnu]-constant WSTOPPED
# ifndef POSIX2008
-constant WCONTINUED
+xfail[i386-gnu]-constant WCONTINUED
# endif
constant WNOHANG
-constant WNOWAIT
+xfail[i386-gnu]-constant WNOWAIT
# endif
-#if !defined POSIX
+#if !defined XPG4 && !defined POSIX
type idtype_t
constant P_ALL
@@ -45,10 +47,12 @@ element siginfo_t uid_t si_uid
element siginfo_t {void*} si_addr
element siginfo_t int si_status
element siginfo_t long si_band
+# ifndef XPG42
element siginfo_t {union sigval} si_value
+# endif
#endif
-#if !defined POSIX && !defined XPG3 && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined POSIX && !defined XPG4 && !defined XOPEN2K8 && !defined POSIX2008
type {struct rusage}
element {struct rusage} {struct timeval} ru_utime
@@ -60,15 +64,15 @@ type pid_t
#endif
function pid_t wait (int*)
-#if !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
+#if !defined XPG4 && !defined POSIX && !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
function pid_t wait3 (int*, int, struct rusage*)
#endif
-#if !defined POSIX
+#if !defined XPG4 && !defined POSIX
function int waitid (idtype_t, id_t, siginfo_t*, int)
#endif
function pid_t waitpid (pid_t, int*, int)
-#if !defined POSIX
+#if !defined XPG4 && !defined POSIX
allow-header signal.h
allow-header sys/resource.h