1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-10-12 19:04:54 +03:00

Revert "nptl: More useful padding in struct pthread"

This reverts commit 7c22dcda27.

The padding is required by Chromium's MaybeUpdateGlibcTidCache
in sandbox/linux/services/namespace_sandbox.cc.

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Florian Weimer
2025-01-07 08:34:13 +01:00
parent 2d196c2e10
commit c4ed6a380e

View File

@@ -129,6 +129,8 @@ struct priority_protection_data
/* Thread descriptor data structure. */ /* Thread descriptor data structure. */
struct pthread struct pthread
{ {
union
{
#if !TLS_DTV_AT_TP #if !TLS_DTV_AT_TP
/* This overlaps the TCB as used for TLS without threads (see tls.h). */ /* This overlaps the TCB as used for TLS without threads (see tls.h). */
tcbhead_t header; tcbhead_t header;
@@ -155,6 +157,13 @@ struct pthread
} header; } header;
#endif #endif
/* This extra padding has no special purpose, and this structure layout
is private and subject to change without affecting the official ABI.
We just have it here in case it might be convenient for some
implementation-specific instrumentation hack or suchlike. */
void *__padding[24];
};
/* This descriptor's link on the GL (dl_stack_used) or /* This descriptor's link on the GL (dl_stack_used) or
GL (dl_stack_user) list. */ GL (dl_stack_user) list. */
list_t list; list_t list;
@@ -398,9 +407,6 @@ struct pthread
/* getrandom vDSO per-thread opaque state. */ /* getrandom vDSO per-thread opaque state. */
void *getrandom_buf; void *getrandom_buf;
/* Can be used for backports preserving internal TCB layout. */
void *padding[8];
/* rseq area registered with the kernel. Use a custom definition /* rseq area registered with the kernel. Use a custom definition
here to isolate from kernel struct rseq changes. The here to isolate from kernel struct rseq changes. The
implementation of sched_getcpu needs acccess to the cpu_id field; implementation of sched_getcpu needs acccess to the cpu_id field;