Bug#538372: [PATCH] net: Support inclusion of linux/socket.h before sys/socket.h
From: Ben Hutchings b...@decadent.org.uk Date: Sun, 04 Oct 2009 04:42:44 +0100 From: Bastian Blank wa...@debian.org The following user-space program fails to compile: #include linux/socket.h #include sys/socket.h int main() { return 0; } The reason is that linux/socket.h tests __GLIBC__ to decide whether it should define various structures and macros that are now defined for user-space by sys/socket.h, but __GLIBC__ is not defined if no libc headers have yet been included. It seems safe to drop support for libc 5 now. Signed-off-by: Ben Hutchings b...@decadent.org.uk Fair enough, applied to net-2.6, thanks. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#538372: [PATCH] net: Support inclusion of linux/socket.h before sys/socket.h
On Sun, Oct 04, 2009 at 04:42:44AM +0100, Ben Hutchings wrote: From: Bastian Blank wa...@debian.org The following user-space program fails to compile: #include linux/socket.h #include sys/socket.h int main() { return 0; } The reason is that linux/socket.h tests __GLIBC__ to decide whether it should define various structures and macros that are now defined for user-space by sys/socket.h, but __GLIBC__ is not defined if no libc headers have yet been included. It seems safe to drop support for libc 5 now. Signed-off-by: Ben Hutchings b...@decadent.org.uk Signed-off-by: Bastian Blank wa...@debian.org --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -16,7 +16,7 @@ struct __kernel_sockaddr_storage { /* _SS_MAXSIZE value minus size of ss_family */ } __attribute__ ((aligned(_K_SS_ALIGNSIZE)));/* force desired alignment */ -#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ 2) +#ifdef __KERNEL__ #include asm/socket.h /* arch-dependent defines */ #include linux/sockios.h /* the SIOCxxx I/O controls */ @@ -101,21 +101,6 @@ struct cmsghdr { ((char *)(cmsg) - (char *)(mhdr)-msg_control))) /* - * This mess will go away with glibc - */ - -#ifdef __KERNEL__ -#define __KINLINE static inline -#elif defined(__GNUC__) -#define __KINLINE static __inline__ -#elif defined(__cplusplus) -#define __KINLINE static inline -#else -#define __KINLINE static -#endif - - -/* * Get the next cmsg header * * PLEASE, do not touch this function. If you think, that it is @@ -128,7 +113,7 @@ struct cmsghdr { * ancillary object DATA. --ANK (980731) */ -__KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size, +static inline struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size, struct cmsghdr *__cmsg) { struct cmsghdr * __ptr; @@ -140,7 +125,7 @@ __KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size, return __ptr; } -__KINLINE struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg) +static inline struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg) { return __cmsg_nxthdr(__msg-msg_control, __msg-msg_controllen, __cmsg); } -- Ben Hutchings Always try to do things in chronological order; it's less confusing that way. -- You're dead, Jim. -- McCoy, The Tholian Web, stardate unknown -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#538372: [PATCH] net: Support inclusion of linux/socket.h before sys/socket.h
From: Bastian Blank wa...@debian.org The following user-space program fails to compile: #include linux/socket.h #include sys/socket.h int main() { return 0; } The reason is that linux/socket.h tests __GLIBC__ to decide whether it should define various structures and macros that are now defined for user-space by sys/socket.h, but __GLIBC__ is not defined if no libc headers have yet been included. It seems safe to drop support for libc 5 now. Signed-off-by: Ben Hutchings b...@decadent.org.uk --- This patch was previously mentioned on netdev by Manuel Prinz, but without a full explanation. Hopefully the above is sufficient. Bastian, please add your S-o-b. Ben. --- a/include/linux/socket.h +++ b/include/linux/socket.h @@ -16,7 +16,7 @@ struct __kernel_sockaddr_storage { /* _SS_MAXSIZE value minus size of ss_family */ } __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */ -#if defined(__KERNEL__) || !defined(__GLIBC__) || (__GLIBC__ 2) +#ifdef __KERNEL__ #include asm/socket.h/* arch-dependent defines */ #include linux/sockios.h /* the SIOCxxx I/O controls */ @@ -101,21 +101,6 @@ struct cmsghdr { ((char *)(cmsg) - (char *)(mhdr)-msg_control))) /* - * This mess will go away with glibc - */ - -#ifdef __KERNEL__ -#define __KINLINE static inline -#elif defined(__GNUC__) -#define __KINLINE static __inline__ -#elif defined(__cplusplus) -#define __KINLINE static inline -#else -#define __KINLINE static -#endif - - -/* * Get the next cmsg header * * PLEASE, do not touch this function. If you think, that it is @@ -128,7 +113,7 @@ struct cmsghdr { * ancillary object DATA. --ANK (980731) */ -__KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size, +static inline struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size, struct cmsghdr *__cmsg) { struct cmsghdr * __ptr; @@ -140,7 +125,7 @@ __KINLINE struct cmsghdr * __cmsg_nxthdr(void *__ctl, __kernel_size_t __size, return __ptr; } -__KINLINE struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg) +static inline struct cmsghdr * cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg) { return __cmsg_nxthdr(__msg-msg_control, __msg-msg_controllen, __cmsg); } -- Ben Hutchings Always try to do things in chronological order; it's less confusing that way. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org