]> Savannah Git Hosting - gnulib.git/commitdiff
Resolve conflicts for functions introduced in Android API level 30.
authorBruno Haible <bruno@clisp.org>
Thu, 25 Jan 2024 19:15:10 +0000 (20:15 +0100)
committerBruno Haible <bruno@clisp.org>
Wed, 31 Jan 2024 17:20:50 +0000 (18:20 +0100)
* lib/threads.in.h (thrd_sleep): Consider REPLACE_THRD_SLEEP.
(thrd_yield): Consider REPLACE_THRD_YIELD.
(mtx_init): Consider REPLACE_MTX_INIT.
(mtx_lock): Consider REPLACE_MTX_LOCK.
(mtx_trylock): Consider REPLACE_MTX_TRYLOCK.
(mtx_timedlock): Consider REPLACE_MTX_TIMEDLOCK.
(mtx_unlock): Consider REPLACE_MTX_UNLOCK.
(mtx_destroy): Consider REPLACE_MTX_DESTROY.
(call_once): Consider REPLACE_CALL_ONCE. Fix warning message.
(cnd_init): Consider REPLACE_CND_INIT.
(cnd_wait): Consider REPLACE_CND_WAIT.
(cnd_timedwait): Consider REPLACE_CND_TIMEDWAIT.
(cnd_signal): Consider REPLACE_CND_SIGNAL.
(cnd_broadcast): Consider REPLACE_CND_BROADCAST.
(cnd_destroy): Consider REPLACE_CND_DESTROY.
(tss_create): Consider REPLACE_TSS_CREATE.
(tss_set): Consider REPLACE_TSS_SET.
(tss_get): Consider REPLACE_TSS_GET.
(tss_delete): Consider REPLACE_TSS_DELETE.
* m4/threads_h.m4 (gl_THREADS_H_DEFAULTS): Initialize REPLACE_CALL_ONCE,
REPLACE_CND_BROADCAST, REPLACE_CND_DESTROY, REPLACE_CND_INIT,
REPLACE_CND_SIGNAL, REPLACE_CND_TIMEDWAIT, REPLACE_CND_WAIT,
REPLACE_MTX_DESTROY, REPLACE_MTX_INIT, REPLACE_MTX_LOCK,
REPLACE_MTX_TIMEDLOCK, REPLACE_MTX_TRYLOCK, REPLACE_MTX_UNLOCK,
REPLACE_THRD_SLEEP, REPLACE_THRD_YIELD, REPLACE_TSS_CREATE,
REPLACE_TSS_DELETE, REPLACE_TSS_GET, REPLACE_TSS_SET.
* modules/threads-h (Makefile.am): Substitute REPLACE_CALL_ONCE,
REPLACE_CND_BROADCAST, REPLACE_CND_DESTROY, REPLACE_CND_INIT,
REPLACE_CND_SIGNAL, REPLACE_CND_TIMEDWAIT, REPLACE_CND_WAIT,
REPLACE_MTX_DESTROY, REPLACE_MTX_INIT, REPLACE_MTX_LOCK,
REPLACE_MTX_TIMEDLOCK, REPLACE_MTX_TRYLOCK, REPLACE_MTX_UNLOCK,
REPLACE_THRD_SLEEP, REPLACE_THRD_YIELD, REPLACE_TSS_CREATE,
REPLACE_TSS_DELETE, REPLACE_TSS_GET, REPLACE_TSS_SET.
* m4/thrd.m4 (gl_FUNC_THRD_CREATE): New macro.
* modules/thrd (configure.ac): Invoke gl_FUNC_THRD_CREATE.
* m4/call_once.m4: New file.
* modules/call_once (Files): Add m4/call_once.m4.
(configure.ac): Invoke gl_FUNC_CALL_ONCE. Consider REPLACE_CALL_ONCE.
* m4/cnd.m4: New file.
* modules/cnd (Files): Add m4/cnd.m4.
(configure.ac): Invoke gl_FUNC_CND_INIT. Consider REPLACE_CND_INIT.
* m4/mtx.m4: New file.
* modules/mtx (Files): Add m4/mtx.m4.
(configure.ac): Invoke gl_FUNC_MTX_INIT. Consider REPLACE_MTX_INIT.
* m4/tss.m4: New file.
* modules/tss (Files): Add m4/tss.m4.
(configure.ac): Invoke gl_FUNC_TSS_CREATE. Consider REPLACE_TSS_CREATE.
* doc/posix-functions/call_once.texi: Mention the Android API levels.
* doc/posix-functions/cnd_broadcast.texi: Likewise.
* doc/posix-functions/cnd_destroy.texi: Likewise.
* doc/posix-functions/cnd_init.texi: Likewise.
* doc/posix-functions/cnd_signal.texi: Likewise.
* doc/posix-functions/cnd_timedwait.texi: Likewise.
* doc/posix-functions/cnd_wait.texi: Likewise.
* doc/posix-functions/mtx_destroy.texi: Likewise.
* doc/posix-functions/mtx_init.texi: Likewise.
* doc/posix-functions/mtx_lock.texi: Likewise.
* doc/posix-functions/mtx_timedlock.texi: Likewise.
* doc/posix-functions/mtx_trylock.texi: Likewise.
* doc/posix-functions/mtx_unlock.texi: Likewise.
* doc/posix-functions/thrd_create.texi: Likewise.
* doc/posix-functions/thrd_current.texi: Likewise.
* doc/posix-functions/thrd_detach.texi: Likewise.
* doc/posix-functions/thrd_equal.texi: Likewise.
* doc/posix-functions/thrd_exit.texi: Likewise.
* doc/posix-functions/thrd_join.texi: Likewise.
* doc/posix-functions/thrd_sleep.texi: Likewise.
* doc/posix-functions/thrd_yield.texi: Likewise.
* doc/posix-functions/tss_create.texi: Likewise.
* doc/posix-functions/tss_delete.texi: Likewise.
* doc/posix-functions/tss_get.texi: Likewise.
* doc/posix-functions/tss_set.texi: Likewise.

