While later releases in the FreeBSD 10 series have a CPU_COUNT macro defined, FreeBSD 10.0 and 10.1 do not have this macro. Therefore we provide a basic fallback implementation of the macro for platforms where it is not defined.
Fixes: 433ba6228f9a ("examples/performance-thread: add pthread_shim app") Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> --- examples/performance-thread/pthread_shim/pthread_shim.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/examples/performance-thread/pthread_shim/pthread_shim.c b/examples/performance-thread/pthread_shim/pthread_shim.c index 7167311..113bafa 100644 --- a/examples/performance-thread/pthread_shim/pthread_shim.c +++ b/examples/performance-thread/pthread_shim/pthread_shim.c @@ -48,6 +48,21 @@ #define POSIX_ERRNO(x) (x) +/* some releases of FreeBSD 10, e.g. 10.0, don't have CPU_COUNT macro */ +#ifndef CPU_COUNT +#define CPU_COUNT(x) __cpu_count(x) + +static inline unsigned int +__cpu_count(const rte_cpuset_t *cpuset) +{ + unsigned int i, count = 0; + for (i = 0; i < RTE_MAX_LCORE; i++) + if (CPU_ISSET(i, cpuset)) + count++; + return count; +} +#endif + /* * this flag determines at run time if we override pthread * calls and map then to equivalent lthread calls -- 2.9.3