From 6cf71c249abd60f2d2f6878ae436d4bab00aacbd Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 5 Mar 2014 15:49:54 -0700 Subject: [PATCH] Fix compile on CentOS/RHEL5 They don't have CPU_COUNT(), so add a helper for that. Signed-off-by: Jens Axboe --- configure | 19 +++++++++++++++++++ os/os.h | 16 ++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/configure b/configure index 4b006792..4a8d352c 100755 --- a/configure +++ b/configure @@ -649,6 +649,22 @@ fi echo "sched_setaffinity(3 arg) $linux_3arg_affinity" echo "sched_setaffinity(2 arg) $linux_2arg_affinity" +########################################## +# CPU_COUNT test +cpu_count="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + cpu_set_t mask; + return CPU_COUNT(&mask); +} +EOF +if compile_prog "" "" "cpu_count"; then + cpu_count="yes" +fi +echo "CPU_COUNT $cpu_count" + ########################################## # clock_gettime probe clock_gettime="no" @@ -1270,6 +1286,9 @@ fi if test "$rbd" = "yes" ; then output_sym "CONFIG_RBD" fi +if test "$cpu_count" = "yes" ; then + output_sym "CONFIG_CPU_COUNT" +fi echo "LIBS+=$LIBS" >> $config_host_mak echo "CFLAGS+=$CFLAGS" >> $config_host_mak diff --git a/os/os.h b/os/os.h index a6bc17f0..7f92d1bc 100644 --- a/os/os.h +++ b/os/os.h @@ -327,6 +327,22 @@ static inline unsigned int cpus_online(void) } #endif +#ifndef CONFIG_CPU_COUNT +#ifdef FIO_HAVE_CPU_AFFINITY +static inline int CPU_COUNT(os_cpu_mask_t *mask) +{ + int max_cpus = cpus_online(); + int nr_cpus, i; + + for (i = 0, nr_cpus = 0; i < max_cpus; i++) + if (fio_cpu_isset(mask, i)) + nr_cpus++; + + return nr_cpus; +} +#endif +#endif + #ifndef FIO_HAVE_GETTID static inline int gettid(void) { -- 2.25.1