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.25-267-gb62c381


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  b62c3815912bc679a966134affdedd3f35ae8621 (commit)
       via  26f28fd73d20df8847d93f88b6e2a7bd3bd9bf51 (commit)
       via  b5eede9730eccec155c2374d20d401cd032519fd (commit)
      from  14ea415d042dcb934a021114c872f3ae7dc7a51c (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=b62c3815912bc679a966134affdedd3f35ae8621

commit b62c3815912bc679a966134affdedd3f35ae8621
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Mon Nov 21 17:40:19 2016 -0200

    Consolidate Linux epoll_wait syscall
    
    This patch consolidates the epoll_wait Linux syscall generation on
    sysdeps/unix/sysv/linux/epoll_wait.c.  The implementation tries to
    use __NR_epoll_wait if defined, otherwise calls epoll_pwait.
    
    Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
    arch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.
    
    	* sysdeps/unix/sysv/linux/epoll_wait.c: New file.
    	* sysdeps/unix/sysv/linux/generic/epoll_wait.c: Remove file.
    	* sysdeps/unix/sysv/linux/syscalls.list: Remove epoll_wait from
    	auto-generation list.

diff --git a/ChangeLog b/ChangeLog
index a48b9fb..fa61e5f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2016-04-03  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+	* sysdeps/unix/sysv/linux/epoll_wait.c: New file.
+	* sysdeps/unix/sysv/linux/generic/epoll_wait.c: Remove file.
+	* sysdeps/unix/sysv/linux/syscalls.list: Remove epoll_wait from
+	auto-generation list.
+	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
+	epoll_wait.
+	* sysdeps/unix/sysv/linux/generic/Makefile (sysdep_routines):
+	Remove epoll_wait.
+
 	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Add
 	osf_select.
 	* sysdeps/unix/sysv/linux/alpha/select.c: New file.
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 1872cdb..a8790b1 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -17,7 +17,7 @@ include $(firstword $(wildcard $(sysdirs:=/sysctl.mk)))
 sysdep_routines += clone umount umount2 readahead \
 		   setfsuid setfsgid epoll_pwait signalfd \
 		   eventfd eventfd_read eventfd_write prlimit \
-		   personality
+		   personality epoll_wait
 
 CFLAGS-gethostid.c = -fexceptions
 CFLAGS-tst-writev.c += "-DARTIFICIAL_LIMIT=(0x80000000-sysconf(_SC_PAGESIZE))"
diff --git a/sysdeps/unix/sysv/linux/generic/epoll_wait.c b/sysdeps/unix/sysv/linux/epoll_wait.c
similarity index 82%
rename from sysdeps/unix/sysv/linux/generic/epoll_wait.c
rename to sysdeps/unix/sysv/linux/epoll_wait.c
index d9363f1..eb6e6d3 100644
--- a/sysdeps/unix/sysv/linux/generic/epoll_wait.c
+++ b/sysdeps/unix/sysv/linux/epoll_wait.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Linux epoll_wait syscall implementation.
+   Copyright (C) 2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -24,5 +24,9 @@
 int
 epoll_wait (int epfd, struct epoll_event *events, int maxevents, int timeout)
 {
+#ifdef __NR_epoll_wait
+  return SYSCALL_CANCEL (epoll_wait, epfd, events, maxevents, timeout);
+#else
   return epoll_pwait (epfd, events, maxevents, timeout, NULL);
+#endif
 }
diff --git a/sysdeps/unix/sysv/linux/generic/Makefile b/sysdeps/unix/sysv/linux/generic/Makefile
index c1daee2..7e27e79 100644
--- a/sysdeps/unix/sysv/linux/generic/Makefile
+++ b/sysdeps/unix/sysv/linux/generic/Makefile
@@ -1,3 +1,3 @@
 ifeq ($(subdir),misc)
-sysdep_routines += epoll_create epoll_wait inotify_init
+sysdep_routines += epoll_create inotify_init
 endif
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 4d550b8..1a10903 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -12,7 +12,6 @@ delete_module	EXTRA	delete_module	3	delete_module
 epoll_create	EXTRA	epoll_create	i:i	epoll_create
 epoll_create1	EXTRA	epoll_create1	i:i	epoll_create1
 epoll_ctl	EXTRA	epoll_ctl	i:iiip	epoll_ctl
-epoll_wait	EXTRA	epoll_wait	Ci:ipii	epoll_wait
 eventfd		EXTRA	eventfd2	i:ii	eventfd
 execve		-	execve		i:spp	__execve	execve
 fdatasync	-	fdatasync	Ci:i	fdatasync

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=26f28fd73d20df8847d93f88b6e2a7bd3bd9bf51

commit 26f28fd73d20df8847d93f88b6e2a7bd3bd9bf51
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Fri Nov 18 14:27:03 2016 -0200

    Consolidate Linux select implementation
    
    This patch consolidates the select Linux syscall implementation on
    sysdeps/unix/sysv/linux/select.c.  The changes are:
    
      1. Remove select from auto-generation syscalls.list on the architecture
         that uses __NR_select.
      2. Remove generic implementation add a default one that handle all
         current cases (with the expection of alpha)
         The new default implementation will either use __NR_select if
         available of fallback to __NR_pselect6 otherwise.
      3. Add a alpha outlier implementation which requires old compatibility
         symbols.
    
    Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
    arch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.
    
    	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Add
    	osf_select.
    	* sysdeps/unix/sysv/linux/alpha/select.c: New file.
    	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove select and
    	osf_select from auto-generation list.
    	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
    	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
    	* sysdeps/unix/sysv/linux/generic/select.c: Remove file.
    	* sysdeps/unix/sysv/linux/select.c: New file.

diff --git a/ChangeLog b/ChangeLog
index 3aadc27..a48b9fb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2016-04-03  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Add
+	osf_select.
+	* sysdeps/unix/sysv/linux/alpha/select.c: New file.
+	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove select and
+	osf_select from auto-generation list.
+	* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
+	* sysdeps/unix/sysv/linux/generic/select.c: Remove file.
+	* sysdeps/unix/sysv/linux/select.c: New file.
+
 	* sysdeps/unix/sysv/linux/generic/poll.c: Remove file.
 	* sysdeps/unix/sysv/linux/poll.c: New file.
 	* sysdeps/unix/sysv/linux/syscalls.list: Remove poll from
diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile
index 37bdd5a..47bd189 100644
--- a/sysdeps/unix/sysv/linux/alpha/Makefile
+++ b/sysdeps/unix/sysv/linux/alpha/Makefile
@@ -13,7 +13,7 @@ sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
 		   ioperm
 
 # Support old timeval32 entry points
-sysdep_routines += osf_select osf_gettimeofday osf_settimeofday \
+sysdep_routines += osf_gettimeofday osf_settimeofday \
 		   osf_getitimer osf_setitimer osf_utimes \
 		   osf_getrusage osf_wait4
 
diff --git a/sysdeps/unix/sysv/linux/alpha/select.c b/sysdeps/unix/sysv/linux/alpha/select.c
new file mode 100644
index 0000000..bb0298f
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/select.c
@@ -0,0 +1,53 @@
+/* Linux/alpha select implementation.
+   Copyright (C) 2017 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, see
+   <http://www.gnu.org/licenses/>.  */
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/select.h>
+#include <errno.h>
+#include <sysdep-cancel.h>
+#include <shlib-compat.h>
+
+int
+__new_select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+	      struct timeval *timeout)
+{
+  return SYSCALL_CANCEL (select, nfds, readfds, writefds, exceptfds, timeout);
+}
+strong_alias (__new_select, __select)
+libc_hidden_def (__select)
+
+default_symbol_version (__new_select, select, GLIBC_2.1);
+
+strong_alias (__new_select, __new_select_private);
+symbol_version (__new_select_private, __select, GLIBC_2.1);
+
+/* Old timeval32 compat calls.  */
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+int
+__select_tv32 (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+	       struct timeval *timeout)
+{
+  return SYSCALL_CANCEL (osf_select, nfds, readfds, writefds, exceptfds,
+                        timeout);
+}
+strong_alias (__select_tv32, __select_tv32_1)
+
+compat_symbol (libc, __select_tv32, __select, GLIBC_2_0);
+compat_symbol (libc, __select_tv32_1, select, GLIBC_2_0);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index aa21b10..12cd021 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -23,7 +23,6 @@ pciconfig_write	EXTRA	pciconfig_write	5	pciconfig_write
 pciconfig_iobase EXTRA	pciconfig_iobase 3	__pciconfig_iobase pciconfig_iobase
 
 # support old timeval32 entry points
