The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=283a4f409731ba3a4eb1be41e151c20e8a960c03

commit 283a4f409731ba3a4eb1be41e151c20e8a960c03
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2023-06-05 00:43:55 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2023-06-05 19:33:17 +0000

    rtld: rename tls_done to tls_static
    
    The meaning of the flag is that static TLS allocation was done.
    
    Taken from NetBSD Joerg Sonnenberger change for src/libexec/ld.elf_so/tls.c
    rev. 1.18.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
---
 libexec/rtld-elf/aarch64/reloc.c   | 2 +-
 libexec/rtld-elf/amd64/reloc.c     | 4 ++--
 libexec/rtld-elf/arm/reloc.c       | 2 +-
 libexec/rtld-elf/i386/reloc.c      | 2 +-
 libexec/rtld-elf/map_object.c      | 2 +-
 libexec/rtld-elf/powerpc/reloc.c   | 2 +-
 libexec/rtld-elf/powerpc64/reloc.c | 2 +-
 libexec/rtld-elf/riscv/reloc.c     | 4 ++--
 libexec/rtld-elf/rtld.c            | 8 ++++----
 libexec/rtld-elf/rtld.h            | 2 +-
 10 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/libexec/rtld-elf/aarch64/reloc.c b/libexec/rtld-elf/aarch64/reloc.c
index d83da4df0ec5..f9a1ae4c2b6c 100644
--- a/libexec/rtld-elf/aarch64/reloc.c
+++ b/libexec/rtld-elf/aarch64/reloc.c
@@ -470,7 +470,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int 
flags,
                         * modules. If we run out of space, we generate an
                         * error.
                         */
