From: Collin Funk Date: Mon, 02 Jun 2025 01:34:11 GMT Subject: Re: [PATCH] builtin/gc: correct physical memory detection for OpenBSD / NetBSD Message-ID: <87h60z6i5o.fsf@gmail.com> Hi Brad, You wrote: > 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 > --- > builtin/gc.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) I confirm this patch is correct. Reviewed-by: Collin Funk I also used the following test program: ------------------------------------------------------------------------ #include #include #include #include #define ARRAY_SIZE(array) (sizeof array / sizeof *array) int main (void) { { unsigned int physmem; size_t len = sizeof physmem; static int mib[2] = { CTL_HW, HW_PHYSMEM }; if (!(sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0 && len == sizeof (physmem))) abort (); printf ("HW_PHYSMEM: %jd\n", (intmax_t) physmem); } { int64_t physmem; size_t len = sizeof physmem; static int mib[2] = { CTL_HW, HW_PHYSMEM64 }; if (!(sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0 && len == sizeof (physmem))) abort (); printf ("HW_PHYSMEM64: %jd\n", (intmax_t) physmem); } return 0; } ------------------------------------------------------------------------ On NetBSD 10.0: $ ./a.out HW_PHYSMEM: 4294967295 HW_PHYSMEM64: 17153662976 OpenBSD 7.6: $ ./a.out HW_PHYSMEM: 4286128128 HW_PHYSMEM64: 17171030016 Thanks for the fix. Collin