aboutsummaryrefslogtreecommitdiffstats
path: root/builtin/gc.c
diff options
context:
space:
mode:
authorBrad Smith <brad@comstyle.com>2025-06-01 04:24:12 -0400
committerJunio C Hamano <gitster@pobox.com>2025-06-01 19:01:07 -0700
commit35c1d592cd11429e402501df3ad68bcd0fb86bef (patch)
treef77945fab83b3fb7fbbbe99a132e1e9411b9b1c3 /builtin/gc.c
parent7014b55638da979331baf8dc31c4e1d697cf2d67 (diff)
downloadgit-35c1d592cd11429e402501df3ad68bcd0fb86bef.tar.gz
builtin/gc: correct physical memory detection for OpenBSD / NetBSD
OpenBSD / NetBSD use HW_PHYSMEM64 to detect the amount of physical memory in a system. HW_PHYSMEM will not provide the correct amount on a system with >=4GB of memory. Signed-off-by: Brad Smith <brad@comstyle.com> Reviewed-by: Collin Funk <collin.funk1@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/gc.c')
-rw-r--r--builtin/gc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/builtin/gc.c b/builtin/gc.c
index e33ba946e4..7dc94f243d 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -516,7 +516,7 @@ static uint64_t total_ram(void)
total *= (uint64_t)si.mem_unit;
return total;
}
-#elif defined(HAVE_BSD_SYSCTL) && (defined(HW_MEMSIZE) || defined(HW_PHYSMEM))
+#elif defined(HAVE_BSD_SYSCTL) && (defined(HW_MEMSIZE) || defined(HW_PHYSMEM) || defined(HW_PHYSMEM64))
int64_t physical_memory;
int mib[2];
size_t length;
@@ -524,6 +524,8 @@ static uint64_t total_ram(void)
mib[0] = CTL_HW;
# if defined(HW_MEMSIZE)
mib[1] = HW_MEMSIZE;
+# elif defined(HW_PHYSMEM64)
+ mib[1] = HW_PHYSMEM64;
# else
mib[1] = HW_PHYSMEM;
# endif