OSDN Git Service

* elf32-spu.c (spu_elf_fake_sections): New function.
[pf3gnuchains/pf3gnuchains4x.git] / bfd / ChangeLog
index 167276e..e89264f 100644 (file)
@@ -1,3 +1,456 @@
+2007-06-29  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_fake_sections): New function.
+       (elf_backend_fake_sections): Define.
+
+2007-06-29  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (assign_file_positions_for_load_sections): Use elf
+       section header sh_size rather than bfd section size, simplifying
+       .tbss handling.
+
+2007-06-29  Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/4701
+       * elf.c (assign_file_positions_for_load_sections): Ensure bss
+       segments meet gABI alignment requirements.  Don't allocate
+       file space for bss sections in a segment also containing file
+       or program headers.
+
+2007-06-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd.c (struct bfd): Rename "next" to "archive_next".
+       * archive.c: Rename uses throughout file.
+       * archive64.c: Likewise.
+       * coff-rs6000.c: Likewise.
+       * ecoff.c: Likewise.
+       * som.c: Likewise.
+       * bfd-in2.h: Regenerate.
+
+       * elf32-ppc.c (ppc_elf_select_plt_layout): Properly iterate over
+       input bfds.
+       * elf32-spu.c (spu_elf_create_sections): Likewise.
+
+2007-06-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * dwarf2.c (find_line): New.  Contains the duplicated code from:
+       (_bfd_dwarf2_find_nearest_line): Use it.
+       (_bfd_dwarf2_find_line): Use it.
+
+2007-06-26  Joseph Myers  <joseph@codesourcery.com>
+
+       * elf32-arm.c (copy_eabi_attributes): Copy type of attributes.
+
+2007-06-25  Richard Sandiford  <richard@codesourcery.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Allow local stubs
+       to be used for calls from MIPS16 code.
+
+2007-06-23  Andreas Schwab  <schwab@suse.de>
+
+       * configure.in (--with-separate-debug-dir): New option.
+       * configure: Regenerate.
+       * Makefile.am (dwarf2.lo): Add rule to pass DEBUGDIR.
+       * Makefile.in: Regenerate.
+       * dwarf2.c (_bfd_dwarf2_find_nearest_line): Pass DEBUGDIR to
+       bfd_follow_gnu_debuglink.
+       (_bfd_dwarf2_find_line): Likewise.
+
+2007-06-22  Nick Clifton  <nickc@redhat.com>
+
+       * dwarf2.c: Add support for reading in debug information via a
+       .gnu_debuglink section:
+       (struct dwarf2_debug): Add bfd field to record the bfd containing
+       the debug info.
+       (parse_comp_unit): Remove ABFD parameter.  Instead use the bfd
+       field in the dwarf2_debug structure.
+       (_bfd_dwarf2_find_nearest_line): If a debug info section could not
+       be found in the current bfd call bfd_follow_gnu_debuglink to see
+       if another file contains the debug information.  If it does, open
+       it and continue.
+       (_bfd_dwarf2_find_line): Likewise.
+
+2007-06-19  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/4590
+       * elfxx-ia64.c (sort_dyn_sym_info): Keep the valid got_offset
+       when removing duplicated entries.
+       (get_dyn_sym_info): Initialize the got_offset field to -1.
+       Update call to sort_dyn_sym_info.
+       (elfNN_ia64_relocate_section): Call sort_dyn_sym_info to sort
+       array of addend and remove duplicates.
+
+2007-06-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * libpei.h (_bfd_XXi_final_link_postscript): Remove
+       duplication.
+       (bfd_target_pei_p): New.
+       (bfd_target_pei_arch): New
+       (bfd_target_efi_p): Likewise.
+       (bfd_target_efi_arch): New
+       (bfd_pe_executable_p): Use bfd_target_pei_p and
+       bfd_target_efi_p.
+
+       * peicode.h (arch_type): New enum.
+       (pe_arch): New function.
+       (pe_bfd_object_p): Don't match PE/EFI target with EFI/PE file
+       if there is an EFI/PE target.
+
+2007-06-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.am (ACLOCAL_AMFLAGS): Add -I . -I ../config.
+
+       * acinclude.m4: Don't include m4 files. Remove libtool
+       kludge.
+
+       * Makefile.in: Regenerated.
+       * aclocal.m4: Likewise.
+       * configure: Likewise.
+
+2007-06-11  Sterling Augustine  <sterling@tensilica.com>
+           Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (extend_ebb_bounds_forward): Use renamed
+       XTENSA_PROP_NO_TRANSFORM flag instead of XTENSA_PROP_INSN_NO_TRANSFORM.
+       (extend_ebb_bounds_backward, compute_text_actions): Likewise.
+       (compute_ebb_proposed_actions, coalesce_shared_literal): Likewise.
+       (xtensa_get_property_predef_flags): Likewise.
+       (compute_removed_literals): Pass new arguments to is_removable_literal.
+       (is_removable_literal): Add sec, prop_table and ptblsize arguments.
+       Do not remove literal if the NO_TRANSFORM property flag is set.
+
+2007-05-31  Richard Sandiford  <rsandifo@nildram.co.uk>
+
+       * elfxx-mips.c (mips_elf_initialize_tls_index): When processing a
+       type (3) single-GOT entry, read tls_type from the hash table entry
+       rather than the GOT entry.
+
+2007-06-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * simple.c (bfd_simple_get_relocated_section_contents): Init
+       input_bfds_tail.
+
+2007-05-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (elf_fake_sections): Adjust test for SHT_NOBITS sections
+       created by objcopy --only-keep-debug.
+       (_bfd_elf_init_private_section_data): Only change elf_section_type
+       if it is SHT_NULL.
+
+       * elf.c (assign_file_positions_for_load_sections): Correct sh_type
+       to SHT_NOBITS earlier.  Base actions in rest of function on sh_type
+       and sh_flags instead of bfd section flags.  Delete voff and code
+       keeping nobits segments aligned.
+
+2007-05-25  Eric Christopher  <echristo@apple.com>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame):
+       Check that sym_sec isn't NULL before accessing.
+
+2007-05-24  Steve Ellcey  <sje@cup.hp.com>
+
+       * Makefile.in: Regnerate.
+       * configure: Regenerate.
+       * aclocal.m4: Regenerate.
+       * doc/Makefile.in: Regenerate.
+
+2007-05-22  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (output_arch_syminfo): Replace plt_shndx and plt_offset
+       with sec and sec_shndx.
+       (elf32_arm_ouput_plt_map_sym): Use them.
+       (elf32_arm_output_arch_local_syms): Output mapping symbols for
+       interworking glue.
+
+2007-05-18  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (ARM2THUMB_V5_STATIC_GLUE_SIZE): Define.
+       (a2t1v5_ldr_insn, a2t1v5_ldr_insn): New.
+       (record_arm_to_thumb_glue): Add v5t non-pic glue.
+       (elf32_arm_create_thumb_stub): Ditto.
+
+2007-05-16  H.J. Lu  <hongjiu.lu@intel.com>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (_bfd_elf_adjust_dynamic_copy): Align dynamic bss
+       section to the minimum alignment.
+
+2007-05-15  H.J. Lu  <hongjiu.lu@intel.com>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/4504
+       * elf-bfd.h (_bfd_elf_adjust_dynamic_copy): New.
+       * elflink.c (_bfd_elf_adjust_dynamic_copy): New.
+
+       * elf-m10300.c (_bfd_mn10300_elf_adjust_dynamic_symbol): Call
+       _bfd_elf_adjust_dynamic_copy to adjust for the copy in dynamic
+       bss section.
+       * elf32-arm.c (elf32_arm_adjust_dynamic_symbol): Likewise.
+       * elf32-cris.c (elf_cris_adjust_dynamic_symbol): Likewise.
+       * elf32-hppa.c (elf32_hppa_adjust_dynamic_symbol): Likewise.
+       * elf32-i370.c (i370_elf_adjust_dynamic_symbol): Likewise.
+       * elf32-i386.c (elf_i386_adjust_dynamic_symbol): Likewise.
+       * elf32-m32r.c (m32r_elf_adjust_dynamic_symbol): Likewise.
+       * elf32-m68k.c (elf_m68k_adjust_dynamic_symbol): Likewise.
+       * elf32-ppc.c (ppc_elf_adjust_dynamic_symbol): Likewise.
+       * elf32-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
+       * elf32-sh.c (sh_elf_adjust_dynamic_symbol): Likewise.
+       * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Likewise.
+       * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Likewise.
+       * elf64-s390.c (elf_s390_adjust_dynamic_symbol): Likewise.
+       * elf64-sh64.c (sh64_elf64_adjust_dynamic_symbol): Likewise.
+       * elf64-x86-64.c (elf64_x86_64_adjust_dynamic_symbol): Likewise.
+       * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Likewise.
+       * elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol): Likewise.
+
+2007-05-15  Richard Sandiford  <richard@codesourcery.com>
+
+       * elfxx-mips.c (mips_elf_create_local_got_entry): Remove
+       input_section argument.  Create .rela.dyn relocations against
+       symbol 0 rather than the section symbol.
+       (mips_elf_local_got_index): Remove input_section argument.
+       Update call to mips_elf_create_local_got_entry.
+       (mips_elf_got_page, mips_elf_got16_entry): Likewise.
+       (mips_elf_calculate_relocation): Update calls to
+       mips_elf_local_got_index, mips_elf_got16_entry and mips_elf_got_page.
+
+2007-05-15  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Correctly
+       handle the Thumb-2 JUMP19 relocation.
+
+2007-05-15  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 4479
+       * elf.c (elf_fake_sections): Don't allow backend to change
+       SHT_NOBITS if called for strip/objcopy --only-keep-debug.
+       * elfxx-mips.c (_bfd_mips_elf_fake_sections): Remove similar
+       fix from here.
+
+2007-05-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (bfd_elf_string_from_elf_section): Return NULL on
+       invalid shstrndx.
+       (bfd_elf_get_str_section): Likewise.
+
+2007-05-12  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 4497
+       * elf-eh-frame.c (struct cie): Add "local_personality".  Make
+       "personality" a union.
+       (cie_eq): Compare local_personality too.  Adjust personality
+       comparison.
+       (_bfd_elf_discard_section_eh_frame): Check binding on personality
+       reloc sym to allow for bad symtab.  Use stashed local syms rather
+       than reading personality local sym.  Handle discarded sections.
+
+2007-05-12  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (elf_howto_table): Add howto for R_SPU_ADDR16X.
+
+2007-05-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.h (ppc_elf_select_plt_layout): Update prototype.
+       (enum ppc_elf_plt_type): Move from..
+       * elf32-ppc.c: ..here.
+       (struct ppc_elf_obj_tdata): Add makes_plt_call and has_rel16.
+       (struct ppc_elf_link_hash_table): Reorder.  Add old_bfd.  Delete
+       can_use_new_plt.  Make is_vxworks a bitfield.
+       (ppc_elf_link_hash_table_create): Don't clear is_vxworks (again).
+       (ppc_elf_check_relocs): Update setting of reloc flags.  Set old_bfd.
+       (ppc_elf_select_plt_layout): Modify parameters.  Use bfd reloc
+       flags to better detect object files needing old bss-style plt.
+       Allow secure plt to be used without rel16 relocs being detected.
+       Warn if secure plt request cannot be allowed.
+
+2007-05-11  Alan Modra  <amodra@bigpond.net.au>
+
+       * reloc.c (BFD_RELOC_SPU_PPU32, BFD_RELOC_SPU_PPU64): Define.
+       * elf-bfd.h (struct elf_backend_data): Change return type of
+       elf_backend_relocate_section to int.
+       * elf32-spu.c (elf_howto_table): Add howtos for R_SPU_PPU32 and
+       R_SPU_PPU64.
+       (spu_elf_bfd_to_reloc_type): Convert new relocs.
+       (spu_elf_count_relocs): New function.
+       (elf_backend_count_relocs): Define.
+       (spu_elf_relocate_section): Arrange to emit R_SPU_PPU32 and
+       R_SPU_PPU64 relocs.
+       * elflink.c (elf_link_input_bfd): Emit relocs if relocate_section
+       returns 2.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2007-05-10  Richard Sandiford  <richard@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_check_relocs): Don't create PLT entries
+       for R_ARM_ABS12 relocs.
+       (elf32_arm_finish_dynamic_symbol): Fix the loop that creates
+       non-shared VxWorks PLT entries.
+
+2007-05-11  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 4454
+       * elf-eh-frame.c (struct cie): Make "personality" a bfd_vma.
+       (_bfd_elf_discard_section_eh_frame): Handle local syms on
+       personality relocation.
+
+2007-05-10  Richard Sandiford  <richard@codesourcery.com>
+
+       * elf.c (assign_file_positions_for_load_sections): Use p_memsz
+       rather than p_filesz to calculate the LMA of the end of a segment.
+
+2007-05-10  Jakub Jelinek  <jakub@redhat.com>
+
+       * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't do copyreloc
+       processing if symbol is defined in the executable.
+
+2007-05-10  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (_frvfdpic_check_discarded_relocs): New.
+       (frvfdpic_elf_discard_info): New.
+       (elf_backend_discard_info): Define for FDPIC.
+
+2007-05-09  Mark Shinwell  <shinwell@codesourcery.com>
+
+       * elf32-arm.c (bfd_elf32_arm_vfp11_erratum_scan): Don't
+       attempt to scan if the bfd doesn't correspond to an ELF image.
+       (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
+
+2007-05-08  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (elf32_frv_relocate_section): Discard dynamic relocs
+       for which _bfd_elf_section_offset returns -1.
+
+2007-05-08  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_size_stubs): Use "void *" for psyms.
+       (mark_functions_via_relocs): Likewise.
+
+2007-05-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (bfd_elf_final_link): Correct reloc handling for
+       elf_backend_count_relocs.
+       (bfd_elf_discard_info): Print an error if we can't read syms.
+
+2007-05-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_reloc_type_lookup): Return NULL on
+       invalid reloc code.
+       (spu_elf_gc_mark_hook, spu_elf_section_processing): Delete functions.
+       (elf_backend_gc_mark_hook, elf_backend_section_processing): Don't
+       define.
+
+2007-05-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (assign_file_positions_for_load_sections): Don't check
+       core segment.
+
+2007-05-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elflink.c (elf_link_sort_relocs): Return if both .rela.dyn
+       and .rel.dyn aren't present.
+
+2007-05-04  Nick Clifton  <nickc@redhat.com>
+
+       * elflink.c (elf_link_sort_relocs): If both .rela.dyn and .rel.dyn
+       sections are present examine the indirect sections in an attempt
+       to compute the correct relocation size.  If there is any
+       ambiguity, produce an error and refuse to sort.
+
+2007-05-03  Sandra Loosemore  <sandra@codesourcery.com>
+
+       * elf32-arm.c (allocate_dynrelocs): Fix typo in comment.
+
+2007-05-03  Vincent Riviere  <vincent.riviere@freesbee.fr>
+           Nick Clifton  <nickc@redhat.com>
+
+       PR gas/3041
+       * aoutx.h (swap_std_reloc_out): Treat relocs against weak symbols
+       in the same way as relocs against external symbols.
+
+2007-05-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf.c (assign_file_positions_for_load_sections): Set sh_offset
+       here.  Set sh_type to SHT_NOBITS if we won't be allocating
+       file space.  Don't bump p_memsz for non-alloc sections.  Adjust
+       section-in-segment check.
+       (assign_file_positions_for_non_load_sections): Don't set sh_offset
+       here for sections that have already been handled above.
+
+2007-04-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (struct spu_link_hash_table): Add stack_analysis
+       and emit_stack_syms bitfields.
+       (get_sym_h): Read all symbols if stack analysis will be done.
+       (spu_elf_create_sections): Add stack_analysis and emit_stack_syms
+       params, and stash in hash table.
+       (is_hint): Split off from..
+       (is_branch): ..here.  Adjust callers.
+       (spu_elf_size_stubs): Add stack_analysis param.  Arrange to read
+       and keep all syms.
+       (write_one_stub): Fix mem leak.
+       (find_function_stack_adjust): New function.
+       (sort_syms_syms, sort_syms_psecs): New vars.
+       (sort_syms): New function.
+       (struct call_info, struct function_info): New.
+       (struct spu_elf_stack_info): New.
+       (alloc_stack_info, maybe_insert_function, func_name): New functions.
+       (is_nop, insns_at_end, check_function_ranges): Likewise.
+       (find_function, insert_callee, mark_functions_via_relocs): Likewise.
+       (pasted_function, interesting_section, discover_functions): Likewise.
+       (mark_non_root, call_graph_traverse, build_call_tree): Likewise.
+       (sum_stack, spu_elf_stack_analysis, spu_elf_final_link): Likewise.
+       (bfd_elf32_bfd_final_link): Define.
+       * elf32-spu.h (struct _spu_elf_section_data): Add stack_info field.
+       (spu_elf_create_sections, spu_elf_size_stubs): Update prototypes.
+
+2007-04-28  Sergey Rogozhkin  <rogozhkin@niisi.msk.ru>
+
+       * elfxx-mips.c (mips_elf_create_dynamic_relocation): Don't access
+       memory which we might not own.
+
+2007-04-27  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (elf_xtensa_make_sym_local): Restore deleted function.
+       (elf_xtensa_hide_symbol, elf_backend_hide_symbol): Likewise.
+       (elf_xtensa_allocate_dynrelocs): Use elf_xtensa_make_sym_local.
+
+2007-04-27  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (xtensa_read_table_entries): Step through table
+       contents and relocs in parallel.
+
+2007-04-27  Bob Wilson  <bob.wilson@acm.org>
+
+       * elf32-xtensa.c (relax_property_section): Remove extra irel increment.
+
+2007-04-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * cpu-rs6000.c: Write Mimi's name in ASCII.
+       * coff-rs6000.c: Likewise.
+       * rs6000-core.c: Likewise.
+
+2007-04-27  Alan Modra  <amodra@bigpond.net.au>
+
+       * sysdep.h: Include config.h first.
+       Many files: Include sysdep.h before bfd.h.
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2007-04-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * sysdep.h: Revert last change.
+
+2007-04-24  Nick Clifton  <nickc@redhat.com>
+
+       * coffcode.h (coff_slurp_reloc_table): Initialise dst.r_offset.
+       * coff-m68k.c (m68kcoff_rtype_to_howto): Initialize relent.howto.
+
+2007-04-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Warn if
+       eh_frame_hdr table won't be created.
+
 2007-04-24  Alan Modra  <amodra@bigpond.net.au>
 
        * acinclude.m4: Include config/stdint.m4.
        duplicating section name comparisons.
        (xtensa_is_littable_section): Use CONST_STRNEQ for ".gnu.linkonce.p.".
        (xtensa_get_property_predef_flags): Use xtensa_is_insntable_section.
-       
+
 2007-04-12  Bob Wilson  <bob.wilson@acm.org>
-       
+
        * elf32-xtensa.c (elf_xtensa_gc_mark_hook): Don't follow references
        from Xtensa property sections.
-       
+
 2007-04-12  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-spu.c (needs_ovl_stub): Test that spu_elf_section_data
        (elf64_alpha_size_got_sections): Remove unused something_changed local.
        (elf64_alpha_size_plt_section): Return void.
        (elf64_alpha_size_rela_got_section): Likewise.
-       (elf64_alpha_relax_section): Only regenerate got+plt if the 
+       (elf64_alpha_relax_section): Only regenerate got+plt if the
        relax_trip counter has changed.
 
 2007-04-09  Daniel Jacobowitz  <dan@codesourcery.com>
 
 2007-04-03  Matt Thomas  <matt@netbsd.org>
 
-       * elf32-vax.c (elf_vax_relocate_section): Do not emit a PCREL reloc 
+       * elf32-vax.c (elf_vax_relocate_section): Do not emit a PCREL reloc
        in a shared object if it is not in a CODE section or if it is against
        a section symbol.  This allows DWARF2 to use pcrel format.