* elf64-alpha.c (elf64_alpha_relax_section): Ignore non-allocated
[external/binutils.git] / bfd / ChangeLog
index c6ecec7..4983c7a 100644 (file)
@@ -1,3 +1,164 @@
+2005-05-22  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_relax_section): Ignore non-allocated
+       sections.
+       (elf64_alpha_check_relocs): Likewise.
+       (elf64_alpha_relocate_section): Don't emit dynamic relocations to
+       non-allocated sections.
+
+2005-05-22  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_relax_with_lituse): Relax jsr to 
+       undefweak to use zero register.  Call elf64_alpha_relax_got_load
+       if not all uses removed.
+       (elf64_alpha_relax_got_load): Relax undefweak to lda zero.
+       (elf64_alpha_relax_section): Handle undefweak symbols.
+       (elf64_alpha_calc_dynrel_sizes): Don't add relocs for undefweak.
+       (elf64_alpha_size_rela_got_1): Likewise.
+       (elf64_alpha_relocate_section): Likewise.
+
+2005-05-22  Richard Henderson  <rth@redhat.com>
+
+       * elf64-alpha.c (elf64_alpha_relax_section): Only operate
+       on SEC_CODE sections.
+
+2005-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * som.c (try_prev_fixup): Changed type of subspace_reloc_sizep to
+       unsigned int *.
+       (som_write_space_strings): Change type of tmp_space and p to char *.
+       (som_write_symbol_strings): Likewise.  Also change type of comp to
+       char *comp[4].
+       (som_begin_writing): Change type of strings_size to unsigned int.
+       (som_finish_writing): Likewise.
+       (som_slurp_reloc_table): Change type of external_relocs to unsigned
+       char *.
+       * som.h (struct som_section_data_struct): Change type of reloc_stream
+       field to unsigned char *.
+
+2005-05-20  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Don't eliminate
+       copy relocations for VxWorks.
+
+2005-05-20  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * bfd/elf32-ppc.c (struct ppc_elf_link_hash_entry): Add new field
+       has_sda_refs.
+       (ppc_elf_copy_indirect_symbol): Copy has_sda_refs.
+       (ppc_elf_check_relocs): Set has_sda_refs.
+       (ppc_elf_adjust_dynamic_symbol): Check has_sda_refs before eliminating
+       copy relocations.  Use has_sda_refs to place variables in .sbss.
+       (ppc_elf_finish_dynamic_symbol): Use has_sda_refs to place variables in
+       .sbss.
+
+2005-05-20  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (bfd_elf_xtensa_reloc): Make sure that
+       xtensa_default_isa is initialized.
+
+2005-05-20  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (allocate_dynrelocs): Correct plt offset assigned
+       for second and subsequent list entries.  Only allocate multiple
+       glink stubs when shared or pie.
+       (ppc_elf_finish_dynamic_symbol): Break out early when only one
+       glink stub is needed.
+
+2005-05-19  Zack Weinberg  <zack@codesourcery.com>
+
+       * Makefile.am: Have 'all' depend on 'info'.
+       * Makefile.in: Regenerate.
+
+2005-05-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (struct elf_link_hash_table): Delete init_refcount and
+       init_offset.  Add init_got_refcount, init_plt_refcount,
+       init_got_offset and init_plt_offset.
+       * elf.c (_bfd_elf_link_hash_newfunc): Adjust for above change.
+       (_bfd_elf_link_hash_hide_symbol): Likewise.
+       (_bfd_elf_link_hash_table_init): Likewise.
+       * elf32-hppa.c (elf32_hppa_hide_symbol): Likewise.
+       * elf64-ppc.c (ppc64_elf_link_hash_table_create): Likewise.
+       * elflink.c (_bfd_elf_adjust_dynamic_symbol): Likewise.
+       (bfd_elf_size_dynamic_sections): Likewise.
+       * elf32-ppc.c (GLINK_PLTRESOLVE): Now 16 insns.
+       (LWZU_0_X_12, LWZ_0_4_30, LWZ_0_X_12, LWZ_11_X_11, LWZ_11_X_30,
+       LWZ_12_4_12, LWZ_12_8_30, LWZ_12_X_12, SUB_11_11_30): Delete.
+       (ADDIS_12_12, BCL_20_31, LWZU_0_12, LWZ_0_12, LWZ_11_11, LWZ_11_30,
+       LWZ_12_12, MFLR_0, MFLR_12, MTLR_0, SUB_11_11_12): Define.
+       (struct plt_entry): New.
+       (ppc_elf_link_hash_table_create): Set new init_plt fields.
+       (ppc_elf_copy_indirect_symbol): Handle merge of plt plist.  Don't
+       use _bfd_elf_link_hash_copy_indirect.
+       (update_plt_info, find_plt_ent): New functions.
+       (ppc_elf_check_relocs): Handle R_PPC_PLTREL24 with non-zero addend
+       and adjust for use of plt list rather than refcount.
+       (ppc_elf_gc_sweep_hook): Likewise.
+       (ppc_elf_tls_optimize): Likewise.
+       (ppc_elf_adjust_dynamic_symbol): Likewise.
+       (allocate_dynrelocs): Likewise.
+       (ppc_elf_relax_section): Likewise.
+       (ppc_elf_relocate_section): Likewise.  Adjust R_PPC_PLTREL24 addends
+       when performing a relocatable link.
+       (ppc_elf_finish_dynamic_symbol): Likewise.  Write .glink stubs here..
+       (ppc_elf_finish_dynamic_sections): ..rather than here.  Use new
+       pic resolver stub.
+
+2005-05-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (assign_file_positions_for_segments): Use maximum of
+       maxpagesize and section alignment when adjusting initial
+       segment offset and section offsets.
+
+2005-05-18  Zack Weinberg  <zack@codesourcery.com>
+
+       * elf32-arm.c: Make all #ifndef OLD_ARM_ABI blocks
+       unconditional.
+
+2005-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf.c (group_signature): Undo the last change. Check if the
+       symbol table section is correct.
+
+2005-05-17  Zack Weinberg  <zack@codesourcery.com>
+
+       * elf32-arm.c: Wherever possible, use official reloc names
+       from AAELF.
+       (elf32_arm_howto_table, elf32_arm_tls_gd32_howto)
+       (elf32_arm_tls_ldo32_howto, elf32_arm_tls_ldm32_howto)
+       (elf32_arm_tls_le32_howto, elf32_arm_tls_ie32_howto)
+       (elf32_arm_vtinherit_howto, elf32_arm_vtentry_howto)
+       (elf32_arm_pc11_howto, elf32_arm_thm_pc9_howto, elf32_arm_got_prel)
+       (elf32_arm_r_howto): Replace with elf32_arm_howto_table_1,
+       elf32_arm_howto_table_2, and elf32_arm_howto_table_3.
+       Add many new relocations from AAELF.
+       (elf32_arm_howto_from_type): Update to match.
+       (elf32_arm_reloc_map): Add entries for R_ARM_THM_JUMP24,
+       R_ARM_THM_JUMP11, R_ARM_THM_JUMP19, R_ARM_THM_JUMP8,
+       R_ARM_THM_JUMP6, R_ARM_GNU_VTINHERIT, and R_ARM_GNU_VTENTRY.
+       (elf32_arm_reloc_type_lookup): Use elf32_arm_howto_from_type.
+       (elf32_arm_final_link_relocate): Add support for
+       R_ARM_THM_JUMP24, R_ARM_THM_JUMP19, R_ARM_THM_JUMP6.  Remove
+       case entries redundant with default.
+
+       * reloc.c: Reorganize ARM relocations.  Add Thumb
+       assembler-internal relocations BFD_RELOC_ARM_T32_OFFSET_U8,
+       BFD_RELOC_ARM_T32_OFFSET_IMM, BFD_RELOC_ARM_T32_IMMEDIATE.
+       Add visible relocations BFD_RELOC_THUMB_PCREL_BRANCH7,
+       BFD_RELOC_THUMB_BRANCH20, BFD_RELOC_THUMB_BRANCH25.
+       Delete unused relocations BFD_RELOC_ARM_GOT12, BFD_RELOC_ARM_COPY.
+       * bfd-in2.h, libbfd.h: Regenerate.
+
+2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf.c (_bfd_elf_write_object_contents): Check for non-NULL
+       elf_shstrtab.
+       * format.c (bfd_check_format_matches): Set output_has_begun
+       for both_direction.
+       * section.c (bfd_set_section_contents): Use bfd_write_p.  Remove
+       special case for both_direction.
+
 2005-05-17  Nick Clifton  <nickc@redhat.com>
 
        * elf.c (group_signature): Check for a group section which is