diff options
author | Joseph Myers <joseph@codesourcery.com> | 2016-03-15 21:11:07 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2016-03-15 21:11:07 +0000 |
commit | 089b772f98afd9eb6264c6489bc96a30bf6af4ac (patch) | |
tree | 6f78b9cb5c8abdbfddb0ca9fcacd4029b1f0c76c | |
parent | 35ade9f11b9007ee9683529f2d33698ff35255c8 (diff) | |
download | glibc-089b772f98afd9eb6264c6489bc96a30bf6af4ac.zip glibc-089b772f98afd9eb6264c6489bc96a30bf6af4ac.tar.gz glibc-089b772f98afd9eb6264c6489bc96a30bf6af4ac.tar.bz2 |
Remove __ASSUME_PPOLL.
With current kernel version requirements, the ppoll Linux syscall can
be assumed to be present on all architectures; this patch removes the
__ASSUME_PPOLL macro and conditionals on it and on whether __NR_ppoll
is defined. (Note that the same can't yet be done for pselect,
because MicroBlaze only wired that up in the syscall table in 3.15.)
Tested for x86_64 and x86 that installed stripped shared libraries are
unchanged by the patch.
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PPOLL):
Remove macro.
* sysdeps/unix/sysv/linux/ppoll.c: Do not include
<kernel-features.h>.
[__NR_ppoll]: Make code unconditional.
[!__ASSUME_PPOLL]: Remove conditional code.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/kernel-features.h | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/ppoll.c | 29 |
3 files changed, 8 insertions, 29 deletions
@@ -1,5 +1,12 @@ 2016-03-15 Joseph Myers <joseph@codesourcery.com> + * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PPOLL): + Remove macro. + * sysdeps/unix/sysv/linux/ppoll.c: Do not include + <kernel-features.h>. + [__NR_ppoll]: Make code unconditional. + [!__ASSUME_PPOLL]: Remove conditional code. + * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_ACCEPT4_SYSCALL): Define unconditionally. (__ASSUME_ACCEPT4): Likewise. diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 4411503..4a7460e 100644 --- a/sysdeps/unix/sysv/linux/kernel-features.h +++ b/sysdeps/unix/sysv/linux/kernel-features.h @@ -58,7 +58,6 @@ /* pselect/ppoll were introduced just after 2.6.16-rc1. On x86_64 and SH this appeared first in 2.6.19-rc1, on ia64 in 2.6.22-rc1. */ #define __ASSUME_PSELECT 1 -#define __ASSUME_PPOLL 1 /* The *at syscalls were introduced just after 2.6.16-rc1. On PPC they were introduced in 2.6.17-rc1, on SH in 2.6.19-rc1. */ diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c index c4486af..e14fe60 100644 --- a/sysdeps/unix/sysv/linux/ppoll.c +++ b/sysdeps/unix/sysv/linux/ppoll.c @@ -20,18 +20,9 @@ #include <signal.h> #include <time.h> #include <sys/poll.h> -#include <kernel-features.h> #include <sysdep-cancel.h> -#ifdef __NR_ppoll -# ifndef __ASSUME_PPOLL -static int __generic_ppoll (struct pollfd *fds, nfds_t nfds, - const struct timespec *timeout, - const sigset_t *sigmask); -# endif - - int ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, const sigset_t *sigmask) @@ -45,24 +36,6 @@ ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, timeout = &tval; } - int result; - - result = SYSCALL_CANCEL (ppoll, fds, nfds, timeout, sigmask, _NSIG / 8); - -# ifndef __ASSUME_PPOLL - if (result == -1 && errno == ENOSYS) - result = __generic_ppoll (fds, nfds, timeout, sigmask); -# endif - - return result; + return SYSCALL_CANCEL (ppoll, fds, nfds, timeout, sigmask, _NSIG / 8); } libc_hidden_def (ppoll) - -# ifndef __ASSUME_PPOLL -# define ppoll static __generic_ppoll -# endif -#endif - -#ifndef __ASSUME_PPOLL -# include <io/ppoll.c> -#endif |