compositor: check for execinfo.h
authorPekka Paalanen <ppaalanen@gmail.com>
Wed, 30 May 2012 12:53:42 +0000 (15:53 +0300)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 31 May 2012 17:52:24 +0000 (13:52 -0400)
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>
configure.ac
shared/os-compatibility.h
src/compositor.c

index 4dfd161..ad8a44a 100644 (file)
@@ -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])
 
index 77e8672..ca753b6 100644 (file)
 #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);
 
index e99f051..4f10aba 100644 (file)
@@ -42,7 +42,6 @@
 #include <dlfcn.h>
 #include <signal.h>
 #include <setjmp.h>
-#include <execinfo.h>
 
 #include <wayland-server.h>
 #include "compositor.h"