summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Yao <ryao@gentoo.org>2012-11-18 15:55:33 -0500
committerRichard Yao <ryao@cs.stonybrook.edu>2012-11-18 16:10:09 -0500
commit189d09a42e054bebd91ea9690fede33b41996260 (patch)
tree009ca085c281c228700cc14564f6ffa12f0b8f80
parent2182f784f06dd0bf7e3b82d91c2f29bde71dfadf (diff)
Define unshare() macro to avoid dependence on __GNU_SOURCE
unshare() is a linux syscall that we need. Unfortunately, access to it depends on __GNU_SOURCE, which we would like to avoid. As such, we define a macro to invoke it by its syscall code. This is necessary to avoid the following warning from Clang: implicit declaration of function 'unshare' is invalid in C99 [-Wimplicit-function-declaration] Signed-off-by: Richard Yao <ryao@gentoo.org>
-rw-r--r--src/test/test-udev.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/test/test-udev.c b/src/test/test-udev.c
index 2a25f2d9b0..4f21e6c2dd 100644
--- a/src/test/test-udev.c
+++ b/src/test/test-udev.c
@@ -34,6 +34,14 @@
#include "udev.h"
+#ifndef SYS_unshare
+#error "libc fails to set SYS_unshare: please file a bug report with eudev"
+#endif
+
+#ifndef unshare
+#define unshare(__X) syscall(SYS_unshare, __X)
+#endif
+
void udev_main_log(struct udev *udev, int priority,
const char *file, int line, const char *fn,
const char *format, va_list args) {}