[PATCH 2/4] s390: Define TLS_DTV_OFFSET instead of GET_ADDR_OFFSET

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Mon Dec 30 20:52:58 GMT 2024



On 27/12/24 12:37, Florian Weimer wrote:
> This will be used in __tls_get_addr to adjust the returned pointer
> value.


Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>

> ---
>  sysdeps/s390/dl-tls.h | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/sysdeps/s390/dl-tls.h b/sysdeps/s390/dl-tls.h
> index dcbdfe477c..4b160745cc 100644
> --- a/sysdeps/s390/dl-tls.h
> +++ b/sysdeps/s390/dl-tls.h
> @@ -24,6 +24,9 @@ typedef struct
>    unsigned long int ti_offset;
>  } tls_index;
>  
> +/* The DTV stores absolute addresses, but __tls_get_addr must return
> +   TP-relative addresses.  */
> +#define TLS_DTV_OFFSET (-(unsigned long int) __builtin_thread_pointer ())
>  
>  #ifdef SHARED
>  
> @@ -89,9 +92,6 @@ __tls_get_offset:\n\
>  extern void *__tls_get_addr_internal (tls_index *ti);
>  # endif /* !IS_IN (rtld) */
>  
> -# define GET_ADDR_OFFSET \
> -  (ti->ti_offset - (unsigned long) __builtin_thread_pointer ())
> -
>  /* Use the privately exported __tls_get_addr_internal instead of
>     __tls_get_offset in order to avoid the __tls_get_offset special
>     linkage requiring the GOT pointer to be set up in r12.  The



More information about the Libc-alpha mailing list