bfd/
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 09a7e80a412a3d207d8b3dca4fc00d9cbd3f77ef..46e90c127744086d846d8eecd43969c5f5c58f74 100644 (file)
@@ -1,3 +1,213 @@
+2007-12-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-bfd.h (eh_cie_fde): Move add_fde_encoding and
+       per_encoding_relative to u.cie.  Add commentary.
+       * elf-eh-frame.c (cie): Remove make_relative.
+       (extra_augmentation_string_bytes): Update use of add_fde_encoding.
+       (extra_augmentation_data_bytes): Likewise.  Use an FDE's own
+       add_augmentation_size field, rather than referring to the CIE.
+       (_bfd_elf_parse_eh_frame): Don't set the struct cie
+       make_relative field; set the eh_cie_fde field directly.
+       Update setting of add_fde_encoding and per_encoding_relative.
+       Copy make_relative and add_augmentation_size from the CIE
+       to the FDE.
+       (_bfd_elf_discard_section_eh_frame): Use the FDE's own
+       make_relative field.
+       (_bfd_elf_eh_frame_section_offset): Likewise.
+       (_bfd_elf_write_section_eh_frame): Update accesses to
+       add_fde_encoding and per_encoding_relative.  Use the FDE's
+       own make_relative and add_augmentation_size fields.
+
+2007-12-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-bfd.h (eh_cie_fde): Remove need_lsda_relative.
+       Move make_lsda_relative to u.cie.
+       * elf-eh-frame.c (cie): Rename make_lsda_relative to
+       can_make_lsda_relative.
+       (_bfd_elf_parse_eh_frame): Don't set the old eh_cie_fde
+       make_lsda_relative field.  Update after cie renaming.
+       Set u.cie.make_lsda_relative if can_make_lsda_relative
+       and if we find a relocation against the LSDA.
+       (_bfd_elf_discard_section_eh_frame): Copy make_lsda_relative when
+       changing a CIE's group representative.
+       (_bfd_elf_eh_frame_section_offset): Don't set need_ldsa_relative here.
+       (_bfd_elf_write_section_eh_frame): Check u.cie.make_lsda_relative
+       rather than need_lsda_relative.
+
+2007-12-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-bfd.h (eh_cie_fde): Add u.fde.next_for_section and
+       u.cie.gc_mark.
+       (bfd_elf_section_data): Add fde_list.
+       (elf_fde_list): New macro.
+       (elf_obj_tdata): Add eh_frame_section.
+       (elf_eh_frame_section): New macro.
+       (_bfd_elf_gc_mark_reloc): Remove last parameter.
+       (_bfd_elf_gc_mark_fdes): Declare.
+       * elf-eh-frame.c (_bfd_elf_get_eh_frame_sec_info): Chain the FDEs
+       for each input section.
+       (mark_entry, _bfd_elf_gc_mark_fdes): New functions.
+       * elflink.c (_bfd_elf_gc_mark_reloc): Remove is_eh parameter.
+       (_bfd_elf_gc_mark): Update call accordingly.  Mark the relocations
+       againts the section's FDEs.  Don't mark the bfd's elf_eh_frame_section.
+       (bfd_elf_gc_sections): Parse each input bfd's .eh_frame before
+       marking any input sections.  Remove the current EH handling.
+       * section.c (bfd_section): Remove gc_mark_from_eh.
+       * ecoff.c (bfd_debug_section): Update initializer accordingly.
+
+2007-12-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-bfd.h (eh_cie_fde): Add u.cie.  Document how u.fde.cie_inf
+       changes when removed == 0.
+       (eh_frame_hdr_info): Add parsed_eh_frames.
+       (_bfd_elf_begin_eh_frame_parsing): Declare.
+       (_bfd_elf_parse_eh_frame): Declare.
+       (_bfd_elf_end_eh_frame_parsing): Declare.
+       * elf-eh-frame.c (_bfd_elf_begin_eh_frame_parsing): New function.
+       (_bfd_elf_parse_eh_frame): New function, split out from
+       _bfd_elf_discard_section_eh_frame.  Make a first pass through the
+       buffer to calculate the number of entries and CIEs.  Allocate memory
+       for them before the main loop.  Replace current extended cie
+       representation with a pair of pointers, one to the local eh_cie_fde
+       and one to the full struct cie.  Allocate a separate array of struct
+       cies if not merging.  Merge CIEs during the main loop and set up each
+       u.cie.merged field.  Point an FDE's cie_inf field directly at the
+       local CIE.  Initially assume that all entries should be removed.
+       (_bfd_elf_end_eh_frame_parsing): New function.
+       (_bfd_elf_discard_section_eh_frame): Assume that the section has
+       already been parsed.  Use a separate pass to mark entries that
+       need to be kept.  Use the u.cie.merged field to track a CIE's
+       group representative.
+       * elflink.c (bfd_elf_discard_info): Call _bfd_elf_parse_eh_frame
+       before _bfd_elf_discard_section_eh_frame.  Wrap loop with calls to
+       _bfd_elf_begin_eh_frame_parsing and _bfd_elf_end_eh_frame_parsing.
+
+2007-12-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-bfd.h (eh_cie_fde): Put cie_inf in a union.  Add a reloc_index
+       field.  Use bitfields for fde_encoding, lsda_encoding and lsda_offset.
+       * elf-eh-frame.c (extra_augmentation_data_bytes): Adjust cie_inf
+       accesses after the above change.
+       (_bfd_elf_eh_frame_section_offset): Likewise.
+       (_bfd_elf_write_section_eh_frame): Likewise.
+       (_bfd_elf_discard_section_eh_frame): Likewise.  Set up reloc_index.
+
+2007-12-15  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-bfd.h (_bfd_elf_gc_mark_rsec, _bfd_elf_gc_mark_reloc): Declare.
+       (_bfd_elf_gc_mark): Use elf_gc_mark_hook_fn.
+       * elflink.c (init_reloc_cookie, fini_reloc_cookie)
+       (init_reloc_cookie_rels, fini_reloc_cookie_rels): New functions,
+       split out from...
+       (bfd_elf_discard_info): ...here.
+       (init_reloc_cookie_for_section): New function.
+       (fini_reloc_cookie_for_section): Likewise.
+       (_bfd_elf_gc_mark_rsec, _bfd_elf_gc_mark_reloc): New functions,
+       split out from...
+       (_bfd_elf_gc_mark): ...here.  Use init_reloc_cookie_for_section
+       and fini_reloc_cookie_for_section.
+
+2007-12-12  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_do_reloc): Update self_address along with
+       address.
+       (print_action_list): Fix name for ta_convert_longcall.
+
+2007-12-11  Catherine Moore  <clm@codesourcery.com>
+
+        * elf.c (_bfd_elf_copy_private_symbol_data): Don't copy shndx if
+        the symbol's section is the undefined section.
+
+2007-12-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (elf_fake_sections): Add "warning:" to "..changed to PROGBITS"
+       message.
+
+2007-12-07  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_howto_table): Add R_XTENSA_32_PCREL.
+       (elf_xtensa_reloc_type_lookup): Handle BFD_RELOC_32_PCREL.
+       (elf_xtensa_check_relocs): Use default case for all relocations that
+       need nothing done here.
+       (elf_xtensa_do_reloc): Compute self_address for all relocation types.
+       Handle R_XTENSA_32_PCREL.
+       (elf_xtensa_relocate_section): Check for R_XTENSA_32_PCREL for dynamic
+       symbols.
+       (check_section_ebb_pcrels_fit): Ignore R_XTENSA_32_PCREL relocations.
+       
+2007-12-05  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_size_stubs): Do consider branches to
+       non-function symbols for overlay stubs.
+
+2007-12-04  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_size_dynamic_sections): Create DT_PLTGOT
+       entry for all dynamic objects.
+
+2007-12-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_size_stubs): Correct section alignment.
+
+2007-11-30  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Use the
+       ELF header to choose between 32-bit and 64-bit relocation structures.
+
+2007-11-29  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * archures.c (bfd_mach_mips_loongson_2e): New.
+       (bfd_mach_mips_loongson_2f): New.
+       * bfd-in2.h (bfd_mach_mips_loongson_2e): New.
+       (bfd_mach_mips_loongson_2f): New.
+       * cpu-mips.c: Add I_loongson_2e and I_loongson_2f to
+       anonymous enum.
+       (arch_info_struct): Add Loongson-2E and Loongson-2F entries.
+       * elfxx-mips.c (_bfd_elf_mips_mach): Handle Loongson-2E
+       and Loongson-2F flags.
+       (mips_set_isa_flags): Likewise.
+       (mips_mach_extensions): Add Loongson-2E and Loongson-2F
+       entries. 
+
+2007-11-29  Nick Clifton  <nickc@redhat.com>
+
+       PR ld/5398
+       * elf32-arm.c (bfd_elf32_arm_process_before_allocation): Do not
+       complain if there is no glue bfd, just return.
+
+2007-11-28  Nick Clifton  <nickc@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_relax_section): Extend previous fix to
+       cover forward jumps.
+
+2007-11-21  Nick Clifton  <nickc@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_relax_section): Allow for alignment
+       relocs when computing whether instructions can be relaxed.
+
+2007-11-16  Tristan Gingold  <gingold@adacore.com>
+
+       * elflink.c (elf_link_output_extsym): Weaken assertion: if
+       --gc-section is set, there may be no TLS segment.
+
+2007-11-19  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-bfd.h (bfd_elf_perform_complex_relocation): Update prototype.
+       * elflink.c (bfd_elf_perform_complex_relocation): Return status.
+       Don't print reloc overflow message.
+       * elf32-mep.c (mep_elf_relocate_section): Handle status from
+       bfd_elf_perform_complex_relocation.
+
+2007-11-17  Thiemo Seufer  <ths@mips.com>
+
+       * elfxx-mips.c (mips_elf_merge_obj_attributes): Handle -mips32r2
+       -mfp64 attribute.
+
+2007-11-16  Nick Clifton  <nickc@redhat.com>
+
+       * elf-m10300.c (mn10300_elf_check_relocs): Fix memory leak and
+       check that bfd_elf_get_elf_syms is only called once.
+
 2007-11-16  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Set udata.p of
This page took 0.026501 seconds and 4 git commands to generate.