summaryrefslogtreecommitdiffstats
path: root/package/rpi-userland/rpi-userland-0002-Test-for-the-existence-of-execinfo-h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/rpi-userland/rpi-userland-0002-Test-for-the-existence-of-execinfo-h.patch')
-rw-r--r--package/rpi-userland/rpi-userland-0002-Test-for-the-existence-of-execinfo-h.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/package/rpi-userland/rpi-userland-0002-Test-for-the-existence-of-execinfo-h.patch b/package/rpi-userland/rpi-userland-0002-Test-for-the-existence-of-execinfo-h.patch
new file mode 100644
index 000000000..ccc67d975
--- /dev/null
+++ b/package/rpi-userland/rpi-userland-0002-Test-for-the-existence-of-execinfo-h.patch
@@ -0,0 +1,69 @@
+From 93ae1bcd8005216baf7361ba860b53a2cf2e0401 Mon Sep 17 00:00:00 2001
+From: Floris Bos <bos@je-eigen-domein.nl>
+Date: Sun, 25 Nov 2012 19:05:07 +0100
+Subject: [PATCH] Test for the existence of execinfo.h
+
+Previous code assumed that on Linux the execinfo.h functions are always available, which is a glibc extension.
+This change fixes building the library under buildroot, which uses uClibc by default
+---
+ interface/vcos/glibc/vcos_backtrace.c | 7 +++++--
+ makefiles/cmake/arm-linux.cmake | 4 ++++
+ makefiles/cmake/cmake_config.h.in | 3 +++
+ 3 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/interface/vcos/glibc/vcos_backtrace.c b/interface/vcos/glibc/vcos_backtrace.c
+index 474a328..3bb8aa3 100644
+--- a/interface/vcos/glibc/vcos_backtrace.c
++++ b/interface/vcos/glibc/vcos_backtrace.c
+@@ -26,7 +26,10 @@
+ */
+
+ #include <interface/vcos/vcos.h>
+-#ifdef __linux__
++#ifdef HAVE_CMAKE_CONFIG
++#include "cmake_config.h"
++#endif
++#ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
+ #endif
+ #include <stdio.h>
+@@ -35,7 +38,7 @@
+
+ void vcos_backtrace_self(void)
+ {
+-#ifdef __linux__
++#ifdef HAVE_EXECINFO_H
+ void *stack[64];
+ int depth = backtrace(stack, sizeof(stack)/sizeof(stack[0]));
+ char **names = backtrace_symbols(stack, depth);
+diff --git a/makefiles/cmake/arm-linux.cmake b/makefiles/cmake/arm-linux.cmake
+index 89d8bbf..6f2114f 100644
+--- a/makefiles/cmake/arm-linux.cmake
++++ b/makefiles/cmake/arm-linux.cmake
+@@ -115,6 +115,10 @@ try_compile(HAVE_MTRACE
+ ${CMAKE_SOURCE_DIR}/makefiles/cmake/srcs/test-mtrace.c
+ OUTPUT_VARIABLE foo)
+
++# test for existence of execinfo.h header
++include(CheckIncludeFile)
++check_include_file(execinfo.h HAVE_EXECINFO_H)
++
+ add_definitions(-DHAVE_CMAKE_CONFIG)
+ configure_file (
+ "makefiles/cmake/cmake_config.h.in"
+diff --git a/makefiles/cmake/cmake_config.h.in b/makefiles/cmake/cmake_config.h.in
+index 5f08ad5..080b8e8 100644
+--- a/makefiles/cmake/cmake_config.h.in
++++ b/makefiles/cmake/cmake_config.h.in
+@@ -8,5 +8,8 @@
+ /** Do we have support for GLIBC mtrace() ? */
+ #cmakedefine HAVE_MTRACE
+
++/** Do we have the execinfo.h include file ? */
++#cmakedefine HAVE_EXECINFO_H
++
+ #endif
+
+--
+1.7.10
+