From 30642d5b1a3f479987c4d50a237311d84d5f0581 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Thu, 24 Dec 2015 12:04:57 +0100 Subject: [PATCH] configure: check for execinfo.h Not all toolchains have execinfo.h. For example, support for it is optional in uClibc, while it is entirely missing from musl. Add a check in configure to look for it. Since execinfo.h is /only/ used to dump a backtrace in case of failure, just do nothing when execinfo.h is missing. Signed-off-by: "Yann E. MORIN" --- configure.ac | 2 ++ src/log.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index b51d6b3..28e657b 100644 --- a/configure.ac +++ b/configure.ac @@ -182,6 +182,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [ AC_MSG_ERROR(resolver library support is required)) ]) +AC_CHECK_HEADERS([execinfo.h]) + AC_CHECK_FUNC(signalfd, dummy=yes, AC_MSG_ERROR(signalfd support is required)) diff --git a/src/log.c b/src/log.c index a693bd0..76e10e7 100644 --- a/src/log.c +++ b/src/log.c @@ -30,7 +30,9 @@ #include #include #include +#if defined(HAVE_EXECINFO_H) #include +#endif #include #include "connman.h" @@ -112,6 +114,7 @@ void connman_debug(const char *format, ...) static void print_backtrace(unsigned int offset) { +#if defined(HAVE_EXECINFO_H) void *frames[99]; size_t n_ptrs; unsigned int i; @@ -210,6 +213,7 @@ static void print_backtrace(unsigned int offset) close(outfd[1]); close(infd[0]); +#endif /* HAVE_EXECINFO_H */ } static void signal_handler(int signo) -- 1.9.1