Index: configure.ac ================================================================== --- configure.ac +++ configure.ac @@ -901,11 +901,11 @@ ;; *) AC_MSG_RESULT(POSIX) dnl Use -Wp, as we only use it for the preprocessor. - AX_CHECK_COMPILER_FLAGS(-Wp,-pthread, [ + AX_CHECK_COMPILER_FLAGS([-Wp,-pthread], [ CPPFLAGS="$CPPFLAGS -Wp,-pthread" ], [ CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_THREAD_SAFE" ]) @@ -941,10 +941,11 @@ AC_CHECK_FUNC(sched_yield, [ AC_DEFINE(OF_HAVE_SCHED_YIELD, 1, [Whether we have sched_yield()]) ]) + AC_CHECK_FUNCS(pthread_attr_getschedpolicy) AC_CHECK_FUNCS(pthread_attr_setinheritsched) AC_CHECK_HEADERS(pthread_np.h, [], [], [#include ]) AC_CHECK_FUNCS(pthread_set_name_np pthread_setname_np, break) ;; Index: src/threading_pthread.m ================================================================== --- src/threading_pthread.m +++ src/threading_pthread.m @@ -39,17 +39,21 @@ * thread. */ OF_CONSTRUCTOR() { pthread_attr_t pattr; +#ifdef HAVE_PTHREAD_ATTR_GETSCHEDPOLICY int policy; +#endif struct sched_param param; OF_ENSURE(pthread_attr_init(&pattr) == 0); +#ifdef HAVE_PTHREAD_ATTR_GETSCHEDPOLICY OF_ENSURE(pthread_attr_getschedpolicy(&pattr, &policy) == 0); OF_ENSURE((minPrio = sched_get_priority_min(policy)) != -1); OF_ENSURE((maxPrio = sched_get_priority_max(policy)) != -1); +#endif OF_ENSURE(pthread_attr_getschedparam(&pattr, ¶m) == 0); normalPrio = param.sched_priority; pthread_attr_destroy(&pattr);