1 # pthread-thread.m4 serial 2
2 dnl Copyright (C) 2019-2021 Free Software Foundation, Inc.
3 dnl This file is free software; the Free Software Foundation
4 dnl gives unlimited permission to copy and/or distribute it,
5 dnl with or without modifications, as long as this notice is preserved.
7 AC_DEFUN([gl_PTHREAD_THREAD],
9 AC_REQUIRE([gl_PTHREAD_H])
10 AC_REQUIRE([AC_CANONICAL_HOST])
12 if { case "$host_os" in mingw*) true;; *) false;; esac; } \
13 && test $gl_threads_api = windows; then
14 dnl Choose function names that don't conflict with the mingw-w64 winpthreads
16 REPLACE_PTHREAD_CREATE=1
17 REPLACE_PTHREAD_ATTR_INIT=1
18 REPLACE_PTHREAD_ATTR_GETDETACHSTATE=1
19 REPLACE_PTHREAD_ATTR_SETDETACHSTATE=1
20 REPLACE_PTHREAD_ATTR_DESTROY=1
21 REPLACE_PTHREAD_SELF=1
22 REPLACE_PTHREAD_EQUAL=1
23 REPLACE_PTHREAD_DETACH=1
24 REPLACE_PTHREAD_JOIN=1
25 REPLACE_PTHREAD_EXIT=1
27 if test $HAVE_PTHREAD_H = 0; then
29 HAVE_PTHREAD_ATTR_INIT=0
30 HAVE_PTHREAD_ATTR_GETDETACHSTATE=0
31 HAVE_PTHREAD_ATTR_SETDETACHSTATE=0
32 HAVE_PTHREAD_ATTR_DESTROY=0
39 dnl On HP-UX 11.11, pthread_create() and pthread_attr_init() are only
40 dnl defined as inline functions.
41 AC_CACHE_CHECK([whether pthread_create exists as a global function],
42 [gl_cv_func_pthread_create],
44 LIBS="$LIBS $LIBPMULTITHREAD"
51 int pthread_create (void);
54 return pthread_create ();
57 [gl_cv_func_pthread_create=yes],
58 [gl_cv_func_pthread_create=no])
61 if test $gl_cv_func_pthread_create = no; then
62 REPLACE_PTHREAD_CREATE=1
63 REPLACE_PTHREAD_ATTR_INIT=1
64 AC_DEFINE([PTHREAD_CREATE_IS_INLINE], [1],
65 [Define if pthread_create is an inline function.])