diff --git a/cli/cppcheckexecutor.cpp b/cli/cppcheckexecutor.cpp index 7220a0f04..566d57484 100644 --- a/cli/cppcheckexecutor.cpp +++ b/cli/cppcheckexecutor.cpp @@ -34,12 +34,16 @@ #if !defined(NO_UNIX_SIGNAL_HANDLING) && defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__) && !defined(__OS2__) #define USE_UNIX_SIGNAL_HANDLING -#include #include #include #include #endif +#if !defined(NO_UNIX_BACKTRACE_SUPPORT) && defined(USE_UNIX_SIGNAL_HANDLING) && !defined(__SVR4) +#define USE_UNIX_BACKTRACE_SUPPORT +#include +#endif + #if defined(_MSC_VER) #define USE_WINDOWS_SEH #include @@ -237,7 +241,7 @@ static const char *signal_name(int signo) */ static void print_stacktrace(FILE* f, bool demangling) { -#if defined(__GNUC__) +#if defined(USE_UNIX_BACKTRACE_SUPPORT) void *array[32]= {0}; // the less resources the better... const int depth = backtrace(array, (int)GetArrayLength(array)); char **symbolstrings = backtrace_symbols(array, depth); diff --git a/cli/threadexecutor.cpp b/cli/threadexecutor.cpp index 32cdc8ea1..aed99fe8f 100644 --- a/cli/threadexecutor.cpp +++ b/cli/threadexecutor.cpp @@ -20,6 +20,9 @@ #include "cppcheck.h" #include "cppcheckexecutor.h" #include +#ifdef __SVR4 // Solaris +#include +#endif #ifdef THREADING_MODEL_FORK #include #include