On Sun, Oct 04, 2009 at 04:42:44AM +0100, Ben Hutchings wrote:
> From: Bastian Blank <[email protected]>
> 
> 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 <[email protected]>
Signed-off-by: Bastian Blank <[email protected]>

> --- 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 [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to