On Mon, Apr 21, 2025 at 01:51:47PM -0400, Eli Schwartz wrote: > diff --git a/meson.build b/meson.build > index f5d9ffcd7f..8037e536dd 100644 > --- a/meson.build > +++ b/meson.build > @@ -1058,10 +1058,6 @@ if compiler.has_header('alloca.h') > libgit_c_args += '-DHAVE_ALLOCA_H' > endif > > -if compiler.has_header('sys/sysinfo.h') > - libgit_c_args += '-DHAVE_SYSINFO' > -endif > - > # Windows has libgen.h and a basename implementation, but we still need our own > # implementation to threat things like drive prefixes specially. > if host_machine.system() == 'windows' or not compiler.has_header('libgen.h') > @@ -1272,6 +1268,10 @@ if host_machine.system() != 'windows' > endif > endif > > +if compiler.has_member('struct sysinfo', 'totalram', prefix: '#include <sys/sysinfo.h>') > + libgit_c_args += '-DHAVE_SYSINFO' > +endif Makes sense. We do have c9a51775a36 (builtin/gc.c: correct RAM calculation when using sysinfo, 2025-04-17) in flight which also causes us to use `struct sysinfo::mem_unit`. But I think it's fine to check for only one of the members here. Patrick