]> sourceware.org Git - glibc.git/commitdiff
Remove TLS_TCB_ALIGN and TLS_INIT_TCB_ALIGN
authorFlorian Weimer <fweimer@redhat.com>
Thu, 9 Dec 2021 16:57:11 +0000 (17:57 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Thu, 9 Dec 2021 22:47:49 +0000 (23:47 +0100)
TLS_INIT_TCB_ALIGN is not actually used.  TLS_TCB_ALIGN was likely
introduced to support a configuration where the thread pointer
has not the same alignment as THREAD_SELF.  Only ia64 seems to use
that, but for the stack/pointer guard, not for storing tcbhead_t.
Some ports use TLS_TCB_OFFSET and TLS_PRE_TCB_SIZE to shift
the thread pointer, potentially landing in a different residue class
modulo the alignment, but the changes should not impact that.

In general, given that TLS variables have their own alignment
requirements, having different alignment for the (unshifted) thread
pointer and struct pthread would potentially result in dynamic
offsets, leading to more complexity.

hppa had different values before: __alignof__ (tcbhead_t), which
seems to be 4, and __alignof__ (struct pthread), which was 8
(old default) and is now 32.  However, it defines THREAD_SELF as:

/* Return the thread descriptor for the current thread.  */
# define THREAD_SELF \
  ({ struct pthread *__self; \
__self = __get_cr27(); \
__self - 1; \
   })

So the thread pointer points after struct pthread (hence __self - 1),
and they have to have the same alignment on hppa as well.

Similarly, on ia64, the definitions were different.  We have:

# define TLS_PRE_TCB_SIZE \
  (sizeof (struct pthread) \
   + (PTHREAD_STRUCT_END_PADDING < 2 * sizeof (uintptr_t) \
      ? ((2 * sizeof (uintptr_t) + __alignof__ (struct pthread) - 1) \
 & ~(__alignof__ (struct pthread) - 1)) \
      : 0))
# define THREAD_SELF \
  ((struct pthread *) ((char *) __thread_self - TLS_PRE_TCB_SIZE))

And TLS_PRE_TCB_SIZE is a multiple of the struct pthread alignment
(confirmed by the new _Static_assert in sysdeps/ia64/libc-tls.c).

On m68k, we have a larger gap between tcbhead_t and struct pthread.
But as far as I can tell, the port is fine with that.  The definition
of TCB_OFFSET is sufficient to handle the shifted TCB scenario.

This fixes commit 23c77f60181eb549f11ec2f913b4270af29eee38
("nptl: Increase default TCB alignment to 32").

Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
23 files changed:
csu/libc-tls.c
elf/dl-tls.c
sysdeps/aarch64/nptl/tls.h
sysdeps/alpha/nptl/tls.h
sysdeps/arc/nptl/tls.h
sysdeps/arm/nptl/tls.h
sysdeps/csky/nptl/tls.h
sysdeps/generic/tls.h
sysdeps/hppa/nptl/tls.h
sysdeps/i386/nptl/tls.h
sysdeps/ia64/libc-tls.c
sysdeps/ia64/nptl/tls.h
sysdeps/m68k/nptl/tls.h
sysdeps/mach/hurd/tls.h
sysdeps/microblaze/nptl/tls.h
sysdeps/mips/nptl/tls.h
sysdeps/nios2/nptl/tls.h
sysdeps/powerpc/nptl/tls.h
sysdeps/riscv/nptl/tls.h
sysdeps/s390/nptl/tls.h
sysdeps/sh/nptl/tls.h
sysdeps/sparc/nptl/tls.h
sysdeps/x86_64/nptl/tls.h

index 5515204863218163b74707d733045ed8a0e6c008..d83e69f6257ae9812bf7887e7ea6717590de13f7 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <sys/param.h>
 #include <array_length.h>
+#include <pthreadP.h>
 
 #ifdef SHARED
  #error makefile bug, this file is for static only
@@ -89,7 +90,7 @@ init_static_tls (size_t memsz, size_t align)
 {
   /* That is the size of the TLS memory for this object.  */
   GL(dl_tls_static_size) = roundup (memsz + GLRO(dl_tls_static_surplus),
-                                   TLS_TCB_ALIGN);
+                                   TCB_ALIGNMENT);
 #if TLS_TCB_AT_TP
   GL(dl_tls_static_size) += TLS_TCB_SIZE;
 #endif
@@ -214,5 +215,5 @@ __libc_setup_tls (void)
   memsz += tcb_offset;
 #endif
 
-  init_static_tls (memsz, MAX (TLS_TCB_ALIGN, max_align));
+  init_static_tls (memsz, MAX (TCB_ALIGNMENT, max_align));
 }
index 9260d2d6967afc9c73f30f184f1cbb0653b59d9a..273f60f2338a262e216bacd8d1447dfc046a4f69 100644 (file)
@@ -219,7 +219,7 @@ _dl_count_modids (void)
 void
 _dl_determine_tlsoffset (void)
 {
-  size_t max_align = TLS_TCB_ALIGN;
+  size_t max_align = TCB_ALIGNMENT;
   size_t freetop = 0;
   size_t freebottom = 0;
 
@@ -350,7 +350,7 @@ _dl_determine_tlsoffset (void)
 
   GL(dl_tls_static_used) = offset;
   GLRO (dl_tls_static_size) = roundup (offset + GLRO(dl_tls_static_surplus),
-                                      TLS_TCB_ALIGN);
+                                      TCB_ALIGNMENT);
 #else
 # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
 #endif
index c9ae564bf2305a601e14acb15ba7330102f28876..860776bb4be6d173c7c5afc223a1ee8c2d06996d 100644 (file)
@@ -52,18 +52,12 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
 
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* Install the dtv pointer.  The pointer passed is to the element with
    index -1 which contain the length.  */
 # define INSTALL_DTV(tcbp, dtvp) \
index eef922f2682bb8836ab774f4ed058338a49ae25f..860cc46d88876d5c570b1ed7fd0a243373d893ab 100644 (file)
@@ -46,18 +46,12 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    16
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
 
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         16
-
 /* Install the dtv pointer.  The pointer passed is to the element with
    index -1 which contain the length.  */
 # define INSTALL_DTV(tcbp, dtvp) \
index f6853867b279e63744ce5a14aafba1097a0eae39..06d8a48fea1ea4be574c5918b366a1e9b40fb0a3 100644 (file)
@@ -48,17 +48,11 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 #ifndef TLS_TCB_SIZE
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
 #endif
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
index 06612b544935341a51d9b337b13e28acf413f8a7..57e039fc0f875354704f0c0510e7523a5c07502d 100644 (file)
@@ -50,18 +50,12 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    16
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
 
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         16
-
 /* Install the dtv pointer.  The pointer passed is to the element with
    index -1 which contain the length.  */
 # define INSTALL_DTV(tcbp, dtvp) \
index 39fd6404591b73352645cbeb1e10a7151e491e3b..64dcaec2792d979aea82a015204f04e3e2b79dc3 100644 (file)
@@ -61,15 +61,9 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    8
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         8
-
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
index f581c9a99202791a3ffb6e9bfbd22021153e7092..b7aafce251b0ba76c7eccd272c3e9fdce52da13f 100644 (file)
 /* An architecture-specific version of this file has to defined a
    number of symbols:
 
+     TCB_ALIGNMENT
+
+     Alignment of THREAD_SELF (struct pthread *) and the thread
+     pointer.
+
      TLS_TCB_AT_TP  or  TLS_DTV_AT_TP
 
      The presence of one of these symbols signals which variant of
      dynamic linker itself.  There are no threads in use at that time.
 
 
-     TLS_TCB_ALIGN
-
-     Alignment requirements for the TCB structure.
-
-     TLS_INIT_TCB_ALIGN
-
-     Similarly, but for the structure used at startup time.
-
-
      INSTALL_DTV(tcb, init_dtv)
 
      This macro must install the given initial DTV into the thread control
index 5f550227f2573e72721806eb6cf3a82d271dcd33..62bfb9654887062fb343941b973a330f7e4fe76c 100644 (file)
@@ -52,15 +52,9 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (tcbhead_t)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          sizeof (tcbhead_t)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB */
 # define TLS_PRE_TCB_SIZE      sizeof (struct pthread)
 
index d010e14920931a121d57eab51c0a4d0f465e0ac0..e5f4e83eb4d5f33ee18d839fcaf4e0761df4bad0 100644 (file)
@@ -102,15 +102,9 @@ union user_desc_init
    struct pthread even when not linked with -lpthread.  */
 # define TLS_INIT_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
 /* The TCB can have any size and the memory following the address the
    thread pointer points to is unspecified.  Allocate the TCB there.  */
 # define TLS_TCB_AT_TP 1
index a01edceab36d375eb6e6060ec08ceb8eba238877..ede1e8f463b135b4da598b840aa84c20fa52d355 100644 (file)
@@ -18,6 +18,9 @@
 
 #include <csu/libc-tls.c>
 
+_Static_assert (TLS_PRE_TCB_SIZE % __alignof (struct pthread) == 0,
+               "__thread_self and THREAD_SELF have same alignment");
+
 /* On IA-64, as it lacks linker optimizations, __tls_get_addr can be
    called even in statically linked binaries.
    In this case module must be always 1 and PT_TLS segment
index 44951da24bf5fc99ef14b78ef967c44a5c94f93b..3c23a2e042f4c9584791ac200ef106a603e43ea8 100644 (file)
@@ -53,9 +53,6 @@ register struct pthread *__thread_self __asm__("r13");
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE sizeof (tcbhead_t)
 
@@ -70,9 +67,6 @@ register struct pthread *__thread_self __asm__("r13");
         & ~(__alignof__ (struct pthread) - 1))                         \
       : 0))
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
 /* The DTV is allocated at the TP; the TCB is placed elsewhere.  */
 # define TLS_DTV_AT_TP 1
 # define TLS_TCB_AT_TP 0
index 257af6bddc3643a5638d1634a18f9f468cf921e9..3acedc8465a11e773c05f69f6f1457979f8e8ee2 100644 (file)
@@ -53,20 +53,15 @@ typedef struct
    pointer, we don't need this.  */
 # define TLS_INIT_TCB_SIZE     0
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  Because our TCB is before the thread
    pointer, we don't need this.  */
 # define TLS_TCB_SIZE          0
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB - actually, it includes the TCB.  */
 # define TLS_PRE_TCB_SIZE                                              \
   (sizeof (struct pthread)                                             \
-   + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))
+   + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1)            \
+      & ~(__alignof (struct pthread) - 1)))
 
 /* The thread pointer (TP) points to the end of the
    TCB + 0x7000, as for PowerPC and MIPS.  This implies that TCB address is
index 8e66d5ff534e520d0deaabb1918645fb969043b6..e5f62dab78409099cd20a54ccf4c04f541570ce4 100644 (file)
 # include <mach.h>
 # include <atomic.h>
 
-
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE TLS_INIT_TCB_SIZE        /* XXX */
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN TLS_INIT_TCB_ALIGN /* XXX */
-
-
 /* Install the dtv pointer.  The pointer passed is to the element with
    index -1 which contain the length.  */
 # define INSTALL_DTV(descr, dtvp) \
index a31703b2479d001c2b08121e507600f53f77e815..de9d2b693b486235519b514822374f32119b775b 100644 (file)
@@ -56,18 +56,12 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE  sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE       sizeof (tcbhead_t)
 
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE   sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN      __alignof__ (struct pthread)
-
 /* Install the dtv pointer.  The pointer passed is to the element with
    index -1 which contain the length.  */
 # define INSTALL_DTV(tcbp, dtvp) \
index afb8308e1b884e95a0b355a33193306c7e457b5a..797e661dc1cc7b73fe9ddb55b72afad5fe8aeac0 100644 (file)
@@ -83,20 +83,15 @@ typedef struct
    pointer, we don't need this.  */
 # define TLS_INIT_TCB_SIZE     0
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  Because our TCB is before the thread
    pointer, we don't need this.  */
 # define TLS_TCB_SIZE          0
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB - actually, it includes the TCB.  */
 # define TLS_PRE_TCB_SIZE \
   (sizeof (struct pthread)                                                   \
-   + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))
+   + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1)                  \
+      & ~(__alignof (struct pthread) - 1)))
 
 /* The thread pointer (in hardware register $29) points to the end of
    the TCB + 0x7000, as for PowerPC.  The pthread_descr structure is
index 173c3954491ad2249cfcf8d2bd99193a559fbc80..18daedd7905f0fcdf811992188e9715f40da6d2f 100644 (file)
@@ -59,20 +59,15 @@ register struct pthread *__thread_self __asm__("r23");
    pointer, we don't need this.  */
 # define TLS_INIT_TCB_SIZE     0
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  Because our TCB is before the thread
    pointer, we don't need this.  */
 # define TLS_TCB_SIZE          0
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB - actually, it includes the TCB.  */
 # define TLS_PRE_TCB_SIZE \
   (sizeof (struct pthread)                                                   \
-   + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))
+   + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1)                  \
+      & ~(__alignof (struct pthread) - 1)))
 
 /* The thread pointer (in hardware register r23) points to the end of
    the TCB + 0x7000, as for PowerPC and MIPS.  */
index 7d2f16dcf2c91df775d4d054982a26e46d4eccfa..63098f40483f52cccf4bf2d6d3990c58f694dbb9 100644 (file)
@@ -108,19 +108,14 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE     0
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE          0
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE \
   (sizeof (struct pthread)                                                   \
-   + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))
+   + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1)                  \
+      & ~(__alignof (struct pthread) - 1)))
 
 /* The following assumes that TP (R2 or R13) points to the end of the
    TCB + 0x7000 (per the ABI).  This implies that TCB address is
index a966d440c5fb41a97b4578ac4b7beae1309b5baa..1f78cacdec5aaf5cf7940b04e2e2c4e1935db5e3 100644 (file)
@@ -50,20 +50,15 @@ typedef struct
    pointer, we don't need this.  */
 # define TLS_INIT_TCB_SIZE     0
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN    __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  Because our TCB is before the thread
    pointer, we don't need this.  */
 # define TLS_TCB_SIZE          0
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN         __alignof__ (struct pthread)
-
 /* This is the size we need before TCB - actually, it includes the TCB.  */
 # define TLS_PRE_TCB_SIZE \
   (sizeof (struct pthread)                                                   \
-   + ((sizeof (tcbhead_t) + TLS_TCB_ALIGN - 1) & ~(TLS_TCB_ALIGN - 1)))
+   + ((sizeof (tcbhead_t) + __alignof (struct pthread) - 1)                  \
+      & ~(__alignof (struct pthread) - 1)))
 
 /* The thread pointer tp points to the end of the TCB.
    The pthread_descr structure is immediately in front of the TCB.  */
index 16c5811e06eeb39de6b67bb15deddee45aeb594b..1655101b3078ddcd208a49e228f54ea7d1657317 100644 (file)
@@ -66,15 +66,9 @@ typedef struct
    struct pthread even when not linked with -lpthread.  */
 # define TLS_INIT_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
 /* The TCB can have any size and the memory following the address the
    thread pointer points to is unspecified.  Allocate the TCB there.  */
 # define TLS_TCB_AT_TP 1
index aadd5be0227f8d6e1ba2b7d1c6186ad3ee7429b3..cfbfe445230d4b462dcf8b938b2eec6703ae4733 100644 (file)
@@ -51,18 +51,12 @@ typedef struct
 /* This is the size of the initial TCB.  */
 # define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE sizeof (tcbhead_t)
 
 /* This is the size we need before TCB.  */
 # define TLS_PRE_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
 /* The TLS blocks start right after the TCB.  */
 # define TLS_DTV_AT_TP 1
 # define TLS_TCB_AT_TP 0
index d4e6e525d9875b815bc30903397190f70f07ff42..4f823cd020d15fae030510af681e8d1a0aee29ac 100644 (file)
@@ -63,15 +63,9 @@ register struct pthread *__thread_self __asm__("%g7");
    struct pthread even when not linked with -lpthread.  */
 # define TLS_INIT_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
 /* The TCB can have any size and the memory following the address the
    thread pointer points to is unspecified.  Allocate the TCB there.  */
 # define TLS_TCB_AT_TP 1
index a39579897ca4c28da4d509a3a2baa87c3c5e6ddc..91ad21e4787b80aca5213fd4949ff3fc11ae4229 100644 (file)
@@ -106,15 +106,9 @@ _Static_assert (offsetof (tcbhead_t, __glibc_unused2) == 0x80,
    struct pthread even when not linked with -lpthread.  */
 # define TLS_INIT_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the initial TCB.  */
-# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
-
 /* This is the size of the TCB.  */
 # define TLS_TCB_SIZE sizeof (struct pthread)
 
-/* Alignment requirements for the TCB.  */
-# define TLS_TCB_ALIGN __alignof__ (struct pthread)
-
 /* The TCB can have any size and the memory following the address the
    thread pointer points to is unspecified.  Allocate the TCB there.  */
 # define TLS_TCB_AT_TP 1
This page took 0.068056 seconds and 5 git commands to generate.