This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-621-gd710902


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  d7109027508c8ef5f4218abc737fcb1a411c2bd3 (commit)
      from  d92d8f8a42b5623e98a5f83775015a7907029884 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=d7109027508c8ef5f4218abc737fcb1a411c2bd3

commit d7109027508c8ef5f4218abc737fcb1a411c2bd3
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri Jun 20 23:22:08 2014 +0000

    Remove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code.
    
    This patch removes conditionals on __ASSUME_SOCK_CLOEXEC, and on
    SOCK_CLOEXEC being defined, in Linux-specific code, now that all
    supported Linux kernel versions can be assumed to have this
    functionality.  (The macro is also used in OS-independent code and is
    not defined for Hurd.)
    
    Tested x86_64 that the disassembly of installed shared libraries is
    unchanged by this patch.
    
    	* nptl/sysdeps/unix/sysv/linux/mq_notify.c: Do not include
    	<kernel-features.h>.
    	(init_mq_netlink): Remove conditional have_sock_cloexec
    	definitions.  Remove code conditional on have_sock_cloexec < 0.
    	(init_mq_netlink) [!SOCK_CLOEXEC]: Remove conditional code.
    	(init_mq_netlink) [!__ASSUME_SOCK_CLOEXEC]: Likewise.
    	* sysdeps/unix/sysv/linux/opensock.c: Do not include
    	<kernel-features.h>.
    	(__opensock) [SOCK_CLOEXEC]: Make code unconditional.
    	(__opensock) [!__ASSUME_SOCK_CLOEXEC]: Remove conditional code.

diff --git a/ChangeLog b/ChangeLog
index cafcb4d..0e7c7e9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2014-06-20  Joseph Myers  <joseph@codesourcery.com>
+
+	* nptl/sysdeps/unix/sysv/linux/mq_notify.c: Do not include
+	<kernel-features.h>.
+	(init_mq_netlink): Remove conditional have_sock_cloexec
+	definitions.  Remove code conditional on have_sock_cloexec < 0.
+	(init_mq_netlink) [!SOCK_CLOEXEC]: Remove conditional code.
+	(init_mq_netlink) [!__ASSUME_SOCK_CLOEXEC]: Likewise.
+	* sysdeps/unix/sysv/linux/opensock.c: Do not include
+	<kernel-features.h>.
+	(__opensock) [SOCK_CLOEXEC]: Make code unconditional.
+	(__opensock) [!__ASSUME_SOCK_CLOEXEC]: Remove conditional code.
+
 2014-06-20  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
diff --git a/nptl/sysdeps/unix/sysv/linux/mq_notify.c b/nptl/sysdeps/unix/sysv/linux/mq_notify.c
index 3138ad2..6893d8c 100644
--- a/nptl/sysdeps/unix/sysv/linux/mq_notify.c
+++ b/nptl/sysdeps/unix/sysv/linux/mq_notify.c
@@ -28,7 +28,6 @@
 #include <unistd.h>
 #include <sys/socket.h>
 #include <not-cancel.h>
-#include <kernel-features.h>
 #include <nptl/pthreadP.h>
 
 
