diff options
author | Bruno Haible <bruno@clisp.org> | 2019-07-15 02:36:21 +0200 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2019-07-15 02:36:21 +0200 |
commit | 9d925a90f747a353455b0d1d5e60f7fbe07baee1 (patch) | |
tree | 32938f6c358dc040cb2bbce034c28928e2d59105 | |
parent | fba5fd39277dce3cac9fb72394bc7b3af36303a6 (diff) | |
download | gnulib-9d925a90f747a353455b0d1d5e60f7fbe07baee1.tar.gz |
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).
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | m4/pthread_h.m4 | 44 | ||||
-rw-r--r-- | modules/pthread | 2 | ||||
-rw-r--r-- | modules/pthread-h | 3 | ||||
-rw-r--r-- | modules/pthread-h-c++-tests | 2 |
5 files changed, 24 insertions, 39 deletions
@@ -1,5 +1,17 @@ 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. * tests/test-pthread-c++.cc: New file. * modules/pthread-h-c++-tests: New file. diff --git a/m4/pthread_h.m4 b/m4/pthread_h.m4 index d55a471b39..689d41ddf9 100644 --- a/m4/pthread_h.m4 +++ b/m4/pthread_h.m4 @@ -1,4 +1,4 @@ -# 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, @@ -10,8 +10,12 @@ AC_DEFUN([gl_PTHREAD_H], 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 @@ -38,40 +42,8 @@ AC_DEFUN([gl_PTHREAD_H], 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]) ]) diff --git a/modules/pthread b/modules/pthread index 9e5a7340a4..a778cb163f 100644 --- a/modules/pthread +++ b/modules/pthread @@ -19,7 +19,7 @@ Include: <pthread.h> Link: -$(LIB_PTHREAD) +$(LIBMULTITHREAD) License: LGPLv2+ diff --git a/modules/pthread-h b/modules/pthread-h index 370552a031..3054ce45c0 100644 --- a/modules/pthread-h +++ b/modules/pthread-h @@ -10,6 +10,7 @@ extensions extern-inline sched time +threadlib configure.ac-early: AC_DEFINE([_REENTRANT], 1, [For thread-safety on OSF/1, Solaris.]) @@ -46,7 +47,7 @@ Include: <pthread.h> Link: -$(LIB_PTHREAD) +$(LIBTHREAD) License: LGPLv2+ diff --git a/modules/pthread-h-c++-tests b/modules/pthread-h-c++-tests index 1886b0a276..225c7f8834 100644 --- a/modules/pthread-h-c++-tests +++ b/modules/pthread-h-c++-tests @@ -15,5 +15,5 @@ if ANSICXX TESTS += test-pthread-c++ check_PROGRAMS += test-pthread-c++ test_pthread_c___SOURCES = test-pthread-c++.cc -test_pthread_c___LDADD = $(LDADD) $(LIB_PTHREAD) +test_pthread_c___LDADD = $(LDADD) $(LIBMULTITHREAD) endif |