util: Cleanup generation of dirpath.h
[openafs.git] / acinclude.m4
index dd2a137..4764f5e 100644 (file)
@@ -1258,6 +1258,7 @@ AC_CHECK_HEADERS([ \
                   ncurses.h \
                   netdb.h \
                   netinet/in.h \
+                  pthread_np.h \
                   pwd.h \
                   regex.h \
                   resolv.h \
@@ -1553,6 +1554,48 @@ else
     AC_MSG_RESULT(no)
 fi
 
+dnl Look for "non-portable" pthreads functions.
+save_LIBS="$LIBS"
+LIBS="$LIBS $PTHREAD_LIBS"
+AC_CHECK_FUNCS([ \
+       pthread_set_name_np \
+       pthread_setname_np \
+])
+
+dnl Sadly, there are three different versions of pthread_setname_np.
+dnl Try to cater for all of them.
+if test "$ac_cv_func_pthread_setname_np" = "yes" ; then
+    AC_MSG_CHECKING([for signature of pthread_setname_np])
+    AC_TRY_COMPILE([
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+], [pthread_setname_np(pthread_self(), "test", (void *)0)], [
+       AC_MSG_RESULT([three arguments])
+       pthread_setname_np_args=3], [
+       AC_TRY_COMPILE([
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+], [pthread_setname_np(pthread_self(), "test")], [
+           AC_MSG_RESULT([two arguments])
+           pthread_setname_np_args=2], [
+           AC_TRY_COMPILE([
+#include <pthread.h>
+#ifdef HAVE_PTHREAD_NP_H
+#include <pthread_np.h>
+#endif
+], [pthread_setname_np("test")], [
+               AC_MSG_RESULT([one argument])
+               pthread_setname_np_args=1], [pthread_setname_np_args=0])
+])
+])
+AC_DEFINE_UNQUOTED([PTHREAD_SETNAME_NP_ARGS], $pthread_setname_np_args, [Number of arguments required by pthread_setname_np() function])
+fi
+LIBS="$save_LIBS"
+
 AC_TYPE_SIGNAL
 OPENAFS_RETSIGTYPE
 AC_CHECK_SIZEOF(void *)
@@ -1680,6 +1723,7 @@ AC_SUBST(DOCBOOK_STYLESHEETS)
 
 OPENAFS_OSCONF
 OPENAFS_FUSE
+OPENAFS_SWIG
 
 TOP_SRCDIR="${srcdir}/src"
 dnl