diff options
author | Lasse Collin <lasse.collin@tukaani.org> | 2010-05-10 19:54:15 +0300 |
---|---|---|
committer | Lasse Collin <lasse.collin@tukaani.org> | 2010-05-10 19:54:15 +0300 |
commit | 6548e304657e77d3a972053db3c41c5daf591113 (patch) | |
tree | c8ae4f8c278d244d9d4f17084b7095beea9ea9dc /m4/tuklib_cpucores.m4 | |
parent | Show both elapsed time and estimated remaining time in xz -v. (diff) | |
download | xz-6548e304657e77d3a972053db3c41c5daf591113.tar.xz |
Updates to tuklib_physmem and tuklib_cpucores.
Don't use #error to generate compile error, because some
compilers actually don't take it as an error. This fixes
tuklib_physmem on IRIX.
Fix incorrect error check for sysconf() return values.
Add AIX, HP-UX, and Tru64 specific code to detect the
amount RAM.
Add HP-UX specific code to detect the number of CPU cores.
Thanks a lot to Peter O'Gorman for initial patches,
testing, and debugging these fixes.
Diffstat (limited to 'm4/tuklib_cpucores.m4')
-rw-r--r-- | m4/tuklib_cpucores.m4 | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/m4/tuklib_cpucores.m4 b/m4/tuklib_cpucores.m4 index d48f2e5e..9e295c8f 100644 --- a/m4/tuklib_cpucores.m4 +++ b/m4/tuklib_cpucores.m4 @@ -8,8 +8,10 @@ # Check how to find out the number of available CPU cores in the system. # This information is used by tuklib_cpucores.c. # -# Currently this supports sysctl() (BSDs, OS/2) and sysconf() (GNU/Linux, -# Solaris, IRIX, Cygwin). +# Supported methods: +# - sysctl(): BSDs, OS/2 +# - sysconf(): GNU/Linux, Solaris, Tru64, IRIX, AIX, Cygwin +# - pstat_getdynamic(): HP-UX # # COPYING # @@ -63,11 +65,25 @@ main(void) #endif return 0; } -]])], [ - tuklib_cv_cpucores_method=sysconf -], [ +]])], [tuklib_cv_cpucores_method=sysconf], [ + +AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +#include <sys/param.h> +#include <sys/pstat.h> + +int +main(void) +{ + struct pst_dynamic pst; + pstat_getdynamic(&pst, sizeof(pst), 1, 0); + (void)pst.psd_proc_cnt; + return 0; +} +]])], [tuklib_cv_cpucores_method=pstat_getdynamic], [ + tuklib_cv_cpucores_method=unknown -])])]) +])])])]) + case $tuklib_cv_cpucores_method in sysctl) AC_DEFINE([TUKLIB_CPUCORES_SYSCTL], [1], @@ -80,5 +96,10 @@ case $tuklib_cv_cpucores_method in can be detected with sysconf(_SC_NPROCESSORS_ONLN) or sysconf(_SC_NPROC_ONLN).]) ;; + pstat_getdynamic) + AC_DEFINE([TUKLIB_CPUCORES_PSTAT_GETDYNAMIC], [1], + [Define to 1 if the number of available CPU cores + can be detected with pstat_getdynamic().]) + ;; esac ])dnl |