elf: correct relocation statistics for !ELF_MACHINE_START_ADDRESS

Message ID mvmcytk9ley.fsf@suse.de
State Committed
Commit 9c72830eb3e12c1d57ac7d1992c96ee69ccd835d
Headers
Series elf: correct relocation statistics for !ELF_MACHINE_START_ADDRESS |

Checks

Context Check Description
redhat-pt-bot/TryBot-apply_patch success Patch applied to master at the time it was sent
redhat-pt-bot/TryBot-32bit success Build for i686
linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 warning Patch is already merged
linaro-tcwg-bot/tcwg_glibc_build--master-arm warning Patch is already merged

Commit Message

Andreas Schwab Jan. 29, 2024, 4:03 p.m. UTC
  Fixes: 6628c742b2 ("elf: Remove prelink support")
---
 elf/rtld.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
  

Comments

Adhemerval Zanella Netto Jan. 29, 2024, 5:22 p.m. UTC | #1
On 29/01/24 13:03, Andreas Schwab wrote:
> Fixes: 6628c742b2 ("elf: Remove prelink support")

LGTM, thanks.

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

> ---
>  elf/rtld.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/elf/rtld.c b/elf/rtld.c
> index 4f494b792e..ac4bb23652 100644
> --- a/elf/rtld.c
> +++ b/elf/rtld.c
> @@ -2815,10 +2815,9 @@ print_statistics (const hp_timing_t *rtld_total_timep)
>  	    num_relative_relocations
>  	      += l->l_info[VERSYMIDX (DT_RELCOUNT)]->d_un.d_val;
>  #ifndef ELF_MACHINE_REL_RELATIVE
> -	  /* Relative relocations are processed on these architectures if
> -	     library is loaded to different address than p_vaddr.  */
> -	  if ((l->l_addr != 0)
> -	      && l->l_info[VERSYMIDX (DT_RELACOUNT)])
> +	  /* Relative relocations are always processed on these
> +	     architectures.  */
> +	  if (l->l_info[VERSYMIDX (DT_RELACOUNT)])
>  #else
>  	  /* On e.g. IA-64 or Alpha, relative relocations are processed
>  	     only if library is loaded to different address than p_vaddr.  */
  
Andreas K. Huettel Jan. 29, 2024, 8:39 p.m. UTC | #2
Am Montag, 29. Januar 2024, 18:22:10 CET schrieb Adhemerval Zanella Netto:
> 
> On 29/01/24 13:03, Andreas Schwab wrote:
> > Fixes: 6628c742b2 ("elf: Remove prelink support")
> 
> LGTM, thanks.
> 
> Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
> 

Is that a fix that should still go into the release? If yes, 
please confirm...

> > ---
> >  elf/rtld.c | 7 +++----
> >  1 file changed, 3 insertions(+), 4 deletions(-)
> > 
> > diff --git a/elf/rtld.c b/elf/rtld.c
> > index 4f494b792e..ac4bb23652 100644
> > --- a/elf/rtld.c
> > +++ b/elf/rtld.c
> > @@ -2815,10 +2815,9 @@ print_statistics (const hp_timing_t *rtld_total_timep)
> >  	    num_relative_relocations
> >  	      += l->l_info[VERSYMIDX (DT_RELCOUNT)]->d_un.d_val;
> >  #ifndef ELF_MACHINE_REL_RELATIVE
> > -	  /* Relative relocations are processed on these architectures if
> > -	     library is loaded to different address than p_vaddr.  */
> > -	  if ((l->l_addr != 0)
> > -	      && l->l_info[VERSYMIDX (DT_RELACOUNT)])
> > +	  /* Relative relocations are always processed on these
> > +	     architectures.  */
> > +	  if (l->l_info[VERSYMIDX (DT_RELACOUNT)])
> >  #else
> >  	  /* On e.g. IA-64 or Alpha, relative relocations are processed
> >  	     only if library is loaded to different address than p_vaddr.  */
>
  
Andreas K. Huettel Jan. 29, 2024, 8:48 p.m. UTC | #3
Am Montag, 29. Januar 2024, 21:39:31 CET schrieb Andreas K. Huettel:
> Am Montag, 29. Januar 2024, 18:22:10 CET schrieb Adhemerval Zanella Netto:
> > 
> > On 29/01/24 13:03, Andreas Schwab wrote:
> > > Fixes: 6628c742b2 ("elf: Remove prelink support")
> > 
> > LGTM, thanks.
> > 
> > Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
> > 
> 
> Is that a fix that should still go into the release? If yes, 
> please confirm...
> 
Sorry for the noise, it's in already. -a
  

Patch

diff --git a/elf/rtld.c b/elf/rtld.c
index 4f494b792e..ac4bb23652 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -2815,10 +2815,9 @@  print_statistics (const hp_timing_t *rtld_total_timep)
 	    num_relative_relocations
 	      += l->l_info[VERSYMIDX (DT_RELCOUNT)]->d_un.d_val;
 #ifndef ELF_MACHINE_REL_RELATIVE
-	  /* Relative relocations are processed on these architectures if
-	     library is loaded to different address than p_vaddr.  */
-	  if ((l->l_addr != 0)
-	      && l->l_info[VERSYMIDX (DT_RELACOUNT)])
+	  /* Relative relocations are always processed on these
+	     architectures.  */
+	  if (l->l_info[VERSYMIDX (DT_RELACOUNT)])
 #else
 	  /* On e.g. IA-64 or Alpha, relative relocations are processed
 	     only if library is loaded to different address than p_vaddr.  */