summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Paalanen <ppaalanen@gmail.com>2012-05-30 15:53:42 +0300
committerKristian Høgsberg <krh@bitplanet.net>2012-05-31 13:52:24 -0400
commit200019c0c66ec757353ffaaea8d9c98da37f26c8 (patch)
tree75b60052229f86ed1daee919d094b8ca3de6c941
parent51aaf646db84b35a317a576459cd9a06c767b800 (diff)
compositor: check for execinfo.h
Some systems may not have execinfo.h. Add a configure test for it, and if it is not found, make the backtrace() call a no-operation. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
-rw-r--r--configure.ac2
-rw-r--r--shared/os-compatibility.h10
-rw-r--r--src/compositor.c1
3 files changed, 12 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 4dfd161..ad8a44a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -24,6 +24,8 @@ AC_CHECK_FUNC([dlopen], [],
AC_CHECK_LIB([dl], [dlopen], DLOPEN_LIBS="-ldl"))
AC_SUBST(DLOPEN_LIBS)
+AC_CHECK_HEADERS([execinfo.h])
+
PKG_CHECK_MODULES(COMPOSITOR,
[wayland-server egl >= 7.10 glesv2 xkbcommon pixman-1])
diff --git a/shared/os-compatibility.h b/shared/os-compatibility.h
index 77e8672..ca753b6 100644
--- a/shared/os-compatibility.h
+++ b/shared/os-compatibility.h
@@ -23,6 +23,16 @@
#ifndef OS_COMPATIBILITY_H
#define OS_COMPATIBILITY_H
+#ifdef HAVE_EXECINFO_H
+#include <execinfo.h>
+#else
+static inline int
+backtrace(void **buffer, int size)
+{
+ return 0;
+}
+#endif
+
int
os_socketpair_cloexec(int domain, int type, int protocol, int *sv);
diff --git a/src/compositor.c b/src/compositor.c
index e99f051..4f10aba 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -42,7 +42,6 @@
#include <dlfcn.h>
#include <signal.h>
#include <setjmp.h>
-#include <execinfo.h>
#include <wayland-server.h>
#include "compositor.h"