-osf_select	-	osf_select	C:5	__select_tv32  __select@GLIBC_2.0 select@GLIBC_2.0
 osf_gettimeofday -	osf_gettimeofday 2	__gettimeofday_tv32  __gettimeofday@GLIBC_2.0 gettimeofday@GLIBC_2.0
 osf_settimeofday -	osf_settimeofday 2	__settimeofday_tv32  settimeofday@GLIBC_2.0
 osf_getitimer	-	osf_getitimer	2	__getitimer_tv32  getitimer@GLIBC_2.0
@@ -33,7 +32,6 @@ osf_getrusage	-	osf_getrusage	2	__getrusage_tv32  getrusage@GLIBC_2.0
 osf_wait4	-	osf_wait4	4	__wait4_tv32  wait4@GLIBC_2.0
 
 # support new timeval64 entry points
-select		-	select		C:5	__GI___select select@@GLIBC_2.1 __select@@GLIBC_2.1
 gettimeofday	-	gettimeofday	2	__GI___gettimeofday gettimeofday@@GLIBC_2.1 __gettimeofday@@GLIBC_2.1
 settimeofday	-	settimeofday	2	__settimeofday settimeofday@@GLIBC_2.1
 getitimer	-	getitimer	2	__getitimer getitimer@@GLIBC_2.1
