aboutsummaryrefslogtreecommitdiff
path: root/package/connman/0001-configure-check-for-execinfo.h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/connman/0001-configure-check-for-execinfo.h.patch')
-rw-r--r--package/connman/0001-configure-check-for-execinfo.h.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/package/connman/0001-configure-check-for-execinfo.h.patch b/package/connman/0001-configure-check-for-execinfo.h.patch
new file mode 100644
index 0000000000..384f41bd8b
--- /dev/null
+++ b/package/connman/0001-configure-check-for-execinfo.h.patch
@@ -0,0 +1,65 @@
+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
+