39 files changed:
ChangeLog
doc/posix-functions/call_once.texi
doc/posix-functions/cnd_broadcast.texi
doc/posix-functions/cnd_destroy.texi
doc/posix-functions/cnd_init.texi
doc/posix-functions/cnd_signal.texi
doc/posix-functions/cnd_timedwait.texi
doc/posix-functions/cnd_wait.texi
doc/posix-functions/mtx_destroy.texi
doc/posix-functions/mtx_init.texi
doc/posix-functions/mtx_lock.texi
doc/posix-functions/mtx_timedlock.texi
doc/posix-functions/mtx_trylock.texi
doc/posix-functions/mtx_unlock.texi
doc/posix-functions/thrd_create.texi
doc/posix-functions/thrd_current.texi
doc/posix-functions/thrd_detach.texi
doc/posix-functions/thrd_equal.texi
doc/posix-functions/thrd_exit.texi
doc/posix-functions/thrd_join.texi
doc/posix-functions/thrd_sleep.texi
doc/posix-functions/thrd_yield.texi
doc/posix-functions/tss_create.texi
doc/posix-functions/tss_delete.texi
doc/posix-functions/tss_get.texi
doc/posix-functions/tss_set.texi
lib/threads.in.h
m4/call_once.m4 [new file with mode: 0644]
m4/cnd.m4 [new file with mode: 0644]
m4/mtx.m4 [new file with mode: 0644]
m4/thrd.m4
m4/threads_h.m4
m4/tss.m4 [new file with mode: 0644]
modules/call_once
modules/cnd
modules/mtx
modules/thrd
modules/threads-h
modules/tss

index 839ef67ab52e82463561d6ad7ec6a68c0ace56e9..8ef1e705f82f645766060dfa3894c9f8b6e9521f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,80 @@
+2024-01-25  Bruno Haible  <bruno@clisp.org>
+
+       Resolve conflicts for functions introduced in Android API level 30.
+
+       * lib/threads.in.h (thrd_sleep): Consider REPLACE_THRD_SLEEP.
+       (thrd_yield): Consider REPLACE_THRD_YIELD.
+       (mtx_init): Consider REPLACE_MTX_INIT.
+       (mtx_lock): Consider REPLACE_MTX_LOCK.
+       (mtx_trylock): Consider REPLACE_MTX_TRYLOCK.
+       (mtx_timedlock): Consider REPLACE_MTX_TIMEDLOCK.
+       (mtx_unlock): Consider REPLACE_MTX_UNLOCK.
+       (mtx_destroy): Consider REPLACE_MTX_DESTROY.
+       (call_once): Consider REPLACE_CALL_ONCE. Fix warning message.
+       (cnd_init): Consider REPLACE_CND_INIT.
+       (cnd_wait): Consider REPLACE_CND_WAIT.
+       (cnd_timedwait): Consider REPLACE_CND_TIMEDWAIT.
+       (cnd_signal): Consider REPLACE_CND_SIGNAL.
+       (cnd_broadcast): Consider REPLACE_CND_BROADCAST.
+       (cnd_destroy): Consider REPLACE_CND_DESTROY.
+       (tss_create): Consider REPLACE_TSS_CREATE.
+       (tss_set): Consider REPLACE_TSS_SET.
+       (tss_get): Consider REPLACE_TSS_GET.
+       (tss_delete): Consider REPLACE_TSS_DELETE.
+       * m4/threads_h.m4 (gl_THREADS_H_DEFAULTS): Initialize REPLACE_CALL_ONCE,
+       REPLACE_CND_BROADCAST, REPLACE_CND_DESTROY, REPLACE_CND_INIT,
+       REPLACE_CND_SIGNAL, REPLACE_CND_TIMEDWAIT, REPLACE_CND_WAIT,
+       REPLACE_MTX_DESTROY, REPLACE_MTX_INIT, REPLACE_MTX_LOCK,
+       REPLACE_MTX_TIMEDLOCK, REPLACE_MTX_TRYLOCK, REPLACE_MTX_UNLOCK,
+       REPLACE_THRD_SLEEP, REPLACE_THRD_YIELD, REPLACE_TSS_CREATE,
+       REPLACE_TSS_DELETE, REPLACE_TSS_GET, REPLACE_TSS_SET.
+       * modules/threads-h (Makefile.am): Substitute REPLACE_CALL_ONCE,
+       REPLACE_CND_BROADCAST, REPLACE_CND_DESTROY, REPLACE_CND_INIT,
+       REPLACE_CND_SIGNAL, REPLACE_CND_TIMEDWAIT, REPLACE_CND_WAIT,
+       REPLACE_MTX_DESTROY, REPLACE_MTX_INIT, REPLACE_MTX_LOCK,
+       REPLACE_MTX_TIMEDLOCK, REPLACE_MTX_TRYLOCK, REPLACE_MTX_UNLOCK,
+       REPLACE_THRD_SLEEP, REPLACE_THRD_YIELD, REPLACE_TSS_CREATE,
+       REPLACE_TSS_DELETE, REPLACE_TSS_GET, REPLACE_TSS_SET.
+       * m4/thrd.m4 (gl_FUNC_THRD_CREATE): New macro.
+       * modules/thrd (configure.ac): Invoke gl_FUNC_THRD_CREATE.
+       * m4/call_once.m4: New file.
+       * modules/call_once (Files): Add m4/call_once.m4.
+       (configure.ac): Invoke gl_FUNC_CALL_ONCE. Consider REPLACE_CALL_ONCE.
+       * m4/cnd.m4: New file.
+       * modules/cnd (Files): Add m4/cnd.m4.
+       (configure.ac): Invoke gl_FUNC_CND_INIT. Consider REPLACE_CND_INIT.
+       * m4/mtx.m4: New file.
+       * modules/mtx (Files): Add m4/mtx.m4.
+       (configure.ac): Invoke gl_FUNC_MTX_INIT. Consider REPLACE_MTX_INIT.
+       * m4/tss.m4: New file.
+       * modules/tss (Files): Add m4/tss.m4.
+       (configure.ac): Invoke gl_FUNC_TSS_CREATE. Consider REPLACE_TSS_CREATE.
+       * doc/posix-functions/call_once.texi: Mention the Android API levels.
+       * doc/posix-functions/cnd_broadcast.texi: Likewise.
+       * doc/posix-functions/cnd_destroy.texi: Likewise.
+       * doc/posix-functions/cnd_init.texi: Likewise.
+       * doc/posix-functions/cnd_signal.texi: Likewise.
+       * doc/posix-functions/cnd_timedwait.texi: Likewise.
+       * doc/posix-functions/cnd_wait.texi: Likewise.
+       * doc/posix-functions/mtx_destroy.texi: Likewise.
+       * doc/posix-functions/mtx_init.texi: Likewise.
+       * doc/posix-functions/mtx_lock.texi: Likewise.
+       * doc/posix-functions/mtx_timedlock.texi: Likewise.
+       * doc/posix-functions/mtx_trylock.texi: Likewise.
+       * doc/posix-functions/mtx_unlock.texi: Likewise.
+       * doc/posix-functions/thrd_create.texi: Likewise.
+       * doc/posix-functions/thrd_current.texi: Likewise.
+       * doc/posix-functions/thrd_detach.texi: Likewise.
+       * doc/posix-functions/thrd_equal.texi: Likewise.
+       * doc/posix-functions/thrd_exit.texi: Likewise.
+       * doc/posix-functions/thrd_join.texi: Likewise.
+       * doc/posix-functions/thrd_sleep.texi: Likewise.
+       * doc/posix-functions/thrd_yield.texi: Likewise.
+       * doc/posix-functions/tss_create.texi: Likewise.
+       * doc/posix-functions/tss_delete.texi: Likewise.
+       * doc/posix-functions/tss_get.texi: Likewise.
+       * doc/posix-functions/tss_set.texi: Likewise.
+
 2024-01-21  Bruno Haible  <bruno@clisp.org>
 
        readutmp: Port to Android NDK r26.
