mirror of
https://github.com/RPCSX/llvm.git
synced 2025-01-18 10:25:25 +00:00
Fix detection of backtrace() availability on FreeBSD
On FreeBSD backtrace is not part of libc and depends on libexecinfo being available. Instead of using manual checks we can use the builtin CMake module FindBacktrace.cmake to detect availability of backtrace() in a portable way. Patch By: Alex Richardson Differential Revision: https://reviews.llvm.org/D27143 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300062 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0b09474fe1
commit
944d939ce1
@ -46,7 +46,6 @@ endfunction()
|
||||
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 @@ endif()
|
||||
|
||||
# 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)
|
||||
|
@ -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 <CrashReporterClient.h> header file. */
|
||||
#cmakedefine HAVE_CRASHREPORTERCLIENT_H
|
||||
|
||||
|
@ -9,6 +9,9 @@ elseif( CMAKE_HOST_UNIX )
|
||||
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 @@ add_llvm_library(LLVMSupport
|
||||
Windows
|
||||
${LLVM_MAIN_INCLUDE_DIR}/llvm/ADT
|
||||
${LLVM_MAIN_INCLUDE_DIR}/llvm/Support
|
||||
|
||||
${Backtrace_INCLUDE_DIRS}
|
||||
LINK_LIBS ${system_libs}
|
||||
)
|
||||
|
||||
|
@ -25,8 +25,8 @@
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#if HAVE_EXECINFO_H
|
||||
# include <execinfo.h> // For backtrace().
|
||||
#ifdef HAVE_BACKTRACE
|
||||
# include BACKTRACE_HEADER // For backtrace().
|
||||
#endif
|
||||
#if HAVE_SIGNAL_H
|
||||
#include <signal.h>
|
||||
|
Loading…
x
Reference in New Issue
Block a user