-# Since we define _GNU_SOURCE in the sources, must do so too in the
-# autoconf tests, as defining _GNU_SOURCE or not exposes
-# sched_setaffinity bits differently.
-saved_CFLAGS=$CFLAGS
-CFLAGS="$CFLAGS -D_GNU_SOURCE"
+AC_CHECK_TYPES([cpu_set_t],
+ [have_cpu_set_t="yes"],
+ [have_cpu_set_t="no"],
+ [#include <sched.h>])
+
+# Confirm that we have CPU_ZERO, and it actually works.
+AC_MSG_CHECKING([whether CPU_ZERO works])
+AH_TEMPLATE([HAVE_CPU_ZERO], [Defined to 1 if we have CPU_ZERO and it works])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include <sched.h>
+ int main()
+ {
+ cpu_set_t foo; CPU_ZERO(&foo);
+ return 0;
+ }
+ ]])
+],[
+ AC_DEFINE(HAVE_CPU_ZERO, 1)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+
+# Confirm that we have CPU_SET, and it actually works.
+AC_MSG_CHECKING([whether CPU_SET works])
+AH_TEMPLATE([HAVE_CPU_SET], [Defined to 1 if we have CPU_SET and it works])
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ #include <sched.h>
+ int main()
+ {
+ cpu_set_t foo, mask; CPU_SET(0, &foo);
+ return 0;
+ }
+ ]])
+],[
+ AC_DEFINE(HAVE_CPU_SET, 1)
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])