summaryrefslogtreecommitdiff
path: root/audio/webrtc-audio-processing0/files/patch-webrtc_base_checks.cc
diff options
context:
space:
mode:
Diffstat (limited to 'audio/webrtc-audio-processing0/files/patch-webrtc_base_checks.cc')
-rw-r--r--audio/webrtc-audio-processing0/files/patch-webrtc_base_checks.cc70
1 files changed, 70 insertions, 0 deletions
diff --git a/audio/webrtc-audio-processing0/files/patch-webrtc_base_checks.cc b/audio/webrtc-audio-processing0/files/patch-webrtc_base_checks.cc
new file mode 100644
index 000000000000..82ffcf49c7ec
--- /dev/null
+++ b/audio/webrtc-audio-processing0/files/patch-webrtc_base_checks.cc
@@ -0,0 +1,70 @@
+- Drop unnecessary dependency on libexecinfo for GCC build
+ https://chromium.googlesource.com/external/webrtc/+/7c4dedade158%5E!/
+
+--- webrtc/base/checks.cc.orig 2018-07-23 14:02:57 UTC
++++ webrtc/base/checks.cc
+@@ -11,16 +11,10 @@
+ // Most of this was borrowed (with minor modifications) from V8's and Chromium's
+ // src/base/logging.cc.
+
+-// Use the C++ version to provide __GLIBCXX__.
+ #include <cstdarg>
+ #include <cstdio>
+ #include <cstdlib>
+
+-#if defined(__GLIBCXX__) && !defined(__UCLIBC__)
+-#include <cxxabi.h>
+-#include <execinfo.h>
+-#endif
+-
+ #if defined(WEBRTC_ANDROID)
+ #define LOG_TAG "rtc"
+ #include <android/log.h> // NOLINT
+@@ -51,39 +45,6 @@ void PrintError(const char* format, ...) {
+ va_end(args);
+ }
+
+-// TODO(ajm): This works on Mac (although the parsing fails) but I don't seem
+-// to get usable symbols on Linux. This is copied from V8. Chromium has a more
+-// advanced stace trace system; also more difficult to copy.
+-void DumpBacktrace() {
+-#if defined(__GLIBCXX__) && !defined(__UCLIBC__)
+- void* trace[100];
+- int size = backtrace(trace, sizeof(trace) / sizeof(*trace));
+- char** symbols = backtrace_symbols(trace, size);
+- PrintError("\n==== C stack trace ===============================\n\n");
+- if (size == 0) {
+- PrintError("(empty)\n");
+- } else if (symbols == NULL) {
+- PrintError("(no symbols)\n");
+- } else {
+- for (int i = 1; i < size; ++i) {
+- char mangled[201];
+- if (sscanf(symbols[i], "%*[^(]%*[(]%200[^)+]", mangled) == 1) { // NOLINT
+- PrintError("%2d: ", i);
+- int status;
+- size_t length;
+- char* demangled = abi::__cxa_demangle(mangled, NULL, &length, &status);
+- PrintError("%s\n", demangled != NULL ? demangled : mangled);
+- free(demangled);
+- } else {
+- // If parsing failed, at least print the unparsed symbol.
+- PrintError("%s\n", symbols[i]);
+- }
+- }
+- }
+- free(symbols);
+-#endif
+-}
+-
+ FatalMessage::FatalMessage(const char* file, int line) {
+ Init(file, line);
+ }
+@@ -99,7 +60,6 @@ NO_RETURN FatalMessage::~FatalMessage() {
+ fflush(stderr);
+ stream_ << std::endl << "#" << std::endl;
+ PrintError(stream_.str().c_str());
+- DumpBacktrace();
+ fflush(stderr);
+ abort();
+ }