Author: aurel32
Date: 2009-08-16 11:26:40 +0000 (Sun, 16 Aug 2009)
New Revision: 3763

Added:
   glibc-package/trunk/debian/patches/alpha/submitted-sock_nonblock.diff
   glibc-package/trunk/debian/patches/hppa/submitted-sock_nonblock.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * alpha/submitted-sock_nonblock.diff, hppa/submitted-sock_nonblock.diff:
    new patches to accomodate SOCK_NONBLOCK != O_NONBLOCK on these 
    architectures. Closes: bug#540871.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog        2009-08-16 10:47:17 UTC (rev 
3762)
+++ glibc-package/trunk/debian/changelog        2009-08-16 11:26:40 UTC (rev 
3763)
@@ -6,6 +6,9 @@
     (instead of amd64 and kfreebsd-amd64). Closes: bug#455603.
   * rules.d/debheper.in: fix a one letter typo causing libc6-udeb to be
     empty. Closes: bug#541725.
+  * alpha/submitted-sock_nonblock.diff, hppa/submitted-sock_nonblock.diff:
+    new patches to accomodate SOCK_NONBLOCK != O_NONBLOCK on these 
+    architectures. Closes: bug#540871.
 
  -- Aurelien Jarno <aure...@debian.org>  Sun, 16 Aug 2009 11:24:30 +0200
 

Added: glibc-package/trunk/debian/patches/alpha/submitted-sock_nonblock.diff
===================================================================
--- glibc-package/trunk/debian/patches/alpha/submitted-sock_nonblock.diff       
                        (rev 0)
