All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [git commit] domoticz: fix build with uClibc
@ 2016-08-25 21:58 Peter Korsgaard
  0 siblings, 0 replies; only message in thread
From: Peter Korsgaard @ 2016-08-25 21:58 UTC (permalink / raw)
  To: buildroot

commit: https://git.buildroot.net/buildroot/commit/?id=3f9c5fb096ad10d03832d9e0cd05ad4d02adf8c0
branch: https://git.buildroot.net/buildroot/commit/?id=refs/heads/master

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>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 ...per-check-for-detecting-header-execinfo.h.patch | 61 ++++++++++++++++++++++
 1 file changed, 61 insertions(+)

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..c4d88a4
--- /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
+

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-08-25 21:58 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-25 21:58 [Buildroot] [git commit] domoticz: fix build with uClibc 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.