forked from Imagelibrary/binutils-gdb
PR ld/12762
bfd/ * bfd-in.h (struct bfd_section_already_linked): Forward declare. (_bfd_handle_already_linked): Declare. * coff-alpha.c (_bfd_ecoff_section_already_linked): Define as _bfd_coff_section_already_linked. * coff-mips.c (_bfd_ecoff_section_already_linked): Likewise. * coffcode.h (coff_section_already_linked): Likewise. * cofflink.c (coff_link_add_symbols): Revert 2011-07-09 changes. * elf-bfd.h: Likewise. * libbfd-in.h: Likewise. * targets.c: Likewise. * linker.c (bfd_section_already_linked): Likewise. (bfd_section_already_linked_table_lookup): Likewise. (bfd_section_already_linked_table_insert): Likewise. (_bfd_generic_section_already_linked): Likewise. Call _bfd_handle_already_linked. (_bfd_handle_already_linked): New function, split out from.. * elflink.c (_bfd_elf_section_already_linked): ..here. Revert 2011-07-09 changes. Avoid unnecessary strcmp when matching already_linked_list entries. Match plugin linkonce section. (section_signature): Delete. * coffgen.c (_bfd_coff_section_already_linked): New function. * libcoff-in.h (_bfd_coff_section_already_linked): Declare. * libbfd.h: Regenerate. * libcoff.h: Regenerate. * bfd-in2.h: Regenerate. ld/ * ldlang.c (section_already_linked): Revert 2011-07-09 changes. * plugin.c: Likewise. (asymbol_from_plugin_symbol): Create linkonce section for syms with comdat_key.
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
|
||||
Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
||||
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
||||
2010
|
||||
2010, 2011
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
Written by Cygnus Support.
|
||||
@@ -481,7 +481,7 @@ extern bfd_boolean _bfd_generic_set_section_contents
|
||||
#define _bfd_nolink_bfd_link_split_section \
|
||||
((bfd_boolean (*) (bfd *, struct bfd_section *)) bfd_false)
|
||||
#define _bfd_nolink_section_already_linked \
|
||||
((bfd_boolean (*) (bfd *, struct already_linked*, \
|
||||
((bfd_boolean (*) (bfd *, asection *, \
|
||||
struct bfd_link_info *)) bfd_false)
|
||||
#define _bfd_nolink_bfd_define_common_symbol \
|
||||
((bfd_boolean (*) (bfd *, struct bfd_link_info *, \
|
||||
@@ -603,7 +603,7 @@ extern bfd_boolean _bfd_generic_link_split_section
|
||||
(bfd *, struct bfd_section *);
|
||||
|
||||
extern bfd_boolean _bfd_generic_section_already_linked
|
||||
(bfd *, struct already_linked *, struct bfd_link_info *);
|
||||
(bfd *, asection *, struct bfd_link_info *);
|
||||
|
||||
/* Generic reloc_link_order processing routine. */
|
||||
extern bfd_boolean _bfd_generic_reloc_link_order
|
||||
@@ -795,26 +795,16 @@ struct bfd_section_already_linked_hash_entry
|
||||
struct bfd_section_already_linked *entry;
|
||||
};
|
||||
|
||||
struct already_linked
|
||||
{
|
||||
const char *comdat_key;
|
||||
union
|
||||
{
|
||||
asection *sec;
|
||||
bfd *abfd;
|
||||
} u;
|
||||
};
|
||||
|
||||
struct bfd_section_already_linked
|
||||
{
|
||||
struct bfd_section_already_linked *next;
|
||||
struct already_linked linked;
|
||||
asection *sec;
|
||||
};
|
||||
|
||||
extern struct bfd_section_already_linked_hash_entry *
|
||||
bfd_section_already_linked_table_lookup (const char *);
|
||||
extern bfd_boolean bfd_section_already_linked_table_insert
|
||||
(struct bfd_section_already_linked_hash_entry *, struct already_linked *);
|
||||
(struct bfd_section_already_linked_hash_entry *, asection *);
|
||||
extern void bfd_section_already_linked_table_traverse
|
||||
(bfd_boolean (*) (struct bfd_section_already_linked_hash_entry *,
|
||||
void *), void *);
|
||||
|
||||
Reference in New Issue
Block a user