aboutsummaryrefslogtreecommitdiffstats
path: root/testing/opencascade/no_mallinfo.patch
blob: 6aef939aedb0d2e9b9c6473cf921ebb2399818ff (plain)
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
mallinfo() is not provided in musl. This patch uses getrusage() instead to use
the maximum resident set size as a (poor) approximation of the heap usage.
--- occt-V7_3_0p3.bin/src/OSD/OSD_MemInfo.cxx
+++ occt-V7_3_0p3/src/OSD/OSD_MemInfo.cxx
@@ -35,6 +35,9 @@
 #include <sstream>
 #include <fstream>
 
+#include <sys/time.h>
+#include <sys/resource.h>
+
 #include <OSD_MemInfo.hxx>
 
 // =======================================================================
@@ -147,8 +150,11 @@
   }
   aFile.close();
 
-  struct mallinfo aMI = mallinfo();
-  myCounters[MemHeapUsage] = aMI.uordblks;
+  // mallinfo() not available with musl. We use getrusage to approximate it
+  // with the maximum resident set size
+  struct rusage ru = { .ru_maxrss = 0 };
+  getrusage(RUSAGE_SELF, &ru);
+  myCounters[MemHeapUsage] = ru.ru_maxrss;
 
 #elif (defined(__APPLE__))
   struct task_basic_info aTaskInfo;