]> Savannah Git Hosting - gnulib.git/commitdiff
once: Fix pthread-rwlock crashes with clang (regr. 2024-08-07).
authorBruno Haible <bruno@clisp.org>
Sat, 17 Aug 2024 13:07:59 +0000 (15:07 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 17 Aug 2024 13:17:28 +0000 (15:17 +0200)
* lib/glthread/once.h: Don't mark pthread_rwlock_init,
pthread_rwlockattr_init as weak if we are overriding them.

ChangeLog
lib/glthread/once.h

index 691955761545f8d508cb806ae8ef2983d4aee335..7486fb8047f83293f3225d3e7509f18abb9d8468 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-08-17  Bruno Haible  <bruno@clisp.org>
+
+       once: Fix pthread-rwlock crashes with clang (regr. 2024-08-07).
+       * lib/glthread/once.h: Don't mark pthread_rwlock_init,
+       pthread_rwlockattr_init as weak if we are overriding them.
+
 2024-08-16  Collin Funk  <collin.funk1@gmail.com>
 
        pty tests: Add C tests.
index fd00e4235008b0a0c5bf0d6123605f549429d85b..2452f88dc11704923b727fe9239dd02aec83c616 100644 (file)
@@ -124,7 +124,10 @@ extern int glthread_in_use (void);
 #  pragma weak pthread_mutex_lock
 #  pragma weak pthread_mutex_unlock
 #  pragma weak pthread_mutex_destroy
-#  pragma weak pthread_rwlock_init
+/* Work around clang bug <https://github.com/llvm/llvm-project/issues/104670> */
+#  ifndef pthread_rwlock_init
+#   pragma weak pthread_rwlock_init
+#  endif
 #  pragma weak pthread_rwlock_rdlock
 #  pragma weak pthread_rwlock_wrlock
 #  pragma weak pthread_rwlock_unlock
@@ -138,7 +141,10 @@ extern int glthread_in_use (void);
 #  pragma weak pthread_mutexattr_init
 #  pragma weak pthread_mutexattr_settype
 #  pragma weak pthread_mutexattr_destroy
-#  pragma weak pthread_rwlockattr_init
+/* Work around clang bug <https://github.com/llvm/llvm-project/issues/104670> */
+#  ifndef pthread_rwlockattr_init
+#   pragma weak pthread_rwlockattr_init
+#  endif
 #  if __GNU_LIBRARY__ > 1
 #   pragma weak pthread_rwlockattr_setkind_np
 #  endif