diff options
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.patch | 69 |
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 + |