diff --git a/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp b/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp index ae13d28fc..8ed1bb283 100644 --- a/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp +++ b/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp @@ -7,12 +7,30 @@ * Author: Till Straumann , 2011, 2014 */ +// pull in libc feature test macros +#include + +// execinfo.h may not be present if uclibc is configured to omit backtrace() +#if !defined(__UCLIBC_MAJOR__) || defined(__UCLIBC_HAS_EXECINFO__) +# define HAS_EXECINFO 1 +#else +# define HAS_EXECINFO 0 +#endif + +#if HAS_EXECINFO + #include +#endif + #define epicsExportSharedSymbols #include "epicsStackTracePvt.h" int epicsBackTrace(void **buf, int buf_sz) { +#if HAS_EXECINFO return backtrace(buf, buf_sz); +#else + return -1; +#endif }