diff --git a/sysdeps/unix/sysv/linux/generic/select.c b/sysdeps/unix/sysv/linux/select.c
similarity index 82%
rename from sysdeps/unix/sysv/linux/generic/select.c
rename to sysdeps/unix/sysv/linux/select.c
index 7743ea3..be4a456 100644
--- a/sysdeps/unix/sysv/linux/generic/select.c
+++ b/sysdeps/unix/sysv/linux/select.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Linux select implementation.
+   Copyright (C) 2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -28,11 +28,19 @@
    after waiting the interval specified therein.  Returns the number of ready
    descriptors, or -1 for errors.  */
 
+#ifdef __NR__newselect
+# undef __NR_select
+# define __NR_select __NR__newselect
+#endif
+
 int
-__select(int nfds, fd_set *readfds,
-         fd_set *writefds, fd_set *exceptfds,
-         struct timeval *timeout)
+__select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
+	  struct timeval *timeout)
 {
+#ifdef __NR_select
+  return SYSCALL_CANCEL (select, nfds, readfds, writefds, exceptfds,
+			 timeout);
+#else
   int result;
   struct timespec ts, *tsp = NULL;
 
@@ -55,6 +63,7 @@ __select(int nfds, fd_set *readfds,
     }
 
   return result;
+#endif
 }
 libc_hidden_def (__select)
 
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index 1e85118..33082f3 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -1,7 +1,5 @@
 # File name	Caller	Syscall name	# args	Strong name	Weak names
 
-# Override select.S in parent directory:
-select		-	select		C:5	__select	select
 bind		-	bind		3	__bind		bind
 getpeername	-	getpeername	3	__getpeername	getpeername
 getsockname	-	getsockname	3	__getsockname	getsockname
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index fcefefc..4d550b8 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -63,7 +63,6 @@ sched_rr_gi	-	sched_rr_get_interval	i:ip	__sched_rr_get_interval	sched_rr_get_in
 sched_setp	-	sched_setparam	i:ip	__sched_setparam	sched_setparam
 sched_sets	-	sched_setscheduler	i:iip	__sched_setscheduler	sched_setscheduler
 sched_yield	-	sched_yield	i:	__sched_yield	sched_yield
-select		-	_newselect	Ci:iPPPP	__select	__libc_select select
 sendfile	-	sendfile	i:iipi	sendfile
 sendfile64	-	sendfile64	i:iipi	sendfile64
 setfsgid	EXTRA	setfsgid	i:i	setfsgid

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

commit b5eede9730eccec155c2374d20d401cd032519fd
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Fri Nov 18 13:56:05 2016 -0200

    Consolidate Linux poll implementation
    
    This patch consolidates the poll Linux syscall implementation on
    sysdeps/unix/sysv/linux/poll.c.  It basically removes poll from
    auto-generation list and add a default implementation that either
    call __NR_poll directly (if the kernel headers defines it) or
    ppoll adjusting the timeout argument (as the generic implementation).
    
    Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
    aarch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.
    
    	* sysdeps/unix/sysv/linux/generic/poll.c: Remove file.
    	* sysdeps/unix/sysv/linux/poll.c: New file.
    	* sysdeps/unix/sysv/linux/syscalls.list: Remove poll from
    	auto-generation list.

