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.
#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 *, \
(bfd *, asection *, asymbol **, bfd_vma, const char **,
const char **, unsigned int *);
+struct dwarf_debug_section
+{
+ const char *uncompressed_name;
+ const char *compressed_name;
+};
+
+/* Map of uncompressed DWARF debug section name to compressed one. It
+ is terminated by NULL uncompressed_name. */
+
+extern const struct dwarf_debug_section dwarf_debug_sections[];
+
/* Find the nearest line using DWARF 2 debugging information. */
extern bfd_boolean _bfd_dwarf2_find_nearest_line
- (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **,
- unsigned int *, unsigned int, void **);
+ (bfd *, const struct dwarf_debug_section *, asection *, asymbol **, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int, void **);
/* Find the line using DWARF 2 debugging information. */
extern bfd_boolean _bfd_dwarf2_find_line
/* Find inliner info after calling bfd_find_nearest_line. */
extern bfd_boolean _bfd_dwarf2_find_inliner_info
(bfd *, const char **, const char **, unsigned int *, void **);
-
+
+/* Clean up the data used to handle DWARF 2 debugging information. */
+extern void _bfd_dwarf2_cleanup_debug_info
+ (bfd *, void **);
+
/* Create a new section entry. */
extern struct bfd_hash_entry *bfd_section_hash_newfunc
(struct bfd_hash_entry *, struct bfd_hash_table *, const char *);
(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
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 *);
extern bfd_vma read_unsigned_leb128 (bfd *, bfd_byte *, unsigned int *);
extern bfd_signed_vma read_signed_leb128 (bfd *, bfd_byte *, unsigned int *);
-
-struct dwarf_debug_section
-{
- const char *uncompressed_name;
- const char *compressed_name;
-};
-
-/* Map of uncompressed DWARF debug section name to compressed one. It
- is terminated by NULL uncompressed_name. */
-
-extern const struct dwarf_debug_section dwarf_debug_sections[];