From 4b2c73ad056aa327dc3b505410da68cf384317ba Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Mon, 16 May 2016 22:26:05 +0200
Subject: [PATCH] Make backtrace support depends on execinfo.h existence

In some C-libraries (like uclibc), backtrace support is optional, so the
execinfo.h file may not exist.

This change adds the check for execinfo.h header and conditionnaly enable
backtrace support.

This issue has been triggered by Buildroot farms:
  http://autobuild.buildroot.org/results/391/391e71a988250ea66ec4dbee6f60fdce9eaf2766/build-end.log

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
 dbus/sigsegv.c | 8 +++++++-
 wscript        | 1 +
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/dbus/sigsegv.c b/dbus/sigsegv.c
index ee12f91..0b31d89 100644
--- a/dbus/sigsegv.c
+++ b/dbus/sigsegv.c
@@ -27,7 +27,9 @@
 #include <stdio.h>
 #include <signal.h>
 #include <dlfcn.h>
-#include <execinfo.h>
+#if defined(HAVE_EXECINFO_H)
+# include <execinfo.h>
+#endif /* defined(HAVE_EXECINFO_H) */
 #include <errno.h>
 #ifndef NO_CPP_DEMANGLE
 char * __cxa_demangle(const char * __mangled_name, char * __output_buffer, size_t * __length, int * __status);
@@ -161,12 +163,16 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) {
         bp = (void**)bp[0];
     }
 #else
+# if defined(HAVE_EXECINFO_H)
     jack_error("Stack trace (non-dedicated):");
     sz = backtrace(bt, 20);
     strings = backtrace_symbols(bt, sz);
 
     for(i = 0; i < sz; ++i)
         jack_error("%s", strings[i]);
+# else /* defined(HAVE_EXECINFO_H) */
+    jack_error("Stack trace not available");
+# endif /* defined(HAVE_EXECINFO_H) */
 #endif
     jack_error("End of stack trace");
     exit (-1);
diff --git a/wscript b/wscript
index aef4bd8..63ba3aa 100644
--- a/wscript
+++ b/wscript
@@ -166,6 +166,7 @@ def configure(conf):
         if conf.env['BUILD_JACKDBUS'] != True:
             conf.fatal('jackdbus was explicitly requested but cannot be built')
 
+    conf.check_cc(header_name='execinfo.h', define_name="HAVE_EXECINFO_H", mandatory=False)
     conf.check_cc(header_name='samplerate.h', define_name="HAVE_SAMPLERATE")
 
     if conf.is_defined('HAVE_SAMPLERATE'):
-- 
2.8.2

