Fix CPU core count detection on QNX.
It tried to use sysctl() on QNX but - it broke the build because sysctl() needs -lsocket on QNX; - sysctl() doesn't work for detecting the core count on QNX even if it compiled. sysconf() works. An alternative would have been to use QNX-specific SYSPAGE_ENTRY(num_cpu) from <sys/syspage.h>. Thanks to Ole André Vadla Ravnås.
This commit is contained in:
parent
e0ea6737b0
commit
4c544d2410
|
@ -11,7 +11,7 @@
|
||||||
# Supported methods:
|
# Supported methods:
|
||||||
# - GetSystemInfo(): Windows (including Cygwin)
|
# - GetSystemInfo(): Windows (including Cygwin)
|
||||||
# - sysctl(): BSDs, OS/2
|
# - sysctl(): BSDs, OS/2
|
||||||
# - sysconf(): GNU/Linux, Solaris, Tru64, IRIX, AIX, Cygwin (but
|
# - sysconf(): GNU/Linux, Solaris, Tru64, IRIX, AIX, QNX, Cygwin (but
|
||||||
# GetSystemInfo() is used on Cygwin)
|
# GetSystemInfo() is used on Cygwin)
|
||||||
# - pstat_getdynamic(): HP-UX
|
# - pstat_getdynamic(): HP-UX
|
||||||
#
|
#
|
||||||
|
@ -61,10 +61,17 @@ main(void)
|
||||||
}
|
}
|
||||||
]])], [tuklib_cv_cpucores_method=cpuset], [
|
]])], [tuklib_cv_cpucores_method=cpuset], [
|
||||||
|
|
||||||
# Look for sysctl() solution first, because on OS/2, both sysconf()
|
# On OS/2, both sysconf() and sysctl() pass the tests in this file,
|
||||||
# and sysctl() pass the tests in this file, but only sysctl()
|
# but only sysctl() works. On QNX it's the opposite: only sysconf() works
|
||||||
# actually works.
|
# (although it assumes that _POSIX_SOURCE, _XOPEN_SOURCE, and _POSIX_C_SOURCE
|
||||||
|
# are undefined or alternatively _QNX_SOURCE is defined).
|
||||||
|
#
|
||||||
|
# We test sysctl() first and intentionally break the sysctl() test on QNX
|
||||||
|
# so that sysctl() is never used on QNX.
|
||||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#ifdef __QNX__
|
||||||
|
compile error
|
||||||
|
#endif
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#ifdef HAVE_SYS_PARAM_H
|
#ifdef HAVE_SYS_PARAM_H
|
||||||
# include <sys/param.h>
|
# include <sys/param.h>
|
||||||
|
|
Loading…
Reference in New Issue