ports/devel/git/patches/patch-builtin_gc_c

32 lines
906 B
Text

Replace sysctl HW_PHYSMEM/MEMSIZE/whatever madness with sysconf.
Index: builtin/gc.c
--- builtin/gc.c.orig
+++ builtin/gc.c
@@ -369,20 +369,13 @@ static uint64_t total_ram(void)
if (!sysinfo(&si))
return si.totalram;
-#elif defined(HAVE_BSD_SYSCTL) && (defined(HW_MEMSIZE) || defined(HW_PHYSMEM))
- int64_t physical_memory;
- int mib[2];
- size_t length;
+#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
+ long phys_pages, pagesize;
- mib[0] = CTL_HW;
-# if defined(HW_MEMSIZE)
- mib[1] = HW_MEMSIZE;
-# else
- mib[1] = HW_PHYSMEM;
-# endif
- length = sizeof(int64_t);
- if (!sysctl(mib, 2, &physical_memory, &length, NULL, 0))
- return physical_memory;
+ phys_pages = sysconf(_SC_PHYS_PAGES);
+ pagesize = sysconf(_SC_PAGESIZE);
+ if (phys_pages != -1 && pagesize != -1)
+ return (uint64_t)phys_pages * (uint64_t)pagesize;
#elif defined(GIT_WINDOWS_NATIVE)
MEMORYSTATUSEX memInfo;