Author: sthibault Date: 2013-05-09 09:46:08 +0000 (Thu, 09 May 2013) New Revision: 5568
Added: glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/submitted-handle-eprototype.diff Modified: glibc-package/branches/eglibc-2.17/debian/changelog glibc-package/branches/eglibc-2.17/debian/patches/series.hurd-i386 Log: patches/hurd-i386/submitted-handle-eprototype.diff: New brown-tape patch to fixup DNS resolution on hurd-i386. Better solution pending. Modified: glibc-package/branches/eglibc-2.17/debian/changelog =================================================================== --- glibc-package/branches/eglibc-2.17/debian/changelog 2013-05-09 08:31:08 UTC (rev 5567) +++ glibc-package/branches/eglibc-2.17/debian/changelog 2013-05-09 09:46:08 UTC (rev 5568) @@ -1,8 +1,13 @@ eglibc (2.17-2) UNRELEASED; urgency=low + [ Adam Conrad ] * debian/patches/any/unsubmitted-cloexec-conditional.diff: Catch yet another unconditional O_CLOEXEC and conditionalize it for freebsd. + [ Samuel Thibault ] + * patches/hurd-i386/submitted-handle-eprototype.diff: New brown-tape patch to + fixup DNS resolution on hurd-i386. Better solution pending. + -- Adam Conrad <adcon...@0c3.net> Tue, 07 May 2013 13:58:05 -0600 eglibc (2.17-1) unstable; urgency=low Added: glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/submitted-handle-eprototype.diff =================================================================== --- glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/submitted-handle-eprototype.diff (rev 0) +++ glibc-package/branches/eglibc-2.17/debian/patches/hurd-i386/submitted-handle-eprototype.diff 2013-05-09 09:46:08 UTC (rev 5568) @@ -0,0 +1,95 @@ +http://sourceware.org/ml/libc-alpha/2013-02/msg00092.html + +Handle EPROTOTYPE for socket invocations with SOCK_* flags + +If SOCK_CLOEXEC and SOCK_NONBLOCK are defined but not __ASSUME_SOCK_CLOEXEC, +trying to use them as socket type in invocations of socket will return +EPROTOTYPE if socket and socketpair do not handle those flags; EPROTOTYPE is +not considered properly, behaving as if those flags were actually supported. + +Checking for the EPROTOTYPE errno in addition to EINVAL handles the situation. + +2013-02-06 Pino Toscano <toscano.p...@tiscali.it> + + * nscd/connections.c (nscd_init) [!defined __ASSUME_SOCK_CLOEXEC]: + Check for EPROTOTYPE in addition to EINVAL. + * nscd/nscd_helper.c (open_socket) [defined SOCK_CLOEXEC] + [!defined __ASSUME_SOCK_CLOEXEC]: Likewise. + * resolv/res_send.c (reopen) [!defined __ASSUME_SOCK_CLOEXEC]: Likewise. + * sunrpc/clnt_udp.c (__libc_clntudp_bufcreate) [defined SOCK_NONBLOCK] + [!defined __ASSUME_SOCK_CLOEXEC]: Likewise. + * misc/syslog.c (openlog_internal) [defined SOCK_CLOEXEC] + [!defined __ASSUME_SOCK_CLOEXEC]: Likewise. + +--- + misc/syslog.c | 2 +- + nscd/connections.c | 2 +- + nscd/nscd_helper.c | 2 +- + resolv/res_send.c | 4 ++-- + sunrpc/clnt_udp.c | 2 +- + 5 files changed, 6 insertions(+), 6 deletions(-) + +--- a/nscd/connections.c ++++ b/nscd/connections.c +@@ -856,7 +856,7 @@ cannot set socket to close on exec: %s; + sock = socket (AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0); + #ifndef __ASSUME_SOCK_CLOEXEC + if (have_sock_cloexec == 0) +- have_sock_cloexec = sock != -1 || errno != EINVAL ? 1 : -1; ++ have_sock_cloexec = sock != -1 || (errno != EINVAL && errno != EPROTOTYPE) ? 1 : -1; + #endif + } + #ifndef __ASSUME_SOCK_CLOEXEC +--- a/nscd/nscd_helper.c ++++ b/nscd/nscd_helper.c +@@ -172,7 +172,7 @@ open_socket (request_type type, const ch + sock = __socket (PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC | SOCK_NONBLOCK, 0); + # ifndef __ASSUME_SOCK_CLOEXEC + if (__have_sock_cloexec == 0) +- __have_sock_cloexec = sock != -1 || errno != EINVAL ? 1 : -1; ++ __have_sock_cloexec = sock != -1 || (errno != EINVAL && errno != EPROTOTYPE) ? 1 : -1; + # endif + } + #endif +--- a/resolv/res_send.c ++++ b/resolv/res_send.c +@@ -925,7 +925,7 @@ reopen (res_state statp, int *terrno, in + if (__have_o_nonblock == 0) + __have_o_nonblock + = (EXT(statp).nssocks[ns] == -1 +- && errno == EINVAL ? -1 : 1); ++ && (errno == EINVAL || errno == EPROTOTYPE) ? -1 : 1); + #endif + } + if (__builtin_expect (__have_o_nonblock < 0, 0)) +@@ -943,7 +943,7 @@ reopen (res_state statp, int *terrno, in + if (__have_o_nonblock == 0) + __have_o_nonblock + = (EXT(statp).nssocks[ns] == -1 +- && errno == EINVAL ? -1 : 1); ++ && (errno == EINVAL || errno == EPROTOTYPE) ? -1 : 1); + #endif + } + if (__builtin_expect (__have_o_nonblock < 0, 0)) +--- a/sunrpc/clnt_udp.c ++++ b/sunrpc/clnt_udp.c +@@ -179,7 +179,7 @@ __libc_clntudp_bufcreate (struct sockadd + IPPROTO_UDP); + # ifndef __ASSUME_SOCK_CLOEXEC + if (__have_sock_cloexec == 0) +- __have_sock_cloexec = *sockp >= 0 || errno != EINVAL ? 1 : -1; ++ __have_sock_cloexec = *sockp >= 0 || (errno != EINVAL && errno != EPROTOTYPE) ? 1 : -1; + # endif + } + #endif +--- a/misc/syslog.c ++++ b/misc/syslog.c +@@ -357,7 +357,7 @@ openlog_internal(const char *ident, int + if (__have_sock_cloexec == 0) + __have_sock_cloexec + = ((LogFile != -1 +- || errno != EINVAL) ++ || (errno != EINVAL && errno != EPROTOTYPE)) + ? 1 : -1); + } + # endif Modified: glibc-package/branches/eglibc-2.17/debian/patches/series.hurd-i386 =================================================================== --- glibc-package/branches/eglibc-2.17/debian/patches/series.hurd-i386 2013-05-09 08:31:08 UTC (rev 5567) +++ glibc-package/branches/eglibc-2.17/debian/patches/series.hurd-i386 2013-05-09 09:46:08 UTC (rev 5568) @@ -10,3 +10,4 @@ hurd-i386/tg-fcntl-internal.h.diff hurd-i386/tg-pagesize.diff hurd-i386/local-disable-tst-xmmymm.diff +hurd-i386/submitted-handle-eprototype.diff -- To UNSUBSCRIBE, email to debian-glibc-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1uanqp-0000u3...@vasks.debian.org