diff --git a/awesomeConfig.cmake b/awesomeConfig.cmake index bd8dd76e..1794d931 100644 --- a/awesomeConfig.cmake +++ b/awesomeConfig.cmake @@ -162,11 +162,10 @@ endmacro() # Check for libev a_find_library(LIB_EV ev) -# GNU libc has and backtrace() stuff. If this is not available, we -# need libexecinfo. -try_compile(HAS_EXECINFO - ${CMAKE_BINARY_DIR} - ${CMAKE_SOURCE_DIR}/build-tests/execinfo.c) + +# Check for backtrace_symbols() +include(CheckFunctionExists) +check_function_exists(backtrace_symbols HAS_EXECINFO) if(NOT HAS_EXECINFO) find_library(LIB_EXECINFO execinfo) if(LIB_EXECINFO) diff --git a/build-tests/execinfo.c b/build-tests/execinfo.c deleted file mode 100644 index 28039230..00000000 --- a/build-tests/execinfo.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * build-tests/execinfo.c - * stolen from http://www.gnu.org/s/libc/manual/html_node/Backtraces.html - */ -#include -#include -#include - -/* Obtain a backtrace and print it to stdout. */ -void -print_trace (void) -{ - void *array[10]; - size_t size; - char **strings; - size_t i; - - size = backtrace (array, 10); - strings = backtrace_symbols (array, size); - - printf ("Obtained %zd stack frames.\n", size); - - for (i = 0; i < size; i++) - printf ("%s\n", strings[i]); - - free (strings); -} - -/* A dummy function to make the backtrace more interesting. */ -void -dummy_function (void) -{ - print_trace (); -} - -int -main (void) -{ - dummy_function (); - return 0; -} -