External ABI adjustment for pthread_cond_t. This downstream-only patch is necessary because upstream unfortunately changed the definition of pthread_cond_t on release branches. The definition of pthread_cond_t is semi-opaque, but ABI analysis tooling does not know that. Changing the definition results in incorrect ABI change errors if application uses pthread_cond_t at any ABI boundary. This patch reverts the installed header changes in glibc-upstream-2.39-188.patch and glibc-upstream-2.39-193.patch. Furthermore, use __glibc_unused___g_refs to match RHEL 9. diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h index bccc2003ec6dea5c..1d325f58883db08d 100644 --- a/sysdeps/nptl/bits/thread-shared-types.h +++ b/sysdeps/nptl/bits/thread-shared-types.h @@ -95,12 +95,11 @@ struct __pthread_cond_s { __atomic_wide_counter __wseq; __atomic_wide_counter __g1_start; - unsigned int __g_size[2] __LOCK_ALIGNMENT; + unsigned int __glibc_unused___g_refs[2] __LOCK_ALIGNMENT; + unsigned int __g_size[2]; 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; diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h index e0f24418fe4233f0..3d4f4a756c66750d 100644 --- a/sysdeps/nptl/pthread.h +++ b/sysdeps/nptl/pthread.h @@ -152,7 +152,7 @@ enum /* Conditional variable handling. */ -#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } } +#define PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, {0, 0}, 0, 0, {0, 0} } } /* Cleanup buffers */