diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-07-30 23:02:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-30 23:02:41 +0200 |
commit | a7538371fec595641bed2d5e2d92e5ae2ce89b94 (patch) | |
tree | f115ab0f9e90cbbf3c1d4a09cc4839c7de4fa1c1 | |
parent | 5cd68b39003dc51c5b80147d689cf7e8b67443b0 (diff) | |
download | rneovim-a7538371fec595641bed2d5e2d92e5ae2ce89b94.tar.gz rneovim-a7538371fec595641bed2d5e2d92e5ae2ce89b94.tar.bz2 rneovim-a7538371fec595641bed2d5e2d92e5ae2ce89b94.zip |
build: linux does not always have execinfo.h (#7101)
Closes #7099
-rw-r--r-- | CMakeLists.txt | 11 | ||||
-rw-r--r-- | config/config.h.in | 2 | ||||
-rw-r--r-- | src/nvim/log.c | 7 | ||||
-rw-r--r-- | src/nvim/log.h | 2 |
4 files changed, 18 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 099f6e3787..594f631ba0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -192,6 +192,16 @@ if(CMAKE_EXE_LINKER_FLAGS MATCHES "--sort-common" OR string(REGEX REPLACE "-Wl($| )" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") endif() +check_c_source_compiles(" +#include <execinfo.h> +int main(void) +{ + void *trace[1]; + int trace_size = backtrace(trace, 1); + return 0; +} +" HAVE_EXECINFO_BACKTRACE) + if(MSVC) # XXX: /W4 gives too many warnings. #3241 add_definitions(/W3 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE) @@ -324,7 +334,6 @@ main(void) return MSGPACK_OBJECT_FLOAT32; } " MSGPACK_HAS_FLOAT32) - if(MSGPACK_HAS_FLOAT32) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DNVIM_MSGPACK_HAS_FLOAT32") endif() diff --git a/config/config.h.in b/config/config.h.in index f26b5a50a8..962eefd7a7 100644 --- a/config/config.h.in +++ b/config/config.h.in @@ -68,4 +68,6 @@ #cmakedefine ORDER_BIG_ENDIAN #define ENDIAN_INCLUDE_FILE <@ENDIAN_INCLUDE_FILE@> +#cmakedefine HAVE_EXECINFO_BACKTRACE + #endif // AUTO_CONFIG_H diff --git a/src/nvim/log.c b/src/nvim/log.c index 252fe5438d..b64aef3cac 100644 --- a/src/nvim/log.c +++ b/src/nvim/log.c @@ -25,6 +25,10 @@ static uv_mutex_t mutex; # include "log.c.generated.h" #endif +#ifdef HAVE_EXECINFO_BACKTRACE +# include <execinfo.h> +#endif + static bool log_try_create(char *fname) { if (fname == NULL || fname[0] == '\0') { @@ -173,8 +177,7 @@ FILE *open_log_file(void) return stderr; } -#if defined(__linux__) -# include <execinfo.h> +#ifdef HAVE_EXECINFO_BACKTRACE void log_callstack(const char *const func_name, const int line_num) { void *trace[100]; diff --git a/src/nvim/log.h b/src/nvim/log.h index 2bd18f5776..743a8d17aa 100644 --- a/src/nvim/log.h +++ b/src/nvim/log.h @@ -61,7 +61,7 @@ __VA_ARGS__) #endif -#if defined(__linux__) +#ifdef HAVE_EXECINFO_BACKTRACE # define LOG_CALLSTACK() log_callstack(__func__, __LINE__) #endif |