]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
make ‘struct pthread’ a complete type
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 19 Jul 2023 21:09:26 +0000 (14:09 -0700)
committerArjun Shankar <arjun@redhat.com>
Mon, 18 Mar 2024 10:46:23 +0000 (11:46 +0100)
* nptl/descr.h (struct pthread): Remove end_padding member, which
made this type incomplete.
(PTHREAD_STRUCT_END_PADDING): Stop using end_padding.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
(cherry picked from commit 3edc4ff2ceff4a59587ebecb94148d3bcfa1df62)

nptl/descr.h

index bb46b5958ed598a9b95ac156f41777eb5c556e26..e2627bce0592ebaabb0fe75397a012292d29cdc8 100644 (file)
@@ -411,11 +411,11 @@ struct pthread
   /* rseq area registered with the kernel.  */
   struct rseq rseq_area;
 
-  /* This member must be last.  */
-  char end_padding[];
-
+  /* Amount of end padding, if any, in this structure.
+     This definition relies on rseq_area being last.  */
 #define PTHREAD_STRUCT_END_PADDING \
-  (sizeof (struct pthread) - offsetof (struct pthread, end_padding))
+  (sizeof (struct pthread) - offsetof (struct pthread, rseq_area) \
+   + sizeof (struct rseq))
 } __attribute ((aligned (TCB_ALIGNMENT)));
 
 static inline bool