ndisc: fix ppoll mismatch against libc
authorFelix Fietkau <nbd@openwrt.org>
Fri, 29 May 2009 12:01:34 +0000 (12:01 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Fri, 29 May 2009 12:01:34 +0000 (12:01 +0000)
SVN-Revision: 16192

ipv6/ndisc/patches/120-ppoll.patch [new file with mode: 0644]

diff --git a/ipv6/ndisc/patches/120-ppoll.patch b/ipv6/ndisc/patches/120-ppoll.patch
new file mode 100644 (file)
index 0000000..6a54770
--- /dev/null
@@ -0,0 +1,47 @@
+--- a/compat/fixups.h
++++ b/compat/fixups.h
+@@ -50,13 +50,25 @@
+ # define IPV6_RTHDR_TYPE_0 0
+ #endif
+-#ifndef HAVE_PPOLL
++#include <sys/poll.h>
++
++#ifdef HAVE_PPOLL
++static inline int
++compat_ppoll (struct pollfd *restrict fds, int n,
++              const struct timespec *restrict ts,
++              const sigset_t *restrict sigmask)
++{
++      return ppoll(fds, n, ts, sigmask);
++}
++
++#else
+ # include <signal.h>
+ struct pollfd;
+ struct timespec;
+-int ppoll (struct pollfd *restrict fds, int n,
+-           const struct timespec *restrict ts,
+-           const sigset_t *restrict sigmask);
++int compat_ppoll (struct pollfd *restrict fds, int n,
++                  const struct timespec *restrict ts,
++                  const sigset_t *restrict sigmask);
+ #endif
++#define ppoll compat_ppoll
+--- a/compat/ppoll.c
++++ b/compat/ppoll.c
+@@ -32,9 +32,9 @@
+ # include <pthread.h> // sigprocmask is not thread-safe
+ #endif
+-int ppoll (struct pollfd *restrict fds, int n,
+-           const struct timespec *restrict ts,
+-           const sigset_t *restrict sigset)
++int compat_ppoll (struct pollfd *restrict fds, int n,
++                  const struct timespec *restrict ts,
++                  const sigset_t *restrict sigset)
+ {
+       sigset_t origset;
+       int val;