diff options
author | Daniel Jacobowitz <drow@false.org> | 2001-11-15 01:34:12 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2001-11-15 01:34:12 +0000 |
commit | 73d074b4e2c7e9a3954d0b08f048ebccd6c3e671 (patch) | |
tree | 8f33443a6ab464d2a979bf59dd24a98c71a9ba9b /bfd/elf-bfd.h | |
parent | 86651999acf60eb76a233cc1445fe978885f2006 (diff) | |
download | gdb-73d074b4e2c7e9a3954d0b08f048ebccd6c3e671.zip gdb-73d074b4e2c7e9a3954d0b08f048ebccd6c3e671.tar.gz gdb-73d074b4e2c7e9a3954d0b08f048ebccd6c3e671.tar.bz2 |
2001-11-11 Daniel Jacobowitz <drow@mvista.com>
* bfd-in.h (bfd_elf32_discard_info): Add prototype.
(bfd_elf64_discard_info): Likewise.
* bfd-in2.h: Regenerate.
* elf-bfd.h (struct elf_reloc_cookie): New.
(struct elf_backend_data): Add elf_backend_discard_info,
elf_backend_ignore_discarded_relocs, and elf_backend_write_section.
(_bfd_elf32_reloc_symbol_deleted_p): Add prototype.
(_bfd_elf64_reloc_symbol_deleted_p): Likewise.
* elf32-mips.c (_bfd_elf32_mips_discard_info): New.
(_bfd_elf32_mips_ignore_discarded_relocs): New.
(_bfd_elf32_mips_write_section): New.
(elf_backend_discard_info): Define.
(elf_backend_ignore_discarded_relocs): Define.
(elf_backend_write_section): Define.
* elfcode.h (elf_bfd_discard_info): Define.
(elf_reloc_symbol_deleted_p): Define.
* elflink.h (elf_link_input_bfd): Check
elf_section_ignore_discarded_relocs. Call
bed->elf_backend_write_section if available.
(elf_reloc_symbol_deleted_p): New.
(elf_bfd_discard_info): New.
(elf_section_ignore_discarded_relocs): New.
* elfxx-target.h (elf_backend_discard_info): Define.
(elf_backend_ignore_discarded_relocs): Define.
(elf_backend_write_section): Define.
(elfNN_bed): Add elf_backend_discard_info,
elf_backend_ignore_discarded_relocs, and
elf_backend_write_section.
* libbfd-in.h (_bfd_discard_section_stabs): Add prototype.
* libbfd.h: Regenerate.
* stabs.c (_bfd_discard_section_stabs): New.
2001-11-11 Daniel Jacobowitz <drow@mvista.com>
* emultempl/elf32.em (gld${EMULATION_NAME}_finish): New.
(struct ld_emulation_xfer_struct): Use it.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r-- | bfd/elf-bfd.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index cb79eea..b621327 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -381,6 +381,17 @@ enum elf_reloc_type_class { reloc_class_copy }; +struct elf_reloc_cookie +{ + Elf_Internal_Rela *rels, *rel, *relend; + void *locsyms; + bfd *abfd; + size_t locsymcount; + size_t extsymoff; + struct elf_link_hash_entry **sym_hashes; + boolean bad_symtab; +}; + struct elf_backend_data { /* The architecture for this backend. */ @@ -703,6 +714,21 @@ struct elf_backend_data enum elf_reloc_type_class (*elf_backend_reloc_type_class) PARAMS ((const Elf_Internal_Rela *)); + /* This function, if defined, removes information about discarded functions + from other sections which mention them. */ + boolean (*elf_backend_discard_info) + PARAMS ((bfd *, struct elf_reloc_cookie *, struct bfd_link_info *)); + + /* This function, if defined, signals that the function above has removed + the discarded relocations for this section. */ + boolean (*elf_backend_ignore_discarded_relocs) + PARAMS ((asection *)); + + /* This function, if defined, may write out the given section. + Returns true if it did so and false if the caller should. */ + boolean (*elf_backend_write_section) + PARAMS ((bfd *, asection *, bfd_byte *)); + /* The swapping table to use when dealing with ECOFF information. Used for the MIPS ELF .mdebug section. */ const struct ecoff_debug_swap *elf_backend_ecoff_debug_swap; @@ -1437,6 +1463,11 @@ extern boolean _bfd_elf64_gc_record_vtinherit extern boolean _bfd_elf64_gc_record_vtentry PARAMS ((bfd *, asection *, struct elf_link_hash_entry *, bfd_vma)); +extern boolean _bfd_elf32_reloc_symbol_deleted_p + PARAMS ((bfd_vma, PTR)); +extern boolean _bfd_elf64_reloc_symbol_deleted_p + PARAMS ((bfd_vma, PTR)); + /* MIPS ELF specific routines. */ extern boolean _bfd_mips_elf_object_p |