-                       if (!defobj->tls_done) {
+                       if (!defobj->tls_static) {
                                if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                        _rtld_error(
diff --git a/libexec/rtld-elf/amd64/reloc.c b/libexec/rtld-elf/amd64/reloc.c
index b92d89028d4e..2fdc10ad915f 100644
--- a/libexec/rtld-elf/amd64/reloc.c
+++ b/libexec/rtld-elf/amd64/reloc.c
@@ -258,7 +258,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int 
flags,
                         * dynamically loaded modules. If we run out
                         * of space, we generate an error.
                         */
-                       if (!defobj->tls_done) {
+                       if (!defobj->tls_static) {
                                if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                        _rtld_error("%s: No space available "
@@ -279,7 +279,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int 
flags,
                         * dynamically loaded modules. If we run out
                         * of space, we generate an error.
                         */
-                       if (!defobj->tls_done) {
+                       if (!defobj->tls_static) {
                                if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                        _rtld_error("%s: No space available "
diff --git a/libexec/rtld-elf/arm/reloc.c b/libexec/rtld-elf/arm/reloc.c
index cfbddaeede75..b85c8b1f4845 100644
--- a/libexec/rtld-elf/arm/reloc.c
+++ b/libexec/rtld-elf/arm/reloc.c
@@ -279,7 +279,7 @@ reloc_nonplt_object(Obj_Entry *obj, const Elf_Rel *rel, 
SymCache *cache,
                        if (def == NULL)
                                return -1;
 
-                       if (!defobj->tls_done && !allocate_tls_offset(obj))
+                       if (!defobj->tls_static && !allocate_tls_offset(obj))
                                return -1;
 
                        tmp = (Elf_Addr)def->st_value + defobj->tlsoffset;
diff --git a/libexec/rtld-elf/i386/reloc.c b/libexec/rtld-elf/i386/reloc.c
index ae0a256e4033..bd8595f923df 100644
--- a/libexec/rtld-elf/i386/reloc.c
+++ b/libexec/rtld-elf/i386/reloc.c
@@ -242,7 +242,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int 
flags,
                         * dynamically loaded modules. If we run out
                         * of space, we generate an error.
                         */
-                       if (!defobj->tls_done) {
+                       if (!defobj->tls_static) {
                                if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                        _rtld_error("%s: No space available "
diff --git a/libexec/rtld-elf/map_object.c b/libexec/rtld-elf/map_object.c
index ff4bd513ee59..8c04183f7bca 100644
--- a/libexec/rtld-elf/map_object.c
+++ b/libexec/rtld-elf/map_object.c
@@ -433,7 +433,7 @@ obj_free(Obj_Entry *obj)
 {
     Objlist_Entry *elm;
 
-    if (obj->tls_done)
+    if (obj->tls_static)
        free_tls_offset(obj);
     while (obj->needed != NULL) {
        Needed_Entry *needed = obj->needed;
diff --git a/libexec/rtld-elf/powerpc/reloc.c b/libexec/rtld-elf/powerpc/reloc.c
index 27796cb18277..7fd6251c7dd5 100644
--- a/libexec/rtld-elf/powerpc/reloc.c
+++ b/libexec/rtld-elf/powerpc/reloc.c
@@ -252,7 +252,7 @@ reloc_nonplt_object(Obj_Entry *obj_rtld __unused, Obj_Entry 
*obj,
                 * modules. If we run out of space, we generate an
                 * error.
                 */
-               if (!defobj->tls_done) {
+               if (!defobj->tls_static) {
                        if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                _rtld_error("%s: No space available for static "
diff --git a/libexec/rtld-elf/powerpc64/reloc.c 
b/libexec/rtld-elf/powerpc64/reloc.c
index 2ca361168e0d..732d6ddff7c9 100644
--- a/libexec/rtld-elf/powerpc64/reloc.c
+++ b/libexec/rtld-elf/powerpc64/reloc.c
@@ -247,7 +247,7 @@ reloc_nonplt_object(Obj_Entry *obj_rtld __unused, Obj_Entry 
*obj,
                 * modules. If we run out of space, we generate an
                 * error.
                 */
-               if (!defobj->tls_done) {
+               if (!defobj->tls_static) {
                        if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                _rtld_error("%s: No space available for static "
diff --git a/libexec/rtld-elf/riscv/reloc.c b/libexec/rtld-elf/riscv/reloc.c
index 48d513b94ec6..b5dea298b74d 100644
--- a/libexec/rtld-elf/riscv/reloc.c
+++ b/libexec/rtld-elf/riscv/reloc.c
@@ -325,7 +325,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int 
flags,
                         * modules. If we run out of space, we generate an
                         * error.
                         */
-                       if (!defobj->tls_done) {
+                       if (!defobj->tls_static) {
                                if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                        _rtld_error(
@@ -352,7 +352,7 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld, int 
flags,
                         * modules. If we run out of space, we generate an
                         * error.
                         */
-                       if (!defobj->tls_done) {
+                       if (!defobj->tls_static) {
                                if (!allocate_tls_offset(
                                    __DECONST(Obj_Entry *, defobj))) {
                                        _rtld_error(
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index 2b833e350e5a..9ed9a4aed4bb 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -5474,11 +5474,11 @@ allocate_tls_offset(Obj_Entry *obj)
 {
     size_t off;
 
-    if (obj->tls_done)
+    if (obj->tls_static)
        return (true);
 
     if (obj->tlssize == 0) {
-       obj->tls_done = true;
+       obj->tls_static = true;
        return (true);
     }
 
@@ -5509,7 +5509,7 @@ allocate_tls_offset(Obj_Entry *obj)
 
     tls_last_offset = off;
     tls_last_size = obj->tlssize;
-    obj->tls_done = true;
+    obj->tls_static = true;
 
     return (true);
 }
@@ -5885,7 +5885,7 @@ distribute_static_tls(Objlist *list, RtldLockState 
*lockstate)
                return;
        STAILQ_FOREACH(elm, list, link) {
                obj = elm->obj;
-               if (obj->marker || !obj->tls_done || obj->static_tls_copied)
+               if (obj->marker || !obj->tls_static || obj->static_tls_copied)
                        continue;
                distrib(obj->tlsoffset, obj->tlsinit, obj->tlsinitsize,
                    obj->tlssize);
diff --git a/libexec/rtld-elf/rtld.h b/libexec/rtld-elf/rtld.h
index bb5119bfb744..025bf4ff0670 100644
--- a/libexec/rtld-elf/rtld.h
+++ b/libexec/rtld-elf/rtld.h
@@ -245,7 +245,7 @@ typedef struct Struct_Obj_Entry {
     bool traced : 1;           /* Already printed in ldd trace output */
     bool jmpslots_done : 1;    /* Already have relocated the jump slots */
     bool init_done : 1;                /* Already have added object to init 
list */
-    bool tls_done : 1;         /* Already allocated offset for static TLS */
+    bool tls_static : 1;       /* Already allocated offset for static TLS */
     bool phdr_alloc : 1;       /* Phdr is allocated and needs to be freed. */
     bool z_origin : 1;         /* Process rpath and soname tokens */
     bool z_nodelete : 1;       /* Do not unload the object and dependencies */

Reply via email to