[PATCH 4/4] elf: Remove the remaining uses of GET_ADDR_OFFSET

Adhemerval Zanella Netto adhemerval.zanella@linaro.org
Mon Dec 30 22:23:19 GMT 2024



On 27/12/24 12:37, Florian Weimer wrote:
> Expand the macro where it is used in static definitions of
> __tls_get_addr.

LGTM, thanks.

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

> ---
>  sysdeps/loongarch/dl-tls.h   | 1 -
>  sysdeps/loongarch/libc-tls.c | 2 +-
>  sysdeps/m68k/dl-tls.h        | 1 -
>  sysdeps/m68k/libc-tls.c      | 2 +-
>  sysdeps/mips/dl-tls.h        | 3 +--
>  sysdeps/mips/libc-tls.c      | 2 +-
>  sysdeps/powerpc/dl-tls.h     | 1 -
>  sysdeps/riscv/dl-tls.h       | 1 -
>  sysdeps/riscv/libc-tls.c     | 2 +-
>  9 files changed, 5 insertions(+), 10 deletions(-)
> 
> diff --git a/sysdeps/loongarch/dl-tls.h b/sysdeps/loongarch/dl-tls.h
> index de593c002d..882bf2f6bd 100644
> --- a/sysdeps/loongarch/dl-tls.h
> +++ b/sysdeps/loongarch/dl-tls.h
> @@ -42,7 +42,6 @@ extern void *__tls_get_addr (tls_index *ti);
>  /* Compute the value for a DTPREL reloc.  */
>  #define TLS_DTPREL_VALUE(sym) ((sym)->st_value - TLS_DTV_OFFSET)
>  
> -#define GET_ADDR_OFFSET (ti->ti_offset + TLS_DTV_OFFSET)
>  #define __TLS_GET_ADDR(__ti) (__tls_get_addr (__ti) - TLS_DTV_OFFSET)
>  
>  /* Value used for dtv entries for which the allocation is delayed.  */
> diff --git a/sysdeps/loongarch/libc-tls.c b/sysdeps/loongarch/libc-tls.c
> index c8d87a8a34..d69a659812 100644
> --- a/sysdeps/loongarch/libc-tls.c
> +++ b/sysdeps/loongarch/libc-tls.c
> @@ -28,5 +28,5 @@ void *
>  __tls_get_addr (tls_index *ti)
>  {
>    dtv_t *dtv = THREAD_DTV ();
> -  return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
> +  return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
>  }
> diff --git a/sysdeps/m68k/dl-tls.h b/sysdeps/m68k/dl-tls.h
> index 967c84f1a2..c7c001d1b7 100644
> --- a/sysdeps/m68k/dl-tls.h
> +++ b/sysdeps/m68k/dl-tls.h
> @@ -42,5 +42,4 @@ typedef struct
>  
>  extern void *__tls_get_addr (tls_index *ti);
>  
> -#define GET_ADDR_OFFSET		(ti->ti_offset + TLS_DTV_OFFSET)
>  #define __TLS_GET_ADDR(__ti)	(__tls_get_addr (__ti) - TLS_DTV_OFFSET)
> diff --git a/sysdeps/m68k/libc-tls.c b/sysdeps/m68k/libc-tls.c
> index 10f56189cc..64275899ae 100644
> --- a/sysdeps/m68k/libc-tls.c
> +++ b/sysdeps/m68k/libc-tls.c
> @@ -28,5 +28,5 @@ void *
>  __tls_get_addr (tls_index *ti)
>  {
>    dtv_t *dtv = THREAD_DTV ();
> -  return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
> +  return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
>  }
> diff --git a/sysdeps/mips/dl-tls.h b/sysdeps/mips/dl-tls.h
> index 98bc5962d3..d9b5201f24 100644
> --- a/sysdeps/mips/dl-tls.h
> +++ b/sysdeps/mips/dl-tls.h
> @@ -41,5 +41,4 @@ typedef struct
>  
>  extern void *__tls_get_addr (tls_index *ti);
>  
> -# define GET_ADDR_OFFSET	(ti->ti_offset + TLS_DTV_OFFSET)
> -# define __TLS_GET_ADDR(__ti)	(__tls_get_addr (__ti) - TLS_DTV_OFFSET)
> +#define __TLS_GET_ADDR(__ti)	(__tls_get_addr (__ti) - TLS_DTV_OFFSET)
> diff --git a/sysdeps/mips/libc-tls.c b/sysdeps/mips/libc-tls.c
> index 895f9e7df8..02574fa319 100644
> --- a/sysdeps/mips/libc-tls.c
> +++ b/sysdeps/mips/libc-tls.c
> @@ -28,5 +28,5 @@ void *
>  __tls_get_addr (tls_index *ti)
>  {
>    dtv_t *dtv = THREAD_DTV ();
> -  return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
> +  return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
>  }
> diff --git a/sysdeps/powerpc/dl-tls.h b/sysdeps/powerpc/dl-tls.h
> index 8ed2a41609..be323eab2f 100644
> --- a/sysdeps/powerpc/dl-tls.h
> +++ b/sysdeps/powerpc/dl-tls.h
> @@ -45,7 +45,6 @@ typedef struct
>  #ifdef SHARED
>  extern void *__tls_get_addr (tls_index *ti);
>  
> -# define GET_ADDR_OFFSET	(ti->ti_offset + TLS_DTV_OFFSET)
>  # define __TLS_GET_ADDR(__ti)	(__tls_get_addr (__ti) - TLS_DTV_OFFSET)
>  #endif
>  
> diff --git a/sysdeps/riscv/dl-tls.h b/sysdeps/riscv/dl-tls.h
> index 049161f02f..ec7c2e038c 100644
> --- a/sysdeps/riscv/dl-tls.h
> +++ b/sysdeps/riscv/dl-tls.h
> @@ -41,7 +41,6 @@ typedef struct
>  
>  extern void *__tls_get_addr (tls_index *ti);
>  
> -#define GET_ADDR_OFFSET	(ti->ti_offset + TLS_DTV_OFFSET)
>  #define __TLS_GET_ADDR(__ti)	(__tls_get_addr (__ti) - TLS_DTV_OFFSET)
>  
>  /* Value used for dtv entries for which the allocation is delayed.  */
> diff --git a/sysdeps/riscv/libc-tls.c b/sysdeps/riscv/libc-tls.c
> index dbf71efa2c..8cb9e52742 100644
> --- a/sysdeps/riscv/libc-tls.c
> +++ b/sysdeps/riscv/libc-tls.c
> @@ -28,5 +28,5 @@ void *
>  __tls_get_addr (tls_index *ti)
>  {
>    dtv_t *dtv = THREAD_DTV ();
> -  return (char *) dtv[1].pointer.val + GET_ADDR_OFFSET;
> +  return (char *) dtv[1].pointer.val + ti->ti_offset + TLS_DTV_OFFSET;
>  }



More information about the Libc-alpha mailing list