This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

bfd_elf_match_symbols_in_sections


This removes some unnecessary code.  bfd_elf_match_symbols_in_sections
is called from three places, once in match_group_member and twice in
_bfd_elf_section_already_linked.  The last two calls always have one
section a group and the other section linkonce, so the tests don't
apply.  match_group_member is only called for sections that have their
kept_section set, so any name comparisons needed have already been
done.

	* elf-bfd.h (bfd_elf_match_symbols_in_sections): Don't declare.
	(bfd_elf_match_symbols_in_sections): Make static.  Remove section
	name comparisons.

Index: bfd/elf-bfd.h
===================================================================
RCS file: /cvs/src/src/bfd/elf-bfd.h,v
retrieving revision 1.245
diff -u -p -r1.245 elf-bfd.h
--- bfd/elf-bfd.h	25 Oct 2007 00:40:34 -0000	1.245
+++ bfd/elf-bfd.h	31 Oct 2007 06:17:16 -0000
@@ -1814,9 +1814,6 @@ extern bfd_boolean _bfd_elf_dynamic_symb
 extern bfd_boolean _bfd_elf_symbol_refs_local_p
   (struct elf_link_hash_entry *, struct bfd_link_info *, bfd_boolean);
 
-extern bfd_boolean bfd_elf_match_symbols_in_sections
-  (asection *, asection *, struct bfd_link_info *);
-
 extern void bfd_elf_perform_complex_relocation
   (bfd *, asection *, bfd_byte *, Elf_Internal_Rela *, bfd_vma);
 
Index: bfd/elflink.c
===================================================================
RCS file: /cvs/src/src/bfd/elflink.c,v
retrieving revision 1.284
diff -u -p -r1.284 elflink.c
--- bfd/elflink.c	18 Oct 2007 09:13:50 -0000	1.284
+++ bfd/elflink.c	31 Oct 2007 06:17:25 -0000
@@ -6923,7 +6923,7 @@ elf_create_symbuf (bfd_size_type symcoun
 /* Check if 2 sections define the same set of local and global
    symbols.  */
 
-bfd_boolean
+static bfd_boolean
 bfd_elf_match_symbols_in_sections (asection *sec1, asection *sec2,
 				   struct bfd_link_info *info)
 {
@@ -6942,13 +6942,6 @@ bfd_elf_match_symbols_in_sections (asect
   bfd1 = sec1->owner;
   bfd2 = sec2->owner;
 
-  /* If both are .gnu.linkonce sections, they have to have the same
-     section name.  */
-  if (CONST_STRNEQ (sec1->name, ".gnu.linkonce")
-      && CONST_STRNEQ (sec2->name, ".gnu.linkonce"))
-    return strcmp (sec1->name + sizeof ".gnu.linkonce",
-		   sec2->name + sizeof ".gnu.linkonce") == 0;
-
   /* Both sections have to be in ELF.  */
   if (bfd_get_flavour (bfd1) != bfd_target_elf_flavour
       || bfd_get_flavour (bfd2) != bfd_target_elf_flavour)
@@ -6957,15 +6950,6 @@ bfd_elf_match_symbols_in_sections (asect
   if (elf_section_type (sec1) != elf_section_type (sec2))
     return FALSE;
 
-  if ((elf_section_flags (sec1) & SHF_GROUP) != 0
-      && (elf_section_flags (sec2) & SHF_GROUP) != 0)
-    {
-      /* If both are members of section groups, they have to have the
-	 same group name.  */
-      if (strcmp (elf_group_name (sec1), elf_group_name (sec2)) != 0)
-	return FALSE;
-    }
-
   shndx1 = _bfd_elf_section_from_bfd_section (bfd1, sec1);
   shndx2 = _bfd_elf_section_from_bfd_section (bfd2, sec2);
   if (shndx1 == -1 || shndx2 == -1)

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]