+2019-07-14 Bruno Haible <bruno@clisp.org>
+
+ pthread-h: Respect --enable-threads={posix|windows} option on mingw.
+ * m4/pthread_h.m4 (gl_PTHREAD_H): Require gl_THREADLIB. Set
+ HAVE_PTHREAD_H if gl_threads_api is 'windows'.
+ (LIB_PTHREAD): Rely on $LIBMULTITHREAD from threadlib.m4.
+ * modules/pthread (Link): Change to $(LIBMULTITHREAD).
+ * modules/pthread-h (Depends-on): Add threadlib.
+ (Link): Change to $(LIBTHREAD).
+ * modules/pthread-h-c++-tests (test_pthread_c___LDADD): Use
+ $(LIBMULTITHREAD) instead of $(LIB_PTHREAD).
+
2019-07-14 Bruno Haible <bruno@clisp.org>
pthread-h: Add C++ tests.
-# pthread_h.m4 serial 1
+# pthread_h.m4 serial 2
dnl Copyright (C) 2009-2019 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl once only, before all statements that occur in other macros.
AC_REQUIRE([gl_PTHREAD_H_DEFAULTS])
+ AC_REQUIRE([gl_THREADLIB])
+
gl_CHECK_NEXT_HEADERS([pthread.h])
- if test $ac_cv_header_pthread_h = yes; then
+ dnl On mingw, if --enable-threads=windows or gl_AVOID_WINPTHREAD is used,
+ dnl ignore the <pthread.h> from the mingw-w64 winpthreads library.
+ if test $ac_cv_header_pthread_h = yes && test $gl_threads_api != windows; then
HAVE_PTHREAD_H=1
else
HAVE_PTHREAD_H=0
AC_REQUIRE([AC_C_RESTRICT])
- LIB_PTHREAD=
- if test $ac_cv_header_pthread_h = yes; then
- 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.
- dnl Also, FreeBSD 9 puts pthread_create in libpthread and pthread_join
- dnl in libc, whereas on IRIX 6.5 the reverse is true; so check for both.
- AC_CACHE_CHECK([for library containing pthread_create and pthread_join],
- [gl_cv_lib_pthread],
- [gl_saved_libs=$LIBS
- gl_cv_lib_pthread=
- for gl_lib_prefix in '' '-pthread' '-lpthread'; do
- LIBS="$gl_lib_prefix $gl_saved_libs"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM(
- [[#include <pthread.h>
- void *noop (void *p) { return p; }]],
- [[pthread_t pt;
- void *arg = 0;
- pthread_create (&pt, 0, noop, arg);
- pthread_join (pthread_self (), &arg);]])],
- [if test -z "$gl_lib_prefix"; then
- gl_cv_lib_pthread="none required"
- else
- gl_cv_lib_pthread=$gl_lib_prefix
- fi])
- test -n "$gl_cv_lib_pthread" && break
- done
- LIBS="$gl_saved_libs"
- ])
- if test "$gl_cv_lib_pthread" != "none required"; then
- LIB_PTHREAD="$gl_cv_lib_pthread"
- fi
- fi
+ dnl For backward compatibility with gnulib versions <= 2019-07.
+ LIB_PTHREAD="$LIBMULTITHREAD"
AC_SUBST([LIB_PTHREAD])
])