Message ID | alpine.DEB.2.10.1603151630030.23466@digraph.polyomino.org.uk |
---|---|
State | New |
Headers | show |
LGTM. On 15-03-2016 13:30, Joseph Myers wrote: > 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. > > 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. > > diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h > index 9832f41..e3b7459 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 >
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h index 9832f41..e3b7459 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