aboutsummaryrefslogtreecommitdiff
path: root/m4/tuklib_cpucores.m4
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2010-05-10 19:54:15 +0300
committerLasse Collin <lasse.collin@tukaani.org>2010-05-10 19:54:15 +0300
commit6548e304657e77d3a972053db3c41c5daf591113 (patch)
treec8ae4f8c278d244d9d4f17084b7095beea9ea9dc /m4/tuklib_cpucores.m4
parentShow both elapsed time and estimated remaining time in xz -v. (diff)
downloadxz-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.m433
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