Index: cmake/config-ix.cmake =================================================================== --- cmake/config-ix.cmake +++ cmake/config-ix.cmake @@ -46,7 +46,6 @@ check_include_file(dirent.h HAVE_DIRENT_H) check_include_file(dlfcn.h HAVE_DLFCN_H) check_include_file(errno.h HAVE_ERRNO_H) -check_include_file(execinfo.h HAVE_EXECINFO_H) check_include_file(fcntl.h HAVE_FCNTL_H) check_include_file(inttypes.h HAVE_INTTYPES_H) check_include_file(link.h HAVE_LINK_H) @@ -165,7 +164,9 @@ # function checks check_symbol_exists(arc4random "stdlib.h" HAVE_DECL_ARC4RANDOM) -check_symbol_exists(backtrace "execinfo.h" HAVE_BACKTRACE) +find_package(Backtrace) +set(HAVE_BACKTRACE ${Backtrace_FOUND}) +set(BACKTRACE_HEADER ${Backtrace_HEADER}) check_symbol_exists(_Unwind_Backtrace "unwind.h" HAVE__UNWIND_BACKTRACE) check_symbol_exists(getpagesize unistd.h HAVE_GETPAGESIZE) check_symbol_exists(sysconf unistd.h HAVE_SYSCONF) Index: include/llvm/Config/config.h.cmake =================================================================== --- include/llvm/Config/config.h.cmake +++ include/llvm/Config/config.h.cmake @@ -16,6 +16,8 @@ /* Define to 1 if you have the `backtrace' function. */ #cmakedefine HAVE_BACKTRACE ${HAVE_BACKTRACE} +#define BACKTRACE_HEADER <${BACKTRACE_HEADER}> + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_CRASHREPORTERCLIENT_H Index: lib/Support/CMakeLists.txt =================================================================== --- lib/Support/CMakeLists.txt +++ lib/Support/CMakeLists.txt @@ -9,6 +9,9 @@ if( HAVE_LIBDL ) set(system_libs ${system_libs} ${CMAKE_DL_LIBS}) endif() + if( HAVE_BACKTRACE ) + set(system_libs ${system_libs} ${Backtrace_LIBRARIES}) + endif() if(LLVM_ENABLE_TERMINFO) if(HAVE_TERMINFO) set(system_libs ${system_libs} ${TERMINFO_LIBS}) @@ -140,7 +143,7 @@ Windows ${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support - + ${Backtrace_INCLUDE_DIRS} LINK_LIBS ${system_libs} ) Index: lib/Support/Unix/Signals.inc =================================================================== --- lib/Support/Unix/Signals.inc +++ lib/Support/Unix/Signals.inc @@ -25,8 +25,8 @@ #include "llvm/Support/raw_ostream.h" #include #include -#if HAVE_EXECINFO_H -# include // For backtrace(). +#ifdef HAVE_BACKTRACE +# include BACKTRACE_HEADER // For backtrace(). #endif #if HAVE_SIGNAL_H #include