From 5a68f814e9489754fcdb34d896d9d3bff39e010e Mon Sep 17 00:00:00 2001 From: Jim Huang Date: Thu, 15 Mar 2018 01:17:12 +0800 Subject: [PATCH] Don't assume availability of get_nprocs_conf() get_nprocs_conf() is Linux-specific, and on macOS, it is absent. Our own implementation of get_nprocs_conf() on macOS is provided for compatibility. --- src/pow_sse.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/pow_sse.c b/src/pow_sse.c index 38939da..c7db6ef 100644 --- a/src/pow_sse.c +++ b/src/pow_sse.c @@ -29,11 +29,28 @@ #include #include #include -#include #include "pow_sse.h" #include "./hash/curl.h" #include "constants.h" +/* Required for get_nprocs_conf() on Linux */ +#ifdef NPROCS +#include +#endif + +/* On Mac OS X, define our own get_nprocs_conf() */ +#if defined (__APPLE__) || defined(__FreeBSD__) +#include +unsigned int get_nprocs_conf() +{ + int numProcessors = 0; + size_t size = sizeof(numProcessors); + if (sysctlbyname("hw.ncpu", &numProcessors, &size, NULL, 0)) return 1; + return (unsigned int) numProcessors; +} +#define NPROCS +#endif + pthread_mutex_t *pow_sse_mutex; int *stopSSE; long long int *countSSE;