mirror of
https://git.tukaani.org/xz.git
synced 2024-04-04 12:36:23 +02:00
3084d662d2
the number of CPU cores. Added support for using sysinfo() on Linux systems whose libc lacks appropriate sysconf() support (at least dietlibc). The Autoconf macros were split into separate files, and CPU core count detection was moved from hardware.c to cpucores.h. The core count isn't used for anything real for now, so a problematic part in process.c was commented out.
74 lines
1.9 KiB
Text
74 lines
1.9 KiB
Text
dnl ###########################################################################
|
|
dnl
|
|
dnl lc_PHYSMEM - Check how to find out the amount of physical memory
|
|
dnl
|
|
dnl - sysconf() gives all the needed info on GNU+Linux and Solaris.
|
|
dnl - BSDs use sysctl().
|
|
dnl - sysinfo() works on Linux/dietlibc and probably on other Linux systems
|
|
dnl whose libc may lack sysconf().
|
|
dnl
|
|
dnl ###########################################################################
|
|
dnl
|
|
dnl Author: Lasse Collin
|
|
dnl
|
|
dnl This file has been put into the public domain.
|
|
dnl You can do whatever you want with this file.
|
|
dnl
|
|
dnl ###########################################################################
|
|
AC_DEFUN([lc_PHYSMEM], [
|
|
AC_MSG_CHECKING([how to detect the amount of physical memory])
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
|
#include <unistd.h>
|
|
int
|
|
main(void)
|
|
{
|
|
long i;
|
|
i = sysconf(_SC_PAGESIZE);
|
|
i = sysconf(_SC_PHYS_PAGES);
|
|
return 0;
|
|
}
|
|
]])], [
|
|
AC_DEFINE([HAVE_PHYSMEM_SYSCONF], [1],
|
|
[Define to 1 if the amount of physical memory can be detected
|
|
with sysconf(_SC_PAGESIZE) and sysconf(_SC_PHYS_PAGES).])
|
|
AC_MSG_RESULT([sysconf])
|
|
], [
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
|
#include <sys/types.h>
|
|
#ifdef HAVE_SYS_PARAM_H
|
|
# include <sys/param.h>
|
|
#endif
|
|
#include <sys/sysctl.h>
|
|
int
|
|
main(void)
|
|
{
|
|
int name[2] = { CTL_HW, HW_PHYSMEM };
|
|
unsigned long mem;
|
|
size_t mem_ptr_size = sizeof(mem);
|
|
sysctl(name, 2, &mem, &mem_ptr_size, NULL, NULL);
|
|
return 0;
|
|
}
|
|
]])], [
|
|
AC_DEFINE([HAVE_PHYSMEM_SYSCTL], [1],
|
|
[Define to 1 if the amount of physical memory can be detected
|
|
with sysctl().])
|
|
AC_MSG_RESULT([sysctl])
|
|
], [
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
|
#include <sys/sysinfo.h>
|
|
int
|
|
main(void)
|
|
{
|
|
struct sysinfo si;
|
|
sysinfo(&si);
|
|
return 0;
|
|
}
|
|
]])], [
|
|
AC_DEFINE([HAVE_PHYSMEM_SYSINFO], [1],
|
|
[Define to 1 if the amount of physical memory can be detected
|
|
with sysinfo().])
|
|
AC_MSG_RESULT([sysinfo])
|
|
], [
|
|
AC_MSG_RESULT([unknown])
|
|
])])])
|
|
])dnl lc_PHYSMEM
|