This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
bfd_elf_match_symbols_in_sections
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: binutils at sourceware dot org
- Date: Wed, 31 Oct 2007 18:05:28 +1030
- Subject: 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