mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 22:21:42 +00:00
net: Support inclusion of <linux/socket.h> before <sys/socket.h>
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 <ben@decadent.org.uk> Signed-off-by: Bastian Blank <waldi@debian.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9240d7154e
commit
9c501935a3
@ -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 */
|
||||
@ -100,21 +100,6 @@ struct cmsghdr {
|
||||
((mhdr)->msg_controllen - \
|
||||
((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
|
||||
*
|
||||
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user