Check for presence of sys/cpuset.h header and cpuset_getaffinity()
in configure instead of just using #ifdef __FreeBSD__ for that code.
---
configure.ac | 10 ++++++++++
src/util/virprocess.c | 7 +++++--
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 3a70375..1670a41 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2604,6 +2604,16 @@ AC_CHECK_DECLS([BRDGSFD, BRDGADD, BRDGDEL],
#include <net/if_bridgevar.h>
])
+# Check for BSD CPU affinity availability
+AC_CHECK_DECLS([cpuset_getaffinity],
+ [AC_DEFINE([HAVE_BSD_CPU_AFFINITY],
+ [1],
+ [whether BSD CPU affinity management is available])],
+ [],
+ [#include <sys/param.h>
+ #include <sys/cpuset.h>
+ ])
+
# Check if we need to look for ifconfig
if test "$want_ifconfig" = "yes"; then
AC_PATH_PROG([IFCONFIG_PATH], [ifconfig])
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index 827143c..83d0679 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -34,11 +34,14 @@
#ifdef __FreeBSD__
# include <sys/param.h>
-# include <sys/cpuset.h>
# include <sys/sysctl.h>
# include <sys/user.h>
#endif
+#ifdef HAVE_BSD_CPU_AFFINITY
+# include <sys/cpuset.h>
+#endif
+
#include "viratomic.h"
#include "virprocess.h"
#include "virerror.h"
@@ -457,7 +460,7 @@ realloc:
return 0;
}
-#elif defined(__FreeBSD__)
+#elif defined(HAVE_BSD_CPU_AFFINITY)
int virProcessSetAffinity(pid_t pid ATTRIBUTE_UNUSED,
virBitmapPtr map)
--
1.8.4.3