aboutsummaryrefslogtreecommitdiffstats
path: root/testing/thunderbird/fix-tools.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/thunderbird/fix-tools.patch')
-rw-r--r--testing/thunderbird/fix-tools.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/testing/thunderbird/fix-tools.patch b/testing/thunderbird/fix-tools.patch
new file mode 100644
index 0000000000..edecb7f678
--- /dev/null
+++ b/testing/thunderbird/fix-tools.patch
@@ -0,0 +1,45 @@
+--- a/tools/profiler/core/platform.h
++++ b/tools/profiler/core/platform.h
+@@ -29,6 +29,8 @@
+ #ifndef TOOLS_PLATFORM_H_
+ #define TOOLS_PLATFORM_H_
+
++#include <sys/types.h>
++
+ #include <stdint.h>
+ #include <math.h>
+ #include "MainThreadUtils.h"
+--- a/tools/profiler/lul/LulElf.cpp
++++ b/tools/profiler/lul/LulElf.cpp
+@@ -469,10 +469,10 @@ string FormatIdentifier(unsigned char identifier[16]) {
+ // Return the non-directory portion of FILENAME: the portion after the
+ // last slash, or the whole filename if there are no slashes.
+ string BaseFileName(const string& filename) {
+- // Lots of copies! basename's behavior is less than ideal.
+- char* c_filename = strdup(filename.c_str());
+- string base = basename(c_filename);
+- free(c_filename);
++ // basename's behavior is less than ideal so avoid it
++ const char *c_filename = filename.c_str();
++ const char *p = strrchr(c_filename, '/');
++ string base = p ? p+1 : c_filename;
+ return base;
+ }
+
+--- a/tools/profiler/core/platform-linux-android.cpp
++++ b/tools/profiler/core/platform-linux-android.cpp
+@@ -497,8 +497,10 @@ static void PlatformInit(PSLockRef aLock) {}
+ ucontext_t sSyncUContext;
+
+ void Registers::SyncPopulate() {
+- if (!getcontext(&sSyncUContext)) {
+- PopulateRegsFromContext(*this, &sSyncUContext);
+- }
++ #if defined(__GLIBC__)
++ if (!getcontext(&sSyncUContext)) {
++ PopulateRegsFromContext(*this, &sSyncUContext);
++ }
++ #endif
+ }
+ #endif
+