1*4882a593SmuzhiyunFrom 8023dc2b7c6a3c1a2e51ffed30986df879060ca0 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Khem Raj <raj.khem@gmail.com>
3*4882a593SmuzhiyunDate: Wed, 13 Feb 2019 09:51:14 -0800
4*4882a593SmuzhiyunSubject: [PATCH] execinfo implementation is glibc specific
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunUpstream-Status: Pending
7*4882a593SmuzhiyunSigned-off-by: Khem Raj <raj.khem@gmail.com>
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun---
10*4882a593Smuzhiyun base/debug/stack_trace_posix.cc                      | 12 ++++++------
11*4882a593Smuzhiyun .../build/Linux/include/llvm/Config/config.h         |  2 +-
12*4882a593Smuzhiyun 2 files changed, 7 insertions(+), 7 deletions(-)
13*4882a593Smuzhiyun
14*4882a593Smuzhiyundiff --git a/base/debug/stack_trace_posix.cc b/base/debug/stack_trace_posix.cc
15*4882a593Smuzhiyunindex 679118e189..94890f32b6 100644
16*4882a593Smuzhiyun--- a/base/debug/stack_trace_posix.cc
17*4882a593Smuzhiyun+++ b/base/debug/stack_trace_posix.cc
18*4882a593Smuzhiyun@@ -31,7 +31,7 @@
19*4882a593Smuzhiyun #if !defined(USE_SYMBOLIZE)
20*4882a593Smuzhiyun #include <cxxabi.h>
21*4882a593Smuzhiyun #endif
22*4882a593Smuzhiyun-#if !defined(__UCLIBC__) && !defined(_AIX)
23*4882a593Smuzhiyun+#if !defined(__UCLIBC__) && defined(__GLIBC__) && !defined(_AIX)
24*4882a593Smuzhiyun #include <execinfo.h>
25*4882a593Smuzhiyun #endif
26*4882a593Smuzhiyun
27*4882a593Smuzhiyun@@ -98,7 +98,7 @@ void DemangleSymbols(std::string* text) {
28*4882a593Smuzhiyun   // Note: code in this function is NOT async-signal safe (std::string uses
29*4882a593Smuzhiyun   // malloc internally).
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun-#if !defined(__UCLIBC__) && !defined(_AIX)
32*4882a593Smuzhiyun+#if !defined(__UCLIBC__) && defined(__GLIBC__) && !defined(_AIX)
33*4882a593Smuzhiyun   std::string::size_type search_from = 0;
34*4882a593Smuzhiyun   while (search_from < text->size()) {
35*4882a593Smuzhiyun     // Look for the start of a mangled symbol, from search_from.
36*4882a593Smuzhiyun@@ -145,7 +145,7 @@ class BacktraceOutputHandler {
37*4882a593Smuzhiyun   virtual ~BacktraceOutputHandler() = default;
38*4882a593Smuzhiyun };
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun-#if !defined(__UCLIBC__) && !defined(_AIX)
41*4882a593Smuzhiyun+#if !defined(__UCLIBC__) && defined(__GLIBC__) && !defined(_AIX)
42*4882a593Smuzhiyun void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
43*4882a593Smuzhiyun   // This should be more than enough to store a 64-bit number in hex:
44*4882a593Smuzhiyun   // 16 hex digits + 1 for null-terminator.
45*4882a593Smuzhiyun@@ -872,7 +872,7 @@ size_t CollectStackTrace(void** trace, size_t count) {
46*4882a593Smuzhiyun   // If we do not have unwind tables, then try tracing using frame pointers.
47*4882a593Smuzhiyun   return base::debug::TraceStackFramePointers(const_cast<const void**>(trace),
48*4882a593Smuzhiyun                                               count, 0);
49*4882a593Smuzhiyun-#elif !defined(__UCLIBC__) && !defined(_AIX)
50*4882a593Smuzhiyun+#elif !defined(__UCLIBC__) && defined(__GLIBC__) && !defined(_AIX)
51*4882a593Smuzhiyun   // Though the backtrace API man page does not list any possible negative
52*4882a593Smuzhiyun   // return values, we take no chance.
53*4882a593Smuzhiyun   return base::saturated_cast<size_t>(
54*4882a593Smuzhiyun@@ -886,13 +886,13 @@ void StackTrace::PrintWithPrefix(const char* prefix_string) const {
55*4882a593Smuzhiyun // NOTE: This code MUST be async-signal safe (it's used by in-process
56*4882a593Smuzhiyun // stack dumping signal handler). NO malloc or stdio is allowed here.
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun-#if !defined(__UCLIBC__) && !defined(_AIX)
59*4882a593Smuzhiyun+#if !defined(__UCLIBC__) && defined(__GLIBC__) && !defined(_AIX)
60*4882a593Smuzhiyun   PrintBacktraceOutputHandler handler;
61*4882a593Smuzhiyun   ProcessBacktrace(trace_, count_, prefix_string, &handler);
62*4882a593Smuzhiyun #endif
63*4882a593Smuzhiyun }
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun-#if !defined(__UCLIBC__) && !defined(_AIX)
66*4882a593Smuzhiyun+#if !defined(__UCLIBC__) && defined(__GLIBC__) && !defined(_AIX)
67*4882a593Smuzhiyun void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
68*4882a593Smuzhiyun                                           const char* prefix_string) const {
69*4882a593Smuzhiyun   StreamBacktraceOutputHandler handler(os);
70*4882a593Smuzhiyundiff --git a/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h b/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
71*4882a593Smuzhiyunindex 0ffd1bf775..0e413c69a5 100644
72*4882a593Smuzhiyun--- a/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
73*4882a593Smuzhiyun+++ b/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
74*4882a593Smuzhiyun@@ -58,7 +58,7 @@
75*4882a593Smuzhiyun #define HAVE_ERRNO_H 1
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun /* Define to 1 if you have the <execinfo.h> header file. */
78*4882a593Smuzhiyun-#define HAVE_EXECINFO_H 1
79*4882a593Smuzhiyun+#define HAVE_EXECINFO_H 0
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun /* Define to 1 if you have the <fcntl.h> header file. */
82*4882a593Smuzhiyun #define HAVE_FCNTL_H 1
83