[PATCH] builtin/gc: correct physical memory detection for OpenBSD / NetBSD
From: Brad Smith <hidden>
Date: 2025-06-01 08:24:14
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Brad Smith <hidden>
Date: 2025-06-01 08:24:14
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- builtin/gc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/builtin/gc.c b/builtin/gc.c
index e690453d4f..eacb445085 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c@@ -431,7 +431,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;
@@ -439,6 +439,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
--
2.49.0