# define _POSIX_SOURCE 1 /* disable %llu warnings with MinGW on Windows */
#endif
+#if defined(__linux__) || (defined(__APPLE__) && defined(__MACH__))
+# define BACKTRACES_ENABLE 1
+#endif
/*-*************************************
* Includes
#include <string.h> /* strcmp, strlen */
#include <errno.h> /* errno */
#include <signal.h>
-#ifndef _WIN32
-#include <execinfo.h> /* backtrace, backtrace_symbols */
+#ifdef BACKTRACES_ENABLE
+# include <execinfo.h> /* backtrace, backtrace_symbols */
#endif
#if defined (_MSC_VER)
/*-*********************************************************
* Termination signal trapping (Print debug stack trace)
***********************************************************/
+#ifdef BACKTRACES_ENABLE
+
#define MAX_STACK_FRAMES 50
-#ifndef _WIN32
static void ABRThandler(int sig) {
const char* name;
void* addrlist[MAX_STACK_FRAMES];
void FIO_addAbortHandler()
{
-#ifndef _WIN32
+#ifdef BACKTRACES_ENABLE
signal(SIGABRT, ABRThandler);
signal(SIGFPE, ABRThandler);
signal(SIGILL, ABRThandler);
return ((clockEnd - clockStart) * (U64)rate.numer) / ((U64)rate.denom);
}
-#elif (PLATFORM_POSIX_VERSION >= 200112L) && (defined __UCLIBC__ || ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17) || __GLIBC__ > 2))
+#elif (PLATFORM_POSIX_VERSION >= 200112L) \
+ && (defined(__UCLIBC__) \
+ || (defined(__GLIBC__) \
+ && ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 17) \
+ || (__GLIBC__ > 2))))
#define UTIL_TIME_INITIALIZER { 0, 0 }
typedef struct timespec UTIL_freq_t;