From b38a42a098664a96842a23ef480d4b8c69ecd05c Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 24 Sep 2017 22:20:10 +0200 Subject: [PATCH] hurd: Fix bits/socket.h conformity * sysdeps/mach/hurd/bits/socket.h: Include instead of (__need_NULL): Do not define. (__ss_aligntype): Use __WORDSIZE instead of ULONG_MAX to determine alignment. [!__USE_MISC] (pseudo_AF_XTP, pseudo_AF_RTIP, pseudo_AF_PIP, CMGROUP_MAX, cmsgcred): Do not define. (CMSG_FIRSTHDR, __cmsg_nxthdr): Use (struct cmsghdr *) 0 instead of NULL. * bits/socket.h: Likewise. --- ChangeLog | 10 ++++++++++ bits/socket.h | 25 ++++++++++++++++--------- sysdeps/mach/hurd/bits/socket.h | 25 ++++++++++++++++--------- 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7336c52c1b..1c44a53c75 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,16 @@ __mmap, __fxstat64, __xstat64, __access, __access_noerrno, __getpid, __getcwd, __sbrk, __strtoul_internal, _exit, abort): Use check_no_hidden to make sure that these symbols are defined. + * sysdeps/mach/hurd/bits/socket.h: Include instead + of + (__need_NULL): Do not define. + (__ss_aligntype): Use __WORDSIZE instead of ULONG_MAX to determine + alignment. + [!__USE_MISC] (pseudo_AF_XTP, pseudo_AF_RTIP, pseudo_AF_PIP, + CMGROUP_MAX, cmsgcred): Do not define. + (CMSG_FIRSTHDR, __cmsg_nxthdr): Use (struct cmsghdr *) 0 instead of + NULL. + * bits/socket.h: Likewise. 2017-09-22 Joseph Myers diff --git a/bits/socket.h b/bits/socket.h index b527f9c129..d70fb6d753 100644 --- a/bits/socket.h +++ b/bits/socket.h @@ -24,10 +24,9 @@ #endif #define __need_size_t -#define __need_NULL #include -#include /* XXX Is this allowed? */ +#include #include /* Type for length arguments in socket calls. */ @@ -127,13 +126,19 @@ enum __socket_type #define AF_APPLETALK PF_APPLETALK #define AF_ROUTE PF_ROUTE #define AF_LINK PF_LINK -#define pseudo_AF_XTP PF_XTP +#ifdef __USE_MISC +# define pseudo_AF_XTP PF_XTP +#endif #define AF_COIP PF_COIP #define AF_CNT PF_CNT -#define pseudo_AF_RTIP PF_RTIP +#ifdef __USE_MISC +# define pseudo_AF_RTIP PF_RTIP +#endif #define AF_IPX PF_IPX #define AF_SIP PF_SIP -#define pseudo_AF_PIP PF_PIP +#ifdef __USE_MISC +# define pseudo_AF_PIP PF_PIP +#endif #define AF_INET6 PF_INET6 #define AF_MAX PF_MAX @@ -153,7 +158,7 @@ struct sockaddr /* Structure large enough to hold any socket address (with the historical exception of AF_UNIX). */ -#if ULONG_MAX > 0xffffffff +#if __WORDSIZE == 64 # define __ss_aligntype __uint64_t #else # define __ss_aligntype __uint32_t @@ -232,7 +237,7 @@ struct cmsghdr #define CMSG_FIRSTHDR(mhdr) \ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) + ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ & (size_t) ~(sizeof (size_t) - 1)) @@ -251,7 +256,7 @@ __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) { if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) /* The kernel header does this so there may be a reason. */ - return NULL; + return (struct cmsghdr *) 0; __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)); @@ -260,7 +265,7 @@ __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) /* No more entries. */ - return NULL; + return (struct cmsghdr *) 0; return __cmsg; } #endif /* Use `extern inline'. */ @@ -276,6 +281,7 @@ enum #define SCM_CREDS SCM_CREDS }; +#ifdef __USE_MISC /* Unfortunately, BSD practice dictates this structure be of fixed size. If there are more than CMGROUP_MAX groups, the list is truncated. (On GNU systems, the `cmcred_euid' field is just the first in the @@ -296,6 +302,7 @@ struct cmsgcred int cmcred_ngroups; __gid_t cmcred_groups[CMGROUP_MAX]; }; +#endif /* Protocol number used to manipulate socket-level options with `getsockopt' and `setsockopt'. */ diff --git a/sysdeps/mach/hurd/bits/socket.h b/sysdeps/mach/hurd/bits/socket.h index 9a412f0833..bac77f54f2 100644 --- a/sysdeps/mach/hurd/bits/socket.h +++ b/sysdeps/mach/hurd/bits/socket.h @@ -25,10 +25,9 @@ #endif #define __need_size_t -#define __need_NULL #include -#include /* XXX Is this allowed? */ +#include #include /* Type for length arguments in socket calls. */ @@ -131,13 +130,19 @@ enum __socket_type #define AF_APPLETALK PF_APPLETALK #define AF_ROUTE PF_ROUTE #define AF_LINK PF_LINK -#define pseudo_AF_XTP PF_XTP +#ifdef __USE_MISC +# define pseudo_AF_XTP PF_XTP +#endif #define AF_COIP PF_COIP #define AF_CNT PF_CNT -#define pseudo_AF_RTIP PF_RTIP +#ifdef __USE_MISC +# define pseudo_AF_RTIP PF_RTIP +#endif #define AF_IPX PF_IPX #define AF_SIP PF_SIP -#define pseudo_AF_PIP PF_PIP +#ifdef __USE_MISC +# define pseudo_AF_PIP PF_PIP +#endif #define AF_INET6 PF_INET6 #define AF_MAX PF_MAX @@ -157,7 +162,7 @@ struct sockaddr /* Structure large enough to hold any socket address (with the historical exception of AF_UNIX). */ -#if ULONG_MAX > 0xffffffff +#if __WORDSIZE == 64 # define __ss_aligntype __uint64_t #else # define __ss_aligntype __uint32_t @@ -236,7 +241,7 @@ struct cmsghdr #define CMSG_FIRSTHDR(mhdr) \ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL) + ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ & (size_t) ~(sizeof (size_t) - 1)) @@ -255,7 +260,7 @@ __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) { if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) /* The kernel header does this so there may be a reason. */ - return NULL; + return (struct cmsghdr *) 0; __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)); @@ -264,7 +269,7 @@ __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) /* No more entries. */ - return NULL; + return (struct cmsghdr *) 0; return __cmsg; } #endif /* Use `extern inline'. */ @@ -280,6 +285,7 @@ enum #define SCM_CREDS SCM_CREDS }; +#ifdef __USE_MISC /* Unfortunately, BSD practice dictates this structure be of fixed size. If there are more than CMGROUP_MAX groups, the list is truncated. (On GNU systems, the `cmcred_euid' field is just the first in the @@ -300,6 +306,7 @@ struct cmsgcred int cmcred_ngroups; __gid_t cmcred_groups[CMGROUP_MAX]; }; +#endif /* Protocol number used to manipulate socket-level options with `getsockopt' and `setsockopt'. */