[PATCH] i386: Also add GLIBC_ABI_GNU2_TLS version [BZ #33129]

Sam James sam@gentoo.org
Mon Aug 18 16:19:57 GMT 2025


"H.J. Lu" <hjl.tools@gmail.com> writes:

> Since the GNU2 TLS run-time bug:
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=31372
>
> affects both i386 and x86-64, also add GLIBC_ABI_GNU2_TLS version to i386
> to indicate the working GNU2 TLS run-time.  For x86-64, the additional
> GNU2 TLS run-time bug fix is needed for
>
> https://sourceware.org/bugzilla/show_bug.cgi?id=31501

Thanks.

Reviewed-by: Sam James <sam@gentoo.org>

>
> Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> ---
>  sysdeps/x86/Makefile    | 9 +++++++++
>  sysdeps/x86/Versions    | 5 +++++
>  sysdeps/x86_64/Makefile | 9 ---------
>  sysdeps/x86_64/Versions | 5 -----
>  4 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
> index 4fbd48e1c8..9e1c8cce85 100644
> --- a/sysdeps/x86/Makefile
> +++ b/sysdeps/x86/Makefile
> @@ -135,6 +135,15 @@ LDFLAGS-tst-tls23 += -rdynamic
>  tst-tls23-mod.so-no-z-defs = yes
>  
>  $(objpfx)tst-tls23-mod.so: $(libsupport)
> +
> +tests-special += $(objpfx)check-gnu2-tls.out
> +
> +$(objpfx)check-gnu2-tls.out: $(common-objpfx)libc.so
> +	LC_ALL=C $(READELF) -V -W $< \
> +		| sed -ne '/.gnu.version_d/, /.gnu.version_r/ p' \
> +		| grep GLIBC_ABI_GNU2_TLS > $@; \
> +	$(evaluate-test)
> +generated += check-gnu2-tls.out
>  endif
>  
>  ifeq ($(subdir),gmon)
> diff --git a/sysdeps/x86/Versions b/sysdeps/x86/Versions
> index 4b10c4b5d7..e8dcfccbe4 100644
> --- a/sysdeps/x86/Versions
> +++ b/sysdeps/x86/Versions
> @@ -7,4 +7,9 @@ libc {
>    GLIBC_2.33 {
>      __x86_get_cpuid_feature_leaf;
>    }
> +  GLIBC_ABI_GNU2_TLS {
> +    # This symbol is used only for empty version map and will be removed
> +    # by scripts/versions.awk.
> +    __placeholder_only_for_empty_version_map;
> +  }
>  }
> diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
> index 2902c7dc8c..9792e472dc 100644
> --- a/sysdeps/x86_64/Makefile
> +++ b/sysdeps/x86_64/Makefile
> @@ -222,15 +222,6 @@ $(objpfx)check-dt-x86-64-plt.out: $(common-objpfx)libc.so
>  		| grep GLIBC_ABI_DT_X86_64_PLT > $@; \
>  	$(evaluate-test)
>  generated += check-dt-x86-64-plt.out
> -
> -tests-special += $(objpfx)check-gnu2-tls.out
> -
> -$(objpfx)check-gnu2-tls.out: $(common-objpfx)libc.so
> -	LC_ALL=C $(READELF) -V -W $< \
> -		| sed -ne '/.gnu.version_d/, /.gnu.version_r/ p' \
> -		| grep GLIBC_ABI_GNU2_TLS > $@; \
> -	$(evaluate-test)
> -generated += check-gnu2-tls.out
>  endif
>  
>  test-internal-extras += tst-gnu2-tls2mod1
> diff --git a/sysdeps/x86_64/Versions b/sysdeps/x86_64/Versions
> index 0a759029e5..6a989ad3b3 100644
> --- a/sysdeps/x86_64/Versions
> +++ b/sysdeps/x86_64/Versions
> @@ -5,11 +5,6 @@ libc {
>    GLIBC_2.13 {
>      __fentry__;
>    }
> -  GLIBC_ABI_GNU2_TLS {
> -    # This symbol is used only for empty version map and will be removed
> -    # by scripts/versions.awk.
> -    __placeholder_only_for_empty_version_map;
> -  }
>    GLIBC_ABI_DT_X86_64_PLT {
>      # This symbol is used only for empty version map and will be removed
>      # by scripts/versions.awk.


More information about the Libc-alpha mailing list