attempt to properly check if we can use CPU_SET with sched_setaffinity because some older libc had gnu extensions in the definitions of CPU_SET which we do not allow (FSBUILD-226)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@16263 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2010-01-12 18:31:13 +00:00
parent 66c6760d27
commit ea5c0c2111
4 changed files with 21 additions and 2 deletions

View File

@ -8,6 +8,7 @@ m4_include([build/config/ax_lib_mysql.m4])
m4_include([build/config/ax_check_java.m4])
m4_include([build/config/erlang.m4])
m4_include([build/config/odbc.m4])
m4_include([build/config/sched_setaffinity.m4])
m4_include([libs/apr/build/apr_common.m4])
m4_include([libs/sofia-sip/m4/sac-pkg-config.m4])
m4_include([libs/sofia-sip/m4/sac-openssl.m4])

View File

@ -0,0 +1,16 @@
AC_DEFUN([AX_HAVE_CPU_SET], [
#
# Check for the Linux functions for controlling processor affinity.
#
# LINUX: sched_setaffinity
AC_CHECK_FUNCS(sched_setaffinity sched_getaffinity)
if test "$ac_cv_func_sched_setaffinity" = "yes" ; then
AC_CACHE_CHECK([whether the CPU_SET and CPU_ZERO macros are defined],
ac_cv_cpu_set_defined,[
AC_TRY_COMPILE( [#include <sched.h>],[ cpu_set_t t; CPU_ZERO(&t); CPU_SET(1,&t); ],
ac_cv_cpu_set_defined=yes,ac_cv_cpu_set_defined=no)])
if test "$ac_cv_cpu_set_defined" = "yes" ; then
AC_DEFINE(HAVE_CPU_SET_MACROS,1,[Define if CPU_SET and CPU_ZERO defined])
fi
fi
])

View File

@ -431,9 +431,11 @@ AC_FUNC_MALLOC
AC_TYPE_SIGNAL
AC_FUNC_STRFTIME
AC_CHECK_FUNCS([gethostname vasprintf mmap mlock mlockall usleep getifaddrs])
AC_CHECK_FUNCS([sched_setscheduler sched_setaffinity setpriority setrlimit setgroups initgroups])
AC_CHECK_FUNCS([sched_setscheduler setpriority setrlimit setgroups initgroups])
AC_CHECK_FUNCS([wcsncmp setgroups asprintf setenv pselect gettimeofday localtime_r gmtime_r strcasecmp stricmp _stricmp])
AX_HAVE_CPU_SET
AC_CHECK_LIB(rt, clock_gettime, [AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Define if you have clock_gettime()])])
AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])])
AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket))

View File

@ -537,7 +537,7 @@ SWITCH_MODULE_RUNTIME_FUNCTION(softtimer_runtime)
switch_time_t ts = 0, last = 0;
int fwd_errs = 0, rev_errs = 0;
#ifdef HAVE_SCHED_SETAFFINITY
#ifdef HAVE_CPU_SET_MACROS
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(0, &set);