diff options
35 files changed, 656 insertions, 42 deletions
@@ -1,8 +1,98 @@ 2000-04-29 Ulrich Drepper <drepper@redhat.com> + * conform/conformtest.pl (@headers): Add sys/utsname.h, sys/un.h, + sys/socket.h, spawn.h, netinet/tcp.h, netinet/in.h, net/if.h, and + arpa/inet.h. + * conform/data/fcntl.h-data: Add F_GETOWN, F_SETOWN, + SEEK_SET, SEEK_CUR, SEEK_END, S_IFMT, S_IFBLK, S_IFCHR, S_IFIFO, + S_IFREG, S_IFDIR, S_IFLNK, S_IFSOCK, S_IRWXU, S_IRUSR S_IWUSR, + S_IXUSR, S_IRWXG, S_IRGRP, S_IWGRP, S_IXGRP, S_IRWXO, S_IROTH, + S_IWOTH, S_IXOTH, S_ISUID, S_ISGID, S_ISVTX, POSIX_FADV_NORMAL, + POSIX_FADV_SEQUENTIAL, POSIX_FADV_RANDOM, POSIX_FADV_WILLNEED, + POSIX_FADV_DONTNEED, POSIX_FADV_NOREUSE, posix_fadvise, + posix_fallocate, and posix_madvise. + * conform/data/netdb.h-data: New file. + * conform/data/pthread.h-data: Add pthread_barrier_t, + pthread_barrierattr_t, pthread_barrier_destroy, + pthread_barrier_init, pthread_barrier_wait, + pthread_barrierattr_destroy, pthread_barrierattr_getpshared, + pthread_barrierattr_init, pthread_barrierattr_setpshared, + pthread_condattr_getclock, pthread_condattr_setclock, + pthread_getcpuclockid, pthread_mutex_timedlock, + pthread_rwlock_timedrdlock, pthread_rwlock_timedwrlock, + pthread_sigmask, pthread_spin_destroy, pthread_spin_init, + pthread_spin_lock, pthread_spin_trylock, and pthread_spin_unlock. + * conform/data/sched.h-data: Add sched_ss_low_priority, + sched_ss_repl_period, sched_ss_init_budget, sched_ss_max_repl, and + SCHED_SPORADIC. + * conform/data/semaphore.h-data: Add sem_timedwait. + * conform/data/signal.h-data: Add SIGIO. + * conform/data/spawn.h-data: New file. + * conform/data/stdlib.h-data: Add posix_memalign, setenv, and unsetenv. + * conform/data/time.h-data: Add CLOCK_PROCESS_CPUTIME_ID, + CLOCK_THREAD_CPUTIME_ID, clock_getcpuclockid, and clock_nanosleep. + Fix typo in gmtime_r definition. + * conform/data/unistd.h-data: Add _POSIX_ADVISORY_INFO, + _POSIX_ASYNCHRONOUS_IO, _POSIX_BARRIERS, _POSIX_MONOTONIC_CLOCK, + _POSIX_READER_WRITER_LOCKS, _POSIX_SHELL, _POSIX_SPAWN, + _POSIX_SPIN_LOCKS, _POSIX_SPORADIC_SERVER, _POSIX_THREAD_CPUTIME, + _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_THREAD_SPORADIC_SERVER, + _XOPEN_STREAMS, _POSIX_TIMEOUTS, _POSIX2_PBS, + _POSIX2_PBS_ACCOUNTING, _POSIX2_PBS_CHECKPOINT, + _POSIX2_PBS_LOCATE, _POSIX2_PBS_MESSAGE, _POSIX2_PBS_TRACK, + _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_CHECKPOINT, + _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, + _SC_BARRIERS, _SC_BASE, _SC_CLOCK_SELECTION, _SC_DEVICE_IO, + _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, + _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, + _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK, + _SC_MESSAGE_PASSING, _SC_MONOTONIC_CLOCK, _SC_MULTIPLE_PROCESS, + _SC_NETWORKING, _SC_PIPE, _SC_READER_WRITER_LOCKS, _SC_REGEXP, + _SC_SHELL, _SC_SIGNALS, _SC_SINGLE_PROCESS, _SC_SPIN_LOCKS, + _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, + _SC_STREAMS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, + _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, setegid, seteuid. Fix + typo in off_t definition. + * conform/data/net/if.h-data: New file. + * conform/data/netinet/in.h-data: New file. + * conform/data/netinet/tcp.h-data: New file. + * conform/data/sys/mman.h-data: Add POSIX_MADV_NORMAL, + POSIX_MADV_SEQUENTIAL, POSIX_MADV_RANDOM, POSIX_MADV_WILLNEED, + POSIX_MADV_DONTNEED, POSIX_TYPED_MEM_ALLOCATE, + POSIX_TYPED_MEM_ALLOCATE_CONTIG, POSIX_TYPED_MEM_MAP_ALLOCATABLE, + posix_typedmem_info, posix_mem_offset, posix_typed_mem_get_info, + and posix_typed_mem_open. + * conform/data/sys/socket.h-data: New file. + * conform/data/sys/stat.h-data: Add S_TYPEISTMO and isfdtype. + * conform/data/sys/types.h-data: Add pthread_barrier_t, + pthread_barrierattr_t, and pthread_spinlock_t. + * conform/data/sys/un.h-data: New file. + * conform/data/sys/utsname.h-data: New file. + + * include/netdb.h (__gethostbyaddr_r): Fix types of first and second + parameter. + * inet/gethstbyad.c (gethostbyname): Likewise. + * inet/gethstbyad_t.c (gethostbyname_r): Likewise. + * inet/getipnodebyad.c (getipnodebyad): Likewise. + * nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyaddr_r): Likewise. + * nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_gethostbyaddr_r): + Likewise. + * nscd/gethstbyad_r.c (gethostbyaddr_r): Likewise. + * nscd/nscd_gethst_r.c (__nscd_gethostbyaddr_r): Likewise. + * nscd/nscd_proto.h (__nscd_gethostbyaddr_r): Likewise. + * nss/nss_files/files-hosts.c (_nss_files_gethostbyaddr_r): Likewise. + * resolv/gethnamaddr.c (gethostbyname): Likewise. + * resolv/netdb.h (struct hostent): Fix type of h_length member. + (gethostbyaddr, getipnodebyaddr, gethostbyaddr_r): Fix types of first + and second parameter. + * wcsmbs/mbrtowc.c (__mbrtowc): Set end of buffer correctly if s == NULL. +2000-04-29 Andreas Jaeger <aj@suse.de> + + * conform/data/arpa/inet.h-data: New file. + 2000-04-28 Geoff Clare <gwc@unisoft.com> * io/ftw.c: Set errno to ENOENT (instead of ENOTDIR) when the diff --git a/conform/conformtest.pl b/conform/conformtest.pl index 0608d9ff15..a7d984ab6c 100644 --- a/conform/conformtest.pl +++ b/conform/conformtest.pl @@ -6,18 +6,20 @@ $CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500"; # List of the headers we are testing. @headers = ("wordexp.h", "wctype.h", "wchar.h", "varargs.h", "utmpx.h", "utime.h", "unistd.h", "ulimit.h", "ucontext.h", "time.h", - "termios.h", "tar.h", "sys/wait.h", "sys/uio.h", "sys/types.h", - "sys/times.h", "sys/timeb.h", "sys/time.h", "sys/statvfs.h", - "sys/stat.h", "sys/shm.h", "sys/sem.h", "sys/resource.h", - "sys/msg.h", "sys/mman.h", "sys/ipc.h", "syslog.h", - "stropts.h", "strings.h", "string.h", "stdlib.h", "stdio.h", - "stddef.h", "stdarg.h", "signal.h", "setjmp.h", "semaphore.h", + "termios.h", "tar.h", "sys/wait.h", "sys/utsname.h", "sys/un.h", + "sys/uio.h", "sys/types.h", "sys/times.h", "sys/timeb.h", + "sys/time.h", "sys/statvfs.h", "sys/stat.h", "sys/socket.h", + "sys/shm.h", "sys/sem.h", "sys/resource.h", "sys/msg.h", + "sys/mman.h", "sys/ipc.h", "syslog.h", "stropts.h", "strings.h", + "string.h", "stdlib.h", "stdio.h", "stddef.h", "stdarg.h", + "spawn.h", "signal.h", "setjmp.h", "semaphore.h", "search.h", "sched.h", "regex.h", "pwd.h", "pthread.h", - "poll.h", "nl_types.h", "ndbm.h", "mqueue.h", "monetary.h", + "poll.h", "nl_types.h", "netinet/tcp.h", "netinet/in.h", + "net/if.h", "netdb.h", "ndbm.h", "mqueue.h", "monetary.h", "math.h", "locale.h", "libgen.h", "langinfo.h", "iso646.h", "inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h", "fmtmsg.h", "float.h", "fcntl.h", "errno.h", "dlfcn.h", "dirent.h", - "ctype.h", "cpio.h", "assert.h", "aio.h"); + "ctype.h", "cpio.h", "assert.h", "arpa/inet.h", "aio.h"); # These are the ISO C99 keywords. @keywords = ('auto', 'break', 'case', 'char', 'const', 'continue', 'default', diff --git a/conform/data/arpa/inet.h-data b/conform/data/arpa/inet.h-data new file mode 100644 index 0000000000..6a98d334ae --- /dev/null +++ b/conform/data/arpa/inet.h-data @@ -0,0 +1,31 @@ +#ifndef ISO +// in_port_t should have exactly 16 bits +type in_port_t +// in_addr_t should have exactly 32 bits +type in_addr_t + +type uint32_t +type uint16_t + +macro INET_ADDRSTRLEN +macro INET6_ADDRSTRLEN + +// The following can be declared as functions, defined as macros or both: +function uint32_t htonl (uint32_t); +function uint16_t htons (uint16_t); +function uint32_t ntohl (uint32_t); +function uint16_t htons (uint16_t); + +function in_addr_t inet_addr (const char*); +function in_addr_t inet_lnaof (struct in_addr); +function {struct in_addr} inet_makeaddr (in_addr_t, in_addr_t); +function in_addrt_t inet_netof (struct in_addr); +function in_addrt_t inet_network (const char *); +function {char*} inet_ntoa (struct in_addr); +function {const char*} inet_ntop (int, const void*, char*, socklen_t); +function int inet_pton (int, const char*, void*); + +allow-header netinet/in.h +allow-header inttypes.h + +#endif diff --git a/conform/data/ctype.h-data b/conform/data/ctype.h-data index 190c5678c2..f0aa947873 100644 --- a/conform/data/ctype.h-data +++ b/conform/data/ctype.h-data @@ -15,6 +15,8 @@ function int toupper (int) #ifndef ISO function int isascii (int) function int toascii (int) + +# XPG says the following two are macros. But we test a bit more strictly. function int _toupper (int) function int _tolower (int) diff --git a/conform/data/fcntl.h-data b/conform/data/fcntl.h-data index cf34c2b9ce..0fbe7d57fe 100644 --- a/conform/data/fcntl.h-data +++ b/conform/data/fcntl.h-data @@ -7,6 +7,8 @@ constant F_SETFL constant F_GETLK constant F_SETLK constant F_SETLKW +constant F_GETOWN +constant F_SETOWN constant FD_CLOEXEC @@ -14,6 +16,10 @@ constant F_RDLCK constant F_UNLCK constant F_WRLCK +constant SEEK_SET +constant SEEK_CUR +constant SEED_END + constant O_CREAT constant O_EXCL constant O_NOCTTY @@ -31,6 +37,38 @@ constant O_RDONLY constant O_RDWR constant O_WRONLY +constant S_IFMT +constant S_IFBLK +constant S_IFCHR +constant S_IFIFO +constant S_IFREG +constant S_IFDIR +constant S_IFLNK +constant S_IFSOCK + +constant S_IRWXU +constant S_IRUSR +constant S_IWUSR +constant S_IXUSR +constant S_IRWXG +constant S_IRGRP +constant S_IWGRP +constant S_IXGRP +constant S_IRWXO +constant S_IROTH +constant S_IWOTH +constant S_IXOTH +constant S_ISUID +constant S_ISGID +constant S_ISVTX + +constant POSIX_FADV_NORMAL +constant POSIX_FADV_SEQUENTIAL +constant POSIX_FADV_RANDOM +constant POSIX_FADV_WILLNEED +constant POSIX_FADV_DONTNEED +constant POSIX_FADV_NOREUSE + type {struct flock} element {struct flock} short l_type @@ -46,6 +84,9 @@ type pid_t function int creat (const char*, mode_t) function int fcntl (int, int, ...) function int open (const char*, int, ...) +function int posix_fadvise (int, off_t, size_t, int) +function int posix_fallocate (int, off_t, size_t) +function int posix_madvise (void*, size_t, int) allow-header sys/stat.h allow-header unistd.h diff --git a/conform/data/net/if.h-data b/conform/data/net/if.h-data new file mode 100644 index 0000000000..8a462522d1 --- /dev/null +++ b/conform/data/net/if.h-data @@ -0,0 +1,15 @@ +#ifndef ISO +type {struct if_nameindex} + +element {struct if_nameindex} {unsigned int} if_index +element {struct if_nameindex} {char*} if_name + +macro IF_NAMESIZE + +function {unsigned int} if_nametoindex (const char*) +function {char*} if_indextoname (unsigned int, char*) +function {struct if_nameindex*} if_nameindex (void) +function void if_freenameindex (struct if_nameindex*) + +allow *_t +#endif diff --git a/conform/data/netdb.h-data b/conform/data/netdb.h-data new file mode 100644 index 0000000000..99773b8dc7 --- /dev/null +++ b/conform/data/netdb.h-data @@ -0,0 +1,60 @@ +#ifndef ISO +type in_port_t +type in_addr_t + +type {struct hostent} + +element {struct hostent} {char*} h_name +element {struct hostent} {char**} h_aliases +element {struct hostent} int h_addrtype +element {struct hostent} int h_length +element {struct hostent} {char**} h_addr_list + +type {struct netent} + +element {struct netent} {char*} n_name +element {struct netent} {char**} n_aliases +element {struct netent} int n_addrtype +element {struct netent} uint32_t n_net + +type uint32_t + +type {struct protoent} + +element {struct protoent} {char*} p_name +element {struct protoent} {char**} p_aliases +element {struct protoent} int p_proto + +type {struct servent} + +element {struct servent} {char*} s_name +element {struct servent} {char**} s_aliases +element {struct servent} int s_port +element {struct servent} {char*} s_proto + +macro IPPORT_RESERVED + +# variable int h_errno +allow h_errno + +macro HOST_NOT_FOUND +macro NO_DATA +macro NO_RECOVERY +macro TRY_AGAIN + +macro AI_V4MAPPED +macro AI_ALL +macro AI_ADDRCONFIG +macro AI_DEFAULT + +function void endhostent (void) +function void endnetent (void) +function void endprotoent (void) +function void endservent (void) +function void freehostent (struct hostent*) +function {struct hostent*} gethostbyaddr (const void*, socklen_t, int) +function {struct hostent*} gethostbyname (const char*) +function {struct hostent*} gethostent (void) +function {struct hostent*} getipnodebyaddr (const void*, socklen_t, int, int*) + +#endif diff --git a/conform/data/netinet/in.h-data b/conform/data/netinet/in.h-data new file mode 100644 index 0000000000..81f1b78cfc --- /dev/null +++ b/conform/data/netinet/in.h-data @@ -0,0 +1,84 @@ +#ifndef ISO +type in_port_t +type in_addr_t + +type sa_family_t + +type {struct in_addr} + +element {struct in_addr} in_addr_t s_addr + +type {struct sockaddr_in} + +element {struct sockaddr_in} sa_family_t sin_family +element {struct sockaddr_in} in_port_t sin_port +element {struct sockaddr_in} {struct in_addr} sin_addr +element {struct sockaddr_in} {unsigned char} sin_zero [8] + +type {struct in6_addr} + +element {struct in6_addr} uint8_t s6_addr [16] + +type {struct sockaddr_in6} + +element {struct sockaddr_in6} sa_family_t sin6_family +element {struct sockaddr_in6} in_port_t sin6_port +element {struct sockaddr_in6} uint32_t sin6_flowinfo +element {struct sockaddr_in6} {struct in6_addr} sin6_addr +element {struct sockaddr_in6} uint32_t sin6_scope_id + +variable {struct in6_addr} in6addr_any + +# constant IN6ADDR_ANY_INIT +macro IN6ADDR_ANY_INIT + +variable {struct in6_addr} in6addr_loopback + +#constant IN6ADDR_LOOPBACK_INIT +macro IN6ADDR_LOOPBACK_INIT + +type {struct ipv6_mreq} + +element {struct ipv6_mreq} {struct int6_addr} ipv6mr_multiaddr +element {struct ipv6_mreq} {unsigned int} ipv6mr_interface + +macro IPPROTO_IP +macro IPPROTO_IPV6 +macro IPPROTO_ICMP +macro IPPROTO_TCP +macro IPPROTO_UDP + +macro INADDR_ANY +macro INADDR_BROADCAST + +macro INET_ADDRSTRLEN + +function uint32_t htonl (uint32_t) +function uint16_t htons (uint16_t) +function uint32_t ntohl (uint32_t) +function uint16_t ntohs (uint16_t) + +allow-header arpa/inet.h + +macro INET6_ADDRSTRLEN + +macro IPV6_JOIN_GROUP +macro IPV6_LEAVE_GROUP +macro IPV6_MULTICAST_HOPS +macro IPV6_MULTICAST_IF +macro IPV6_MULTICAST_LOOP +macro IPV6_UNICAST_HOPS + +macro IN6_IS_ADDR_UNSPECIFIED +macro IN6_IS_ADDR_LOOPBACK +macro IN6_IS_ADDR_MULTICAST +macro IN6_IS_ADDR_LINKLOCAL +macro IN6_IS_ADDR_SITELOCAL +macro IN6_IS_ADDR_V4MAPPED +macro IN6_IS_ADDR_V4COMPAT +macro IN6_IS_ADDR_MC_NODELOCAL +macro IN6_IS_ADDR_MC_LINKLOCAL +macro IN6_IS_ADDR_MC_SITELOCAL +macro IN6_IS_ADDR_MC_ORGLOCAL +macro IN6_IS_ADDR_MC_GLOBAL +#endif diff --git a/conform/data/netinet/tcp.h-data b/conform/data/netinet/tcp.h-data new file mode 100644 index 0000000000..bd71a35265 --- /dev/null +++ b/conform/data/netinet/tcp.h-data @@ -0,0 +1,3 @@ +#ifndef ISO +macro TCP_NODELAY +#endif diff --git a/conform/data/pthread.h-data b/conform/data/pthread.h-data index f437814528..5d455f5d69 100644 --- a/conform/data/pthread.h-data +++ b/conform/data/pthread.h-data @@ -27,6 +27,8 @@ constant PTHREAD_RWLOCK_INITILIZER # endif type pthread_attr_t +type pthread_barrier_t +type pthread_barrierattr_t type pthread_cond_t type pthread_condattr_t type pthread_key_t @@ -35,6 +37,7 @@ type pthread_mutexattr_t type pthread_once_t type pthread_rwlock_t type pthread_rwlockattr_t +type pthread_spinlock_t type pthread_t function int pthread_attr_destroy (pthread_attr_t*) @@ -59,6 +62,13 @@ function int pthread_attr_setschedpolicy (pthread_attr_t*, int) function int pthread_attr_setscope (pthread_attr_t*, int) function int pthread_attr_setstackaddr (pthread_attr_t*, void*) function int pthread_attr_setstacksize (pthread_attr_t*, size_t) +function int pthread_barrier_destroy (pthread_barrier_t*) +function int pthread_barrier_init |