+++ glibc-package/trunk/debian/patches/alpha/submitted-sock_nonblock.diff       
2009-08-16 11:26:40 UTC (rev 3763)
@@ -0,0 +1,418 @@
+2009-08-16  Aurelien Jarno  <aurel...@aurel32.net>
+
+       * sysdeps/unix/sysv/linux/alpha/bits/socket.h: New file based on
+       the generic version, with SOCK_NONBLOCK matching the kernel value.
+
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/alpha/socket.h
+@@ -0,0 +1,407 @@
++/* System-specific socket constants and types.  Linux version.
++   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006, 2007, 2008, 2009
++   Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef __BITS_SOCKET_H
++#define __BITS_SOCKET_H
++
++#ifndef _SYS_SOCKET_H
++# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
++#endif
++
++#define       __need_size_t
++#include <stddef.h>
++
++#include <sys/types.h>
++
++/* Type for length arguments in socket calls.  */
++#ifndef __socklen_t_defined
++typedef __socklen_t socklen_t;
++# define __socklen_t_defined
++#endif
++
++/* Types of sockets.  */
++enum __socket_type
++{
++  SOCK_STREAM = 1,            /* Sequenced, reliable, connection-based
++                                 byte streams.  */
++#define SOCK_STREAM SOCK_STREAM
++  SOCK_DGRAM = 2,             /* Connectionless, unreliable datagrams
++                                 of fixed maximum length.  */
++#define SOCK_DGRAM SOCK_DGRAM
++  SOCK_RAW = 3,                       /* Raw protocol interface.  */
++#define SOCK_RAW SOCK_RAW
++  SOCK_RDM = 4,                       /* Reliably-delivered messages.  */
++#define SOCK_RDM SOCK_RDM
++  SOCK_SEQPACKET = 5,         /* Sequenced, reliable, connection-based,
++                                 datagrams of fixed maximum length.  */
++#define SOCK_SEQPACKET SOCK_SEQPACKET
++  SOCK_DCCP = 6,              /* Datagram Congestion Control Protocol.  */
++#define SOCK_DCCP SOCK_DCCP
++  SOCK_PACKET = 10,           /* Linux specific way of getting packets
++                                 at the dev level.  For writing rarp and
++                                 other similar things on the user level. */
++#define SOCK_PACKET SOCK_PACKET
++
++  /* Flags to be ORed into the type parameter of socket and socketpair and
++     used for the flags parameter of paccept.  */
++
++  SOCK_CLOEXEC = 02000000,    /* Atomically set close-on-exec flag for the
++                                 new descriptor(s).  */
++#define SOCK_CLOEXEC SOCK_CLOEXEC
++#undef SOCK_NONBLOCK
++  SOCK_NONBLOCK = 0x40000000  /* Atomically mark descriptor(s) as
++                                 non-blocking.  */
++#define SOCK_NONBLOCK SOCK_NONBLOCK
++};
++
++/* Protocol families.  */
++#define       PF_UNSPEC       0       /* Unspecified.  */
++#define       PF_LOCAL        1       /* Local to host (pipes and 
file-domain).  */
++#define       PF_UNIX         PF_LOCAL /* POSIX name for PF_LOCAL.  */
++#define       PF_FILE         PF_LOCAL /* Another non-standard name for 
PF_LOCAL.  */
++#define       PF_INET         2       /* IP protocol family.  */
++#define       PF_AX25         3       /* Amateur Radio AX.25.  */
++#define       PF_IPX          4       /* Novell Internet Protocol.  */
++#define       PF_APPLETALK    5       /* Appletalk DDP.  */
++#define       PF_NETROM       6       /* Amateur radio NetROM.  */
++#define       PF_BRIDGE       7       /* Multiprotocol bridge.  */
++#define       PF_ATMPVC       8       /* ATM PVCs.  */
++#define       PF_X25          9       /* Reserved for X.25 project.  */
++#define       PF_INET6        10      /* IP version 6.  */
++#define       PF_ROSE         11      /* Amateur Radio X.25 PLP.  */
++#define       PF_DECnet       12      /* Reserved for DECnet project.  */
++#define       PF_NETBEUI      13      /* Reserved for 802.2LLC project.  */
++#define       PF_SECURITY     14      /* Security callback pseudo AF.  */
++#define       PF_KEY          15      /* PF_KEY key management API.  */
++#define       PF_NETLINK      16
++#define       PF_ROUTE        PF_NETLINK /* Alias to emulate 4.4BSD.  */
++#define       PF_PACKET       17      /* Packet family.  */
++#define       PF_ASH          18      /* Ash.  */
++#define       PF_ECONET       19      /* Acorn Econet.  */
++#define       PF_ATMSVC       20      /* ATM SVCs.  */
++#define PF_RDS                21      /* RDS sockets.  */
++#define       PF_SNA          22      /* Linux SNA Project */
++#define       PF_IRDA         23      /* IRDA sockets.  */
++#define       PF_PPPOX        24      /* PPPoX sockets.  */
++#define       PF_WANPIPE      25      /* Wanpipe API sockets.  */
++#define PF_LLC                26      /* Linux LLC.  */
++#define PF_CAN                29      /* Controller Area Network.  */
++#define PF_TIPC               30      /* TIPC sockets.  */
++#define       PF_BLUETOOTH    31      /* Bluetooth sockets.  */
++#define       PF_IUCV         32      /* IUCV sockets.  */
++#define PF_RXRPC      33      /* RxRPC sockets.  */
++#define PF_ISDN               34      /* mISDN sockets.  */
++#define PF_PHONET     35      /* Phonet sockets.  */
++#define PF_IEEE802154 36      /* IEEE 802.15.4 sockets.  */
++#define       PF_MAX          37      /* For now..  */
++
++/* Address families.  */
++#define       AF_UNSPEC       PF_UNSPEC
++#define       AF_LOCAL        PF_LOCAL
++#define       AF_UNIX         PF_UNIX
++#define       AF_FILE         PF_FILE
++#define       AF_INET         PF_INET
++#define       AF_AX25         PF_AX25
++#define       AF_IPX          PF_IPX
++#define       AF_APPLETALK    PF_APPLETALK
++#define       AF_NETROM       PF_NETROM
++#define       AF_BRIDGE       PF_BRIDGE
++#define       AF_ATMPVC       PF_ATMPVC
++#define       AF_X25          PF_X25
++#define       AF_INET6        PF_INET6
++#define       AF_ROSE         PF_ROSE
++#define       AF_DECnet       PF_DECnet
++#define       AF_NETBEUI      PF_NETBEUI
++#define       AF_SECURITY     PF_SECURITY
++#define       AF_KEY          PF_KEY
++#define       AF_NETLINK      PF_NETLINK
++#define       AF_ROUTE        PF_ROUTE
++#define       AF_PACKET       PF_PACKET
++#define       AF_ASH          PF_ASH
++#define       AF_ECONET       PF_ECONET
++#define       AF_ATMSVC       PF_ATMSVC
++#define AF_RDS                PF_RDS
++#define       AF_SNA          PF_SNA
++#define       AF_IRDA         PF_IRDA
++#define       AF_PPPOX        PF_PPPOX
++#define       AF_WANPIPE      PF_WANPIPE
++#define AF_LLC                PF_LLC
++#define AF_CAN                PF_CAN
++#define AF_TIPC               PF_TIPC
++#define       AF_BLUETOOTH    PF_BLUETOOTH
++#define       AF_IUCV         PF_IUCV
++#define AF_RXRPC      PF_RXRPC
++#define AF_ISDN               PF_ISDN
++#define AF_PHONET     PF_PHONET
++#define AF_IEEE802154 PF_IEEE802154
++#define       AF_MAX          PF_MAX
++
++/* Socket level values.  Others are defined in the appropriate headers.
++
++   XXX These definitions also should go into the appropriate headers as
++   far as they are available.  */
++#define SOL_RAW               255
++#define SOL_DECNET      261
++#define SOL_X25         262
++#define SOL_PACKET    263
++#define SOL_ATM               264     /* ATM layer (cell level).  */
++#define SOL_AAL               265     /* ATM Adaption Layer (packet level).  
*/
++#define SOL_IRDA      266
++
++/* Maximum queue length specifiable by listen.  */
++#define SOMAXCONN     128
++
++/* Get the definition of the macro to define the common sockaddr members.  */
++#include <bits/sockaddr.h>
++
++/* Structure describing a generic socket address.  */
++struct sockaddr
++  {
++    __SOCKADDR_COMMON (sa_);  /* Common data: address family and length.  */
++    char sa_data[14];         /* Address data.  */
++  };
++
++
++/* Structure large enough to hold any socket address (with the historical
++   exception of AF_UNIX).  We reserve 128 bytes.  */
++#define __ss_aligntype        unsigned long int
++#define _SS_SIZE      128
++#define _SS_PADSIZE   (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
++
++struct sockaddr_storage
++  {
++    __SOCKADDR_COMMON (ss_);  /* Address family, etc.  */
++    __ss_aligntype __ss_align;        /* Force desired alignment.  */
++    char __ss_padding[_SS_PADSIZE];
++  };
++
++
++/* Bits in the FLAGS argument to `send', `recv', et al.  */
++enum
++  {
++    MSG_OOB           = 0x01, /* Process out-of-band data.  */
++#define MSG_OOB               MSG_OOB
++    MSG_PEEK          = 0x02, /* Peek at incoming messages.  */
++#define MSG_PEEK      MSG_PEEK
++    MSG_DONTROUTE     = 0x04, /* Don't use local routing.  */
++#define MSG_DONTROUTE MSG_DONTROUTE
++#ifdef __USE_GNU
++    /* DECnet uses a different name.  */
++    MSG_TRYHARD               = MSG_DONTROUTE,
++# define MSG_TRYHARD  MSG_DONTROUTE
++#endif
++    MSG_CTRUNC                = 0x08, /* Control data lost before delivery.  
*/
++#define MSG_CTRUNC    MSG_CTRUNC
++    MSG_PROXY         = 0x10, /* Supply or ask second address.  */
++#define MSG_PROXY     MSG_PROXY
++    MSG_TRUNC         = 0x20,
++#define       MSG_TRUNC       MSG_TRUNC
++    MSG_DONTWAIT      = 0x40, /* Nonblocking IO.  */
++#define       MSG_DONTWAIT    MSG_DONTWAIT
++    MSG_EOR           = 0x80, /* End of record.  */
++#define       MSG_EOR         MSG_EOR
++    MSG_WAITALL               = 0x100, /* Wait for a full request.  */
++#define       MSG_WAITALL     MSG_WAITALL
++    MSG_FIN           = 0x200,
++#define       MSG_FIN         MSG_FIN
++    MSG_SYN           = 0x400,
++#define       MSG_SYN         MSG_SYN
++    MSG_CONFIRM               = 0x800, /* Confirm path validity.  */
++#define       MSG_CONFIRM     MSG_CONFIRM
++    MSG_RST           = 0x1000,
++#define       MSG_RST         MSG_RST
++    MSG_ERRQUEUE      = 0x2000, /* Fetch message from error queue.  */
++#define       MSG_ERRQUEUE    MSG_ERRQUEUE
++    MSG_NOSIGNAL      = 0x4000, /* Do not generate SIGPIPE.  */
++#define       MSG_NOSIGNAL    MSG_NOSIGNAL
++    MSG_MORE          = 0x8000,  /* Sender will send more.  */
++#define       MSG_MORE        MSG_MORE
++
++    MSG_CMSG_CLOEXEC  = 0x40000000    /* Set close_on_exit for file
++                                           descriptor received through
++                                           SCM_RIGHTS.  */
++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
++  };
++
++
++/* Structure describing messages sent by
++   `sendmsg' and received by `recvmsg'.  */
++struct msghdr
++  {
++    void *msg_name;           /* Address to send to/receive from.  */
++    socklen_t msg_namelen;    /* Length of address data.  */
++
++    struct iovec *msg_iov;    /* Vector of data to send/receive into.  */
++    size_t msg_iovlen;                /* Number of elements in the vector.  */
++
++    void *msg_control;                /* Ancillary data (eg BSD filedesc 
passing). */
++    size_t msg_controllen;    /* Ancillary data buffer length.
++                                 !! The type should be socklen_t but the
++                                 definition of the kernel is incompatible
++                                 with this.  */
++
++    int msg_flags;            /* Flags on received message.  */
++  };
++
++/* Structure used for storage of ancillary data object information.  */
++struct cmsghdr
++  {
++    size_t cmsg_len;          /* Length of data in cmsg_data plus length
++                                 of cmsghdr structure.
++                                 !! The type should be socklen_t but the
++                                 definition of the kernel is incompatible
++                                 with this.  */
++    int cmsg_level;           /* Originating protocol.  */
++    int cmsg_type;            /* Protocol specific type.  */
++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
++    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
++#endif
++  };
++
++/* Ancillary data object manipulation macros.  */
++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
++# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
++#else
++# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
++#endif
++#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
++#define CMSG_FIRSTHDR(mhdr) \
++  ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr)               \
++   ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
++#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
++                       & (size_t) ~(sizeof (size_t) - 1))
++#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
++                       + CMSG_ALIGN (sizeof (struct cmsghdr)))
++#define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
++
++extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
++                                    struct cmsghdr *__cmsg) __THROW;
++#ifdef __USE_EXTERN_INLINES
++# ifndef _EXTERN_INLINE
++#  define _EXTERN_INLINE __extern_inline
++# endif
++_EXTERN_INLINE struct cmsghdr *
++__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
++{
++  if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
++    /* The kernel header does this so there may be a reason.  */
++    return 0;
++
++  __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
++                             + CMSG_ALIGN (__cmsg->cmsg_len));
++  if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
++                                      + __mhdr->msg_controllen)
++      || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
++        > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
++    /* No more entries.  */
++    return 0;
++  return __cmsg;
++}
++#endif        /* Use `extern inline'.  */
++
++/* Socket level message types.  This must match the definitions in
++   <linux/socket.h>.  */
++enum
++  {
++    SCM_RIGHTS = 0x01         /* Transfer file descriptors.  */
++#define SCM_RIGHTS SCM_RIGHTS
++#ifdef __USE_GNU
++    , SCM_CREDENTIALS = 0x02  /* Credentials passing.  */
++# define SCM_CREDENTIALS SCM_CREDENTIALS
++#endif
++  };
++
++#ifdef __USE_GNU
++/* User visible structure for SCM_CREDENTIALS message */
++struct ucred
++{
++  pid_t pid;                  /* PID of sending process.  */
++  uid_t uid;                  /* UID of sending process.  */
++  gid_t gid;                  /* GID of sending process.  */
++};
++#endif
++
++/* Ugly workaround for unclean kernel headers.  */
++#if !defined __USE_MISC && !defined __USE_GNU
++# ifndef FIOGETOWN
++#  define __SYS_SOCKET_H_undef_FIOGETOWN
++# endif
++# ifndef FIOSETOWN
++#  define __SYS_SOCKET_H_undef_FIOSETOWN
++# endif
++# ifndef SIOCATMARK
++#  define __SYS_SOCKET_H_undef_SIOCATMARK
++# endif
++# ifndef SIOCGPGRP
++#  define __SYS_SOCKET_H_undef_SIOCGPGRP
++# endif
++# ifndef SIOCGSTAMP
++#  define __SYS_SOCKET_H_undef_SIOCGSTAMP
++# endif
++# ifndef SIOCGSTAMPNS
++#  define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
++# endif
++# ifndef SIOCSPGRP
++#  define __SYS_SOCKET_H_undef_SIOCSPGRP
++# endif
++#endif
++
++/* Get socket manipulation related informations from kernel headers.  */
++#include <asm/socket.h>
++
++#if !defined __USE_MISC && !defined __USE_GNU
++# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
++#  undef __SYS_SOCKET_H_undef_FIOGETOWN
++#  undef FIOGETOWN
++# endif
++# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
++#  undef __SYS_SOCKET_H_undef_FIOSETOWN
++#  undef FIOSETOWN
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
++#  undef __SYS_SOCKET_H_undef_SIOCATMARK
++#  undef SIOCATMARK
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
++#  undef __SYS_SOCKET_H_undef_SIOCGPGRP
++#  undef SIOCGPGRP
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
++#  undef __SYS_SOCKET_H_undef_SIOCGSTAMP
++#  undef SIOCGSTAMP
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
++#  undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
++#  undef SIOCGSTAMPNS
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
++#  undef __SYS_SOCKET_H_undef_SIOCSPGRP
++#  undef SIOCSPGRP
++# endif
++#endif
++
++/* Structure used to manipulate the SO_LINGER option.  */
++struct linger
++  {
++    int l_onoff;              /* Nonzero to linger on close.  */
++    int l_linger;             /* Time to linger.  */
++  };
++
++#endif        /* bits/socket.h */
+-- 
+1.6.1.3
+