diff --git a/ChangeLog b/ChangeLog
index d581766..3aadc27 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-04-03  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* sysdeps/unix/sysv/linux/generic/poll.c: Remove file.
+	* sysdeps/unix/sysv/linux/poll.c: New file.
+	* sysdeps/unix/sysv/linux/syscalls.list: Remove poll from
+	auto-generation list.
+
 2017-05-03  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_ASIMDRDM):
diff --git a/sysdeps/unix/sysv/linux/generic/poll.c b/sysdeps/unix/sysv/linux/poll.c
similarity index 88%
rename from sysdeps/unix/sysv/linux/generic/poll.c
rename to sysdeps/unix/sysv/linux/poll.c
index c06d383..5a781dd 100644
--- a/sysdeps/unix/sysv/linux/generic/poll.c
+++ b/sysdeps/unix/sysv/linux/poll.c
@@ -1,6 +1,6 @@
-/* Copyright (C) 2011-2017 Free Software Foundation, Inc.
+/* Linux poll implementation.
+   Copyright (C) 2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
-   Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.
 
    The GNU C Library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
@@ -25,6 +25,9 @@
 int
 __poll (struct pollfd *fds, nfds_t nfds, int timeout)
 {
+#ifdef __NR_poll
+  return SYSCALL_CANCEL (poll, fds, nfds, timeout);
+#else
   struct timespec timeout_ts;
   struct timespec *timeout_ts_p = NULL;
 
@@ -36,6 +39,7 @@ __poll (struct pollfd *fds, nfds_t nfds, int timeout)
     }
 
   return SYSCALL_CANCEL (ppoll, fds, nfds, timeout_ts_p, NULL, 0);
+#endif
 }
 libc_hidden_def (__poll)
 weak_alias (__poll, poll)
diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list
index 5d3c417..fcefefc 100644
--- a/sysdeps/unix/sysv/linux/syscalls.list
+++ b/sysdeps/unix/sysv/linux/syscalls.list
@@ -50,7 +50,6 @@ pause		-	pause		Ci:	__libc_pause	pause
 pipe		-	pipe		i:f	__pipe		pipe
 pipe2		-	pipe2		i:fi	__pipe2		pipe2
 pivot_root	EXTRA	pivot_root	i:ss	pivot_root
-poll		-	poll		Ci:pii	__libc_poll	__poll poll
 prctl		EXTRA	prctl		i:iiiii	__prctl		prctl
 putpmsg		-	putpmsg		i:ippii	putpmsg
 query_module	EXTRA	query_module	i:sipip	__compat_query_module	query_module@GLIBC_2.0:GLIBC_2.23

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

Summary of changes:
 ChangeLog                                          |   26 +++++++
 sysdeps/unix/sysv/linux/Makefile                   |    2 +-
 sysdeps/unix/sysv/linux/alpha/Makefile             |    2 +-
 sysdeps/unix/sysv/linux/alpha/select.c             |   53 +++++++++++++++
 sysdeps/unix/sysv/linux/alpha/syscalls.list        |    2 -
 sysdeps/unix/sysv/linux/epoll_wait.c               |   32 +++++++++
 sysdeps/unix/sysv/linux/generic/Makefile           |    2 +-
 sysdeps/unix/sysv/linux/generic/epoll_wait.c       |   28 --------
 sysdeps/unix/sysv/linux/generic/poll.c             |   42 ------------
 sysdeps/unix/sysv/linux/generic/select.c           |   62 -----------------
 sysdeps/unix/sysv/linux/poll.c                     |   46 +++++++++++++
 sysdeps/unix/sysv/linux/select.c                   |   71 ++++++++++++++++++++
 .../unix/sysv/linux/sparc/sparc64/syscalls.list    |    2 -
 sysdeps/unix/sysv/linux/syscalls.list              |    3 -
 14 files changed, 231 insertions(+), 142 deletions(-)
 create mode 100644 sysdeps/unix/sysv/linux/alpha/select.c
 create mode 100644 sysdeps/unix/sysv/linux/epoll_wait.c
 delete mode 100644 sysdeps/unix/sysv/linux/generic/epoll_wait.c
 delete mode 100644 sysdeps/unix/sysv/linux/generic/poll.c
 delete mode 100644 sysdeps/unix/sysv/linux/generic/select.c
 create mode 100644 sysdeps/unix/sysv/linux/poll.c
 create mode 100644 sysdeps/unix/sysv/linux/select.c


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]