aboutsummaryrefslogtreecommitdiffstats
path: root/testing/a2jmidid/check-for-libc-backtrace.patch
blob: 774914cf6beb7893aa1d2cd89fafced0eaa75ae9 (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
28
29
30
31
32
33
34
Check if libc supports error backtracing from execinfo.h before attempting
to use it (musl does not support this).
--- a2jmidid-9/sigsegv.c
+++ a2jmidid-9/sigsegv.c
@@ -28,7 +28,9 @@
 #include <signal.h>
 #include <ucontext.h>
 #include <dlfcn.h>
+#ifdef LIBC_HAS_BACKTRACE
 #include <execinfo.h>
+#endif
 #include <errno.h>
 #ifndef NO_CPP_DEMANGLE
 //#include <cxxabi.h>
@@ -148,12 +150,14 @@
         bp = (void**)bp[0];
     }
 #else
-    a2j_error("Stack trace (non-dedicated):");
-    sz = backtrace(bt, 20);
-    strings = backtrace_symbols(bt, sz);
+	#ifdef LIBC_HAS_BACKTRACE
+		a2j_error("Stack trace (non-dedicated):");
+		sz = backtrace(bt, 20);
+		strings = backtrace_symbols(bt, sz);
 
-    for(i = 0; i < sz; ++i)
-        a2j_error("%s", strings[i]);
+		for(i = 0; i < sz; ++i)
+			a2j_error("%s", strings[i]);
+	#endif
 #endif
     a2j_error("End of stack trace");
     exit (-1);