Paul Eggert
87fb310b69
doc: be more like POSIX in threading terms
...
In documentation and comments, be more like POSIX in terminology
involving multithreading. Explain the distinction between
multithreaded process vs multithreaded program. Change “program”
to “process” when the latter wording is more accurate or informative.
Simplify the wording for the constraints on processes that use
unlocked I/O. Change “multithread-safe” to “thread-safe”.
Change “thread-safety” to “thread safety”.
However, do not change “multithreaded” to “multi-threaded” even
though there are some uses of both spellinga, as there are a whole
bunch of uses of “multithreaded”, also in identifier names;
perhaps Gnulib should even standardize on “multithreaded”
(not “multi-threaded”), contra POSIX.
2026-04-11 13:21:19 -07:00
Collin Funk
a8482ceecf
maint: run 'make update-copyright'
2026-01-01 10:37:05 -08:00
Bruno Haible
8c4f03e94f
threadlib: Improve support for HP-UX.
...
* m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): Define _REENTRANT also on
HP-UX.
2025-09-17 22:11:16 +02:00
Bruno Haible
8d868202fc
threadlib: Omit unsupported configure option.
...
Reported by Michael Osipov <michael.osipov@innomotics.com > in
<https://lists.gnu.org/archive/html/bug-gettext/2025-09/msg00009.html >.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): If libtool is in use, don't
display the --disable-threads option.
2025-09-15 18:09:33 +02:00
Bruno Haible
90af73632c
threadlib: Remove support for IRIX.
...
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Assume that
pthread_mutexattr_init and pthread_mutex_lock are defined in the same
library.
2025-09-10 23:18:13 +02:00
Bruno Haible
df788e5d38
Remove support for OSF/1.
...
* lib/fseeko.c: Update comments.
* lib/stdbool.in.h: Likewise.
* m4/threadlib.m4: Likewise.
* modules/getprogname (Depends-on): Simplify platforms list.
2025-09-09 20:59:05 +02:00
Bruno Haible
eeb9a61b49
threadlib: Remove support for OSF/1.
...
* m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): Don't define -D_REENTRANT on
OSF/1.
(gl_THREADLIB_EARLY_BODY): Don't disable multithreading by default on
OSF/1.
2025-09-09 12:48:55 +02:00
Bruno Haible
6bf21606d0
threadlib: Avoid multi-dimensional pattern matching.
...
* m4/threadlib.m4: Change multi-dimensional AS_CASE back to several
one-dimensional tests.
2025-04-28 12:55:11 +02:00
Bruno Haible
a27d5d03c6
threadlib: Correct indentation.
...
* m4/threadlib.m4: Put cases on a fresh line. Correct indentation.
2025-04-28 12:41:27 +02:00
Paul Eggert
10878f8956
threadlib: follow Autoconf AC_REQUIRE rules better
...
* m4/threadlib.m4: When conditionally invoking a macro that uses
or might use AC_REQUIRE, put it inside AS_CASE or AS_IF instead
of using shell constructs directly.
2025-04-27 23:55:42 -07:00
Paul Eggert
81b905279f
threadlib: make m4 work better with Emacs
...
* m4/threadlib.m4: Refactor by prefering AS_CASE to case, " to ',
$(...) to `, [[...]] to changequote, and #-to-newline to #-with-].
That way, Emacs commands recognize the sexps here.
Omit some unnecessary quotes.
2025-04-27 23:55:41 -07:00
Pádraig Brady
7b08932179
maint: run 'make update-copyright'
2025-01-01 09:25:10 +00:00
Bruno Haible
b1f65faabb
Use a warranty disclaimer in all-permissive license notices.
...
* etc/license-notices/unlimited: Add a short warranty disclaimer
sentence.
* m4/*.m4: Update.
* build-aux/prefix-gnulib-mk: Likewise.
* HACKING: Likewise.
2024-10-17 21:52:41 +02:00
Bruno Haible
b744688d95
Make the serial numbers in *.m4 files effective.
...
Reported by Sam James in
<https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00051.html >.
* m4/*.m4: Apply sed -e '1s|^# \(.*[.]m4\) serial |# \1\n# serial |'.
2024-04-04 11:16:15 +02:00
Bruno Haible
d0450ae97e
Improve naming of local variables.
...
* gnulib-tool, posix-modules, build-aux/relocatable.sh.in,
build-aux/reloc-ldflags, build-aux/install-reloc, tests/init.sh,
m4/argz.m4: Rename save_IFS to saved_IFS.
* m4/*.m4: Rename save_LIBS to saved_LIBS.
* m4/00gnulib.m4, m4/gnulib-common.m4, m4/warn-on-use.m4, m4/wchar_h.m4:
Rename save_ac_compile to saved_ac_compile.
* m4/00gnulib.m4: Rename ac_save_ac_compile to ac_saved_ac_compile.
* m4/gnulib-common.m4: Rename save_ac_compile_for_check_decl to
saved_ac_compile_for_check_decl.
* m4/assert_h.m4, m4/manywarnings.m4, m4/stdalign.m4, m4/visibility.m4:
Rename gl_save_CFLAGS to gl_saved_CFLAGS.
* m4/dirfd.m4: Rename dirfd_save_CFLAGS to gl_saved_CFLAGS.
* m4/include_next.m4, m4/pread.m4, m4/pwrite.m4, m4/termcap.m4,
m4/terminfo.m4: Rename gl_save_CPPFLAGS to gl_saved_CPPFLAGS.
* m4/lib-link.m4: Rename ac_save_CPPFLAGS to acl_save_CPPFLAGS.
* m4/iconv.m4, m4/readline.m4: Rename am_save_CPPFLAGS to
gl_saved_CPPFLAGS.
* m4/gettext.m4: Rename gt_save_CPPFLAGS to gt_saved_CPPFLAGS.
* m4/ansi-c++.m4: Rename gl_save_CXX to gl_saved_CXX.
* m4/manywarnings-c++.m4: Rename gl_save_CXXFLAGS to gl_saved_CXXFLAGS.
* m4/lib-link.m4: Rename acl_save_ifs to acl_saved_IFS.
* m4/lib-prefix.m4: Rename acl_save_IFS to acl_saved_IFS.
* m4/progtest.m4: Rename ac_save_IFS to gt_saved_IFS.
* m4/lib-link.m4: Rename save_libdir to saved_libdir, acl_save_libdir to
acl_saved_libdir.
* m4/ld-version-script.m4: Rename save_LDFLAGS to saved_LDFLAGS.
* m4/acl.m4, m4/getgroups.m4: Rename ac_save_LIBS to gl_saved_LIBS.
* m4/lib-link.m4: Rename ac_save_LIBS to acl_saved_LIBS.
* m4/getdomainname.m4, m4/gethostname.m4, m4/getloadavg.m4,
m4/hostent.m4, m4/inet_ntop.m4, m4/inet_pton.m4,
m4/pthread_mutex_timedlock.m4, m4/pthread_sigmask.m4,
m4/pthread-spin.m4, m4/readutmp.m4, m4/selinux-selinux-h.m4,
m4/servent.m4, m4/socketlib.m4, m4/termcap.m4, m4/terminfo.m4,
m4/thread.m4: Rename gl_save_LIBS to gl_saved_LIBS.
* m4/getaddrinfo.m4, m4/iconv.m4, m4/readline.m4: Rename am_save_LIBS to
gl_saved_LIBS.
* m4/gettext.m4, m4/intlmacosx.m4: Rename gt_save_LIBS to gt_saved_LIBS.
* m4/libunistring.m4: Rename glus_save_LIBS to glus_saved_LIBS.
* m4/nanosleep.m4: Rename nanosleep_save_libs to gl_saved_LIBS.
* m4/lib-prefix.m4: Rename acl_save_prefix to acl_saved_prefix,
acl_save_exec_prefix to acl_saved_exec_prefix.
* m4/configmake.m4: Rename gl_save_<variable> to gl_saved_<variable>.
* m4/terminfo.m4: Likewise.
* m4/gettext.m4: Rename gt_save_<variable> to gt_saved_<variable>.
* m4/javaexec.m4: Rename save_CLASSPATH to gt_saved_CLASSPATH.
* m4/warnings.m4: Rename gl_save_compiler_FLAGS to
gl_saved_compiler_FLAGS.
* lib/pread.c, lib/pwrite.c, lib/read-file.c, lib/tempname.c: Rename
save_errno to saved_errno.
* lib/read-file.c: Rename save_alloc to saved_alloc.
* lib/strptime.c: Rename save_wday to saved_wday, save_mday to
saved_mday, save_mon to saved_mon.
2024-01-17 23:25:53 +01:00
Simon Josefsson
5b92dd0a45
maint: run 'make update-copyright'
2024-01-01 10:31:48 +01:00
Bruno Haible
981d04f93e
mbrtowc, mbrtoc32, nl_langinfo, setlocale-null: Obey --disable-threads.
...
Reported by David Edelsohn <dje.gcc@gmail.com > in
<https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636830.html >,
<https://gcc.gnu.org/pipermail/gcc-patches/2023-November/636843.html >.
* m4/threadlib.m4 (gl_THREADLIB_BODY): If --disable-threads was
specified, define AVOID_ANY_THREADS to 1.
* lib/mbtowc-lock.c: Omit all code if --disable-threads was specified.
* lib/nl_langinfo-lock.c: Likewise.
* lib/setlocale-lock.c: Likewise.
* lib/mbtowc-lock.h: Omit locking code if --disable-threads was
specified.
* lib/nl_langinfo.c: Likewise.
* lib/setlocale_null.c: Likewise.
* lib/mbrtowc.c: Don't include any multithreading headers if
--disable-threads was specified.
* lib/mbrtoc32.c: Likewise.
2023-11-17 20:34:13 +01:00
Bruno Haible
a82b963d9c
threadlib: Fix link errors on FreeBSD 5.2.1/i386.
...
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): When pthread_kill could not be
found in -lpthread, try -lthr.
2023-10-15 21:55:28 +02:00
Bruno Haible
cefb3e2171
Recognize the *-*-windows* config triplets introduced on 2023-06-26.
...
* m4/*.m4: Treat windows* as equivalent to mingw*.
* modules/*: Likewise.
2023-08-17 15:39:25 +02:00
Bruno Haible
f187e34f88
Improve quoting of AS_HELP_STRING's first argument.
...
* m4/acl.m4 (gl_FUNC_ACL_ARG): Don't underquote AS_HELP_STRING's first
argument.
* m4/assert.m4 (gl_ASSERT): Likewise.
* m4/gc.m4 (gl_GC): Likewise.
* m4/gnulib-common.m4 (gl_COMMON_BODY): Likewise.
* m4/ld-version-script.m4 (gl_LD_VERSION_SCRIPT): Likewise.
* m4/lib-ld.m4 (AC_LIB_PROG_LD): Likewise.
* m4/libgmp.m4 (gl_LIBGMP): Likewise.
* m4/regex.m4 (gl_REGEX): Likewise.
* m4/relocatable-lib.m4 (gl_RELOCATABLE_NOP): Likewise.
* m4/selinux-selinux-h.m4 (gl_LIBSELINUX): Likewise.
* m4/sigsegv.m4 (gl_SIGSEGV): Likewise.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise.
* m4/valgrind-tests.m4 (gl_VALGRIND_TESTS): Likewise.
* m4/version-etc.m4 (gl_VERSION_ETC_FLAG): Likewise.
* m4/xattr.m4 (gl_FUNC_XATTR): Likewise.
* doc/manywarnings.texi (manywarnings): Likewise. This avoids the use of
quadrigraphs.
2023-04-24 01:57:33 +02:00
Bruno Haible
aa9dc79d64
threadlib, pthread-h, threads-h: Avoid mingw's libwinpthread by default.
...
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Set
gl_use_winpthreads_default to 'no' by default.
(gl_AVOID_WINPTHREAD): Update comments.
2023-04-22 15:10:31 +02:00
Bruno Haible
ebb4fc023d
Fix uses of libwinpthread on mingw 10.
...
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): On mingw, set the result to
"guessing no".
2023-04-20 16:40:20 +02:00
Nick Bowler
7ef7b4b3d8
threadlib: Fix support for Solaris 9 and older.
...
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Allow case patterns to survive
m4 processing by using changequote.
2023-01-25 09:38:00 +01:00
Bruno Haible
aae82bb323
Fix warnings for functions introduced in Android API level 30.
...
* m4/threadlib.m4 (gl_STDTHREADLIB_BODY): Test for thrd_create using
gl_CHECK_FUNCS_ANDROID instead of AC_CHECK_FUNCS.
2023-01-19 21:55:42 +01:00
Bruno Haible
3943b5a215
sched_yield: Rename LIB_SCHED_YIELD to SCHED_YIELD_LIB.
...
* m4/threadlib.m4: Rename LIB_SCHED_YIELD to SCHED_YIELD_LIB.
All uses changed.
* NEWS: Mention the change.
2023-01-07 18:06:51 +01:00
Simon Josefsson
32a72f4537
maint: run 'make update-copyright'
2023-01-01 01:14:21 +01:00
Paul Eggert
eec12c00cf
maint: run 'make update-copyright'
2022-01-01 09:44:11 -08:00
Bruno Haible
7818455627
threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0.
...
Reported by Brian Inglis via Akim Demaille in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-09/msg00063.html >.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on
Cygwin.
2021-09-17 22:22:50 +02:00
Bruno Haible
12b5b00f93
Don't use '#pragma weak' for thread functions in Linux/glibc>=2.34.
...
Suggested by Florian Weimer <fweimer@redhat.com > in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00211.html >.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Set gl_pthread_in_glibc and set
LIBPMULTITHREAD accordingly.
(gl_STDTHREADLIB_BODY): Update comments.
(gl_THREADLIB_BODY): Define USE_POSIX_THREADS_FROM_LIBC.
* lib/glthread/thread.h (c11_threads_in_use): Define to 1 if all POSIX
thread functions are in libc.
* lib/glthread/lock.h (c11_threads_in_use): Likewise.
* lib/glthread/cond.h (c11_threads_in_use): Likewise.
* lib/glthread/tls.h (c11_threads_in_use): Likewise.
2021-07-17 18:20:36 +02:00
Bruno Haible
ae05418d45
threadlib: Add support for MidnightBSD.
...
* m4/threadlib.m4 (gl_WEAK_SYMBOLS, gl_THREADLIB_BODY): On MidnightBSD,
use the same test as on FreeBSD.
2021-02-07 20:26:12 +01:00
Paul Eggert
4b94832196
maint: run 'make update-copyright'
2020-12-31 23:30:01 -08:00
Bruno Haible
6adb609cb3
threadlib: Fix test-fstrcmp failure on FreeBSD 11.
...
* m4/threadlib.m4 (gl_THREADLIB_BODY): When weak symbols are not present
on FreeBSD, define PTHREAD_IN_USE_DETECTION_HARD.
* lib/glthread/threadlib.c: Include <errno.h>.
(glthread_in_use): For FreeBSD, provide an alternative implementation
that uses pthread_key_create.
2020-12-09 18:51:40 +01:00
Gavin Smith
fd082b5cdd
Avoid "warning: The macro `AC_HELP_STRING' is obsolete".
...
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Use AS_HELP_STRING instead
of AC_HELP_STRING.
* m4/libgcrypt.m4 (AM_PATH_LIBGCRYPT): Likewise.
2020-09-27 21:42:11 +02:00
Bruno Haible
a6c739a0b4
threadlib: Disable use of weak symbols on FreeBSD 11.
...
Reported by Tim Rühsen <tim.ruehsen@gmx.de > in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-01/msg00061.html >.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): Require AC_CANONICAL_HOST. Test
against a bug in FreeBSD 11.
2020-01-20 03:58:32 +01:00
Paul Eggert
2cdc1bafb2
maint: Run 'make update-copyright'
2019-12-31 16:02:16 -08:00
Bruno Haible
853609a274
threadlib: Improve code structure.
...
* m4/threadlib.m4: Reorder macros. Add comments.
2019-12-22 08:05:03 +01:00
Bruno Haible
15a10c1510
threadlib: Fix LIBMULTITHREAD on FreeBSD with --enable-threads=isoc.
...
* m4/threadlib.m4 (gl_STDTHREADLIB_BODY): New macro (some code moved
here from m4/threads.m4).
(gl_THREADLIB_BODY): Don't test whether mtx_lock and cnd_timedwait exist
in libc. Instead, rely on gl_STDTHREADLIB_BODY.
(gl_STDTHREADLIB): New macro.
* m4/threads.m4 (gl_THREADS_H): Require gl_STDTHREADLIB instead of
gl_THREADLIB_BODY and gl_YIELD. Don't set LIBSTDTHREAD here.
2019-12-21 13:53:31 +01:00
Bruno Haible
478535b02e
sched_yield: Don't depend on threadlib and yield.
...
* m4/threadlib.m4 (gl_PTHREADLIB): Document that it sets
LIB_SCHED_YIELD.
(gl_PTHREADLIB_BODY): Set LIB_SCHED_YIELD (code moved here from
m4/yield.m4).
* m4/sched_yield.m4 (gl_FUNC_SCHED_YIELD): Require gl_PTHREADLIB, not
gl_THREADLIB and gl_YIELD.
* m4/yield.m4 (gl_YIELD): Require gl_PTHREADLIB. Determine YIELD_LIB
based on $(LIB_SCHED_YIELD).
* m4/threads.m4 (gl_THREADS_H): Don't require gl_YIELD. Use
$(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/sched_yield (Files): Remove yield.m4. Add threadlib.m4.
(Depends-on): Remove threadlib.
(Link): Mention $(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/threads-h (Files): Remove m4/yield.m4.
* modules/pthread-cond-tests (Makefile.am): Link the programs against
$(LIB_SCHED_YIELD), not $(YIELD_LIB).
* modules/pthread-mutex-tests (Makefile.am): Likewise.
* modules/pthread-once-tests (Makefile.am): Likewise.
* modules/pthread-rwlock-tests (Makefile.am): Likewise.
* modules/pthread-tss-tests (Makefile.am): Likewise.
2019-12-21 13:43:31 +01:00
Bruno Haible
6be2862414
setlocale-null: Remove need for -lpthread on musl libc, *BSD, Haiku.
...
Reported by Arnold Robbins <arnold@skeeve.com >.
* lib/setlocale_null.c (c11_threads_in_use, pthread_in_use): New macros,
copied from lib/glthread/lock.h.
(pthread_mutex_lock, pthread_mutex_unlock): Mark as weak.
(setlocale_null_with_lock): If pthread_in_use() is false, use
setlocale_null_unlocked directly.
* m4/threadlib.m4 (gl_WEAK_SYMBOLS): New macro, extracted from
gl_THREADLIB_BODY. Define HAVE_WEAK_SYMBOLS.
(gl_THREADLIB_BODY): Invoke gl_WEAK_SYMBOLS.
* m4/setlocale_null.m4 (gl_FUNC_SETLOCALE_NULL): Invoke gl_WEAK_SYMBOLS.
Set LIB_SETLOCALE_NULL to empty if weak symbols are supported.
* m4/duplocale.m4 (gl_FUNC_DUPLOCALE): Add comment.
2019-12-16 10:44:58 +01:00
Bruno Haible
567591f3b1
setlocale-null: New module.
...
* lib/locale.in.h (SETLOCALE_NULL_MAX, SETLOCALE_NULL_ALL_MAX,
setlocale_null): New declarations.
* lib/setlocale_null.c: New file.
* lib/setlocale-lock.c: New file.
* m4/threadlib.m4 (gl_PTHREADLIB_BODY): Define C macro HAVE_PTHREAD_API.
* m4/setlocale_null.m4: New file.
* m4/locale_h.m4 (gl_LOCALE_H_DEFAULTS): Initialize
GNULIB_SETLOCALE_NULL.
* modules/locale (Makefile.am): Substitute GNULIB_SETLOCALE_NULL.
* modules/setlocale-null: New file.
* doc/posix-functions/setlocale.texi: Mention the new module.
2019-12-15 21:39:55 +01:00
Bruno Haible
6a44771a99
pthread-h: Fix link errors with --enable-threads=isoc on AIX.
...
* m4/threadlib.m4 (gl_ANYTHREADLIB_EARLY): New macro, extracted from
gl_THREADLIB_EARLY_BODY.
(gl_THREADLIB_EARLY_BODY): Invoke it.
(gl_PTHREADLIB_BODY): New macro, extracted from gl_THREADLIB_BODY.
(gl_THREADLIB_BODY): Invoke it.
(gl_PTHREADLIB): New macro.
* m4/pthread_h.m4 (gl_PTHREAD_H): Require gl_PTHREADLIB. Require
gl_THREADLIB and test $gl_threads_api only if module 'threadlib' is
present. Define LIB_PTHREAD using LIBPMULTITHREAD, not LIBMULTITHREAD.
* modules/pthread-h (Files): Add threadlib.m4.
(Depends-on): Remove threadlib.
(configure.ac-early): Invoke gl_ANYTHREADLIB_EARLY. Don't set _REENTRANT
and _THREAD_SAFE here.
(Link): Use LIBPTHREAD, not LIBTHREAD.
* modules/pthread-thread (Link): Use LIBPMULTITHREAD, not
LIBMULTITHREAD.
* modules/pthread-once (Link): Likewise.
* modules/pthread-mutex (Link): Likewise.
* modules/pthread-rwlock (Link): Likewise.
* modules/pthread-cond (Link): Likewise.
* modules/pthread-tss (Link): Likewise.
* modules/pthread-spin (Link): Likewise.
* modules/pthread (Link): Likewise.
* modules/pthread-h-c++-tests (test_pthread_c___LDADD): Likewise.
* modules/pthread-thread-tests (test_pthread_thread_LDADD): Likewise.
* modules/pthread-once-tests (test_pthread_once1_LDADD,
test_pthread_once2_LDADD): Likewise.
* modules/pthread-mutex-tests (test_pthread_mutex_LDADD): Likewise.
* modules/pthread-rwlock-tests (test_pthread_rwlock_LDADD): Likewise.
* modules/pthread-cond-tests (test_pthread_cond_LDADD): Likewise.
* modules/pthread-tss-tests (test_pthread_tss_LDADD): Likewise.
2019-12-02 02:59:26 +01:00
Bruno Haible
721d00b450
New options --enable-threads=isoc and --enable-threads=isoc+posix.
...
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Accept the options
--enable-threads=isoc and --enable-threads=isoc+posix.
(gl_THREADLIB_BODY): Test whether the ISO C threads API is available.
When both the ISO C and the POSIX threads API are available, choose
USE_ISOC_AND_POSIX_THREADS instead of USE_POSIX_THREADS if
--enable-threads=isoc+posix was specified. When only the ISO C threads
API is available and --enable-threads=iso was specified, choose
USE_ISOC_THREADS.
* lib/glthread/lock.h: Add new code for USE_ISOC_THREADS ||
USE_ISOC_AND_POSIX_THREADS.
* lib/glthread/lock.c: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/glthread/cond.c: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/tls.c: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/glthread/thread.h: Add new code for USE_ISOC_THREADS. Treat
USE_ISOC_AND_POSIX_THREADS like USE_POSIX_THREADS.
* lib/glthread/thread.c: Likewise.
* lib/glthread/threadlib.c: Likewise.
* tests/test-lock.c: Save and restore the values of USE_ISOC_THREADS and
USE_ISOC_AND_POSIX_THREADS.
* tests/test-cond.c: Consider USE_ISOC_THREADS and
USE_ISOC_AND_POSIX_THREADS.
* tests/test-tls.c: Likewise.
* tests/test-thread_create.c (main): Likewise.
* tests/test-pthread-cond.c: Likewise.
* tests/test-pthread-mutex.c: Likewise.
* tests/test-pthread-once2.c: Likewise.
* tests/test-pthread-rwlock.c: Likewise.
* tests/test-pthread-tss.c: Likewise.
* tests/test-pthread_sigmask2.c: Treat USE_ISOC_AND_POSIX_THREADS like
USE_POSIX_THREADS.
2019-11-27 06:03:21 +01:00
Bruno Haible
7ce5f5c77f
thread, lock, cond, tls: Remove support for Pth threads.
...
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Don't document
--enable-threads=pth any more.
(gl_THREADLIB_BODY): Don't set USE_PTH_THREADS any more.
* m4/pthread_sigmask.m4 (gl_FUNC_PTHREAD_SIGMASK): Update comment.
* m4/threads.m4 (gl_THREADS_H): Remove test for conflict between Pth
threads and ISO C11 threads.
* lib/glthread/thread.h: Remove code for USE_PTH_THREADS.
* lib/glthread/lock.h: Likewise.
* lib/glthread/lock.c: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/glthread/cond.c: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/tls.c: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/regex_internal.h: Likewise.
* tests/test-thread_create.c: Likewise.
* tests/test-lock.c: Likewise.
* tests/test-cond.c: Likewise.
* tests/test-tls.c: Likewise.
* tests/test-rwlock1.c: Don't include glthread/yield.h.
(main): Sleep without calling gl_thread_yield.
2019-07-06 03:56:55 +02:00
Bruno Haible
e58796ff71
thread, lock, cond, tls: Remove support for old Solaris threads.
...
Solaris >= 2.5.1 has POSIX threads.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Don't document
--enable-threads=solaris any more.
(gl_THREADLIB_BODY): Don't set USE_SOLARIS_THREADS any more.
* lib/glthread/thread.c: Update comment.
* lib/glthread/thread.h: Remove code for USE_SOLARIS_THREADS.
* lib/glthread/lock.h: Likewise.
* lib/glthread/lock.c: Likewise.
* lib/glthread/cond.h: Likewise.
* lib/glthread/cond.c: Likewise.
* lib/glthread/tls.h: Likewise.
* lib/glthread/tls.c: Likewise.
* lib/glthread/yield.h: Likewise.
* lib/regex_internal.h: Likewise.
* tests/test-thread_create.c: Likewise.
* tests/test-lock.c: Likewise.
* tests/test-cond.c: Likewise.
* tests/test-tls.c: Likewise.
2019-07-06 03:36:45 +02:00
Bruno Haible
316b626d28
threadlib: Fix typo (regression from today).
...
* m4/threadlib.m4 (gl_THREADLIB_BODY): Fix typo in comment marker.
2019-06-21 02:55:03 +02:00
Bruno Haible
79c2545308
thread, lock, cond, tls: Recognize C11 multithreaded applications.
...
* m4/threadlib.m4 (gl_THREADLIB_BODY): Test for <threads.h>.
* lib/glthread/thread.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
* lib/glthread/lock.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
* lib/glthread/cond.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
* lib/glthread/tls.h (c11_threads_in_use): New macro.
(pthread_in_use, pth_in_use, thread_in_use): Use it.
2019-06-20 03:59:07 +02:00
Bruno Haible
7ded27a6c8
threadlib: Provide an easy way to avoid mingw's winpthreads library.
...
* m4/threadlib.m4 (gl_AVOID_WINPTHREAD): New macro.
(gl_THREADLIB_EARLY_BODY): Recognize when it was invoked, and set
gl_use_threads accordingly.
2019-05-18 18:22:45 +02:00
Bruno Haible
681f1b8b8f
threadlib: Revert commit from 2018-06-25. We now have a better fix.
...
* m4/threadlib.m4 (gl_THREADLIB_BODY): Don't attempt to defeat a
preceding -Wl,--as-needed option. Don't check whether the linker
supports --as-needed/--no-as-needed and --push-state/--pop-state.
2019-01-24 04:47:46 +01:00
Paul Eggert
e6633650a2
maint: Run 'make update-copyright'
2019-01-01 00:30:05 +01:00
Bruno Haible
844f63f957
Assume Autoconf >= 2.63.
...
* DEPENDENCIES: Mention the requirement.
* gnulib-tool (DEFAULT_AUTOCONF_MINVERSION): Bump to 2.63.
(func_get_filelist): Don't list m4/onceonly.m4 any more.
* pygnulib/GLModuleSystem.py (getFiles): Likewise.
* m4/onceonly.m4: Remove file.
* m4/openmp.m4: Remove file.
* modules/openmp (Files): Remove m4/openmp.m4.
* m4/configmake.m4 (gl_CONFIGMAKE_PREP): Don't set datarootdir, docdir,
htmldir, dvidir, pdfdir, psdir, localedir.
* m4/po.m4 (AM_PO_SUBDIRS): Don't set localedir.
* m4/gnulib-common.m4 (m4_foreach_w): Remove fallback for
Autoconf < 2.60.
(AC_PROG_MKDIR_P): Remove definition for Autoconf < 2.62.
(AC_PROG_SED): Remove fallback for Autoconf < 2.60.
* m4/errno_h.m4 (AC_COMPUTE_INT): Remove fallback for Autoconf < 2.61.
* m4/size_max.m4 (AC_COMPUTE_INT): Likewise.
* m4/stdint.m4 (AC_COMPUTE_INT): Likewise.
* m4/fcntl-o.m4 (gl_FCNTL_O_FLAGS): Assume AC_USE_SYSTEM_EXTENSIONS
exists.
* m4/threadlib.m4 (gl_THREADLIB_EARLY_BODY): Likewise,
* m4/lib-link.m4 (AC_LIB_LINKFLAGS_BODY): Remove workaround for
Autoconf < 2.61.
* m4/lib-prefix.m4 (AC_LIB_ARG_WITH): Remove macro.
(AC_LIB_PREFIX): Use AC_ARG_WITH, assuming semantics of
Autoconf >= 2.52.
* m4/longlong.m4: Require Autoconf >= 2.62. Update comments.
* m4/ls-mntd-fs.m4: Require Autoconf >= 2.60. Update comments.
* m4/gettext.m4 (AM_GNU_GETTEXT): Update comment.
2018-10-23 00:06:52 +02:00