summaryrefslogtreecommitdiff
path: root/lib/glthread
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2021-07-17 18:20:36 +0200
committerBruno Haible <bruno@clisp.org>2021-07-17 18:20:36 +0200
commit12b5b00f93c6433c3df8176fc9674d7600f8b268 (patch)
treebe5e4302810d0367b4beb0cda9ab81048229603d /lib/glthread
parent18a9101c9f60bdc8f59da27cc1c6a161abd02c9d (diff)
downloadgnulib-12b5b00f93c6433c3df8176fc9674d7600f8b268.tar.gz
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.
Diffstat (limited to 'lib/glthread')
-rw-r--r--lib/glthread/cond.h4
-rw-r--r--lib/glthread/lock.h4
-rw-r--r--lib/glthread/thread.h4
-rw-r--r--lib/glthread/tls.h4
4 files changed, 12 insertions, 4 deletions
diff --git a/lib/glthread/cond.h b/lib/glthread/cond.h
index 9858425072..fbab08c1b2 100644
--- a/lib/glthread/cond.h
+++ b/lib/glthread/cond.h
@@ -56,7 +56,9 @@
#include "glthread/lock.h"
#if !defined c11_threads_in_use
-# if HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
+# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC
+# define c11_threads_in_use() 1
+# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
# include <threads.h>
# pragma weak thrd_exit
# define c11_threads_in_use() (thrd_exit != NULL)
diff --git a/lib/glthread/lock.h b/lib/glthread/lock.h
index 624ce67d47..cc4c519362 100644
--- a/lib/glthread/lock.h
+++ b/lib/glthread/lock.h
@@ -81,7 +81,9 @@
#include <stdlib.h>
#if !defined c11_threads_in_use
-# if HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
+# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC
+# define c11_threads_in_use() 1
+# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
# include <threads.h>
# pragma weak thrd_exit
# define c11_threads_in_use() (thrd_exit != NULL)
diff --git a/lib/glthread/thread.h b/lib/glthread/thread.h
index 3e84599f5a..44f05f3e43 100644
--- a/lib/glthread/thread.h
+++ b/lib/glthread/thread.h
@@ -74,7 +74,9 @@
#include <stdlib.h>
#if !defined c11_threads_in_use
-# if HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
+# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC
+# define c11_threads_in_use() 1
+# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
# include <threads.h>
# pragma weak thrd_exit
# define c11_threads_in_use() (thrd_exit != NULL)
diff --git a/lib/glthread/tls.h b/lib/glthread/tls.h
index 9c2a2803c5..aaaa4b6729 100644
--- a/lib/glthread/tls.h
+++ b/lib/glthread/tls.h
@@ -47,7 +47,9 @@
#include <stdlib.h>
#if !defined c11_threads_in_use
-# if HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
+# if HAVE_THREADS_H && USE_POSIX_THREADS_FROM_LIBC
+# define c11_threads_in_use() 1
+# elif HAVE_THREADS_H && USE_POSIX_THREADS_WEAK
# include <threads.h>
# pragma weak thrd_exit
# define c11_threads_in_use() (thrd_exit != NULL)