diff options
author | Jeff Law <law@redhat.com> | 1994-07-01 19:00:17 +0000 |
---|---|---|
committer | Jeff Law <law@redhat.com> | 1994-07-01 19:00:17 +0000 |
commit | ff5a090fb47ad13220b99662a42dbcf5bb4f2d8a (patch) | |
tree | 071c2cc6ffc39f617e516e199ef05308af30da66 /bfd/libelf.h | |
parent | 7f6572f5123a2d746fa33f45089595824c3b97ea (diff) | |
download | gdb-ff5a090fb47ad13220b99662a42dbcf5bb4f2d8a.zip gdb-ff5a090fb47ad13220b99662a42dbcf5bb4f2d8a.tar.gz gdb-ff5a090fb47ad13220b99662a42dbcf5bb4f2d8a.tar.bz2 |
* Support code for enabling the new style linker for PA ELF.
* elfcode.h (swap_symbol_in, swap_symbol_out): Externalize.
(elf_compute_section_file_positions): Pass link_info to
the begin_write_processing hook.
(bfd_elf_write_object_contents): Pass NULL for new link_info
argument to final_write_processing hook.
(elf_link_output_sym): Accept new "input_section" argument for
the symbols's input section. All callers changed. Call the
link_output_symbol_hook if it's defined.
(elf_bfd_final_link): Call the final_write_processing hook if
it's defined.
* libelf.h (elf_backend_link_output_symbol_hook): Declare.
(elf_backend_begin_write_processing): Add new "info" argument.
(elf_backend_final_write_processing): Likewise.
* elf32-target.h (elf_backend_link_output_symbol_hook): Provide
a default definition.
(elf32_bed): Add elf_backend_link_output_symbol_hook.
* elf64-target.h: Likewise.
* Major rework of the PA ELF code. Uses the new style BFD
linker, major cleanups.
* hppa_stubs.h: Rewrite from scratch. Much smaller and simpler.
* elf32-hppa.h: Delete all symbol extension related code.
(hppa_look_for_stubs_in_section): Delete decl.
(elf32_hppa_size_stubs, elf32_hppa_build_stubs): New decls.
* elf32-hppa.c: Symbol extension stuff moved form elf32-hppa.h
into elf32-hppa.c. Do not include aout64.h.
(typdef hppa_stub_type): Delete.
(elf32_hppa_stub_name_list_struct): Delete.
(elf32_hppa_stub_description_struct): Delete.
(arg_reloc_type): Use simpler enumerations. All references changed.
(arg_location, arg_reloc_relocation): Likewise.
(elf32_hppa_symextn_map_struct): Delete.
(get_symbol_value): Delete.
(elf32_hppa_get_sym_extn): Delete.
(find_stubs, new_stubs, type_of_mismatch): Delete.
(find_stub_by_name, add_stub_by_name): Delete.
(hppa_elf_stub_finish, hppa_elf_stub_reloc): Delete.
(hppa_elf_arg_reloc_needed): Renamed. Simplify.
(hppa_elf_build_linker_stub, hppa_elf_create_stub_sec): Delete.
(hppa_elf_long_branch_needed_p): Delete.
(hppa_look_for_stubs_in_section): Delete.
(hppa_elf_get_section_contents): Delete.
(elf32_hppa_backend_symbol_processing): Delete.
(elf32_hppa_backend_section_processing): Delete.
(elf32_hppa_backend_section_from_shdr): Delete.
(elf32_hppa_backend_fake_sections): Delete.
(elf32_hppa_backend_section_from_bfd_section): Delete.
(NEW_INSTRUCTION): Delete.
(CURRENT_STUB_OFFSET): Delete.
(elf32_hppa_relocate_section): New function.
(elf32_hppa_bfd_final_link_relocate): New function.
(elf32_hppa_size_symext): New function.
(elf32_hppa_link_output_symbol_hook): New function.
(elf32_hppa_read_symext_info): New function.
(elf32_hppa_add_symbol_hook): New function.
(elf32_hppa_name_of_stub): New function.
(elf32_hppa_size_of_stub): New function.
(elf32_hppa_build_one_sub): New function.
(elf32_hppa_build_stubs): New function.
(elf32_hppa_size_stubs): New function.
(linker, stub and argument hash tables): Add appropriate
structures, definitions and functions to implement all three
hash tables.
(hppa_elf_relocate_insn): Don't need argument location information
in this function.
(add_entry_to_symext_chain): Accept a symbol's argument location
information rather than the symbol itself. All callers changed.
(hppa_elf_gen_reloc_type): Simplify.
(hppa_elf_set_section_contents): Stub section is no longer special.
(hppa_elf_reloc): Greatly simplify.
(elf32_hppa_begin_write_processing): Accept link_info argument.
Handle being called from the BFD backend linker.
(elf32_hppa_final_write_processing): Likewise.
(elf_hppa_tc_make_sections): No longer call stub_finish.
Diffstat (limited to 'bfd/libelf.h')
-rw-r--r-- | bfd/libelf.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bfd/libelf.h b/bfd/libelf.h index 0522627..1421181 100644 --- a/bfd/libelf.h +++ b/bfd/libelf.h @@ -257,6 +257,12 @@ struct elf_backend_data const Elf_Internal_Sym *, const char **name, flagword *flags, asection **sec, bfd_vma *value)); + /* If this field is not NULL, it is called by the elf_link_output_sym + phase of a link for each symbol which will appear in the object file. */ + boolean (*elf_backend_link_output_symbol_hook) + PARAMS ((bfd *, struct bfd_link_info *info, const char *, + Elf_Internal_Sym *, asection *)); + /* The CREATE_DYNAMIC_SECTIONS function is called by the ELF backend linker the first time it encounters a dynamic object in the link. This function must create any sections required for dynamic @@ -349,11 +355,13 @@ struct elf_backend_data /* A function to do any beginning processing needed for the ELF file before building the ELF headers and computing file positions. */ - void (*elf_backend_begin_write_processing) PARAMS ((bfd *)); + void (*elf_backend_begin_write_processing) + PARAMS ((bfd *, struct bfd_link_info *)); /* A function to do any final processing needed for the ELF file before writing it out. */ - void (*elf_backend_final_write_processing) PARAMS ((bfd *)); + void (*elf_backend_final_write_processing) + PARAMS ((bfd *, struct bfd_link_info *)); /* The swapping table to use when dealing with ECOFF information. Used for the MIPS ELF .mdebug section. */ |