Bug#538372: [PATCH] net: Support inclusion of linux/socket.h before sys/socket.h

2009-10-05 Thread David Miller
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

2009-10-04 Thread Bastian Blank
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

2009-10-03 Thread Ben Hutchings
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