summaryrefslogtreecommitdiff
path: root/toolchain/uClibc/patches-0.9.29/300-fix-ppoll.diff
blob: 125eb148ed8a54e4ae49b3e67e238e71f5bcc61c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
It will match kernel's sigset_t starting from 0.9.31.

Please try attached patch.
-- 
vda

diff -d -urpN uClibc.0/libc/sysdeps/linux/common/ppoll.c uClibc.1/libc/sysdeps/linux/common/ppoll.c
--- uClibc.0/libc/sysdeps/linux/common/ppoll.c
+++ uClibc.1/libc/sysdeps/linux/common/ppoll.c
@@ -17,6 +17,7 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
+#include <signal.h>
 #include <sys/syscall.h>
 #include <sys/poll.h>
 
@@ -26,9 +27,9 @@
 
 # define __NR___libc_ppoll __NR_ppoll
 static inline
-_syscall4(int, __libc_ppoll, struct pollfd *, fds,
+_syscall5(int, __libc_ppoll, struct pollfd *, fds,
 	nfds_t, nfds, const struct timespec *, timeout,
-	const __sigset_t *, sigmask);
+	const __sigset_t *, sigmask, size_t, sigsetsize)
 
 int
 ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
@@ -43,7 +44,7 @@
       timeout = &tval;
     }
 
-  return __libc_ppoll(fds, nfds, timeout, sigmask);
+  return __libc_ppoll(fds, nfds, timeout, sigmask, _NSIG / 8);
 }
 libc_hidden_def(ppoll)