1From e0768318d6289672085b8f8f9a3425178e1475b5 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Fri, 7 Jul 2017 14:09:06 -0700
4Subject: [PATCH] chromium: musl: Avoid mallinfo() APIs on non-glibc/linux
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7Upstream-Status: Pending
8---
9 chromium/base/process/process_metrics_posix.cc    | 4 ++--
10 chromium/base/trace_event/malloc_dump_provider.cc | 2 ++
11 2 files changed, 4 insertions(+), 2 deletions(-)
12
13diff --git a/chromium/base/process/process_metrics_posix.cc b/chromium/base/process/process_metrics_posix.cc
14index 9d12c427bb3..900ab13519f 100644
15--- a/chromium/base/process/process_metrics_posix.cc
16+++ b/chromium/base/process/process_metrics_posix.cc
17@@ -119,14 +119,14 @@ size_t ProcessMetrics::GetMallocUsage() {
18   malloc_statistics_t stats = {0};
19   malloc_zone_statistics(nullptr, &stats);
20   return stats.size_in_use;
21-#elif defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
22+#elif defined(__GLIBC__) || defined(OS_CHROMEOS) || defined(OS_ANDROID)
23   struct mallinfo minfo = mallinfo();
24 #if BUILDFLAG(USE_TCMALLOC)
25   return minfo.uordblks;
26 #else
27   return minfo.hblkhd + minfo.arena;
28 #endif
29-#elif defined(OS_FUCHSIA)
30+#else
31   // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
32   return 0;
33 #endif
34diff --git a/chromium/base/trace_event/malloc_dump_provider.cc b/chromium/base/trace_event/malloc_dump_provider.cc
35index c327f486596..90129e851e8 100644
36--- a/chromium/base/trace_event/malloc_dump_provider.cc
37+++ b/chromium/base/trace_event/malloc_dump_provider.cc
38@@ -77,6 +77,7 @@ MallocDumpProvider::~MallocDumpProvider() = default;
39 // the current process.
40 bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
41                                       ProcessMemoryDump* pmd) {
42+#if defined(__GLIBC__)
43   {
44     base::AutoLock auto_lock(emit_metrics_on_memory_dump_lock_);
45     if (!emit_metrics_on_memory_dump_)
46@@ -170,6 +171,7 @@ bool MallocDumpProvider::OnMemoryDump(const MemoryDumpArgs& args,
47                           MemoryAllocatorDump::kUnitsBytes,
48                           resident_size - allocated_objects_size);
49   }
50+#endif // __GLIBC__
51   return true;
52 }
53
54