@@ -153,41 +152,15 @@ reset_once (void)
 static void
 init_mq_netlink (void)
 {
-#ifdef SOCK_CLOEXEC
-# ifndef __ASSUME_SOCK_CLOEXEC
-  static int have_sock_cloexec;
-# else
-#  define have_sock_cloexec 1
-# endif
-#else
-# define have_sock_cloexec -1
-# define SOCK_CLOEXEC 0
-#endif
-
   /* This code might be called a second time after fork().  The file
      descriptor is inherited from the parent.  */
   if (netlink_socket == -1)
     {
       /* Just a normal netlink socket, not bound.  */
-      if (have_sock_cloexec >= 0)
-	{
-	  netlink_socket = socket (AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, 0);
-#if defined SOCK_CLOEXEC && !defined __ASSUME_SOCK_CLOEXEC
-	  if (have_sock_cloexec == 0)
-	    have_sock_cloexec = (netlink_socket != -1 || errno != EINVAL
-				 ? 1 : -1);
-#endif
-	}
-      if (have_sock_cloexec < 0)
-	netlink_socket = socket (AF_NETLINK, SOCK_RAW, 0);
+      netlink_socket = socket (AF_NETLINK, SOCK_RAW | SOCK_CLOEXEC, 0);
       /* No need to do more if we have no socket.  */
       if (netlink_socket == -1)
 	return;
-
-      /* Make sure the descriptor is closed on exec.  */
-      if (have_sock_cloexec < 0
-	  && fcntl (netlink_socket, F_SETFD, FD_CLOEXEC) != 0)
-	goto errout;
     }
 
   int err = 1;
diff --git a/sysdeps/unix/sysv/linux/opensock.c b/sysdeps/unix/sysv/linux/opensock.c
index bcf7f5f..4894bf9 100644
--- a/sysdeps/unix/sysv/linux/opensock.c
+++ b/sysdeps/unix/sysv/linux/opensock.c
@@ -21,7 +21,6 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/socket.h>
-#include <kernel-features.h>
 
 /* Return a socket of any type.  The socket can be used in subsequent
    ioctl calls to talk to the kernel.  */
@@ -63,24 +62,7 @@ __opensock (void)
     {
       assert (last_type != 0);
 
-#ifdef SOCK_CLOEXEC
-# ifndef __ASSUME_SOCK_CLOEXEC
-      if (__have_sock_cloexec >= 0)
-# endif
-	{
-	  result = __socket (last_family, last_type | SOCK_CLOEXEC, 0);
-# ifndef __ASSUME_SOCK_CLOEXEC
-	  if (__have_sock_cloexec == 0)
-	    __have_sock_cloexec = result != -1 || errno != EINVAL ? 1 : -1;
-# endif
-	}
-#endif
-#ifndef __ASSUME_SOCK_CLOEXEC
-# ifdef SOCK_CLOEXEC
-      if (__have_sock_cloexec < 0)
-# endif
-	result = __socket (last_family, last_type, 0);
-#endif
+      result = __socket (last_family, last_type | SOCK_CLOEXEC, 0);
       if (result != -1 || errno != EAFNOSUPPORT)
 	/* Maybe the socket type isn't supported anymore (module is
 	   unloaded).  In this case again try to find the type.  */
@@ -115,24 +97,7 @@ __opensock (void)
       if (afs[cnt].family == AF_NETROM || afs[cnt].family == AF_X25)
 	type = SOCK_SEQPACKET;
 
-#ifdef SOCK_CLOEXEC
-# ifndef __ASSUME_SOCK_CLOEXEC
-      if (__have_sock_cloexec >= 0)
-# endif
-	{
-	  result = __socket (afs[cnt].family, type | SOCK_CLOEXEC, 0);
-# ifndef __ASSUME_SOCK_CLOEXEC
-	  if (__have_sock_cloexec == 0)
-	    __have_sock_cloexec = result != -1 || errno != EINVAL ? 1 : -1;
-# endif
-	}
-#endif
-#ifndef __ASSUME_SOCK_CLOEXEC
-# ifdef SOCK_CLOEXEC
-      if (__have_sock_cloexec < 0)
-# endif
-	result = __socket (afs[cnt].family, type, 0);
-#endif
+      result = __socket (afs[cnt].family, type | SOCK_CLOEXEC, 0);
       if (result != -1)
 	{
 	  /* Found an available family.  */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                |   13 ++++++++++
 nptl/sysdeps/unix/sysv/linux/mq_notify.c |   29 +---------------------
 sysdeps/unix/sysv/linux/opensock.c       |   39 +----------------------------
 3 files changed, 16 insertions(+), 65 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]