(mips_elf_calculate_relocation): Handle MIPS16 stub functions.
(mips_elf_relocate_section): Adjust calling sequence for
mips_elf_calculate_relocation and mips_elf_perform_relocation.
(mips_elf_perform_relocation): Turn `jal' into `jalx' where
required.
* elf-hppa.h (_bfd_elf_hppa_gen_reloc_type, case R_HPPA): Handle
64bit format.
(_bfd_elf_hppa_gen_reloc_type, case R_GOTOFF): Use base reloc type
to derive final type instead of hardwiring a selection.
(_bfd_mips_elf_size_dynamic_sections): Set it.
(_bfd_mips_elf_final_link): Re-sort; verify the got did not grow.
(mips_elf_sort_hash_table): Set max_non_got_dynindex based off
new argument max_local.
dst_mask to match reality.
(_bfd_mips_elf_calculate_relocation): Handle R_MIPS16_GPREL.
(mips_elf_obtain_contents): Use bfd_get.
(mips_elf_perform_relocation): Handle R_MIPS16_GPREL.
(mips_elf_relocate_section): Likewise.
(mips_elf_relocate_section): Adjust calling sequence for
mips_elf_perform_relocation.
(mips_elf_perform_relocation): Take additional argument. Handle
R_MIPS16_26. Use bfd_put for convenience.
* elflink.c (_bfd_elf_create_dynamic_sections): Only create
.dynbss and .rel[a].bss if want_dynbss.
* elfxx-target.h (elf_backend_want_dynbss): Provide default.
as appropriate. Use EMPTY_HOWTO as appropriate. Fill in
structure initializations. Add casts.
* reloc.c (EMPTY_HOWTO): Define.
* bfd-in2.h: Rebuild.
* coff-h8300.c (h8300_reloc16_extra_cases): Remove useless
comparisons against 0.
* elf32-sparc.c (elf32_sparc_merge_private_bfd_data): Change
previous_ibfd_e_flags to unsigned long.
* vms.h (struct vms_private_data_struct): Change section_count to
unsigned.
* vms-gsd.c (_bfd_vms_slurp_gsd): Change psect_idx to unsigned.
(_bfd_vms_write_gsd): Change symnum to unsigned.
* vms-hdr.c (_bfd_vms_write_hdr): Change symnum to unsigned.
* vms-tir.c (etir_sta): Change psect to unsigned.
(alloc_section): Change idx to unsigned.
(tir_sta, tir_ctl): Change psect to unsigned.
(_bfd_vms_write_tir): Change len and before to bfd_size_type.
* vms.c (priv_section_count): Change to unsigned.
variables. Add default case to enum switches.
* coff-arm.c (bfd_arm_allocate_interworking_sections): Only
compile if not COFF_IMAGE_WITH_PE.
(record_arm_to_thumb_glue, record_thumb_to_arm_glue): Likewise.
(bfd_arm_get_bfd_for_interworking): Likewise.
(bfd_arm_process_before_allocation): Likewise.
* epoc-pei-arm.c: Don't rename bfd_arm functions.
* pei-arm.c: Likewise.
* elf32-mips.c (mips_elf_link_hash_table_create): Don't declare.
(MIPS_ELF_ADD_DYNAMIC_ENTRY): Correct last change.
(mips_elf_got16_entry): Put parens around & in body of ==.
(mips_elf_calculate_relocation): Correct test for empty string.
* vms-gsd.c: Use _bfd_error_handler rather than fprintf to
stderr.
* vms-misc.c (_bfd_vms_length_hash_symbol): Correct sprintf
format.
as appropriate. Fill in structure initializations. Add variable
initializations. Add casts.
* dwarf1.c (parse_line_table): Change eachLine to unsigned long.
(dwarf1_unit_find_nearest_line): Change i to unsigned long.
field equals the new rel_count field.
(elf_link_input_bfd): When doing a relocateable link, use the new
rel_count field rather than the reloc_count field.
(elf_reloc_link_order): Likewise.
(elf_finish_pointer_linker_section): Likewise.
Based on patch from H.J. Lu <hjl@gnu.org>:
* elflink.h (elf_merge_symbol): Permit a non-weak definition in a
shared library to override a weak definition in a regular object.
fields.
(_bfd_elf_init_reloc_shdr): New function.
* elf.c (_bfd_elf_new_section_hook): Use bfd_zalloc, rather than
bfd_alloc followed by memset.
(_bfd_elf_init_reloc_shdr): New function, split out from ...
(elf_fake_sections): Here.
(assign_section_numbers): Assign section numbers for the second
relocation section, if required.
* elflink.h (elf_link_output_relocs): New function.
(elf_link_size_reloc_section): Likewise.
(elf_bfd_final_link): Use elf_link_size_reloc_section.
(elf_link_input_bfd): Use elf_link_output_relocs.
* elf32-mips.c (_bfd_mips_elf_fake_sections): Use
_bfd_elf_init_reloc_shdr to initialize rel_hdr2.
prototypes. Change global_gotsym to be a pointer to a hash entry,
rather than a number index.
(mips_elf_link_hash_entry): Move declaration before prototypes.
(mips_elf_irix6_finish_dynamic_symbol): New function.
(mips_elf_sign_extend): Likewise.
(mips_elf_high): Likewise.
(mips_elf_higher): Likewise.
(mips_elf_highest): Likewise.
(mips_elf_global_got_index): Likewise.
(mips_elf_local_got_index): Likewise.
(mips_elf_got_offset_from_index): Likeiwse.
(mips_elf_record_global_got_symbol): Likewise.
(mips_elf_got_page): Likewise.
(mips_elf_next_lo16_addend): Likewise.
(mips_elf_calculate_relocation): Likewise.
(mips_elf_obtain_contents): Likewise.
(mips_elf_perform_relocation): Likewise.
(mips_elf_assign_gp): Likewise.
(mips_elf_sort_hash_table_f): Likewise.
(mips_elf_sort_hash_table): Likewise.
(mips_elf_got_section): Likewise.
(mips_elf_got_info): Likewise.
(mips_elf_create_local_got_entry): Likewise.
(mips_elf_got16_entry): Likewise.
(mips_elf_create_dynamic_relocation): Likewise.
(elf_mips_howto_table): Add description of R_MIPS_SCN_DISP.
(mips_elf_final_gp): Use mips_elf_assign_gp.
(_bfd_mips_elf_symbol_processing): Don't move SHN_COMMON symbols
into SHN_SCOMMON automatically on IRIX6.
(mips_elf_add_symbol_hook): Likewise.
(mips_elf_relocate_section): Rewrite, using
mips_elf_calculate_relocation and mips_elf_perform_relocation.
(mips_elf_create_dynamic_section): Use MIPS_ELF_STUB_SECTION_NAME.
Don't deal with .rld_map on IRIX6.
(mips_elf_create_got_section): Adjust use of global_gotsym. Set
section flags appropriately for .got.
(mips_elf_check_relocs): Handle IRIX6 relocations making use of
the got. Call mips_elf_record_global_got_symbol and allocate
local got space appropriately.
(mips_elf_size_dynamic_sections): Use bfd_byte *, not unsigned
char *. Rework calculation of GOT size. Sort dynamic symbol
table entries so entries that do not require GOT entries appear at
the beginning. Don't use DT_MIPS_HIPAGENO on IRIX6. Remove dead
code dealing with DT_INIT and DT_FINI. Remove fiddling with
global_gotsym.
(mips_elf_finish_dynamic_symbol): Adjust creation of global GOT
entries.
(mips_elf_finish_dynamic_symbol): Use
mips_elf_irix6_finish_dynamic_symbol.
(mips_elf_finish_dynamic_sections): Correct off-by-one error
setting DT_MIPS_UNREFEXTNO. Adjust setting of DT_MIPS_GOTSYM for
change to global_gotsym. Set DT_MIPS_OPTIONS on IRIX6.