Fix compile on CentOS/RHEL5
They don't have CPU_COUNT(), so add a helper for that.
Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/configure b/configure
index 4b00679..4a8d352 100755
--- a/configure
+++ b/configure
@@ -650,6 +650,22 @@
echo "sched_setaffinity(2 arg) $linux_2arg_affinity"
##########################################
+# CPU_COUNT test
+cpu_count="no"
+cat > $TMPC << EOF
+#include <sched.h>
+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"
cat > $TMPC << EOF
@@ -1270,6 +1286,9 @@
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 a6bc17f..7f92d1b 100644
--- a/os/os.h
+++ b/os/os.h
@@ -327,6 +327,22 @@
}
#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)
{