Den 18. apr. 2014 kl. 18:11 skrev Pádraig Brady <p...@draigbrady.com>:
> On 04/18/2014 10:16 AM, Natanael Copa wrote: >> * lib/physmem.c (physmem_total): Some systems like musl libc does not >> (yet) support _SC_PHYS_PAGES. Use the linux syscall sysinfo as fallback >> if _SC_PHYS_PAGES or _SC_PAGESIZE fails. >> >> Signed-off-by: Natanael Copa <nc...@alpinelinux.org> >> --- >> Changes since v1: >> - prefer use _SC_PHYS_PAGES * _SC_PAGESIZE if available and use >> sysinfo as fallback. >> - check for and use mem_unit, member of struct sysinfo. >> >> lib/physmem.c | 13 ++++++++++++- >> m4/physmem.m4 | 3 ++- >> 2 files changed, 14 insertions(+), 2 deletions(-) >> >> diff --git a/lib/physmem.c b/lib/physmem.c >> index 7a67fb3..53afdd9 100644 >> --- a/lib/physmem.c >> +++ b/lib/physmem.c >> @@ -32,8 +32,11 @@ >> # include <sys/sysmp.h> >> #endif >> >> -#if HAVE_SYS_SYSINFO_H && HAVE_MACHINE_HAL_SYSINFO_H >> +#if HAVE_SYS_SYSINFO_H >> # include <sys/sysinfo.h> >> +#endif >> + >> +#if HAVE_MACHINE_HAL_SYSINFO_H >> # include <machine/hal_sysinfo.h> >> #endif >> >> @@ -90,6 +93,14 @@ physmem_total (void) >> } >> #endif >> >> +#if HAVE_SYSINFO && HAVE_STRUCT_SYSINFO_MEM_UNIT >> + { /* This works on linux */ >> + struct sysinfo si; >> + if (sysinfo(&si) == 0) >> + return (double) si.totalram * (double) si.mem_unit; >> + } >> +#endif >> + >> #if HAVE_PSTAT_GETSTATIC >> { /* This works on hpux11. */ >> struct pst_static pss; >> diff --git a/m4/physmem.m4 b/m4/physmem.m4 >> index ff3d268..a1179eb 100644 >> --- a/m4/physmem.m4 >> +++ b/m4/physmem.m4 >> @@ -40,6 +40,7 @@ AC_DEFUN([gl_PHYSMEM], >> #endif >> ]) >> >> - AC_CHECK_FUNCS([pstat_getstatic pstat_getdynamic sysmp getsysinfo sysctl >> table]) >> + AC_CHECK_FUNCS([pstat_getstatic pstat_getdynamic sysmp getsysinfo sysctl >> table sysinfo]) >> + AC_CHECK_MEMBERS([struct sysinfo.mem_unit],,, [[#include >> <sys/sysinfo.h>]]) >> AC_REQUIRE([gl_SYS__SYSTEM_CONFIGURATION]) >> ]) >> > > looks good, > though you might as well also adjust physmem_available() similarly. > I've done that in the attached and will push later. looks good to me. thanks! > > thanks, > Pádraig. > <musl-physmem_available.patch>