diff --git xpcom/base/nsStackWalk.cpp xpcom/base/nsStackWalk.cpp index bb0e15b..7641267 100644 --- xpcom/base/nsStackWalk.cpp +++ xpcom/base/nsStackWalk.cpp @@ -23,6 +23,12 @@ struct CriticalAddress { }; static CriticalAddress gCriticalAddress; +// for _Unwind_Backtrace from libcxxrt or libunwind +// cxxabi.h from libcxxrt implicitly includes unwind.h first +#if defined(HAVE__UNWIND_BACKTRACE) && !defined(_GNU_SOURCE) +#define _GNU_SOURCE +#endif + #if defined(HAVE_DLOPEN) || defined(XP_MACOSX) #include #endif @@ -1222,9 +1228,6 @@ NS_StackWalk(NS_WalkStackCallback aCallback, uint32_t aSkipFrames, #elif defined(HAVE__UNWIND_BACKTRACE) // libgcc_s.so symbols _Unwind_Backtrace@@GCC_3.3 and _Unwind_GetIP@@GCC_3.0 -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif #include struct unwind_info {