Mark Mitchell [Mon, 19 Jul 1999 20:06:24 +0000 (20:06 +0000)]
* elf32-mips.c (_bfd_mips_elf_final_link): Restore setting of GP
removed in previous change.
(_bfd_mips_elf_relocate_section): Adjust GP relative relocations
in relocateable output.
Mark Mitchell [Sun, 18 Jul 1999 06:31:29 +0000 (06:31 +0000)]
* elflink.h (elf_link_adjust_relocs): New function.
(elf_bfd_final_link): Use it.
(elf_link_input_bfd): Deal with the fact that there can be
two relocation sections for a single section.
(elf_reloc_link_order): Likewise.
* elf32-mips.c (_bfd_mips_elf_final_link): Don't set GP for
a relocateable object.
(_bfd_mips_elf_relocate_section): Handle relocateable links.
* config/tc-sparc.c (sparc_ip): Allow OLO10 relocations
on -64 and not pic.
(output_insn): Put OLO10's secondary addend into tc_fix_data.
(md_apply_fix3): Handle BFD_RELOC_SPARC_OLO10.
(tc_gen_reloc): Return two relocs for OLO10, LO10 and SPARC13.
* config/tc-sparc.h (RELOC_EXPANSION_POSSIBLE,
MAX_RELOC_EXPANSION): Define.
(TC_FIX_TYPE, TC_INIT_FIX_DATA, TC_FIX_DATA_PRINT): Likewise.
* elf64-sparc.c (sparc64_elf_info_to_howto): Use ELF64_R_TYPE_ID.
(sparc64_elf_get_reloc_upper_bound,
sparc64_elf_get_dynamic_reloc_upper_bound,
sparc64_elf_slurp_one_reloc_table, sparc64_elf_slurp_reloc_table,
sparc64_elf_canonicalize_dynamic_reloc, sparc64_elf_write_relocs):
New functions.
(sparc64_elf_check_relocs, sparc64_elf_relocate_section): Use
ELF64_R_TYPE_ID/DATA where appropriate.
Ian Lance Taylor [Fri, 16 Jul 1999 19:09:22 +0000 (19:09 +0000)]
* elf32-mips.c (mips_elf_local_relocation_p): New static
function.
(mips_elf_next_lo16_addend): Call bfd_set_error on failure.
(mips_elf_calculate_relocation): Use mips_elf_local_relocation_p.
Always set *require_jalxp.
(mips_elf_stub_section_p): Mark abfd parameter as unused.
(_bfd_mips_elf_relocate_section): Only look for LO16 following
GOT16 if the GOT16 is against a local symbol. Don't return false
for an undefined symbol. If there is an overflow, assert that we
have a name.
Alan Modra [Fri, 16 Jul 1999 11:09:15 +0000 (11:09 +0000)]
* gas/config/tc-i386.c: Fix for immediates and displacements in 16-bit
mode when no insn suffix present, eg. push $0x12345678. Fix some
compiler warnings. Disallow immediate jump absolute.
Mark Mitchell [Thu, 15 Jul 1999 16:57:57 +0000 (16:57 +0000)]
* elf32-mips.c (_bfd_mips_elf_modify_segment_map): Don't require
a PT_PHDR program headers.
(_bfd_mips_elf_final_link): Don't assume there are going to be
section symbols when we're not building a shared object.
(_bfd_mips_elf_check_relocs): Make sure we have a GOT when
we need one.
Mark Mitchell [Thu, 15 Jul 1999 13:12:02 +0000 (13:12 +0000)]
* elf32-mips.c (mips_elf_stub_section_p): New function.
(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.
Jeff Law [Thu, 15 Jul 1999 02:06:03 +0000 (02:06 +0000)]
è
* 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.
Jeff Law [Thu, 15 Jul 1999 02:06:02 +0000 (02:06 +0000)]
* 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.
Nick Clifton [Thu, 15 Jul 1999 01:33:07 +0000 (01:33 +0000)]
Apply patch from Philip Blundell <pb@nexus.co.uk>
Prepend LOCAL_LABEL_PREFIX (if defined) to local symbols.
ARM: Set F_SOFTFLOAT in the output file if -mno-fpu was given.
* scripttempl/elf.sc: Re-order .rel[a].foo outputs to the
same order seen for the main sections. Add
OTHER_READONLY_RELOC_SECTIONS and OTHER_GOT_RELOC_SECTIONS.
* elf32-mips.c (struct mips_got_info): Add global_gotno.
(_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.
Ian Lance Taylor [Wed, 14 Jul 1999 14:02:33 +0000 (14:02 +0000)]
* write.c (cvt_frag_to_fill): Use frag file and line in rs_org
error message.
(relax_segment): Likewise. After giving a rs_org error, convert
the frag to rs_align to avoid cascading errors.
Mark Mitchell [Wed, 14 Jul 1999 11:46:04 +0000 (11:46 +0000)]
* elf32-mips.c (mips_elf_obtain_contents): Swap the 16-bit
subwords when handling an R_MIPS16_26 relocation.
(mips_elf_perform_relocation): Don't be paranoid abour right-shift
semantics.
Mark Mitchell [Tue, 13 Jul 1999 15:23:22 +0000 (15:23 +0000)]
* elf32-mips.c (mips_elf_calculate_relocation): Do not complain
when _gp_disp is undefined. Do not check R_MIPS_LO16 for overflow
when the relocation is against _gp_disp.
Ian Lance Taylor [Mon, 12 Jul 1999 10:30:21 +0000 (10:30 +0000)]
* Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
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.
Ian Lance Taylor [Mon, 12 Jul 1999 07:35:20 +0000 (07:35 +0000)]
* Many files: Changes to avoid gcc warnings: Remove unused local
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.
Ian Lance Taylor [Sun, 11 Jul 1999 20:20:04 +0000 (20:20 +0000)]
* Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
as appropriate. Fill in structure initializations. Add variable
initializations. Add casts.
* dwarf2dbg.c (print_stats): Change i to size_t.
* listing.c (listing_listing): Change list_line to unsigned int.
Ian Lance Taylor [Sun, 11 Jul 1999 20:04:29 +0000 (20:04 +0000)]
* dis-buf.c: Add ATTRIBUTE_UNUSED as appropriate.
(generic_strcat_address): Add cast to avoid warning.
* i386-dis.c: Initialize all structure fields to avoid warnings.
Add ATTRIBUTE_UNUSED as appropriate.
Ian Lance Taylor [Sun, 11 Jul 1999 19:49:48 +0000 (19:49 +0000)]
* Many files: Changes to avoid gcc warnings: Add ATTRIBUTE_UNUSED
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.
Mark Mitchell [Sun, 11 Jul 1999 09:28:45 +0000 (09:28 +0000)]
* libbfd.c (bfd_put_8): Make it of type `void'.
* bfd-in2.h: Regenerated.
* elf32-mips.c (MIPS_ELF_ADD_DYNAMIC_ENTRY): Conditionalize
for 32-bit hosts.
(_bfd_mips_elf_final_link): Likewise.
* config/tc-ppc.h (tc_fix_adjustable) [OBJ_ELF]: Call S_IS_LOCAL
rather than checking for \001 and \002 in symbol name.
* config/tc-sparc.h (tc_fix_adjustable) [OBJ_ELF]: Likewise.
Jakub Jelinek <jj@ultra.linux.cz>
* ldfile.c (ldfile_open_file_search): Skip libraries made for
incompatible architectures in the search path. Let the user know
about any such skips.
Jakub Jelinek <jj@ultra.linux.cz>
* readelf.c (guess_is_rela): Sparcv9 and v8plus use rela.
(dump_relocations): Use ELF64_R_TYPE_ID for Sparc, for R_SPARC_OLO10
print the secondary addend.
(get_machine_flags): Print Sparc machine flags.
(get_symbol_type): Print STT_REGISTER.