[binutils-gdb] MIPS/BFD: Remove extraneous undefined weak symbol visibility check

Maciej W.Rozycki macro@sourceware.org
Fri Jun 29 14:46:00 GMT 2018


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

commit 262e07d0115adc08cf7481689d9d146a01ee5bb8
Author: Maciej W. Rozycki <macro@mips.com>
Date:   Fri Jun 29 15:45:28 2018 +0100

    MIPS/BFD: Remove extraneous undefined weak symbol visibility check
    
    Remove an extraneous symbol visibility check made for undefined weak
    symbols in determination whether an R_MIPS_REL32 dynamic relocation has
    to be placed in output, complementing commit ad9512030937 ("mips: Check
    UNDEFWEAK_NO_DYNAMIC_RELOC").  That check duplicates one already made by
    the UNDEFWEAK_NO_DYNAMIC_RELOC macro as a part of a broader condition
    used to decide if to enter undefined weak symbols to the dynamic symbol
    table or not.
    
    	bfd/
    	* elfxx-mips.c (allocate_dynrelocs): Remove extraneous symbol
    	visibility check made for undefined weak symbols.

Diff:
---
 bfd/ChangeLog    | 5 +++++
 bfd/elfxx-mips.c | 7 +++----
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f9dfd53..9cfd1c9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-29  Maciej W. Rozycki  <macro@mips.com>
+
+	* elfxx-mips.c (allocate_dynrelocs): Remove extraneous symbol
+	visibility check made for undefined weak symbols.
+
 2018-06-26  Nick Clifton  <nickc@redhat.com>
 
 	* po/uk.po: Updated Ukranian translation.
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 3adfead..82ab417 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -8951,10 +8951,9 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
 
       if (h->root.type == bfd_link_hash_undefweak)
 	{
-	  /* Do not copy relocations for undefined weak symbols with
-	     non-default visibility.  */
-	  if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
-	      || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
+	  /* Do not copy relocations for undefined weak symbols that
+	     we are not going to export.  */
+	  if (UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
 	    do_copy = FALSE;
 
 	  /* Make sure undefined weak symbols are output as a dynamic



More information about the Binutils-cvs mailing list