From 5f469ad2bd97197845f9bee354eece4ecc3b27d7 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 23 Oct 2012 13:14:51 -0400 Subject: [PATCH] FS-4753 --resolve this should properly detect it everywhere --- Makefile.am | 5 ++++- configure.in | 2 ++ libs/apr/.update | 2 +- libs/apr/Makefile.in | 12 ++++++++++++ libs/apr/configure.in | 3 +++ libs/apr/threadproc/unix/thread.c | 3 ++- libs/sofia-sip/.update | 2 +- libs/sofia-sip/Makefile.am | 3 +++ libs/sofia-sip/configure.ac | 3 +++ libs/sofia-sip/libsofia-sip-ua/su/su_pthread_port.c | 7 ++----- src/mod/endpoints/mod_sofia/Makefile.am | 1 + 11 files changed, 34 insertions(+), 9 deletions(-) diff --git a/Makefile.am b/Makefile.am index f11f891aac..036baafeba 100644 --- a/Makefile.am +++ b/Makefile.am @@ -450,7 +450,10 @@ libs/curl/lib/libcurl.la: libs/curl libs/curl/Makefile @cd libs/curl && $(MAKE) @$(TOUCH_TARGET) -libs/apr/libapr-1.la: libs/apr libs/apr/.update +libs/apr/Makefile: libs/apr/Makefile.in libs/apr/config.status libs/apr libs/apr/.update + @cd libs/apr && ./config.status + +libs/apr/libapr-1.la: libs/apr/Makefile touch src/include/switch.h @cd libs/apr && $(MAKE) @$(TOUCH_TARGET) diff --git a/configure.in b/configure.in index 89cf47d79e..2c4835afc2 100644 --- a/configure.in +++ b/configure.in @@ -559,6 +559,8 @@ 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_getres, [AC_DEFINE(HAVE_CLOCK_GETRES, 1, [Define if you have clock_getres()])]) AC_CHECK_LIB(rt, clock_nanosleep, [AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define if you have clock_nanosleep()])]) +AC_CHECK_LIB(pthread, pthread_setschedprio, [AC_DEFINE(HAVE_PTHREAD_SETSCHEDPRIO, 1, [Define if you have pthread_setschedprio()])]) + AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket)) AC_CHECK_FILE(/dev/ptmx, [AC_DEFINE(HAVE_DEV_PTMX, 1, [Define if you have /dev/ptmx])]) diff --git a/libs/apr/.update b/libs/apr/.update index 4452df8ef3..a55ae9a4f4 100644 --- a/libs/apr/.update +++ b/libs/apr/.update @@ -1 +1 @@ -Thu Sep 27 13:36:14 CDT 2012 +Tue Oct 23 13:13:30 EDT 2012 diff --git a/libs/apr/Makefile.in b/libs/apr/Makefile.in index fe6ad501c9..5aef325fe5 100644 --- a/libs/apr/Makefile.in +++ b/libs/apr/Makefile.in @@ -66,6 +66,18 @@ apr-config.out: $(APR_CONFIG) build/apr_rules.out: build/apr_rules.mk sed 's,^\(apr_build.*=\).*$$,\1$(installbuilddir),' < build/apr_rules.mk > $@ +.PRECIOUS: Makefile + +Makefile: $(srcdir)/Makefile.in $(top_blddir)/config.status + cd $(srcdir) && ./config.status + +$(top_blddir)/config.status: $(top_srcdir)/configure + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: $(top_srcdir)/configure.in + cd $(srcdir) && autoconf + cd $(srcdir) && autoheader + install: $(TARGET_LIB) apr-config.out build/apr_rules.out $(APR_MKDIR) $(DESTDIR)$(libdir) $(DESTDIR)$(bindir) $(DESTDIR)$(installbuilddir) \ $(DESTDIR)$(libdir)/pkgconfig $(DESTDIR)$(includedir) diff --git a/libs/apr/configure.in b/libs/apr/configure.in index 68c030e124..412ee7e937 100644 --- a/libs/apr/configure.in +++ b/libs/apr/configure.in @@ -550,6 +550,7 @@ AC_CHECK_LIB(truerand, main) AC_SEARCH_LIBS(modf, m) AC_CHECK_LIB(dl, dlopen) + dnl ----------------------------- Checking for Threads echo "${nl}Checking for Threads..." @@ -1619,6 +1620,8 @@ APR_CHECK_DEFINE_FILES(POLLIN, poll.h sys/poll.h) if test "$threads" = "1"; then APR_CHECK_DEFINE(PTHREAD_PROCESS_SHARED, pthread.h) AC_CHECK_FUNCS(pthread_mutexattr_setpshared) + AC_CHECK_LIB(pthread, pthread_setschedprio, [AC_DEFINE(HAVE_PTHREAD_SETSCHEDPRIO, 1, [Define if you have pthread_setschedprio()])]) + # Some systems have setpshared and define PROCESS_SHARED, but don't # really support PROCESS_SHARED locks. So, we must validate that we # can go through the steps without receiving some sort of system error. diff --git a/libs/apr/threadproc/unix/thread.c b/libs/apr/threadproc/unix/thread.c index 786f83069e..391e5368c8 100644 --- a/libs/apr/threadproc/unix/thread.c +++ b/libs/apr/threadproc/unix/thread.c @@ -174,7 +174,8 @@ APR_DECLARE(apr_status_t) apr_thread_create(apr_thread_t **new, } if ((stat = pthread_create((*new)->td, temp, dummy_worker, (*new))) == 0) { -#ifndef __APPLE__ + +#ifdef HAVE_PTHREAD_SETSCHEDPRIO if (attr && attr->priority) { pthread_t *thread = (*new)->td; pthread_setschedprio(*thread, attr->priority); diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index ecae8fc840..22f5eeb029 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Mon Oct 1 12:24:45 CDT 2012 +Tue Oct 23 13:13:35 EDT 2012 diff --git a/libs/sofia-sip/Makefile.am b/libs/sofia-sip/Makefile.am index 069007d300..7279695865 100644 --- a/libs/sofia-sip/Makefile.am +++ b/libs/sofia-sip/Makefile.am @@ -40,6 +40,9 @@ dist_man_MANS = # man/man1/localinfo.1 man/man1/addrinfo.1 \ # man/man1/stunc.1 man/man1/sip-dig.1 +noop: + @echo ok + $(dist_man_MANS): manpages manpages: diff --git a/libs/sofia-sip/configure.ac b/libs/sofia-sip/configure.ac index 196d815157..1bce33e178 100644 --- a/libs/sofia-sip/configure.ac +++ b/libs/sofia-sip/configure.ac @@ -254,6 +254,9 @@ if test x"$have_check" = "xyes"; then fi AC_CHECK_HEADERS([fnmatch.h]) +AC_CHECK_LIB(pthread, pthread_setschedprio, [AC_DEFINE(HAVE_PTHREAD_SETSCHEDPRIO, 1, [Define if you have pthread_setschedprio()])]) + + dnl dl is currently used only in testing AC_CHECK_LIB([dl], [dlopen], [ dnl Note: -ldl is not added to LIBS diff --git a/libs/sofia-sip/libsofia-sip-ua/su/su_pthread_port.c b/libs/sofia-sip/libsofia-sip-ua/su/su_pthread_port.c index db314b28dd..5eb391f38d 100644 --- a/libs/sofia-sip/libsofia-sip-ua/su/su_pthread_port.c +++ b/libs/sofia-sip/libsofia-sip-ua/su/su_pthread_port.c @@ -269,13 +269,10 @@ int su_pthreaded_port_start(su_port_create_f *create, pthread_mutex_lock(arg.mutex); if (pthread_create(&tid, &attr, su_pthread_port_clone_main, &arg) == 0) { -#if defined (WIN32) - /* this needs to be revisited when pthread for Windows supports thread priority settings */ -#elif defined (__APPLE__) - /* no such function on Apple */ -#else +#ifdef HAVE_PTHREAD_SETSCHEDPRIO pthread_setschedprio(tid, 99); #endif + pthread_cond_wait(arg.cv, arg.mutex); thread_created = 1; } diff --git a/src/mod/endpoints/mod_sofia/Makefile.am b/src/mod/endpoints/mod_sofia/Makefile.am index efd6b2c385..7828c5eb49 100644 --- a/src/mod/endpoints/mod_sofia/Makefile.am +++ b/src/mod/endpoints/mod_sofia/Makefile.am @@ -41,6 +41,7 @@ BUILT_SOURCES = $(SOFIALA) $(mod_sofia_la_SOURCES) : $(BUILT_SOURCES) $(SOFIALA): $(SOFIA_DIR) $(SOFIA_DIR)/.update + cd $(SOFIA_BUILDDIR) && $(MAKE) noop cd $(SOFIA_BUILDDIR) && $(MAKE) SOFIA_CFLAGS="$(SWITCH_AM_CFLAGS)" $(TOUCH_TARGET)