Re: [PATCH] elf: Remove dead l_need_tls_init static-TLS init path

Adhemerval Zanella Netto <[email protected]> Mon, 3 Aug 2026 11:23:50 -0300
Newsgroups gmane.comp.lib.glibc.alpha
Organization Linaro
Message-ID <[email protected]>

On 03/08/26 10:01, Florian Weimer wrote:
> * Adhemerval Zanella:
> 
>> Since af34b1376a3 ("elf: Initialize static TLS before relocation
>> processing", BZ 34164) dropped the 'defer-if-not-relocated' branch in
>> _dl_try_allocate_static_tls, nothing sets l_need_tls_init any more.  The
>> second pass in update_tls_slotinfo, guarded by l_need_tls_init, is
>> therefore dead: its _dl_update_slotinfo / _dl_init_static_tls calls never
>> run, and the static TLS image is initialised inline during relocation (IE
>> model) or lazily on first dynamic-TLS access instead.
>>
>> Remove the dead loop, the now write-only l_need_tls_init field and its
>> clear in _dl_allocate_tls_init.  No functional change.
>>
>> Checked on aarch64-linux-gnu, x86_64-linux-gnu, and i686-linux-gnu.
>> I also run the elf tests on armv7-a, alpha, loongarch64, mips64le,
>> powerpc, riscv, and s390x using qemu system.
>> ---
>>  elf/dl-open.c  | 50 +++++++++++---------------------------------------
>>  elf/dl-tls.c   |  9 +++------
>>  include/link.h |  3 ---
>>  3 files changed, 14 insertions(+), 48 deletions(-)
>>
>> diff --git a/elf/dl-open.c b/elf/dl-open.c
>> index cf4749694f9..ba06e837bae 100644
>> --- a/elf/dl-open.c
>> +++ b/elf/dl-open.c
>> @@ -382,36 +382,6 @@ update_tls_slotinfo (struct link_map *new)
>>  TLS generation counter wrapped!  Please report this."));
>>    /* Can be read concurrently.  */
>>    atomic_store_release (&GL(dl_tls_generation), newgen);
> 
> I think update_tls_slotinfo can now be inlined into its caller?  At the
> least the function is now about updating the TLS generation counter, so
> the name doesn't quite match anymore.

It makes sense, I will send a v2.

> 
> Thanks,
> Florian
> 
> PS: I won't make it to the patch review meeting today.
>