summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-03-04 12:59:10 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2010-03-04 12:59:10 +0100
commitc034b2e1655dd2856f8b6f3247e6e406e46c24a4 (patch)
tree7662b9ba6f3749d13c4dd9797098529e0b7c904d /libc
parent63859f89f327e48037a4cdba982cd6afa3007da7 (diff)
poll: unavailable on linux < 2.2.0
fixes bug #253 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libc')
-rw-r--r--libc/sysdeps/linux/common/bits/kernel-features.h5
-rw-r--r--libc/sysdeps/linux/common/poll.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/common/bits/kernel-features.h b/libc/sysdeps/linux/common/bits/kernel-features.h
index 88297349a..b04ad6d3e 100644
--- a/libc/sysdeps/linux/common/bits/kernel-features.h
+++ b/libc/sysdeps/linux/common/bits/kernel-features.h
@@ -28,6 +28,11 @@
#include <linux/version.h>
#define __LINUX_KERNEL_VERSION LINUX_VERSION_CODE
+/* When was `poll' introduced? */
+#if __LINUX_KERNEL_VERSION >= 131584
+# define __ASSUME_POLL_SYSCALL 1
+#endif
+
/* Real-time signal became usable in 2.1.70. */
#if __LINUX_KERNEL_VERSION >= 131398
# define __ASSUME_REALTIME_SIGNALS 1
diff --git a/libc/sysdeps/linux/common/poll.c b/libc/sysdeps/linux/common/poll.c
index 4a6f06e19..52f6c76b4 100644
--- a/libc/sysdeps/linux/common/poll.c
+++ b/libc/sysdeps/linux/common/poll.c
@@ -19,8 +19,9 @@
#include <sys/syscall.h>
#include <sys/poll.h>
+#include <bits/kernel-features.h>
-#ifdef __NR_poll
+#if defined __ASSUME_POLL_SYSCALL && defined __NR_poll
_syscall3(int, poll, struct pollfd *, fds,
unsigned long int, nfds, int, timeout)