Mark Mitchell
103186c62b
* elf-bfd.h (_bfd_mips_elf_section_from_shdr): Constify.
...
(_bfd_mips_elf_create_dynamic_sections): New function.
(_bfd_mips_elf_add_symbol_hook): Likewise.
(_bfd_mips_elf_adjust_dynamic_symbol): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Likewise.
(_bfd_mips_elf_finish_dynamic_sections): Likewise.
(_bfd_mips_elf_gc_mark_hook): Likewise.
(_bfd_mips_elf_gc_sweep_hook): Likewise.
(_bfd_mips_elf_always_size_sections): Likewise.
(_bfd_mips_elf_size_dynamic_sections): Likewise.
(_bfd_mips_elf_check_relocs): Likewise.
(_bfd_mips_elf_link_hash_table_create): Likewise.
(_bfd_mips_elf_print_private_data): Likewise.
(_bfd_mips_elf_link_output_symbol_hook): Likewise.
(_bfd_mips_elf_final_link): Likewise.
(_bfd_mips_elf_additional_program_headers): Likewise.
(_bfd_mips_elf_modify_segment_map): Likewise.
(_bfd_mips_elf_relocate_section): Likewise.
* elf32-mips.c (mips_elf32_object_p): Move contents into
_bfd_mips_elf_object_p.
(mips_elf_additional_program_headers): Rename to
_bfd_mips_elf_additional_program_headers.
(mips_elf_modify_segment_map): Rename to
_bfd_mips_elf_modify_segment_map.
(elf_mips_abi_name): Change prototype.
(mips_elf32_section_from_shdr): Merge into
_bfd_mips_elf_section_from_shdr.
(mips_elf32_section_processing): Merge into
_bfd_mips_elf_section_processing.
(mips_elf_final_link): Rename to _bfd_mips_elf_final_link. Invoke
the right back-end ELF linker.
(mips_elf_relocate_section): Rename to
_bfd_mips_elf_relocate_section. Clean up. Adjust for 64-bit code.
(mips_elf_link_output_symbol_hook): Rename to
_bfd_mips_elf_link_output_symbol_hook.
(mips_elf_create_dynamic_section): Rename to
_bfd_mips_elf_create_dynamic_section.
(mips_elf_check_relocs): Rename to _bfd_mips_elf_check_relocs.
Adjust for 64-bit code. Use mips_elf_got_section.
(mips_elf_adjust_dynamic_symbol): Rename to
_bfd_mips_elf_adjust_dynamic_symbol. Use
mips_elf_allocate_dynamic_relocations.
(mips_elf_finish_dynamic_symbol): Rename to
_bfd_mips_elf_finish_dynamic_symbol. Use mips_elf_got_section.
Adjust for 64-bit code.
(mips_elf_finish_dynamic_sections): Rename to
_bfd_mips_elf_finish_dynamic_sections. Adjust for 64-bit code.
(mips_elf_always_size_sections): Rename to
_bfd_mips_elf_always_size_sections.
(mips_elf_add_symbol_hook): Rename to
_bfd_mips_elf_add_symbol_hook.
(mips_elf_next_lo16_addend): Constify.
(mips_elf_calculate_relocation): Likewise.
(mips_elf_obtain_contents): Likewise.
(mips_elf_perform_relocation): Likewise.
(mips_elf_create_dynamic_relocation): Likewise.
(mips_elf_allocate_dynamic_relocations): New function.
(MIPS_ELF_REL_DYN_SECTION_NAME): New macro.
(MIPS_ELF_REL_SIZE): Likewise.
(MIPS_ELF_DYN_SIZE): Likewise.
(MIPS_ELF_GOT_SIZE): Likewise.
(MIPS_ELF_SYM_SIZE): Likewise.
(MIPS_ELF_LOG_FILE_ALIGN): Likewise.
(MIPS_ELF_GET_WORD): Likewise.
(MIPS_ELF_PUT_WORD): Likewise.
(MIPS_ELF_ADD_DYNAMIC_ENTRY): Likewise.
(STUB_LW): Conditionalize for 64-bit value.
(elf_mips_howto_table): Add R_MIPS_HIGHER and R_MIPS_HIGHEST
entries.
(_bfd_mips_elf_merge_private_bfd_data): Merge e_ident[EI_CLASS].
Check it for inconsistency.
(_bfd_mips_elf_print_private_bfd_data): Print ABI=64 for 64-bit
ABI.
(_bfd_mips_elf_fake_sections): Remove duplicate handling of
.msym.
(mips_elf_global_got_index): Use MIPS_ELF_GOT_SIZE.
(mips_elf_got_offset_from_index): Use misp_elf_got_section.
(mips_elf_create_local_got_entry): Use MIPS_ELF_GOT_SIZE.
(mips_elf_local_got_index): Likewise.
(mips_elf_got_page): Likewise.
(mips_elf_got_info): Likewise.
(mips_elf_create_dynamic_relocation): Handle 32-bit/64-bit split.
(ELF_DYNAMIC_INTERPRETER): Handle 64-bit code.
(mips_elf_create_dynamic_sections): Use MIPS_ELF_LOG_FILE_ALIGN,
instead of constant `2'.
(mips_elf_create_got_section): Tidy. Use MIPS_ELF_GOT_SIZE.
(mips_elf_create_msym_section): Use MIPS_ELF_LOG_FILE_ALIGN.
(mips_elf_size_dynamic_sections): Use
MIPS_ELF_REL_DYN_SECTION_NAME, MIPS_ELF_GOT_SIZE,
MIPS_ELF_ADD_DYNAMIC_ENTRY. Remove #if 0'd code.
Adjust all releveant entries in elf backend table.
* elf64-mips.c (mips_elf64_section_from_shdr): Remove.
(mips_elf64_section_processing): Likewise.
Adjust elf backend entries to use _bfd_mips_elf variants now
publicly available.
1999-07-07 19:23:22 +00:00
Mark Mitchell
c7ac6ff835
* elflink.h (elf_link_create_dynamic_sections): Handle non-standard
...
hash-entry sizes.
(size_dynamic_sections): Likewise.
(elf_link_output_extsym): Likewise.
* elf.c: (elf_fake_sections): Likewise.
* libbfd.c (bfd_get): New macro.
(bfd_put): Likewise.
* bfd-in2.h: Regenerated.
* elf-bfd.h (elf_size_info): Add hash_entry_size,
int_rels_per_ext_rel, swap_dyn_out, swap_reloc_in, swap_reloc_out,
wap_reloca_in, and swap_reloca_out.
* elflink.h (elf_link_read_relocs_from_section): Adjust to handle
multiple internal relocations per external relocation.
(link_read_relocs): Likewise.
(elf_bfd_final_link): Likewise.
(elf_link_input_bfd): Likewise.
(elf_gc_mark): Likewise.
(elf_gc_smash_unused_vtentry_relocs): Likewise.
* elfcode.h (elf_swap_dyn_out): Adjust type to match
elf_swap_dyn_in.
(size_info): Add entries for new fields.
* elf64-mips.c (mips_elf64_swap_reloc_out): Enable.
(mips_elf64_be_swap_reloc_in): New function.
(mips_elf64_be_swap_reloc_out): Likewise.
(mips_elf64_be_swap_reloca_in): Likewise.
(mips_elf64_be_swap_reloca_out): Likewise.
(mips_elf64_size_info): Add entries for new fields.
1999-07-07 17:50:56 +00:00
Mark Mitchell
d2905643ff
* elf32-mips.c (elf_mips_howto_table): Add R_MIPS_JALR.
...
* elf64-mips.c (mips_elf64_howto_table_rel): Likewise.
(mips_elf64_howto_table_rela): Likewise.
1999-06-02 18:17:59 +00:00
Richard Henderson
c71c54c969
Update copyright.
1999-06-02 16:11:43 +00:00
Mark Mitchell
3f830999e3
* reloc.c (BFD_RELOC_MIPS_SUB): New relocation.
...
(BFD_RELOC_MIPS_GOT_PAGE): Likewise.
(BFD_RELOC_MIPS_GOT_OFST): Likewise.
(BFD_RELOC_MIPS_GOT_DISP): Likewise.
* bfd-in2.h: Regenerated.
* libbfd.h: Likewise.
* elf32-mips.c (mips_info_to_howto_rela): New function.
(USE_REL): Adjust for new conventions.
(MINUS_ONE): New macro.
(elf_mips_howto_table): Add R_MIPS_SUB.
(mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE, MIPS_GOT_OFST,
and MIPS_GOT_DISP.
(mips_elf_final_write_processing): Set sh_link, not sh_info, for a
.MIPS.content section.
(_bfd_mips_elf_fake_sections): Treat all sections that begin
with .MIPS.content as .MIPS.content sections. Set
SHF_MNIPS_NOSTRIP for such section.
(elf_info_to_howto): Define to mips_info_to_howto_rela.
* elf64-mips.c (mips_r): Add entries for MIPS_SUB, MIPS_GOT_PAGE,
MIPS_GOT_OFST, and MIPS_GOT_DISP.
1999-06-02 10:20:16 +00:00
Richard Henderson
252b5132c7
19990502 sourceware import
1999-05-03 07:29:11 +00:00