-# pthread.m4
+# pthread.m4 serial 3
dnl Copyright (C) 2009-2011 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
test $ac_cv_type_pthread_t != yes ||
test $ac_cv_type_pthread_spinlock_t != yes; then
PTHREAD_H='pthread.h'
+ else
+ PTHREAD_H=
fi
+ AC_SUBST([PTHREAD_H])
+ AM_CONDITIONAL([GL_GENERATE_PTHREAD_H], [test -n "$PTHREAD_H"])
LIB_PTHREAD=
if test $ac_cv_header_pthread_h = yes; then
- gl_saved_libs=$LIBS
- AC_SEARCH_LIBS([pthread_create], [pthread],
- [if test "$ac_cv_search_pthread_create" != "none required"; then
- LIB_PTHREAD="$ac_cv_search_pthread_create"
- fi])
- LIBS="$gl_saved_libs"
+ dnl We cannot use AC_SEARCH_LIBS here, because on OSF/1 5.1 pthread_join
+ dnl is defined as a macro which expands to __phread_join, and libpthread
+ dnl contains a definition for __phread_join but none for pthread_join.
+ AC_CACHE_CHECK([for library containing pthread_join],
+ [gl_cv_search_pthread_join],
+ [gl_saved_libs="$LIBS"
+ gl_cv_search_pthread_join=
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>]],
+ [[pthread_join (pthread_self (), (void **) 0);]])],
+ [gl_cv_search_pthread_join="none required"])
+ if test -z "$gl_cv_search_pthread_join"; then
+ LIBS="-lpthread $gl_saved_libs"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>]],
+ [[pthread_join (pthread_self (), (void **) 0);]])],
+ [gl_cv_search_pthread_join="-lpthread"])
+ fi
+ LIBS="$gl_saved_libs"
+ ])
+ if test "$gl_cv_search_pthread_join" != "none required"; then
+ LIB_PTHREAD="$gl_cv_search_pthread_join"
+ fi
fi
AC_SUBST([LIB_PTHREAD])
HAVE_PTHREAD_H=1; AC_SUBST([HAVE_PTHREAD_H])
HAVE_PTHREAD_T=1; AC_SUBST([HAVE_PTHREAD_T])
HAVE_PTHREAD_SPINLOCK_T=1; AC_SUBST([HAVE_PTHREAD_SPINLOCK_T])
- PTHREAD_H=''; AC_SUBST([PTHREAD_H])
])