aboutsummaryrefslogtreecommitdiff
path: root/www/libxul/files/patch-bug977457
blob: cf57b6b1b809318e0a4bd05a87ca0950f3fc5fd6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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 <dlfcn.h>
 #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 <unwind.h>
 
 struct unwind_info {