Added: glibc-package/trunk/debian/patches/hppa/submitted-sock_nonblock.diff
===================================================================
--- glibc-package/trunk/debian/patches/hppa/submitted-sock_nonblock.diff        
                        (rev 0)
+++ glibc-package/trunk/debian/patches/hppa/submitted-sock_nonblock.diff        
2009-08-16 11:26:40 UTC (rev 3763)
@@ -0,0 +1,418 @@
+2009-08-16  Aurelien Jarno  <aurel...@aurel32.net>
+
+       * sysdeps/unix/sysv/linux/hppa/bits/socket.h: New file based on
+       the generic version, with SOCK_NONBLOCK matching the kernel value.
+
+--- /dev/null
++++ b/ports/sysdeps/unix/sysv/linux/hppa/socket.h
+@@ -0,0 +1,407 @@
++/* System-specific socket constants and types.  Linux version.
++   Copyright (C) 1991, 1992, 1994-2001, 2004, 2006, 2007, 2008, 2009
++   Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef __BITS_SOCKET_H
++#define __BITS_SOCKET_H
++
++#ifndef _SYS_SOCKET_H
++# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
++#endif
++
++#define       __need_size_t
++#include <stddef.h>
++
++#include <sys/types.h>
++
++/* Type for length arguments in socket calls.  */
++#ifndef __socklen_t_defined
++typedef __socklen_t socklen_t;
++# define __socklen_t_defined
++#endif
++
++/* Types of sockets.  */
++enum __socket_type
++{
++  SOCK_STREAM = 1,            /* Sequenced, reliable, connection-based
++                                 byte streams.  */
++#define SOCK_STREAM SOCK_STREAM
++  SOCK_DGRAM = 2,             /* Connectionless, unreliable datagrams
++                                 of fixed maximum length.  */
++#define SOCK_DGRAM SOCK_DGRAM
++  SOCK_RAW = 3,                       /* Raw protocol interface.  */
++#define SOCK_RAW SOCK_RAW
++  SOCK_RDM = 4,                       /* Reliably-delivered messages.  */
++#define SOCK_RDM SOCK_RDM
++  SOCK_SEQPACKET = 5,         /* Sequenced, reliable, connection-based,
++                                 datagrams of fixed maximum length.  */
++#define SOCK_SEQPACKET SOCK_SEQPACKET
++  SOCK_DCCP = 6,              /* Datagram Congestion Control Protocol.  */
++#define SOCK_DCCP SOCK_DCCP
++  SOCK_PACKET = 10,           /* Linux specific way of getting packets
++                                 at the dev level.  For writing rarp and
++                                 other similar things on the user level. */
++#define SOCK_PACKET SOCK_PACKET
++
++  /* Flags to be ORed into the type parameter of socket and socketpair and
++     used for the flags parameter of paccept.  */
++
++  SOCK_CLOEXEC = 02000000,    /* Atomically set close-on-exec flag for the
++                                 new descriptor(s).  */
++#define SOCK_CLOEXEC SOCK_CLOEXEC
++#undef SOCK_NONBLOCK
++  SOCK_NONBLOCK = 0x40000000  /* Atomically mark descriptor(s) as
++                                 non-blocking.  */
++#define SOCK_NONBLOCK SOCK_NONBLOCK
++};
++
++/* Protocol families.  */
++#define       PF_UNSPEC       0       /* Unspecified.  */
++#define       PF_LOCAL        1       /* Local to host (pipes and 
file-domain).  */
++#define       PF_UNIX         PF_LOCAL /* POSIX name for PF_LOCAL.  */
++#define       PF_FILE         PF_LOCAL /* Another non-standard name for 
PF_LOCAL.  */
++#define       PF_INET         2       /* IP protocol family.  */
++#define       PF_AX25         3       /* Amateur Radio AX.25.  */
++#define       PF_IPX          4       /* Novell Internet Protocol.  */
++#define       PF_APPLETALK    5       /* Appletalk DDP.  */
++#define       PF_NETROM       6       /* Amateur radio NetROM.  */
++#define       PF_BRIDGE       7       /* Multiprotocol bridge.  */
++#define       PF_ATMPVC       8       /* ATM PVCs.  */
++#define       PF_X25          9       /* Reserved for X.25 project.  */
++#define       PF_INET6        10      /* IP version 6.  */
++#define       PF_ROSE         11      /* Amateur Radio X.25 PLP.  */
++#define       PF_DECnet       12      /* Reserved for DECnet project.  */
++#define       PF_NETBEUI      13      /* Reserved for 802.2LLC project.  */
++#define       PF_SECURITY     14      /* Security callback pseudo AF.  */
++#define       PF_KEY          15      /* PF_KEY key management API.  */
++#define       PF_NETLINK      16
++#define       PF_ROUTE        PF_NETLINK /* Alias to emulate 4.4BSD.  */
++#define       PF_PACKET       17      /* Packet family.  */
++#define       PF_ASH          18      /* Ash.  */
++#define       PF_ECONET       19      /* Acorn Econet.  */
++#define       PF_ATMSVC       20      /* ATM SVCs.  */
++#define PF_RDS                21      /* RDS sockets.  */
++#define       PF_SNA          22      /* Linux SNA Project */
++#define       PF_IRDA         23      /* IRDA sockets.  */
++#define       PF_PPPOX        24      /* PPPoX sockets.  */
++#define       PF_WANPIPE      25      /* Wanpipe API sockets.  */
++#define PF_LLC                26      /* Linux LLC.  */
++#define PF_CAN                29      /* Controller Area Network.  */
++#define PF_TIPC               30      /* TIPC sockets.  */
++#define       PF_BLUETOOTH    31      /* Bluetooth sockets.  */
++#define       PF_IUCV         32      /* IUCV sockets.  */
++#define PF_RXRPC      33      /* RxRPC sockets.  */
++#define PF_ISDN               34      /* mISDN sockets.  */
++#define PF_PHONET     35      /* Phonet sockets.  */
++#define PF_IEEE802154 36      /* IEEE 802.15.4 sockets.  */
++#define       PF_MAX          37      /* For now..  */
++
++/* Address families.  */
++#define       AF_UNSPEC       PF_UNSPEC
++#define       AF_LOCAL        PF_LOCAL
++#define       AF_UNIX         PF_UNIX
++#define       AF_FILE         PF_FILE
++#define       AF_INET         PF_INET
++#define       AF_AX25         PF_AX25
++#define       AF_IPX          PF_IPX
++#define       AF_APPLETALK    PF_APPLETALK
++#define       AF_NETROM       PF_NETROM
++#define       AF_BRIDGE       PF_BRIDGE
++#define       AF_ATMPVC       PF_ATMPVC
++#define       AF_X25          PF_X25
++#define       AF_INET6        PF_INET6
++#define       AF_ROSE         PF_ROSE
++#define       AF_DECnet       PF_DECnet
++#define       AF_NETBEUI      PF_NETBEUI
++#define       AF_SECURITY     PF_SECURITY
++#define       AF_KEY          PF_KEY
++#define       AF_NETLINK      PF_NETLINK
++#define       AF_ROUTE        PF_ROUTE
++#define       AF_PACKET       PF_PACKET
++#define       AF_ASH          PF_ASH
++#define       AF_ECONET       PF_ECONET
++#define       AF_ATMSVC       PF_ATMSVC
++#define AF_RDS                PF_RDS
++#define       AF_SNA          PF_SNA
++#define       AF_IRDA         PF_IRDA
++#define       AF_PPPOX        PF_PPPOX
++#define       AF_WANPIPE      PF_WANPIPE
++#define AF_LLC                PF_LLC
++#define AF_CAN                PF_CAN
++#define AF_TIPC               PF_TIPC
++#define       AF_BLUETOOTH    PF_BLUETOOTH
++#define       AF_IUCV         PF_IUCV
++#define AF_RXRPC      PF_RXRPC
++#define AF_ISDN               PF_ISDN
++#define AF_PHONET     PF_PHONET
++#define AF_IEEE802154 PF_IEEE802154
++#define       AF_MAX          PF_MAX
++
++/* Socket level values.  Others are defined in the appropriate headers.
++
++   XXX These definitions also should go into the appropriate headers as
++   far as they are available.  */
++#define SOL_RAW               255
++#define SOL_DECNET      261
++#define SOL_X25         262
++#define SOL_PACKET    263
++#define SOL_ATM               264     /* ATM layer (cell level).  */
++#define SOL_AAL               265     /* ATM Adaption Layer (packet level).  
*/
++#define SOL_IRDA      266
++
++/* Maximum queue length specifiable by listen.  */
++#define SOMAXCONN     128
++
++/* Get the definition of the macro to define the common sockaddr members.  */
++#include <bits/sockaddr.h>
++
++/* Structure describing a generic socket address.  */
++struct sockaddr
++  {
++    __SOCKADDR_COMMON (sa_);  /* Common data: address family and length.  */
++    char sa_data[14];         /* Address data.  */
++  };
++
++
++/* Structure large enough to hold any socket address (with the historical
++   exception of AF_UNIX).  We reserve 128 bytes.  */
++#define __ss_aligntype        unsigned long int
++#define _SS_SIZE      128
++#define _SS_PADSIZE   (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
++
++struct sockaddr_storage
++  {
++    __SOCKADDR_COMMON (ss_);  /* Address family, etc.  */
++    __ss_aligntype __ss_align;        /* Force desired alignment.  */
++    char __ss_padding[_SS_PADSIZE];
++  };
++
++
++/* Bits in the FLAGS argument to `send', `recv', et al.  */
++enum
++  {
++    MSG_OOB           = 0x01, /* Process out-of-band data.  */
++#define MSG_OOB               MSG_OOB
++    MSG_PEEK          = 0x02, /* Peek at incoming messages.  */
++#define MSG_PEEK      MSG_PEEK
++    MSG_DONTROUTE     = 0x04, /* Don't use local routing.  */
++#define MSG_DONTROUTE MSG_DONTROUTE
++#ifdef __USE_GNU
++    /* DECnet uses a different name.  */
++    MSG_TRYHARD               = MSG_DONTROUTE,
++# define MSG_TRYHARD  MSG_DONTROUTE
++#endif
++    MSG_CTRUNC                = 0x08, /* Control data lost before delivery.  
*/
++#define MSG_CTRUNC    MSG_CTRUNC
++    MSG_PROXY         = 0x10, /* Supply or ask second address.  */
++#define MSG_PROXY     MSG_PROXY
++    MSG_TRUNC         = 0x20,
++#define       MSG_TRUNC       MSG_TRUNC
++    MSG_DONTWAIT      = 0x40, /* Nonblocking IO.  */
++#define       MSG_DONTWAIT    MSG_DONTWAIT
++    MSG_EOR           = 0x80, /* End of record.  */
++#define       MSG_EOR         MSG_EOR
++    MSG_WAITALL               = 0x100, /* Wait for a full request.  */
++#define       MSG_WAITALL     MSG_WAITALL
++    MSG_FIN           = 0x200,
++#define       MSG_FIN         MSG_FIN
++    MSG_SYN           = 0x400,
++#define       MSG_SYN         MSG_SYN
++    MSG_CONFIRM               = 0x800, /* Confirm path validity.  */
++#define       MSG_CONFIRM     MSG_CONFIRM
++    MSG_RST           = 0x1000,
++#define       MSG_RST         MSG_RST
++    MSG_ERRQUEUE      = 0x2000, /* Fetch message from error queue.  */
++#define       MSG_ERRQUEUE    MSG_ERRQUEUE
++    MSG_NOSIGNAL      = 0x4000, /* Do not generate SIGPIPE.  */
++#define       MSG_NOSIGNAL    MSG_NOSIGNAL
++    MSG_MORE          = 0x8000,  /* Sender will send more.  */
++#define       MSG_MORE        MSG_MORE
++
++    MSG_CMSG_CLOEXEC  = 0x40000000    /* Set close_on_exit for file
++                                           descriptor received through
++                                           SCM_RIGHTS.  */
++#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
++  };
++
++
++/* Structure describing messages sent by
++   `sendmsg' and received by `recvmsg'.  */
++struct msghdr
++  {
++    void *msg_name;           /* Address to send to/receive from.  */
++    socklen_t msg_namelen;    /* Length of address data.  */
++
++    struct iovec *msg_iov;    /* Vector of data to send/receive into.  */
++    size_t msg_iovlen;                /* Number of elements in the vector.  */
++
++    void *msg_control;                /* Ancillary data (eg BSD filedesc 
passing). */
++    size_t msg_controllen;    /* Ancillary data buffer length.
++                                 !! The type should be socklen_t but the
++                                 definition of the kernel is incompatible
++                                 with this.  */
++
++    int msg_flags;            /* Flags on received message.  */
++  };
++
++/* Structure used for storage of ancillary data object information.  */
++struct cmsghdr
++  {
++    size_t cmsg_len;          /* Length of data in cmsg_data plus length
++                                 of cmsghdr structure.
++                                 !! The type should be socklen_t but the
++                                 definition of the kernel is incompatible
++                                 with this.  */
++    int cmsg_level;           /* Originating protocol.  */
++    int cmsg_type;            /* Protocol specific type.  */
++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
++    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
++#endif
++  };
++
++/* Ancillary data object manipulation macros.  */
++#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
++# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
++#else
++# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
++#endif
++#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
++#define CMSG_FIRSTHDR(mhdr) \
++  ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr)               \
++   ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
++#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
++                       & (size_t) ~(sizeof (size_t) - 1))
++#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
++                       + CMSG_ALIGN (sizeof (struct cmsghdr)))
++#define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
++
++extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
++                                    struct cmsghdr *__cmsg) __THROW;
++#ifdef __USE_EXTERN_INLINES
++# ifndef _EXTERN_INLINE
++#  define _EXTERN_INLINE __extern_inline
++# endif
++_EXTERN_INLINE struct cmsghdr *
++__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
++{
++  if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
++    /* The kernel header does this so there may be a reason.  */
++    return 0;
++
++  __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
++                             + CMSG_ALIGN (__cmsg->cmsg_len));
++  if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
++                                      + __mhdr->msg_controllen)
++      || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
++        > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
++    /* No more entries.  */
++    return 0;
++  return __cmsg;
++}
++#endif        /* Use `extern inline'.  */
++
++/* Socket level message types.  This must match the definitions in
++   <linux/socket.h>.  */
++enum
++  {
++    SCM_RIGHTS = 0x01         /* Transfer file descriptors.  */
++#define SCM_RIGHTS SCM_RIGHTS
++#ifdef __USE_GNU
++    , SCM_CREDENTIALS = 0x02  /* Credentials passing.  */
++# define SCM_CREDENTIALS SCM_CREDENTIALS
++#endif
++  };
++
++#ifdef __USE_GNU
++/* User visible structure for SCM_CREDENTIALS message */
++struct ucred
++{
++  pid_t pid;                  /* PID of sending process.  */
++  uid_t uid;                  /* UID of sending process.  */
++  gid_t gid;                  /* GID of sending process.  */
++};
++#endif
++
++/* Ugly workaround for unclean kernel headers.  */
++#if !defined __USE_MISC && !defined __USE_GNU
++# ifndef FIOGETOWN
++#  define __SYS_SOCKET_H_undef_FIOGETOWN
++# endif
++# ifndef FIOSETOWN
++#  define __SYS_SOCKET_H_undef_FIOSETOWN
++# endif
++# ifndef SIOCATMARK
++#  define __SYS_SOCKET_H_undef_SIOCATMARK
++# endif
++# ifndef SIOCGPGRP
++#  define __SYS_SOCKET_H_undef_SIOCGPGRP
++# endif
++# ifndef SIOCGSTAMP
++#  define __SYS_SOCKET_H_undef_SIOCGSTAMP
++# endif
++# ifndef SIOCGSTAMPNS
++#  define __SYS_SOCKET_H_undef_SIOCGSTAMPNS
++# endif
++# ifndef SIOCSPGRP
++#  define __SYS_SOCKET_H_undef_SIOCSPGRP
++# endif
++#endif
++
++/* Get socket manipulation related informations from kernel headers.  */
++#include <asm/socket.h>
++
++#if !defined __USE_MISC && !defined __USE_GNU
++# ifdef __SYS_SOCKET_H_undef_FIOGETOWN
++#  undef __SYS_SOCKET_H_undef_FIOGETOWN
++#  undef FIOGETOWN
++# endif
++# ifdef __SYS_SOCKET_H_undef_FIOSETOWN
++#  undef __SYS_SOCKET_H_undef_FIOSETOWN
++#  undef FIOSETOWN
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCATMARK
++#  undef __SYS_SOCKET_H_undef_SIOCATMARK
++#  undef SIOCATMARK
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCGPGRP
++#  undef __SYS_SOCKET_H_undef_SIOCGPGRP
++#  undef SIOCGPGRP
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMP
++#  undef __SYS_SOCKET_H_undef_SIOCGSTAMP
++#  undef SIOCGSTAMP
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
++#  undef __SYS_SOCKET_H_undef_SIOCGSTAMPNS
++#  undef SIOCGSTAMPNS
++# endif
++# ifdef __SYS_SOCKET_H_undef_SIOCSPGRP
++#  undef __SYS_SOCKET_H_undef_SIOCSPGRP
++#  undef SIOCSPGRP
++# endif
++#endif
++
++/* Structure used to manipulate the SO_LINGER option.  */
++struct linger
++  {
++    int l_onoff;              /* Nonzero to linger on close.  */
++    int l_linger;             /* Time to linger.  */
++  };
++
++#endif        /* bits/socket.h */
+-- 
+1.6.1.3
+

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series   2009-08-16 10:47:17 UTC (rev 
3762)
+++ glibc-package/trunk/debian/patches/series   2009-08-16 11:26:40 UTC (rev 
3763)
@@ -53,6 +53,7 @@
 alpha/submitted-PTR_MANGLE.diff
 alpha/submitted-procfs_h.diff
 alpha/submitted-asm-memchr.diff
+alpha/submitted-sock_nonblock.diff
 
 amd64/local-biarch.diff
 amd64/local-clone.diff
@@ -75,6 +76,7 @@
 hppa/submitted-pie.diff
 hppa/cvs-tsd.diff
 hppa/local-nptl-compat.diff
+hppa/submitted-sock_nonblock.diff
 
 hurd-i386/local-dl-dynamic-weak.diff
 hurd-i386/local-enable-ldconfig.diff


-- 
To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to