hurd: Fix bits/socket.h conformity

* sysdeps/mach/hurd/bits/socket.h: Include <bits/wordsize.h> instead
	of <limits.h>
	(__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.
This commit is contained in:
Samuel Thibault 2017-09-24 22:20:10 +02:00
parent 5e6f32531e
commit b38a42a098
3 changed files with 42 additions and 18 deletions

View File

@ -5,6 +5,16 @@
__mmap, __fxstat64, __xstat64, __access, __access_noerrno, __getpid, __mmap, __fxstat64, __xstat64, __access, __access_noerrno, __getpid,
__getcwd, __sbrk, __strtoul_internal, _exit, abort): Use check_no_hidden __getcwd, __sbrk, __strtoul_internal, _exit, abort): Use check_no_hidden
to make sure that these symbols are defined. to make sure that these symbols are defined.
* sysdeps/mach/hurd/bits/socket.h: Include <bits/wordsize.h> instead
of <limits.h>
(__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 <joseph@codesourcery.com> 2017-09-22 Joseph Myers <joseph@codesourcery.com>

View File

@ -24,10 +24,9 @@
#endif #endif
#define __need_size_t #define __need_size_t
#define __need_NULL
#include <stddef.h> #include <stddef.h>
#include <limits.h> /* XXX Is this allowed? */ #include <bits/wordsize.h>
#include <bits/types.h> #include <bits/types.h>
/* Type for length arguments in socket calls. */ /* Type for length arguments in socket calls. */
@ -127,13 +126,19 @@ enum __socket_type
#define AF_APPLETALK PF_APPLETALK #define AF_APPLETALK PF_APPLETALK
#define AF_ROUTE PF_ROUTE #define AF_ROUTE PF_ROUTE
#define AF_LINK PF_LINK #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_COIP PF_COIP
#define AF_CNT PF_CNT #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_IPX PF_IPX
#define AF_SIP PF_SIP #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_INET6 PF_INET6
#define AF_MAX PF_MAX #define AF_MAX PF_MAX
@ -153,7 +158,7 @@ struct sockaddr
/* Structure large enough to hold any socket address (with the historical /* Structure large enough to hold any socket address (with the historical
exception of AF_UNIX). */ exception of AF_UNIX). */
#if ULONG_MAX > 0xffffffff #if __WORDSIZE == 64
# define __ss_aligntype __uint64_t # define __ss_aligntype __uint64_t
#else #else
# define __ss_aligntype __uint32_t # define __ss_aligntype __uint32_t
@ -232,7 +237,7 @@ struct cmsghdr
#define CMSG_FIRSTHDR(mhdr) \ #define CMSG_FIRSTHDR(mhdr) \
((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ((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) \ #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
& (size_t) ~(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)) if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
/* The kernel header does this so there may be a reason. */ /* The kernel header does this so there may be a reason. */
return NULL; return (struct cmsghdr *) 0;
__cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
+ CMSG_ALIGN (__cmsg->cmsg_len)); + 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 *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
> ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
/* No more entries. */ /* No more entries. */
return NULL; return (struct cmsghdr *) 0;
return __cmsg; return __cmsg;
} }
#endif /* Use `extern inline'. */ #endif /* Use `extern inline'. */
@ -276,6 +281,7 @@ enum
#define SCM_CREDS SCM_CREDS #define SCM_CREDS SCM_CREDS
}; };
#ifdef __USE_MISC
/* Unfortunately, BSD practice dictates this structure be of fixed size. /* Unfortunately, BSD practice dictates this structure be of fixed size.
If there are more than CMGROUP_MAX groups, the list is truncated. 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 (On GNU systems, the `cmcred_euid' field is just the first in the
@ -296,6 +302,7 @@ struct cmsgcred
int cmcred_ngroups; int cmcred_ngroups;
__gid_t cmcred_groups[CMGROUP_MAX]; __gid_t cmcred_groups[CMGROUP_MAX];
}; };
#endif
/* Protocol number used to manipulate socket-level options /* Protocol number used to manipulate socket-level options
with `getsockopt' and `setsockopt'. */ with `getsockopt' and `setsockopt'. */

View File

@ -25,10 +25,9 @@
#endif #endif
#define __need_size_t #define __need_size_t
#define __need_NULL
#include <stddef.h> #include <stddef.h>
#include <limits.h> /* XXX Is this allowed? */ #include <bits/wordsize.h>
#include <sys/types.h> #include <sys/types.h>
/* Type for length arguments in socket calls. */ /* Type for length arguments in socket calls. */
@ -131,13 +130,19 @@ enum __socket_type
#define AF_APPLETALK PF_APPLETALK #define AF_APPLETALK PF_APPLETALK
#define AF_ROUTE PF_ROUTE #define AF_ROUTE PF_ROUTE
#define AF_LINK PF_LINK #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_COIP PF_COIP
#define AF_CNT PF_CNT #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_IPX PF_IPX
#define AF_SIP PF_SIP #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_INET6 PF_INET6
#define AF_MAX PF_MAX #define AF_MAX PF_MAX
@ -157,7 +162,7 @@ struct sockaddr
/* Structure large enough to hold any socket address (with the historical /* Structure large enough to hold any socket address (with the historical
exception of AF_UNIX). */ exception of AF_UNIX). */
#if ULONG_MAX > 0xffffffff #if __WORDSIZE == 64
# define __ss_aligntype __uint64_t # define __ss_aligntype __uint64_t
#else #else
# define __ss_aligntype __uint32_t # define __ss_aligntype __uint32_t
@ -236,7 +241,7 @@ struct cmsghdr
#define CMSG_FIRSTHDR(mhdr) \ #define CMSG_FIRSTHDR(mhdr) \
((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ((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) \ #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
& (size_t) ~(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)) if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
/* The kernel header does this so there may be a reason. */ /* The kernel header does this so there may be a reason. */
return NULL; return (struct cmsghdr *) 0;
__cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
+ CMSG_ALIGN (__cmsg->cmsg_len)); + 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 *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
> ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
/* No more entries. */ /* No more entries. */
return NULL; return (struct cmsghdr *) 0;
return __cmsg; return __cmsg;
} }
#endif /* Use `extern inline'. */ #endif /* Use `extern inline'. */
@ -280,6 +285,7 @@ enum
#define SCM_CREDS SCM_CREDS #define SCM_CREDS SCM_CREDS
}; };
#ifdef __USE_MISC
/* Unfortunately, BSD practice dictates this structure be of fixed size. /* Unfortunately, BSD practice dictates this structure be of fixed size.
If there are more than CMGROUP_MAX groups, the list is truncated. 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 (On GNU systems, the `cmcred_euid' field is just the first in the
@ -300,6 +306,7 @@ struct cmsgcred
int cmcred_ngroups; int cmcred_ngroups;
__gid_t cmcred_groups[CMGROUP_MAX]; __gid_t cmcred_groups[CMGROUP_MAX];
}; };
#endif
/* Protocol number used to manipulate socket-level options /* Protocol number used to manipulate socket-level options
with `getsockopt' and `setsockopt'. */ with `getsockopt' and `setsockopt'. */