Browse Source

wscript: make backtrace support depends on execinfo.h existence

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

This change adds the check for execinfo.h header and conditionaly 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>
tags/v1.9.11-RC1
Samuel Martin 9 years ago
parent
commit
8ac6bf1b4a
2 changed files with 13 additions and 1 deletions
  1. +7
    -1
      dbus/sigsegv.c
  2. +6
    -0
      wscript

+ 7
- 1
dbus/sigsegv.c View File

@@ -27,7 +27,9 @@
#include <stdio.h>
#include <signal.h>
#include <dlfcn.h>
#include <execinfo.h>
#ifdef HAVE_EXECINFO_H
# include <execinfo.h>
#endif
#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
# ifdef 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
jack_error("Stack trace not available");
# endif
#endif
jack_error("End of stack trace");
exit (-1);


+ 6
- 0
wscript View File

@@ -483,6 +483,12 @@ def configure(conf):
defines=['_GNU_SOURCE'],
mandatory=False)

# Check for backtrace support
conf.check(
header_name='execinfo.h',
define_name='HAVE_EXECINFO_H',
mandatory=False)

conf.recurse('common')
if Options.options.dbus:
conf.recurse('dbus')


Loading…
Cancel
Save