]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions (bug 32786)
authorFlorian Weimer <fweimer@redhat.com>
Thu, 13 Mar 2025 05:07:07 +0000 (06:07 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Thu, 13 Mar 2025 06:45:21 +0000 (07:45 +0100)
The new initializer and struct layout does not initialize the
__g_signals field in the old struct layout before the change in
commit c36fc50781995e6758cae2b6927839d0157f213c ("nptl: Remove
g_refs from condition variables").  Bring back fields at the end
of struct __pthread_cond_s, so that they are again zero-initialized.

Reviewed-by: Sam James <sam@gentoo.org>
(cherry picked from commit dbc5a50d12eff4cb3f782129029d04b8a76f58e7)

NEWS
sysdeps/nptl/bits/thread-shared-types.h
sysdeps/nptl/pthread.h

diff --git a/NEWS b/NEWS
index 983f8c64042573bbce4a15f331a104d89b7288de..6b34aa31f8fcc65c78ecdeafaf74e23f017f2b77 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -15,6 +15,7 @@ The following bugs were resolved with this release:
   [32630] math: math: tanf is not correctly rounded for all rounding
     modes
   [32781] Linux: Remove attribute access from sched_getattr
+  [32786] nptl: PTHREAD_COND_INITIALIZER compatibility with pre-2.41 versions
 \f
 Version 2.41
 
index 7c24c0a6be3fbe17677a0f67b6c6436123652c37..e614c7f3c900eba098d978ed4ce972146ad85338 100644 (file)
@@ -99,6 +99,8 @@ struct __pthread_cond_s
   unsigned int __g1_orig_size;
   unsigned int __wrefs;
   unsigned int __g_signals[2];
+  unsigned int __unused_initialized_1;
+  unsigned int __unused_initialized_2;
 };
 
 typedef unsigned int __tss_t;
index 050b4ab8d1d02384bb3bb103df15178b146987c5..9ad36cabe92e96e172b60dbab67531b4ae9758e4 100644 (file)
@@ -152,7 +152,7 @@ enum
 
 
 /* Conditional variable handling.  */
-#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0} } }
+#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }
 
 
 /* Cleanup buffers */