Add the missing 5th arg to the ppoll syscall. Fixes the uclibc error that ppoll retur...
[openwrt/openwrt.git] / toolchain / uClibc / patches-0.9.29 / 300-fix-ppoll.diff
1
2 It will match kernel's sigset_t starting from 0.9.31.
3
4 Please try attached patch.
5 --
6 vda
7
8 diff -d -urpN uClibc.0/libc/sysdeps/linux/common/ppoll.c uClibc.1/libc/sysdeps/linux/common/ppoll.c
9 --- uClibc.0/libc/sysdeps/linux/common/ppoll.c
10 +++ uClibc.1/libc/sysdeps/linux/common/ppoll.c
11 @@ -17,6 +17,7 @@
12 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
13 02111-1307 USA. */
14
15 +#include <signal.h>
16 #include <sys/syscall.h>
17 #include <sys/poll.h>
18
19 @@ -26,9 +27,9 @@
20
21 # define __NR___libc_ppoll __NR_ppoll
22 static inline
23 -_syscall4(int, __libc_ppoll, struct pollfd *, fds,
24 +_syscall5(int, __libc_ppoll, struct pollfd *, fds,
25 nfds_t, nfds, const struct timespec *, timeout,
26 - const __sigset_t *, sigmask);
27 + const __sigset_t *, sigmask, size_t, sigsetsize)
28
29 int
30 ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
31 @@ -43,7 +44,7 @@
32 timeout = &tval;
33 }
34
35 - return __libc_ppoll(fds, nfds, timeout, sigmask);
36 + return __libc_ppoll(fds, nfds, timeout, sigmask, _NSIG / 8);
37 }
38 libc_hidden_def(ppoll)
39