index 5728740372420c7a370c253a6d478efe4fbbac29..5f01303062eae497dda0ae9b968a5c9329c81aad 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 218c9c6a7c39c6f115deeeb117d32edf5419874b..0eb7a8baf9cad8d0707a4b1d3b97be8e46babb49 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 9f82abc0af5660766fb069d004348f47737311d5..9f6dd89a02d213e3fe8bdba188d76130ed119062 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 044e34c6382cdd9dff6b798d9dbac104a495581a..d0a98eae3125bb3beb1b832c04c7f21a48b9accf 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 319178987a2a91c422f7cc74aa6b7e20095d9cc3..b7c16aedf0e9ed7058b32cf3bf315a9595e2cba0 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 1a70edfacaef58cacd40816a5d05e66d89db645f..61f63f1d3e8751d9f6210269ce843f65444597eb 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 6b1ccb535aacb7c30368f25c6e91adc4d657c8d7..14513bd93437108f2c8e7a3488aeb522bdf0ea5e 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index c2136a27d539a2aecb8b1daa397d37e82554625d..77768ba7dd36602ee3b0858bd6c1b12055694480 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index e7497122f79c50b5b14e47d398290690e5d8c86c..191764d64825ab4065a19fd8910f517ad0552aec 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 8d78b5d4e54a79cc0e9b723c21f5f2fb3572265b..2b7ec899fbb7c5a17cadbc1ad33882f60a9381ca 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 38f8517fd9d85968c0eb0f11bf2eb916d4993963..9ea7a913eb471a1ef4ddaf48a533ffbb54330886 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 718c0d814f3708bacf385297f2192d429b6da903..3ff87ee9e8f9a02c1c0a5abe4fb0e75581c96b91 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index a6ab90a00fd9e6ee8235f9fa0239524dd92e90a0..3a05477c9fe70a0943a4179ce0443ce9163cb2b0 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 4c85b26f81b6eb143d16b85f5686eb6ff860d1b6..f9b25fbfac7528a8558cb6903f0148dc83437cae 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @item
 This function uses an incorrectly defined @code{thrd_start_t} on some platforms:
 AIX 7.2.
index 4f2097e254aadd5a83d902bce878e43f62337fd8..388ba97df48a4ae81344afed64f23df7be3cee7d 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 201190eb1387cda23f8788e032f179920d0eca9a..9e8979e0e966f389e6c574c404db394ef04c8227 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index f2ba54b2a119d1710ea9179bf6182135977fedf4..c44950f6fc6b25012112af1004eabf3416e156f0 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index d212ce8d502b9eece03700f2e812f4fb20519e35..3a3e83e0356bfc04add0a4edb7d2f713411a32d3 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @item
 The exit code provided to this function is discarded on some platforms:
 AIX 7.3.1.
index 06c4ce9f7f2ad66dade752bcecb6534930c97402..36f03adab3ab86885d71147b3d2a061e5279551e 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @item
 This function never stores an exit code on some platforms:
 AIX 7.3.1.
index 6d75427f8558cedf4acbc389e40ed5911349d7c5..3d2abb5efad3de10584e67bf25c46c345f698744 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 4b715455d765f9c91f288b2447870415eb59d25b..458888afb1f00bb53569442d70ae83531c30eea8 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 2eb6596833a6164e862b924233561d030a2e50ef..cf5049cdef5f27fe29dde4151750d0605bfdb91d 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 046d2ddfa79e9b4a9d30b63ddc8bf27afc812f68..700db8281a9e0a2b3f5a3d7027a3a8665d47a190 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index 34cc36ebd2c639392105e8990a90320fc3482437..4c425967c1416f8cb6d0cfc496162c4f4d7d61b0 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index b973e2ef18e22f80b86940ce168ec981c438a569..7cf6bd79024cd76687e594d60905b2d38464f582 100644 (file)
@@ -16,7 +16,7 @@ Portability problems fixed by Gnulib:
 @itemize
 @item
 This function is missing on many platforms:
-glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
+glibc 2.27, macOS 11.1, FreeBSD 9.3, NetBSD 8.0, OpenBSD 6.7, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11.3, Cygwin 2.9, mingw, MSVC 14, Android API level 29.
 @end itemize
 
 Portability problems not fixed by Gnulib:
