[PATCH weston] make error() portable
Khem Raj
raj.khem at gmail.com
Fri May 29 21:14:32 PDT 2015
error() is not posix but gnu extension so may not be available on all
kind of systemsi e.g. musl.
Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
configure.ac | 2 ++
src/weston-error.h | 20 ++++++++++++++++++++
src/weston-launch.c | 2 +-
3 files changed, 23 insertions(+), 1 deletion(-)
create mode 100644 src/weston-error.h
diff --git a/configure.ac b/configure.ac
index 263fc22..f52cd62 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,6 +57,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
[[#include <time.h>]])
AC_CHECK_HEADERS([execinfo.h])
+AC_CHECK_HEADERS([error.h])
+
AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate])
COMPOSITOR_MODULES="wayland-server >= 1.7.93 pixman-1 >= 0.25.2"
diff --git a/src/weston-error.h b/src/weston-error.h
new file mode 100644
index 0000000..2089d02
--- /dev/null
+++ b/src/weston-error.h
@@ -0,0 +1,20 @@
+#ifndef _WESTON_ERROR_H
+#define _WESTON_ERROR_H
+
+#if defined(HAVE_ERROR_H)
+#include <error.h>
+#else
+#include <err.h>
+#include <string.h>
+#define _weston_error(S, E, F, ...) do { \
+ if (E) \
+ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \
+ else \
+ err(S, F, ##__VA_ARGS__); \
+} while(0)
+
+#define error _weston_error
+#endif
+
+#endif
+
diff --git a/src/weston-launch.c b/src/weston-launch.c
index 10c66de..3e6d30a 100644
--- a/src/weston-launch.c
+++ b/src/weston-launch.c
@@ -30,7 +30,6 @@
#include <poll.h>
#include <errno.h>
-#include <error.h>
#include <getopt.h>
#include <sys/types.h>
@@ -56,6 +55,7 @@
#endif
#include "weston-launch.h"
+#include "weston-error.h"
#define DRM_MAJOR 226
--
2.1.4
More information about the wayland-devel
mailing list