Restore internal ABI to avoid tooling false positives (RHEL-8381)

Related: RHEL-8381
This commit is contained in:
Carlos O'Donell 2025-02-07 13:45:14 -05:00
parent 025f9481c0
commit 05fdc91196
2 changed files with 44 additions and 1 deletions

39
glibc-RHEL-8381-10.patch Normal file
View File

@ -0,0 +1,39 @@
Partial revert of commit c36fc50781995e6758cae2b6927839d0157f213c
to restore the layout of pthread_cond_t and avoid a downstream
rpminspect and abidiff (libabigail tooling) spurious warning
about internal ABI changes. Without this change all RHEL developers
using pthread_cond_t would have to audit and waive the warning.
The alternative is to update the supression lists used in abidiff,
propagate that to the rpminspect service, and wait for that to
complete before doing the update. The more conservative position
is the partial revert of the layout change.
This is a downstream-only change and is not required upstream.
diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h
index dcb799b130178f3f..798e0de31680065b 100644
--- a/sysdeps/nptl/bits/thread-shared-types.h
+++ b/sysdeps/nptl/bits/thread-shared-types.h
@@ -188,7 +188,8 @@ struct __pthread_cond_s
unsigned int __high;
} __g1_start32;
};
- 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];
diff --git a/sysdeps/nptl/pthread.h b/sysdeps/nptl/pthread.h
index 4f7adccdab1d6e9e..df049abf74d47522 100644
--- a/sysdeps/nptl/pthread.h
+++ b/sysdeps/nptl/pthread.h
@@ -184,7 +184,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 */

View File

@ -115,7 +115,7 @@ end \
Summary: The GNU libc libraries
Name: glibc
Version: %{glibcversion}
Release: %{glibcrelease}.12
Release: %{glibcrelease}.13
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
# libraries.
@ -1257,6 +1257,7 @@ Patch1022: glibc-RHEL-8381-6.patch
Patch1023: glibc-RHEL-8381-7.patch
Patch1024: glibc-RHEL-8381-8.patch
Patch1025: glibc-RHEL-8381-9.patch
Patch1026: glibc-RHEL-8381-10.patch
##############################################################################
# Continued list of core "glibc" package information:
@ -2918,6 +2919,9 @@ fi
%{_libdir}/libpthread_nonshared.a
%changelog
* Fri Feb 7 2025 Carlos O'Donell <carlos@redhat.com> - 2.28-251.13
- Restore internal ABI to avoid tooling false positives (RHEL-8381)
* Thu Jan 30 2025 Carlos O'Donell <carlos@redhat.com> - 2.28-251.12
- Fix missed wakeup in POSIX thread condition variables (RHEL-8381)