diff --git a/sysdeps/aarch64/dl-tls.h b/sysdeps/aarch64/dl-tls.h deleted file mode 100644 index fe6addc009..0000000000 --- a/sysdeps/aarch64/dl-tls.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Copyright (C) 2005-2025 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 - . */ - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/alpha/dl-tls.h b/sysdeps/alpha/dl-tls.h deleted file mode 100644 index 02cf57da3e..0000000000 --- a/sysdeps/alpha/dl-tls.h +++ /dev/null @@ -1,27 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. Alpha version. - Copyright (C) 2002-2025 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 - . */ - - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/arc/dl-tls.h b/sysdeps/arc/dl-tls.h deleted file mode 100644 index 12d02c7bdc..0000000000 --- a/sysdeps/arc/dl-tls.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. ARC version. - Copyright (C) 2020-2025 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 - . */ - - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} 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/dl-tls.h b/sysdeps/arm/dl-tls.h deleted file mode 100644 index 550f5471ae..0000000000 --- a/sysdeps/arm/dl-tls.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. ARM version. - Copyright (C) 2005-2025 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 - . */ - - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct dl_tls_index -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/csky/dl-tls.h b/sysdeps/csky/dl-tls.h deleted file mode 100644 index 62520a32e2..0000000000 --- a/sysdeps/csky/dl-tls.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. C-SKY version. - Copyright (C) 2018-2025 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 - . */ - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/generic/dl-tls.h b/sysdeps/generic/dl-tls.h index 7703a97525..8aff4b6ca6 100644 --- a/sysdeps/generic/dl-tls.h +++ b/sysdeps/generic/dl-tls.h @@ -1,2 +1,36 @@ -/* There has to be an architecture specific version of this file. */ -#error "architecture-specific version of missing" +/* TLS definitions for the ELF dynamic linker. Generic version. + Copyright (C) 2002-2025 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 + . */ + +#ifndef _DL_TLS_H +#define _DL_TLS_H + +/* Type used for the representation of TLS information in the GOT. */ +typedef struct +{ + unsigned long int ti_module; + unsigned long int ti_offset; +} tls_index; + +extern void *__tls_get_addr (tls_index *ti); + +/* Dynamic thread vector pointers point to the start of each + TLS block. */ +#define TLS_DTV_OFFSET 0 + +#endif /* _DL_TLS_H */ diff --git a/sysdeps/hppa/dl-tls.h b/sysdeps/hppa/dl-tls.h deleted file mode 100644 index 363e2872df..0000000000 --- a/sysdeps/hppa/dl-tls.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. hppa version. - Copyright (C) 2003-2025 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 - . */ - - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/i386/dl-tls.h b/sysdeps/i386/dl-tls.h index 3bb472eb04..eed183293c 100644 --- a/sysdeps/i386/dl-tls.h +++ b/sysdeps/i386/dl-tls.h @@ -24,6 +24,9 @@ typedef struct dl_tls_index unsigned long int ti_offset; } tls_index; +/* Dynamic thread vector pointers point to the start of each + TLS block. */ +#define TLS_DTV_OFFSET 0 #ifdef SHARED /* This is the prototype for the GNU version. */ diff --git a/sysdeps/microblaze/dl-tls.h b/sysdeps/microblaze/dl-tls.h deleted file mode 100644 index 5cd1370b12..0000000000 --- a/sysdeps/microblaze/dl-tls.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright (C) 2005-2025 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 - . */ - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/or1k/dl-tls.h b/sysdeps/or1k/dl-tls.h deleted file mode 100644 index d896f275fa..0000000000 --- a/sysdeps/or1k/dl-tls.h +++ /dev/null @@ -1,27 +0,0 @@ -/* TLS definitions for the ELF dynamic linker. OpenRISC version. - Copyright (C) 2022-2025 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 - . */ - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/sh/dl-tls.h b/sysdeps/sh/dl-tls.h deleted file mode 100644 index 13c69a6d08..0000000000 --- a/sysdeps/sh/dl-tls.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. SH version. - Copyright (C) 2002-2025 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 - . */ - - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/sparc/dl-tls.h b/sysdeps/sparc/dl-tls.h deleted file mode 100644 index 06ca48b353..0000000000 --- a/sysdeps/sparc/dl-tls.h +++ /dev/null @@ -1,28 +0,0 @@ -/* Thread-local storage handling in the ELF dynamic linker. SPARC version. - Copyright (C) 2003-2025 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 - . */ - - -/* Type used for the representation of TLS information in the GOT. */ -typedef struct -{ - unsigned long int ti_module; - unsigned long int ti_offset; -} tls_index; - - -extern void *__tls_get_addr (tls_index *ti); diff --git a/sysdeps/x86_64/dl-tls.h b/sysdeps/x86_64/x32/dl-tls.h similarity index 91% rename from sysdeps/x86_64/dl-tls.h rename to sysdeps/x86_64/x32/dl-tls.h index f75da6efe6..4b736a4f30 100644 --- a/sysdeps/x86_64/dl-tls.h +++ b/sysdeps/x86_64/x32/dl-tls.h @@ -31,4 +31,8 @@ typedef struct dl_tls_index extern void *__tls_get_addr (tls_index *ti); +/* Dynamic thread vector pointers point to the start of each + TLS block. */ +#define TLS_DTV_OFFSET 0 + #endif /* _X86_64_DL_TLS_H */