66 lines
1.6 KiB
Diff
66 lines
1.6 KiB
Diff
|
From 30642d5b1a3f479987c4d50a237311d84d5f0581 Mon Sep 17 00:00:00 2001
|
||
|
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||
|
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" <yann.morin.1998@free.fr>
|
||
|
---
|
||
|
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 <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <syslog.h>
|
||
|
+#if defined(HAVE_EXECINFO_H)
|
||
|
#include <execinfo.h>
|
||
|
+#endif
|
||
|
#include <dlfcn.h>
|
||
|
|
||
|
#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
|
||
|
|