All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] domoticz: fix build with uClibc
@ 2016-08-25 17:01 Rahul Bedarkar
  2016-08-25 20:07 ` Samuel Martin
  2016-08-25 21:59 ` Peter Korsgaard
  0 siblings, 2 replies; 6+ messages in thread
From: Rahul Bedarkar @ 2016-08-25 17:01 UTC (permalink / raw)
  To: buildroot

domoticz.cpp currently assumes that on GNU/Linux systems header
<execinfo.h> is available. But that is not true. Since it provided by
C library and uClibc can be built without backtrace support. And in
such cases we get following build error.

  domoticz-3.4834/main/domoticz.cpp:48:22: fatal error: execinfo.h: No such file or directory
   #include <execinfo.h>
                        ^
  compilation terminated.

This commit adds patch for detecting presence of <execinfo.h>
and guards code accordingly.

Fixes:

  http://autobuild.buildroot.net/results/393/393f839e160b51ca12ac36058718ad2f0c1b50a6/

Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
---
 ...per-check-for-detecting-header-execinfo.h.patch | 61 ++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch

diff --git a/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch b/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch
new file mode 100644
index 0000000..2e07abe
--- /dev/null
+++ b/package/domoticz/0001-add-proper-check-for-detecting-header-execinfo.h.patch
@@ -0,0 +1,61 @@
+From 5409696dfcbb05d6e4e67e74c97487b1987639e1 Mon Sep 17 00:00:00 2001
+From: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
+Date: Thu, 25 Aug 2016 17:23:38 +0530
+Subject: [PATCH 1/1] add proper check for detecting header <execinfo.h>
+
+domoticz.cpp currently assumes that on GNU/Linux systems header
+<execinfo.h> is available. But that is not true. Since it provided by
+C library and uClibc can be built without backtrace support. And in
+such cases we get following build error.
+
+  domoticz-3.4834/main/domoticz.cpp:48:22: fatal error: execinfo.h: No such file or directory
+   #include <execinfo.h>
+                        ^
+  compilation terminated.
+
+Instead of depending on __gnu_linux__, add check for detecting
+presence of <execinfo.h> and guard code for dumpstack accordingly.
+
+This build failure is detected by Buildroot autobuilder.
+http://autobuild.buildroot.net/results/393/393f839e160b51ca12ac36058718ad2f0c1b50a6/
+
+Signed-off-by: Rahul Bedarkar <rahul.bedarkar@imgtec.com>
+---
+ CMakeLists.txt    | 7 +++++++
+ main/domoticz.cpp | 2 +-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d3113f4..ef32f7b 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -61,6 +61,13 @@ SET(EXECUTABLE_OUTPUT_PATH "" CACHE INTERNAL
+   "Where to put the executables for Domoticz"
+   )
+ 
++INCLUDE(CheckIncludeFiles)
++CHECK_INCLUDE_FILES (execinfo.h HAVE_EXECINFO_H)
++
++IF(HAVE_EXECINFO_H)
++  ADD_DEFINITIONS(-DHAVE_EXECINFO_H)
++ENDIF(HAVE_EXECINFO_H)
++
+ #set(CMAKE_EXE_LINKER_FLAGS "-static")
+ 
+ # Macro for setting up precompiled headers. Usage:
+diff --git a/main/domoticz.cpp b/main/domoticz.cpp
+index 69d2ef6..c52e5ac 100644
+--- a/main/domoticz.cpp
++++ b/main/domoticz.cpp
+@@ -44,7 +44,7 @@
+ 	#include <string.h> 
+ #endif
+ 
+-#ifdef __gnu_linux__
++#ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
+ static void dumpstack(void) {
+ 	// Notes :
+-- 
+2.6.2
+
-- 
2.6.2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-08-26  9:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-25 17:01 [Buildroot] [PATCH 1/1] domoticz: fix build with uClibc Rahul Bedarkar
2016-08-25 20:07 ` Samuel Martin
2016-08-25 21:59 ` Peter Korsgaard
2016-08-26  8:56   ` Thomas Petazzoni
2016-08-26  9:02     ` Rahul Bedarkar
2016-08-26  9:27       ` Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.