index dbf0c40538fc1bd02691140e6afdb7e9fe9edf18..06bc9b78df30bf4e4bf74be625b5202292e7d450 100644 (file)
@@ -1,6 +1,6 @@
 /* An ISO C 11 compatible <threads.h>.
 
-   Copyright (C) 2019-2023 Free Software Foundation, Inc.
+   Copyright (C) 2019-2024 Free Software Foundation, Inc.
 
    This file is free software: you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as
@@ -225,13 +225,24 @@ _GL_WARN_ON_USE (thrd_equal, "thrd_equal is unportable - "
 #endif
 
 #if @GNULIB_THRD@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_THRD_SLEEP@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define thrd_sleep rpl_thrd_sleep
+#  endif
+_GL_FUNCDECL_RPL (thrd_sleep, int,
+                              (const struct timespec *, struct timespec *)
+                              _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (thrd_sleep, int,
+                              (const struct timespec *, struct timespec *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (thrd_sleep, int,
                               (const struct timespec *, struct timespec *)
                               _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (thrd_sleep, int,
                               (const struct timespec *, struct timespec *));
+# endif
 _GL_CXXALIASWARN (thrd_sleep);
 #elif defined GNULIB_POSIXCHECK
 # undef thrd_sleep
@@ -242,10 +253,18 @@ _GL_WARN_ON_USE (thrd_sleep, "thrd_sleep is unportable - "
 #endif
 
 #if @GNULIB_THRD@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_THRD_YIELD@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define thrd_yield rpl_thrd_yield
+#  endif
+_GL_FUNCDECL_RPL (thrd_yield, void, (void));
+_GL_CXXALIAS_RPL (thrd_yield, void, (void));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (thrd_yield, void, (void));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (thrd_yield, void, (void));
+# endif
 _GL_CXXALIASWARN (thrd_yield);
 #elif defined GNULIB_POSIXCHECK
 # undef thrd_yield
@@ -367,10 +386,18 @@ typedef pthread_mutex_t mtx_t;
 #endif
 
 #if @GNULIB_MTX@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_MTX_INIT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define mtx_init rpl_mtx_init
+#  endif
+_GL_FUNCDECL_RPL (mtx_init, int, (mtx_t *, int) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mtx_init, int, (mtx_t *, int));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (mtx_init, int, (mtx_t *, int) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mtx_init, int, (mtx_t *, int));
+# endif
 _GL_CXXALIASWARN (mtx_init);
 #elif defined GNULIB_POSIXCHECK
 # undef mtx_init
@@ -381,10 +408,18 @@ _GL_WARN_ON_USE (mtx_init, "mtx_init is unportable - "
 #endif
 
 #if @GNULIB_MTX@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_MTX_LOCK@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define mtx_lock rpl_mtx_lock
+#  endif
+_GL_FUNCDECL_RPL (mtx_lock, int, (mtx_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mtx_lock, int, (mtx_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (mtx_lock, int, (mtx_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mtx_lock, int, (mtx_t *));
+# endif
 _GL_CXXALIASWARN (mtx_lock);
 #elif defined GNULIB_POSIXCHECK
 # undef mtx_lock
@@ -395,10 +430,18 @@ _GL_WARN_ON_USE (mtx_lock, "mtx_lock is unportable - "
 #endif
 
 #if @GNULIB_MTX@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_MTX_TRYLOCK@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define mtx_trylock rpl_mtx_trylock
+#  endif
+_GL_FUNCDECL_RPL (mtx_trylock, int, (mtx_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mtx_trylock, int, (mtx_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (mtx_trylock, int, (mtx_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mtx_trylock, int, (mtx_t *));
+# endif
 _GL_CXXALIASWARN (mtx_trylock);
 #elif defined GNULIB_POSIXCHECK
 # undef mtx_trylock
@@ -409,11 +452,20 @@ _GL_WARN_ON_USE (mtx_trylock, "mtx_trylock is unportable - "
 #endif
 
 #if @GNULIB_MTX@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_MTX_TIMEDLOCK@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define mtx_timedlock rpl_mtx_timedlock
+#  endif
+_GL_FUNCDECL_RPL (mtx_timedlock, int, (mtx_t *, const struct timespec *)
+                                      _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (mtx_timedlock, int, (mtx_t *, const struct timespec *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (mtx_timedlock, int, (mtx_t *, const struct timespec *)
                                       _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mtx_timedlock, int, (mtx_t *, const struct timespec *));
+# endif
 _GL_CXXALIASWARN (mtx_timedlock);
 #elif defined GNULIB_POSIXCHECK
 # undef mtx_timedlock
@@ -424,10 +476,18 @@ _GL_WARN_ON_USE (mtx_timedlock, "mtx_timedlock is unportable - "
 #endif
 
 #if @GNULIB_MTX@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_MTX_UNLOCK@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define mtx_unlock rpl_mtx_unlock
+#  endif
+_GL_FUNCDECL_RPL (mtx_unlock, int, (mtx_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mtx_unlock, int, (mtx_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (mtx_unlock, int, (mtx_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mtx_unlock, int, (mtx_t *));
+# endif
 _GL_CXXALIASWARN (mtx_unlock);
 #elif defined GNULIB_POSIXCHECK
 # undef mtx_unlock
@@ -438,10 +498,18 @@ _GL_WARN_ON_USE (mtx_unlock, "mtx_unlock is unportable - "
 #endif
 
 #if @GNULIB_MTX@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_MTX_DESTROY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define mtx_destroy rpl_mtx_destroy
+#  endif
+_GL_FUNCDECL_RPL (mtx_destroy, void, (mtx_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (mtx_destroy, void, (mtx_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (mtx_destroy, void, (mtx_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (mtx_destroy, void, (mtx_t *));
+# endif
 _GL_CXXALIASWARN (mtx_destroy);
 #elif defined GNULIB_POSIXCHECK
 # undef mtx_destroy
@@ -476,17 +544,26 @@ typedef pthread_once_t once_flag;
 #endif
 
 #if @GNULIB_CALL_ONCE@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CALL_ONCE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define call_once rpl_call_once
+#  endif
+_GL_FUNCDECL_RPL (call_once, void, (once_flag *, void (*) (void))
+                                   _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (call_once, void, (once_flag *, void (*) (void)));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (call_once, void, (once_flag *, void (*) (void))
                                    _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS_CAST (call_once, void, (once_flag *, void (*) (void)));
+# endif
 _GL_CXXALIASWARN (call_once);
 #elif defined GNULIB_POSIXCHECK
 # undef call_once
 # if HAVE_RAW_DECL_CALL_ONCE
 _GL_WARN_ON_USE (call_once, "call_once is unportable - "
-                 "use gnulib module mtx for portability");
+                 "use gnulib module call_once for portability");
 # endif
 #endif
 
@@ -512,10 +589,18 @@ typedef pthread_cond_t cnd_t;
 #endif
 
 #if @GNULIB_CND@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CND_INIT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define cnd_init rpl_cnd_init
+#  endif
+_GL_FUNCDECL_RPL (cnd_init, int, (cnd_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (cnd_init, int, (cnd_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (cnd_init, int, (cnd_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (cnd_init, int, (cnd_t *));
+# endif
 _GL_CXXALIASWARN (cnd_init);
 #elif defined GNULIB_POSIXCHECK
 # undef cnd_init
@@ -526,10 +611,18 @@ _GL_WARN_ON_USE (cnd_init, "cnd_init is unportable - "
 #endif
 
 #if @GNULIB_CND@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CND_WAIT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define cnd_wait rpl_cnd_wait
+#  endif
+_GL_FUNCDECL_RPL (cnd_wait, int, (cnd_t *, mtx_t *) _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (cnd_wait, int, (cnd_t *, mtx_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (cnd_wait, int, (cnd_t *, mtx_t *) _GL_ARG_NONNULL ((1, 2)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (cnd_wait, int, (cnd_t *, mtx_t *));
+# endif
 _GL_CXXALIASWARN (cnd_wait);
 #elif defined GNULIB_POSIXCHECK
 # undef cnd_wait
@@ -540,13 +633,24 @@ _GL_WARN_ON_USE (cnd_wait, "cnd_wait is unportable - "
 #endif
 
 #if @GNULIB_CND@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CND_TIMEDWAIT@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define cnd_timedwait rpl_cnd_timedwait
+#  endif
+_GL_FUNCDECL_RPL (cnd_timedwait, int,
+                                 (cnd_t *, mtx_t *, const struct timespec *)
+                                 _GL_ARG_NONNULL ((1, 2, 3)));
+_GL_CXXALIAS_RPL (cnd_timedwait, int,
+                                 (cnd_t *, mtx_t *, const struct timespec *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (cnd_timedwait, int,
                                  (cnd_t *, mtx_t *, const struct timespec *)
                                  _GL_ARG_NONNULL ((1, 2, 3)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (cnd_timedwait, int,
                                  (cnd_t *, mtx_t *, const struct timespec *));
+# endif
 _GL_CXXALIASWARN (cnd_timedwait);
 #elif defined GNULIB_POSIXCHECK
 # undef cnd_timedwait
@@ -557,10 +661,18 @@ _GL_WARN_ON_USE (cnd_timedwait, "cnd_timedwait is unportable - "
 #endif
 
 #if @GNULIB_CND@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CND_SIGNAL@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define cnd_signal rpl_cnd_signal
+#  endif
+_GL_FUNCDECL_RPL (cnd_signal, int, (cnd_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (cnd_signal, int, (cnd_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (cnd_signal, int, (cnd_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (cnd_signal, int, (cnd_t *));
+# endif
 _GL_CXXALIASWARN (cnd_signal);
 #elif defined GNULIB_POSIXCHECK
 # undef cnd_signal
@@ -571,10 +683,18 @@ _GL_WARN_ON_USE (cnd_signal, "cnd_signal is unportable - "
 #endif
 
 #if @GNULIB_CND@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CND_BROADCAST@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define cnd_broadcast rpl_cnd_broadcast
+#  endif
+_GL_FUNCDECL_RPL (cnd_broadcast, int, (cnd_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (cnd_broadcast, int, (cnd_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (cnd_broadcast, int, (cnd_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (cnd_broadcast, int, (cnd_t *));
+# endif
 _GL_CXXALIASWARN (cnd_broadcast);
 #elif defined GNULIB_POSIXCHECK
 # undef cnd_broadcast
@@ -585,10 +705,18 @@ _GL_WARN_ON_USE (cnd_broadcast, "cnd_broadcast is unportable - "
 #endif
 
 #if @GNULIB_CND@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_CND_DESTROY@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define cnd_destroy rpl_cnd_destroy
+#  endif
+_GL_FUNCDECL_RPL (cnd_destroy, void, (cnd_t *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (cnd_destroy, void, (cnd_t *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (cnd_destroy, void, (cnd_t *) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (cnd_destroy, void, (cnd_t *));
+# endif
 _GL_CXXALIASWARN (cnd_destroy);
 #elif defined GNULIB_POSIXCHECK
 # undef cnd_destroy
@@ -637,10 +765,18 @@ typedef void (*tss_dtor_t) (void *);
 #endif
 
 #if @GNULIB_TSS@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_TSS_CREATE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define tss_create rpl_tss_create
+#  endif
+_GL_FUNCDECL_RPL (tss_create, int, (tss_t *, tss_dtor_t) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (tss_create, int, (tss_t *, tss_dtor_t));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (tss_create, int, (tss_t *, tss_dtor_t) _GL_ARG_NONNULL ((1)));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (tss_create, int, (tss_t *, tss_dtor_t));
+# endif
 _GL_CXXALIASWARN (tss_create);
 #elif defined GNULIB_POSIXCHECK
 # undef tss_create
@@ -651,10 +787,18 @@ _GL_WARN_ON_USE (tss_create, "tss_create is unportable - "
 #endif
 
 #if @GNULIB_TSS@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_TSS_SET@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define tss_set rpl_tss_set
+#  endif
+_GL_FUNCDECL_RPL (tss_set, int, (tss_t, void *));
+_GL_CXXALIAS_RPL (tss_set, int, (tss_t, void *));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (tss_set, int, (tss_t, void *));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (tss_set, int, (tss_t, void *));
+# endif
 _GL_CXXALIASWARN (tss_set);
 #elif defined GNULIB_POSIXCHECK
 # undef tss_set
@@ -665,10 +809,18 @@ _GL_WARN_ON_USE (tss_set, "tss_set is unportable - "
 #endif
 
 #if @GNULIB_TSS@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_TSS_GET@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define tss_get rpl_tss_get
+#  endif
+_GL_FUNCDECL_RPL (tss_get, void *, (tss_t));
+_GL_CXXALIAS_RPL (tss_get, void *, (tss_t));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (tss_get, void *, (tss_t));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (tss_get, void *, (tss_t));
+# endif
 _GL_CXXALIASWARN (tss_get);
 #elif defined GNULIB_POSIXCHECK
 # undef tss_get
@@ -679,10 +831,18 @@ _GL_WARN_ON_USE (tss_get, "tss_get is unportable - "
 #endif
 
 #if @GNULIB_TSS@
-# if !@HAVE_THREADS_H@
+# if @REPLACE_TSS_DELETE@
+#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+#   define tss_delete rpl_tss_delete
+#  endif
+_GL_FUNCDECL_RPL (tss_delete, void, (tss_t));
+_GL_CXXALIAS_RPL (tss_delete, void, (tss_t));
+# else
+#  if !@HAVE_THREADS_H@
 _GL_FUNCDECL_SYS (tss_delete, void, (tss_t));
-# endif
+#  endif
 _GL_CXXALIAS_SYS (tss_delete, void, (tss_t));
+# endif
 _GL_CXXALIASWARN (tss_delete);
 #elif defined GNULIB_POSIXCHECK
 # undef tss_delete
diff --git a/m4/call_once.m4 b/m4/call_once.m4
new file mode 100644 (file)
index 0000000..160e8f9
--- /dev/null
@@ -0,0 +1,16 @@
+# call_once.m4 serial 1
+dnl Copyright (C) 2024 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 with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_CALL_ONCE],
+[
+  AC_REQUIRE([gl_THREADS_H])
+  gl_CHECK_FUNCS_ANDROID([call_once], [[#include <threads.h>]])
+  case "$gl_cv_onwards_func_call_once" in
+    future*)
+      REPLACE_CALL_ONCE=1
+      ;;
+  esac
+])
diff --git a/m4/cnd.m4 b/m4/cnd.m4
new file mode 100644 (file)
index 0000000..3c50638
--- /dev/null
+++ b/m4/cnd.m4
@@ -0,0 +1,23 @@
+# cnd.m4 serial 1
+dnl Copyright (C) 2024 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 with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_CND_INIT],
+[
+  AC_REQUIRE([gl_THREADS_H])
+  gl_CHECK_FUNCS_ANDROID([cnd_init], [[#include <threads.h>]])
+  case "$gl_cv_onwards_func_cnd_init" in
+    future*)
+      REPLACE_CND_INIT=1
+      dnl Assume that the other cnd_* functions are introduced at the same time
+      dnl as cnd_init.
+      REPLACE_CND_BROADCAST=1
+      REPLACE_CND_DESTROY=1
+      REPLACE_CND_SIGNAL=1
+      REPLACE_CND_TIMEDWAIT=1
+      REPLACE_CND_WAIT=1
+      ;;
+  esac
+])
diff --git a/m4/mtx.m4 b/m4/mtx.m4
new file mode 100644 (file)
index 0000000..e446f75
--- /dev/null
+++ b/m4/mtx.m4
@@ -0,0 +1,23 @@
+# mtx.m4 serial 1
+dnl Copyright (C) 2024 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 with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_MTX_INIT],
+[
+  AC_REQUIRE([gl_THREADS_H])
+  gl_CHECK_FUNCS_ANDROID([mtx_init], [[#include <threads.h>]])
+  case "$gl_cv_onwards_func_mtx_init" in
+    future*)
+      REPLACE_MTX_INIT=1
+      dnl Assume that the other mtx_* functions are introduced at the same time
+      dnl as mtx_init.
+      REPLACE_MTX_DESTROY=1
+      REPLACE_MTX_LOCK=1
+      REPLACE_MTX_TIMEDLOCK=1
+      REPLACE_MTX_TRYLOCK=1
+      REPLACE_MTX_UNLOCK=1
+      ;;
+  esac
+])
index cffce1efb6b01a1e25169922550aa82e1947e0f4..fd98ab296200499cb361b5c0bb5499250bb8cb86 100644 (file)
@@ -1,9 +1,29 @@
-# thrd.m4 serial 4
-dnl Copyright (C) 2019-2023 Free Software Foundation, Inc.
+# thrd.m4 serial 4.1
+dnl Copyright (C) 2019-2024 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 with or without modifications, as long as this notice is preserved.
 
+AC_DEFUN([gl_FUNC_THRD_CREATE],
+[
+  AC_REQUIRE([gl_THREADS_H])
+  gl_CHECK_FUNCS_ANDROID([thrd_create], [[#include <threads.h>]])
+  case "$gl_cv_onwards_func_thrd_create" in
+    future*)
+      REPLACE_THRD_CREATE=1
+      dnl Assume that the other thrd_* functions are introduced at the same time
+      dnl as thrd_create.
+      REPLACE_THRD_CURRENT=1
+      REPLACE_THRD_DETACH=1
+      REPLACE_THRD_EQUAL=1
+      REPLACE_THRD_EXIT=1
+      REPLACE_THRD_JOIN=1
+      REPLACE_THRD_SLEEP=1
+      REPLACE_THRD_YIELD=1
+      ;;
+  esac
+])
+
 AC_DEFUN([gl_FUNC_THRD_JOIN],
 [
   AC_REQUIRE([gl_THREADS_H])
index e1dc3b1be10b6e9fe2fda8a89e7c1deaa5882fd1..86c45461d538fe6271027f32c9733112425bc04c 100644 (file)
@@ -1,5 +1,5 @@
-# threads_h.m4 serial 14
-dnl Copyright (C) 2019-2023 Free Software Foundation, Inc.
+# threads_h.m4 serial 14.1
+dnl Copyright (C) 2019-2024 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 with or without modifications, as long as this notice is preserved.
@@ -209,13 +209,32 @@ AC_DEFUN([gl_THREADS_H_REQUIRE_DEFAULTS],
 AC_DEFUN([gl_THREADS_H_DEFAULTS],
 [
   dnl Assume proper GNU behavior unless another module says otherwise.
-  HAVE_THREAD_LOCAL=1;    AC_SUBST([HAVE_THREAD_LOCAL])
-  BROKEN_THRD_JOIN=0;     AC_SUBST([BROKEN_THRD_JOIN])
-  BROKEN_THRD_START_T=0;  AC_SUBST([BROKEN_THRD_START_T])
-  REPLACE_THRD_CREATE=0;  AC_SUBST([REPLACE_THRD_CREATE])
-  REPLACE_THRD_CURRENT=0; AC_SUBST([REPLACE_THRD_CURRENT])
-  REPLACE_THRD_DETACH=0;  AC_SUBST([REPLACE_THRD_DETACH])
-  REPLACE_THRD_EQUAL=0;   AC_SUBST([REPLACE_THRD_EQUAL])
-  REPLACE_THRD_EXIT=0;    AC_SUBST([REPLACE_THRD_EXIT])
-  REPLACE_THRD_JOIN=0;    AC_SUBST([REPLACE_THRD_JOIN])
+  HAVE_THREAD_LOCAL=1;     AC_SUBST([HAVE_THREAD_LOCAL])
+  BROKEN_THRD_JOIN=0;      AC_SUBST([BROKEN_THRD_JOIN])
+  BROKEN_THRD_START_T=0;   AC_SUBST([BROKEN_THRD_START_T])
+  REPLACE_CALL_ONCE=0;     AC_SUBST([REPLACE_CALL_ONCE])
+  REPLACE_CND_BROADCAST=0; AC_SUBST([REPLACE_CND_BROADCAST])
+  REPLACE_CND_DESTROY=0;   AC_SUBST([REPLACE_CND_DESTROY])
+  REPLACE_CND_INIT=0;      AC_SUBST([REPLACE_CND_INIT])
+  REPLACE_CND_SIGNAL=0;    AC_SUBST([REPLACE_CND_SIGNAL])
+  REPLACE_CND_TIMEDWAIT=0; AC_SUBST([REPLACE_CND_TIMEDWAIT])
+  REPLACE_CND_WAIT=0;      AC_SUBST([REPLACE_CND_WAIT])
+  REPLACE_MTX_DESTROY=0;   AC_SUBST([REPLACE_MTX_DESTROY])
+  REPLACE_MTX_INIT=0;      AC_SUBST([REPLACE_MTX_INIT])
+  REPLACE_MTX_LOCK=0;      AC_SUBST([REPLACE_MTX_LOCK])
+  REPLACE_MTX_TIMEDLOCK=0; AC_SUBST([REPLACE_MTX_TIMEDLOCK])
+  REPLACE_MTX_TRYLOCK=0;   AC_SUBST([REPLACE_MTX_TRYLOCK])
+  REPLACE_MTX_UNLOCK=0;    AC_SUBST([REPLACE_MTX_UNLOCK])
+  REPLACE_THRD_CREATE=0;   AC_SUBST([REPLACE_THRD_CREATE])
+  REPLACE_THRD_CURRENT=0;  AC_SUBST([REPLACE_THRD_CURRENT])
+  REPLACE_THRD_DETACH=0;   AC_SUBST([REPLACE_THRD_DETACH])
+  REPLACE_THRD_EQUAL=0;    AC_SUBST([REPLACE_THRD_EQUAL])
+  REPLACE_THRD_EXIT=0;     AC_SUBST([REPLACE_THRD_EXIT])
+  REPLACE_THRD_JOIN=0;     AC_SUBST([REPLACE_THRD_JOIN])
+  REPLACE_THRD_SLEEP=0;    AC_SUBST([REPLACE_THRD_SLEEP])
+  REPLACE_THRD_YIELD=0;    AC_SUBST([REPLACE_THRD_YIELD])
+  REPLACE_TSS_CREATE=0;    AC_SUBST([REPLACE_TSS_CREATE])
+  REPLACE_TSS_DELETE=0;    AC_SUBST([REPLACE_TSS_DELETE])
+  REPLACE_TSS_GET=0;       AC_SUBST([REPLACE_TSS_GET])
+  REPLACE_TSS_SET=0;       AC_SUBST([REPLACE_TSS_SET])
 ])
diff --git a/m4/tss.m4 b/m4/tss.m4
new file mode 100644 (file)
index 0000000..fb82b5e
--- /dev/null
+++ b/m4/tss.m4
@@ -0,0 +1,21 @@
+# tss.m4 serial 1
+dnl Copyright (C) 2024 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 with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_TSS_CREATE],
+[
+  AC_REQUIRE([gl_THREADS_H])
+  gl_CHECK_FUNCS_ANDROID([tss_create], [[#include <threads.h>]])
+  case "$gl_cv_onwards_func_tss_create" in
+    future*)
+      REPLACE_TSS_CREATE=1
+      dnl Assume that the other tss_* functions are introduced at the same time
+      dnl as tss_create.
+      REPLACE_TSS_DELETE=1
+      REPLACE_TSS_GET=1
+      REPLACE_TSS_SET=1
+      ;;
+  esac
+])
index 3efc3f3736f4c55c175fdba963e6a6fa1ad23700..c48847a54b4f0fcb4631baf3bb90a896d7a9d7ea 100644 (file)
@@ -3,6 +3,7 @@ call_once() function: ISO C 11 once-only initialization.
 
 Files:
 lib/call_once.c
+m4/call_once.m4
 
 Depends-on:
 threads-h
@@ -10,7 +11,9 @@ windows-once
 
 configure.ac:
 AC_REQUIRE([gl_THREADS_H])
-gl_CONDITIONAL([GL_COND_OBJ_CALL_ONCE], [test $HAVE_THREADS_H = 0])
+gl_FUNC_CALL_ONCE
+gl_CONDITIONAL([GL_COND_OBJ_CALL_ONCE],
+               [test $HAVE_THREADS_H = 0 || test $REPLACE_CALL_ONCE = 1])
 gl_THREADS_MODULE_INDICATOR([call_once])
 
 Makefile.am:
index cb4ec4a5bd970d3d06d20c1cf572fa1beb57127c..0b14931cc4b4d4ed8512d4ab7a38fc2b085a829a 100644 (file)
@@ -3,6 +3,7 @@ ISO C 11 condition variable functions.
 
 Files:
 lib/cnd.c
+m4/cnd.m4
 
 Depends-on:
 threads-h
@@ -11,7 +12,9 @@ gettimeofday
 
 configure.ac:
 AC_REQUIRE([gl_THREADS_H])
-gl_CONDITIONAL([GL_COND_OBJ_CND], [test $HAVE_THREADS_H = 0])
+gl_FUNC_CND_INIT
+gl_CONDITIONAL([GL_COND_OBJ_CND],
+               [test $HAVE_THREADS_H = 0 || test $REPLACE_CND_INIT = 1])
 gl_THREADS_MODULE_INDICATOR([cnd])
 
 Makefile.am:
index e5da0413dbab7060f4355ba0f885fd2f75ba3cc3..3e4ca38b0ee9c39ee7d6fee3e6ad2258031ea5f9 100644 (file)
@@ -3,6 +3,7 @@ ISO C 11 mutex functions.
 
 Files:
 lib/mtx.c
+m4/mtx.m4
 
 Depends-on:
 threads-h
@@ -14,7 +15,9 @@ windows-timedrecmutex
 
 configure.ac:
 AC_REQUIRE([gl_THREADS_H])
-gl_CONDITIONAL([GL_COND_OBJ_MTX], [test $HAVE_THREADS_H = 0])
+gl_FUNC_MTX_INIT
+gl_CONDITIONAL([GL_COND_OBJ_MTX],
+               [test $HAVE_THREADS_H = 0 || test $REPLACE_MTX_INIT = 1])
 gl_THREADS_MODULE_INDICATOR([mtx])
 
 Makefile.am:
index cbb98f949170df10f05a702b30c6eeafb1b92a75..e007ccd8bfba42310938934714ae43183aa8d0eb 100644 (file)
@@ -12,6 +12,7 @@ nanosleep
 
 configure.ac:
 AC_REQUIRE([gl_THREADS_H])
+gl_FUNC_THRD_CREATE
 gl_FUNC_THRD_JOIN
 gl_CONDITIONAL([GL_COND_OBJ_THRD],
                [test $HAVE_THREADS_H = 0 || test $REPLACE_THRD_CREATE = 1 || test $REPLACE_THRD_JOIN = 1])
index 8e9da83eee75f3d7f333d602a7f813f1921e1df4..b9e483e693afafa581b513405e5c4766691d3f1e 100644 (file)
@@ -58,12 +58,31 @@ threads.h: threads.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(_NORETURN_H
              -e 's|@''HAVE_THREAD_LOCAL''@|$(HAVE_THREAD_LOCAL)|g' \
              -e 's|@''BROKEN_THRD_JOIN''@|$(BROKEN_THRD_JOIN)|g' \
              -e 's|@''BROKEN_THRD_START_T''@|$(BROKEN_THRD_START_T)|g' \
+             -e 's|@''REPLACE_CALL_ONCE''@|$(REPLACE_CALL_ONCE)|g' \
+             -e 's|@''REPLACE_CND_BROADCAST''@|$(REPLACE_CND_BROADCAST)|g' \
+             -e 's|@''REPLACE_CND_DESTROY''@|$(REPLACE_CND_DESTROY)|g' \
+             -e 's|@''REPLACE_CND_INIT''@|$(REPLACE_CND_INIT)|g' \
+             -e 's|@''REPLACE_CND_SIGNAL''@|$(REPLACE_CND_SIGNAL)|g' \
+             -e 's|@''REPLACE_CND_TIMEDWAIT''@|$(REPLACE_CND_TIMEDWAIT)|g' \
+             -e 's|@''REPLACE_CND_WAIT''@|$(REPLACE_CND_WAIT)|g' \
+             -e 's|@''REPLACE_MTX_DESTROY''@|$(REPLACE_MTX_DESTROY)|g' \
+             -e 's|@''REPLACE_MTX_INIT''@|$(REPLACE_MTX_INIT)|g' \
+             -e 's|@''REPLACE_MTX_LOCK''@|$(REPLACE_MTX_LOCK)|g' \
+             -e 's|@''REPLACE_MTX_TIMEDLOCK''@|$(REPLACE_MTX_TIMEDLOCK)|g' \
+             -e 's|@''REPLACE_MTX_TRYLOCK''@|$(REPLACE_MTX_TRYLOCK)|g' \
+             -e 's|@''REPLACE_MTX_UNLOCK''@|$(REPLACE_MTX_UNLOCK)|g' \
              -e 's|@''REPLACE_THRD_CREATE''@|$(REPLACE_THRD_CREATE)|g' \
              -e 's|@''REPLACE_THRD_CURRENT''@|$(REPLACE_THRD_CURRENT)|g' \
              -e 's|@''REPLACE_THRD_DETACH''@|$(REPLACE_THRD_DETACH)|g' \
              -e 's|@''REPLACE_THRD_EQUAL''@|$(REPLACE_THRD_EQUAL)|g' \
              -e 's|@''REPLACE_THRD_EXIT''@|$(REPLACE_THRD_EXIT)|g' \
              -e 's|@''REPLACE_THRD_JOIN''@|$(REPLACE_THRD_JOIN)|g' \
+             -e 's|@''REPLACE_THRD_SLEEP''@|$(REPLACE_THRD_SLEEP)|g' \
+             -e 's|@''REPLACE_THRD_YIELD''@|$(REPLACE_THRD_YIELD)|g' \
+             -e 's|@''REPLACE_TSS_CREATE''@|$(REPLACE_TSS_CREATE)|g' \
+             -e 's|@''REPLACE_TSS_DELETE''@|$(REPLACE_TSS_DELETE)|g' \
+             -e 's|@''REPLACE_TSS_GET''@|$(REPLACE_TSS_GET)|g' \
+             -e 's|@''REPLACE_TSS_SET''@|$(REPLACE_TSS_SET)|g' \
              -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
              -e '/definition of _Noreturn/r $(_NORETURN_H)' \
              -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
index 8cdb448f23d457115b88d6c5daaadc584c31c0a1..efd95b0f155f1ebee5571122446c5fd64d5bbb18 100644 (file)
@@ -3,6 +3,7 @@ ISO C 11 thread-specific storage functions.
 
 Files:
 lib/tss.c
+m4/tss.m4
 
 Depends-on:
 threads-h
@@ -10,7 +11,9 @@ windows-tls
 
 configure.ac:
 AC_REQUIRE([gl_THREADS_H])
-gl_CONDITIONAL([GL_COND_OBJ_TSS], [test $HAVE_THREADS_H = 0])
+gl_FUNC_TSS_CREATE
+gl_CONDITIONAL([GL_COND_OBJ_TSS],
+               [test $HAVE_THREADS_H = 0 || test $REPLACE_TSS_CREATE = 1])
 gl_THREADS_MODULE_INDICATOR([tss])
 
 Makefile.am: