diff options
author | Florian Weimer <fweimer@redhat.com> | 2016-06-20 14:31:40 +0200 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-01-27 13:16:28 -0200 |
commit | dd08634b37f81f01441d842087b123d12b4003d4 (patch) | |
tree | 62e3153888b9d3ee3cf97e3eaa20d9b2343c2b9f | |
parent | 749c94d44c9aa063dfc7ad2b505c8e6d35e57345 (diff) | |
download | glibc-dd08634b37f81f01441d842087b123d12b4003d4.tar.gz glibc-dd08634b37f81f01441d842087b123d12b4003d4.tar.xz glibc-dd08634b37f81f01441d842087b123d12b4003d4.zip |
elf: Consolidate machine-agnostic DTV definitions in <dl-dtv.h>
Identical definitions of dtv_t and TLS_DTV_UNALLOCATED were repeated for all architectures using DTVs.
35 files changed, 107 insertions, 241 deletions
diff --git a/ChangeLog b/ChangeLog index 79fa583cd7..3408f9c28a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,55 @@ +2016-06-20 Florian Weimer <fweimer@redhat.com> + + Consolidate machine-agnostic DTV definitions in <dl-dtv.h>. + * sysdeps/generic/dl-dtv.h: New file. + * sysdeps/aarch64/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/aarch64/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/alpha/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/alpha/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/arm/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/arm/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/hppa/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/hppa/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/i386/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/i386/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/ia64/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/ia64/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/m68k/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/m68k/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/mach/hurd/i386/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/microblaze/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/microblaze/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/mips/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/mips/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/nios2/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/nios2/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/powerpc/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/powerpc/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/s390/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/s390/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/sh/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/sh/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/sparc/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/sparc/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + * sysdeps/x86_64/dl-tls.h (TLS_DTV_UNALLOCATED): Remove. + * sysdeps/x86_64/nptl/tls.h: Include <dl-dtv.h>. + (dtv_t): Remove. + 2016-04-14 Florian Weimer <fweimer@redhat.com> [BZ #19431] diff --git a/sysdeps/aarch64/dl-tls.h b/sysdeps/aarch64/dl-tls.h index 2465716542..9a7d716cdd 100644 --- a/sysdeps/aarch64/dl-tls.h +++ b/sysdeps/aarch64/dl-tls.h @@ -25,6 +25,3 @@ typedef struct extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h index 1e3904eafb..10b82cf120 100644 --- a/sysdeps/aarch64/nptl/tls.h +++ b/sysdeps/aarch64/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/alpha/dl-tls.h b/sysdeps/alpha/dl-tls.h index 5cdd439ef9..eb0126ca82 100644 --- a/sysdeps/alpha/dl-tls.h +++ b/sysdeps/alpha/dl-tls.h @@ -25,6 +25,3 @@ typedef struct } tls_index; extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/alpha/nptl/tls.h b/sysdeps/alpha/nptl/tls.h index 4eddf40eee..2b360e9d90 100644 --- a/sysdeps/alpha/nptl/tls.h +++ b/sysdeps/alpha/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> /* Get system call information. */ # include <sysdep.h> diff --git a/sysdeps/arm/dl-tls.h b/sysdeps/arm/dl-tls.h index 30599bb1be..0e716e5694 100644 --- a/sysdeps/arm/dl-tls.h +++ b/sysdeps/arm/dl-tls.h @@ -26,6 +26,3 @@ typedef struct dl_tls_index extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/arm/nptl/tls.h b/sysdeps/arm/nptl/tls.h index 27ea00601e..f69ed1bcfd 100644 --- a/sysdeps/arm/nptl/tls.h +++ b/sysdeps/arm/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/generic/dl-dtv.h b/sysdeps/generic/dl-dtv.h new file mode 100644 index 0000000000..36c5c58cdd --- /dev/null +++ b/sysdeps/generic/dl-dtv.h @@ -0,0 +1,36 @@ +/* Generic declarations for DTV-based TLS handling in the dynamic linker. + Copyright (C) 2002-2016 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + <http://www.gnu.org/licenses/>. */ + +#ifndef _DL_DTV_H +#define _DL_DTV_H + +/* Type for the dtv. */ +typedef union dtv +{ + size_t counter; + struct + { + void *val; + bool is_static; + } pointer; +} dtv_t; + +/* Value used for dtv entries for which the allocation is delayed. */ +#define TLS_DTV_UNALLOCATED ((void *) -1l) + +#endif /* _DLT_DTV_H */ diff --git a/sysdeps/hppa/dl-tls.h b/sysdeps/hppa/dl-tls.h index bf0b2a463d..e9eda9f582 100644 --- a/sysdeps/hppa/dl-tls.h +++ b/sysdeps/hppa/dl-tls.h @@ -26,6 +26,3 @@ typedef struct extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/hppa/nptl/tls.h b/sysdeps/hppa/nptl/tls.h index ab271cf241..5ac6e63dd1 100644 --- a/sysdeps/hppa/nptl/tls.h +++ b/sysdeps/hppa/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/i386/dl-tls.h b/sysdeps/i386/dl-tls.h index f8e108f730..9072327957 100644 --- a/sysdeps/i386/dl-tls.h +++ b/sysdeps/i386/dl-tls.h @@ -59,6 +59,3 @@ rtld_hidden_def (___tls_get_addr) # endif #endif - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/i386/nptl/tls.h b/sysdeps/i386/nptl/tls.h index 40f84ef4f7..5f6c3d7f21 100644 --- a/sysdeps/i386/nptl/tls.h +++ b/sysdeps/i386/nptl/tls.h @@ -28,19 +28,7 @@ # include <sysdep.h> # include <libc-internal.h> # include <kernel-features.h> - - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; - +# include <dl-dtv.h> typedef struct { diff --git a/sysdeps/ia64/dl-tls.h b/sysdeps/ia64/dl-tls.h index a36d990878..e9bb0ca612 100644 --- a/sysdeps/ia64/dl-tls.h +++ b/sysdeps/ia64/dl-tls.h @@ -28,6 +28,3 @@ #define DONT_USE_TLS_INDEX 1 extern void *__tls_get_addr (size_t m, size_t offset); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/ia64/nptl/tls.h b/sysdeps/ia64/nptl/tls.h index 1668fd4ca9..65226d77ca 100644 --- a/sysdeps/ia64/nptl/tls.h +++ b/sysdeps/ia64/nptl/tls.h @@ -26,19 +26,7 @@ # include <stdint.h> # include <stdlib.h> # include <list.h> - - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; - +# include <dl-dtv.h> typedef struct { diff --git a/sysdeps/m68k/dl-tls.h b/sysdeps/m68k/dl-tls.h index 82ff78c36c..fab9f0ad14 100644 --- a/sysdeps/m68k/dl-tls.h +++ b/sysdeps/m68k/dl-tls.h @@ -45,6 +45,3 @@ extern void *__tls_get_addr (tls_index *ti); #define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET) #define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET) - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/m68k/nptl/tls.h b/sysdeps/m68k/nptl/tls.h index 93bc1ad080..703d368e92 100644 --- a/sysdeps/m68k/nptl/tls.h +++ b/sysdeps/m68k/nptl/tls.h @@ -26,17 +26,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/mach/hurd/i386/tls.h b/sysdeps/mach/hurd/i386/tls.h index ca68d1cfde..34564ae465 100644 --- a/sysdeps/mach/hurd/i386/tls.h +++ b/sysdeps/mach/hurd/i386/tls.h @@ -25,17 +25,7 @@ #ifndef __ASSEMBLER__ -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; - +# include <dl-dtv.h> /* Type of the TCB. */ typedef struct diff --git a/sysdeps/microblaze/dl-tls.h b/sysdeps/microblaze/dl-tls.h index 704ad25952..9f0f49111d 100644 --- a/sysdeps/microblaze/dl-tls.h +++ b/sysdeps/microblaze/dl-tls.h @@ -24,6 +24,3 @@ typedef struct } tls_index; extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/microblaze/nptl/tls.h b/sysdeps/microblaze/nptl/tls.h index 171a745db9..42d2c4bcd4 100644 --- a/sysdeps/microblaze/nptl/tls.h +++ b/sysdeps/microblaze/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/mips/dl-tls.h b/sysdeps/mips/dl-tls.h index 54dc71190c..58d968ff35 100644 --- a/sysdeps/mips/dl-tls.h +++ b/sysdeps/mips/dl-tls.h @@ -43,6 +43,3 @@ extern void *__tls_get_addr (tls_index *ti); # define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET) # define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET) - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/mips/nptl/tls.h b/sysdeps/mips/nptl/tls.h index ef1145779d..95f8d33a2e 100644 --- a/sysdeps/mips/nptl/tls.h +++ b/sysdeps/mips/nptl/tls.h @@ -25,17 +25,10 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> +# include <dl-dtv.h> -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +/* Get system call information. */ +# include <sysdep.h> #ifdef __mips16 /* MIPS16 uses GCC builtin to access the TP. */ diff --git a/sysdeps/nios2/dl-tls.h b/sysdeps/nios2/dl-tls.h index 541e4b012e..65a9cc8506 100644 --- a/sysdeps/nios2/dl-tls.h +++ b/sysdeps/nios2/dl-tls.h @@ -43,6 +43,3 @@ extern void *__tls_get_addr (tls_index *ti); # define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET) # define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET) - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/nios2/nptl/tls.h b/sysdeps/nios2/nptl/tls.h index 465a4b9134..3fd8b32f80 100644 --- a/sysdeps/nios2/nptl/tls.h +++ b/sysdeps/nios2/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/powerpc/dl-tls.h b/sysdeps/powerpc/dl-tls.h index 4e3e93a84d..cc0771aa43 100644 --- a/sysdeps/powerpc/dl-tls.h +++ b/sysdeps/powerpc/dl-tls.h @@ -49,7 +49,4 @@ extern void *__tls_get_addr (tls_index *ti); # define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET) #endif -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) - #endif /* dl-tls.h */ diff --git a/sysdeps/powerpc/nptl/tls.h b/sysdeps/powerpc/nptl/tls.h index 1f3d97a995..93d001151c 100644 --- a/sysdeps/powerpc/nptl/tls.h +++ b/sysdeps/powerpc/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h index 8132b10ab5..98262b2b62 100644 --- a/sysdeps/s390/dl-tls.h +++ b/sysdeps/s390/dl-tls.h @@ -102,6 +102,3 @@ extern void *__tls_get_addr_internal (tls_index *ti); + (unsigned long) __builtin_thread_pointer (); }) #endif - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/s390/nptl/tls.h b/sysdeps/s390/nptl/tls.h index e6f8a47ecc..4a5638e589 100644 --- a/sysdeps/s390/nptl/tls.h +++ b/sysdeps/s390/nptl/tls.h @@ -27,19 +27,7 @@ # include <stdlib.h> # include <list.h> # include <kernel-features.h> - - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; - +# include <dl-dtv.h> typedef struct { diff --git a/sysdeps/sh/dl-tls.h b/sysdeps/sh/dl-tls.h index 2b6d57356d..2b2bbabe70 100644 --- a/sysdeps/sh/dl-tls.h +++ b/sysdeps/sh/dl-tls.h @@ -26,6 +26,3 @@ typedef struct extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/sh/nptl/tls.h b/sysdeps/sh/nptl/tls.h index 9615a76e3e..4421910554 100644 --- a/sysdeps/sh/nptl/tls.h +++ b/sysdeps/sh/nptl/tls.h @@ -28,17 +28,7 @@ # include <stdlib.h> # include <list.h> # include <sysdep.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> typedef struct { diff --git a/sysdeps/sparc/dl-tls.h b/sysdeps/sparc/dl-tls.h index 9fbe90934c..0c0ca061ee 100644 --- a/sysdeps/sparc/dl-tls.h +++ b/sysdeps/sparc/dl-tls.h @@ -26,6 +26,3 @@ typedef struct extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/sparc/nptl/tls.h b/sysdeps/sparc/nptl/tls.h index 54bce7e950..9c0c5158b1 100644 --- a/sysdeps/sparc/nptl/tls.h +++ b/sysdeps/sparc/nptl/tls.h @@ -27,17 +27,7 @@ # include <stdlib.h> # include <list.h> # include <kernel-features.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> typedef struct { diff --git a/sysdeps/tile/dl-tls.h b/sysdeps/tile/dl-tls.h index 16c5a43384..b66cc08666 100644 --- a/sysdeps/tile/dl-tls.h +++ b/sysdeps/tile/dl-tls.h @@ -40,6 +40,3 @@ extern void *__tls_get_addr (tls_index *ti); /* Compute the value for a DTPREL reloc. */ #define TLS_DTPREL_VALUE(sym) \ ((sym)->st_value - TLS_DTV_OFFSET) - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/tile/nptl/tls.h b/sysdeps/tile/nptl/tls.h index 08e1d54346..9ab195f6f2 100644 --- a/sysdeps/tile/nptl/tls.h +++ b/sysdeps/tile/nptl/tls.h @@ -25,17 +25,7 @@ # include <stdbool.h> # include <stddef.h> # include <stdint.h> - -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; +# include <dl-dtv.h> #else /* __ASSEMBLER__ */ # include <tcb-offsets.h> diff --git a/sysdeps/x86_64/dl-tls.h b/sysdeps/x86_64/dl-tls.h index 285799b674..eba9993f9d 100644 --- a/sysdeps/x86_64/dl-tls.h +++ b/sysdeps/x86_64/dl-tls.h @@ -27,6 +27,3 @@ typedef struct dl_tls_index extern void *__tls_get_addr (tls_index *ti); - -/* Value used for dtv entries for which the allocation is delayed. */ -#define TLS_DTV_UNALLOCATED ((void *) -1l) diff --git a/sysdeps/x86_64/nptl/tls.h b/sysdeps/x86_64/nptl/tls.h index b947d57447..0672348efd 100644 --- a/sysdeps/x86_64/nptl/tls.h +++ b/sysdeps/x86_64/nptl/tls.h @@ -28,6 +28,7 @@ # include <sysdep.h> # include <libc-internal.h> # include <kernel-features.h> +# include <dl-dtv.h> /* Replacement type for __m128 since this file is included by ld.so, which is compiled with -mno-sse. It must not change the alignment @@ -38,18 +39,6 @@ typedef struct } __128bits; -/* Type for the dtv. */ -typedef union dtv -{ - size_t counter; - struct - { - void *val; - bool is_static; - } pointer; -} dtv_t; - - typedef struct { void *tcb; /* Pointer to the TCB. Not necessarily the |