[binutils-gdb] gas: fix symbol value calculation for versioned symbol aliases

Alan Modra amodra@sourceware.org
Tue Nov 3 07:50:06 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=05862db73fb5cad8bdae85e240b7b4713aad327e

commit 05862db73fb5cad8bdae85e240b7b4713aad327e
Author: Christian Eggers <ceggers@gmx.de>
Date:   Sun Nov 1 09:10:14 2020 +0100

    gas: fix symbol value calculation for versioned symbol aliases
    
    Symbol value is in bytes while fragS::fr_address is in octets. Fixes GAS
    symver12 and symver13 tests on ELF targets with with OCTETS_PER_BYTE>1.
    
            * config/obj-elf (elf_frob_symbol): Fix symbol value calculation
            for versioned symbol aliases.
    
    Signed-off-by: Christian Eggers <ceggers@gmx.de>

Diff:
---
 gas/ChangeLog        | 5 +++++
 gas/config/obj-elf.c | 3 ++-
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index b965dbb90ea..3c2d6891dc4 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2020-11-03  Christian Eggers  <ceggers@gmx.de>
+
+	* config/obj-elf (elf_frob_symbol): Fix symbol value calculation
+	for versioned symbol aliases.
+
 2020-10-30  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR gas/26703
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index f061ea61f3e..93eb81e98a4 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -2588,7 +2588,8 @@ elf_frob_symbol (symbolS *symp, int *puntp)
 		 because we are in the middle of the final loop.  */
 	      S_SET_VALUE (symp2,
 			   (S_GET_VALUE (symp)
-			    - symbol_get_frag (symp)->fr_address));
+			    - (symbol_get_frag (symp)->fr_address
+			       / OCTETS_PER_BYTE)));
 
 	      symbol_set_frag (symp2, symbol_get_frag (symp));


More information about the Binutils-cvs mailing list