OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [binutils-2.18.50/] [bfd/] [ChangeLog] - Diff between revs 156 and 816

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 156 Rev 816
2008-05-03  Daniel Jacobowitz  
2008-05-03  Daniel Jacobowitz  
        * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
        * elf32-arm.c (elf32_arm_symbian_link_hash_table_create): Use
        ARRAY_SIZE.
        ARRAY_SIZE.
        (elf32_arm_symbian_plt_sym_val): New.
        (elf32_arm_symbian_plt_sym_val): New.
        (elf_backend_plt_sym_val): Define.
        (elf_backend_plt_sym_val): Define.
2008-05-03  Alan Modra  
2008-05-03  Alan Modra  
        PR 2995, PR 6473
        PR 2995, PR 6473
        * elf.c (rewrite_elf_program_header): Rather than clearing
        * elf.c (rewrite_elf_program_header): Rather than clearing
        p_paddr_valid at end, don't set it in the first place.  Delete
        p_paddr_valid at end, don't set it in the first place.  Delete
        comment no longer relevant.  When not p_paddr_valid, don't set
        comment no longer relevant.  When not p_paddr_valid, don't set
        paddr from vaddr, and don't set p_vaddr_offset.
        paddr from vaddr, and don't set p_vaddr_offset.
2008-05-01  Cary Coutant  
2008-05-01  Cary Coutant  
        * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
        * elf.c (bfd_elf_get_str_section): Fix memory leak caused by
        corrupt string table.
        corrupt string table.
2008-05-01  Joel Brobecker  
2008-05-01  Joel Brobecker  
        * cache.c (cache_bread_1): Renames cache_bread.
        * cache.c (cache_bread_1): Renames cache_bread.
        (cache_bread): New function.
        (cache_bread): New function.
2008-05-01  Alan Modra  
2008-05-01  Alan Modra  
        PR 2995, PR 6473
        PR 2995, PR 6473
        * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
        * elf.c (_bfd_elf_make_section_from_shdr): Always set lma from p_paddr.
        (assign_file_positions_for_load_sections): Combine nested "if".
        (assign_file_positions_for_load_sections): Combine nested "if".
        (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
        (copy_elf_program_header): Don't set p_paddr_valid or p_vaddr_offset
        when all header p_paddr fields are zero.
        when all header p_paddr fields are zero.
2008-04-30  Edmar Wienskoski  
2008-04-30  Edmar Wienskoski  
        * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
        * cpu-powerpc.c (bfd_powerpc_archs): Add e500mc entry.
2008-04-29  Daniel Jacobowitz  
2008-04-29  Daniel Jacobowitz  
        * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
        * elf.c (_bfd_elf_get_dynamic_reloc_upper_bound)
        (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
        (_bfd_elf_canonicalize_dynamic_reloc): Find dynamic relocations
        even if they are not loaded.
        even if they are not loaded.
        * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
        * elflink.c (_bfd_elf_init_2_index_sections): Set data_index_section
        first.
        first.
2008-04-25  Jay Foad  
2008-04-25  Jay Foad  
        * reloc16.c (bfd_coff_reloc16_get_value): Add support for
        * reloc16.c (bfd_coff_reloc16_get_value): Add support for
        undefined weak symbols.
        undefined weak symbols.
2008-04-25  Nick Clifton  
2008-04-25  Nick Clifton  
        * po/vi.po: Updated Vietnamese translation.
        * po/vi.po: Updated Vietnamese translation.
2008-04-23  Paolo Bonzini  
2008-04-23  Paolo Bonzini  
        * aclocal.m4: Regenerate.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.
        * configure: Regenerate.
2008-04-21  Cary Coutant  
2008-04-21  Cary Coutant  
        * archive.c (_bfd_write_archive_contents): Fix incorrect use of
        * archive.c (_bfd_write_archive_contents): Fix incorrect use of
        ARFMAG.
        ARFMAG.
2008-04-21  Nathan Sidwell  
2008-04-21  Nathan Sidwell  
        * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
        * elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't
        set the value of undefined symbols in shared objects.
        set the value of undefined symbols in shared objects.
        (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
        (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for
        undefined symbols unless pointer equality is needed.
        undefined symbols unless pointer equality is needed.
2008-04-18  Dennis Roberts  
2008-04-18  Dennis Roberts  
        * aix5ppc-core.c: Define macros for the default architecture and
        * aix5ppc-core.c: Define macros for the default architecture and
        machine for matching core files.
        machine for matching core files.
        (xcoff64_core_p): Set the architecture and machine to the default
        (xcoff64_core_p): Set the architecture and machine to the default
        values defined in the macros mentioned above.
        values defined in the macros mentioned above.
        * rs6000-core.c: Define macros to determine whether or not the
        * rs6000-core.c: Define macros to determine whether or not the
        core file header uses the core_dumpxx header format.
        core file header uses the core_dumpxx header format.
        (rs6000coff_core_p): Don't match core files that use the
        (rs6000coff_core_p): Don't match core files that use the
        core_dumpxx header format.
        core_dumpxx header format.
2008-04-16  Pedro Alves  
2008-04-16  Pedro Alves  
        * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.
        * config.bfd (i[3-7]86-*-dicos*, x86_64-*-dicos*): Add.
2008-04-16  David S. Miller  
2008-04-16  David S. Miller  
        * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
        * reloc.c (BFD_RELOC_SPARC_GOTDATA_HIX22,
        BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
        BFD_RELOC_SPARC_GOTDATA_LOX10, BFD_RELOC_SPARC_GOTDATA_OP_HIX22,
        BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
        BFD_RELOC_SPARC_GOTDATA_OP_LOX10, BFD_RELOC_SPARC_GOTDATA_OP): New.
        * libbfd.h: Regnerate.
        * libbfd.h: Regnerate.
        * bfd-in2.h: Regenerate.
        * bfd-in2.h: Regenerate.
        * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
        * elfxx-sparc.c (_bfd_sparc_elf_howto_table): Add entries for
        GOTDATA relocations.
        GOTDATA relocations.
        (sparc_reloc_map): Likewise.
        (sparc_reloc_map): Likewise.
        (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
        (_bfd_sparc_elf_check_relocs): Handle R_SPARC_GOTDATA_* like
        R_SPARC_GOT*.
        R_SPARC_GOT*.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
        (_bfd_sparc_elf_relocate_section): Transform R_SPARC_GOTDATA_HIX22,
        R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
        R_SPARC_GOTDATA_LOX10, R_SPARC_GOTDATA_OP_HIX22, and
        R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
        R_SPARC_GOTDATA_OP_LOX10 into the equivalent R_SPARC_GOT* reloc.
        Simply ignore R_SPARC_GOTDATA_OP relocations.
        Simply ignore R_SPARC_GOTDATA_OP relocations.
2008-04-14  Aurelien Jarno  
2008-04-14  Aurelien Jarno  
        * configure.in: Link with the PIC version of libiberty on
        * configure.in: Link with the PIC version of libiberty on
        Linux/MIPS hosts.
        Linux/MIPS hosts.
        * configure: Regenerate.
        * configure: Regenerate.
2008-04-14  Edmar Wienskoski  
2008-04-14  Edmar Wienskoski  
        * archures.c: Add bfd_mach_ppc_e500mc.
        * archures.c: Add bfd_mach_ppc_e500mc.
        * bfd-in2.h: Regenerate.
        * bfd-in2.h: Regenerate.
2008-04-08  Alan Modra  
2008-04-08  Alan Modra  
        * elf32-spu.c (spu_elf_build_stubs): Correct error message.
        * elf32-spu.c (spu_elf_build_stubs): Correct error message.
        (mark_functions_via_relocs): Remove premature init of symtab_hdr.
        (mark_functions_via_relocs): Remove premature init of symtab_hdr.
        (collect_overlays): Commment typo fix.
        (collect_overlays): Commment typo fix.
2008-04-08  Kees Cook  
2008-04-08  Kees Cook  
        * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
        * elflink.c (bfd_elf_size_dynamic_sections): Ignore GNU-stack note
        in EXEC_P bfds.
        in EXEC_P bfds.
2008-04-08  Alan Modra  
2008-04-08  Alan Modra  
        * elf32-spu.c: Include libiberty.h.
        * elf32-spu.c: Include libiberty.h.
        (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
        (struct spu_link_hash_table): Add local_stire, overlay_fixed, reserved,
        non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
        non_ovly_stub, spu_elf_load_ovl_mgr, spu_elf_open_overlay_script,
        spu_elf_relink, auto_overlay fields.
        spu_elf_relink, auto_overlay fields.
        (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
        (AUTO_OVERLAY, AUTO_RELINK, OVERLAY_RODATA): Define.
        (needs_ovl_stub): Flip test so that call to non-function warning
        (needs_ovl_stub): Flip test so that call to non-function warning
        is emitted during relocate_section rather than earlier.
        is emitted during relocate_section rather than earlier.
        (spu_elf_check_vma): Stash --auto-overlay parameters, and clear
        (spu_elf_check_vma): Stash --auto-overlay parameters, and clear
        auto_overlay if no section exceeds local store.
        auto_overlay if no section exceeds local store.
        (struct call_info): Add count, max_depth, is_pasted fields.
        (struct call_info): Add count, max_depth, is_pasted fields.
        (struct function_info): Add rodata, last_caller, call_count,
        (struct function_info): Add rodata, last_caller, call_count,
        depth, new visit flags.
        depth, new visit flags.
        (insert_callee): Increment call count.
        (insert_callee): Increment call count.
        (copy_callee): New function.
        (copy_callee): New function.
        (mark_functions_via_relocs): Investigate all reloc types to count
        (mark_functions_via_relocs): Investigate all reloc types to count
        possible function pointer stubs for --auto-overlay.  Track
        possible function pointer stubs for --auto-overlay.  Track
        last_caller and increment function call_count.
        last_caller and increment function call_count.
        (pasted_function): Insert a "call" into call info for pasted section.
        (pasted_function): Insert a "call" into call info for pasted section.
        (remove_cycles): Track max depth of calls.  Don't emit call graph
        (remove_cycles): Track max depth of calls.  Don't emit call graph
        pruning warning for --auto-overlay.
        pruning warning for --auto-overlay.
        (build_call_tree): Don't transfer_calls for --auto-overlay.
        (build_call_tree): Don't transfer_calls for --auto-overlay.
        Adjust remove_cycles call.
        Adjust remove_cycles call.
        (sort_calls, sort_lib, sort_bfds): New functions.
        (sort_calls, sort_lib, sort_bfds): New functions.
        (struct _mos_param, struct _uos_param, struct _cl_param): New.
        (struct _mos_param, struct _uos_param, struct _cl_param): New.
        (mark_overlay_section, unmark_overlay_section): New functions.
        (mark_overlay_section, unmark_overlay_section): New functions.
        (collect_lib_sectios, auto_ovl_lib_functions): New functions.
        (collect_lib_sectios, auto_ovl_lib_functions): New functions.
        (collect_overlays, find_pasted_call): New functions.
        (collect_overlays, find_pasted_call): New functions.
        (sum_stack): Deal with is_pasted "calls".  Exit before printing
        (sum_stack): Deal with is_pasted "calls".  Exit before printing
        when --auto-overlay.
        when --auto-overlay.
        (spu_elf_auto_overlay): New function.
        (spu_elf_auto_overlay): New function.
        (spu_elf_final_link): Call spu_elf_auto_overlay.
        (spu_elf_final_link): Call spu_elf_auto_overlay.
        * elf32-spu.h (spu_elf_check_vma): Update prototype.
        * elf32-spu.h (spu_elf_check_vma): Update prototype.
2008-04-07  Alan Modra  
2008-04-07  Alan Modra  
        * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
        * elf32-spu.c (allocate_spuear_stubs): Ensure _SPUEAR_ symbol
        is defined in overlay section before creating a stub.
        is defined in overlay section before creating a stub.
        (build_spuear_stubs): Likewise.
        (build_spuear_stubs): Likewise.
        (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.
        (spu_elf_size_stubs, spu_elf_build_stubs): Adjust calls.
2008-04-02  Alan Modra  
2008-04-02  Alan Modra  
        * elf32-spu.c (insert_callee): Reorder call list so most recent
        * elf32-spu.c (insert_callee): Reorder call list so most recent
        call is always first.
        call is always first.
        (interesting_section): Move.
        (interesting_section): Move.
        (mark_functions_via_relocs): Fold interesting_section and
        (mark_functions_via_relocs): Fold interesting_section and
        reloc_count tests in callers to here.  Simplify output section
        reloc_count tests in callers to here.  Simplify output section
        owner test.
        owner test.
        (discover_functions): Set "gaps" when no symbols and some
        (discover_functions): Set "gaps" when no symbols and some
        "interesting_section".  Run pasted_function loop for no symbol
        "interesting_section".  Run pasted_function loop for no symbol
        bfds.
        bfds.
        (for_each_node, transfer_calls): New functions.
        (for_each_node, transfer_calls): New functions.
        (mark_non_root): Adjust to suit for_each_node.
        (mark_non_root): Adjust to suit for_each_node.
        (call_graph_traverse): Likewise.  Fix memory leak.  Rename to..
        (call_graph_traverse): Likewise.  Fix memory leak.  Rename to..
        (remove_cycles): ..this.
        (remove_cycles): ..this.
        (build_call_tree): Use for_each_node and transfer_calls.
        (build_call_tree): Use for_each_node and transfer_calls.
        (struct _sum_stack_param): New.
        (struct _sum_stack_param): New.
        (sum_stack): Adjust to suit for_each_node.  Return error on
        (sum_stack): Adjust to suit for_each_node.  Return error on
        malloc failure.  Move code to print root node cumulative stack from..
        malloc failure.  Move code to print root node cumulative stack from..
        (spu_elf_stack_analysis): ..here.  Use for_each_node.
        (spu_elf_stack_analysis): ..here.  Use for_each_node.
2008-03-31  Cary Coutant  
2008-03-31  Cary Coutant  
        PR 6006
        PR 6006
        * archive.c (_bfd_slurp_extended_name_table): Change
        * archive.c (_bfd_slurp_extended_name_table): Change
        ARFMAG[0] to ARFMAG[1].
        ARFMAG[0] to ARFMAG[1].
        (_bfd_construct_extended_name_table): Likewise.
        (_bfd_construct_extended_name_table): Likewise.
2008-03-31  Daniel Jacobowitz  
2008-03-31  Daniel Jacobowitz  
        * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
        * elfxx-mips.c (mips_elf_record_got_page_entry): Update comment.
        (_bfd_mips_elf_check_relocs): Update comments.  Always call
        (_bfd_mips_elf_check_relocs): Update comments.  Always call
        mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.
        mips_elf_record_got_page_entry for R_MIPS_GOT_PAGE.
2008-03-27  Cary Coutant  
2008-03-27  Cary Coutant  
        Add support for thin archives.
        Add support for thin archives.
        * archive.c (_bfd_find_nested_archive): New function.
        * archive.c (_bfd_find_nested_archive): New function.
        (get_extended_arelt_filename): Add origin parameter.
        (get_extended_arelt_filename): Add origin parameter.
        (_bfd_generic_read_ar_hdr_mag): Deal with extended name
        (_bfd_generic_read_ar_hdr_mag): Deal with extended name
        combined with a file offset.
        combined with a file offset.
        (append_relative_path): New function.
        (append_relative_path): New function.
        (_bfd_get_elt_at_filepos): Deal with external members and
        (_bfd_get_elt_at_filepos): Deal with external members and
        nested archives.
        nested archives.
        (bfd_generic_openr_next_archived_file): Thin archives.
        (bfd_generic_openr_next_archived_file): Thin archives.
        (bfd_generic_archive_p): Recognize new magic string.
        (bfd_generic_archive_p): Recognize new magic string.
        (adjust_relative_path): New function.
        (adjust_relative_path): New function.
        (_bfd_construct_extended_name_table): Construct extended
        (_bfd_construct_extended_name_table): Construct extended
        names for thin archive members.
        names for thin archive members.
        (_bfd_write_archive_contents): Emit new magic string, skip
        (_bfd_write_archive_contents): Emit new magic string, skip
        copying files for thin archives.
        copying files for thin archives.
        * bfd-in.h (bfd_is_thin_archive): New macro.
        * bfd-in.h (bfd_is_thin_archive): New macro.
        * bfd.c (struct bfd): New fields for thin archives.
        * bfd.c (struct bfd): New fields for thin archives.
        * libbfd-in.h (struct areltdata): New field for thin archives.
        * libbfd-in.h (struct areltdata): New field for thin archives.
        * opncls.c (bfd_close): Delete BFDs for nested archives.
        * opncls.c (bfd_close): Delete BFDs for nested archives.
2008-03-25  Bernd Schmidt  
2008-03-25  Bernd Schmidt  
        * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
        * elf32-bfin.c (bfin_final_link_relocate): New function, wrapper around
        _bfd_final_link_relocate that also handles R_pcrel24 relocs.
        _bfd_final_link_relocate that also handles R_pcrel24 relocs.
        (bfinfdpic_relocate_section, bfin_relocate_section): Use it.
        (bfinfdpic_relocate_section, bfin_relocate_section): Use it.
2008-03-25  Nathan Sidwell  
2008-03-25  Nathan Sidwell  
        * elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs
        * elf32-arm.c (elf32_arm_final_link_relocate): Skip dynamic relocs
        in vxworks tls_vars sections.
        in vxworks tls_vars sections.
        (allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise.
        (allocate_dynrelocs, elf32_arm_size_dynamic_sections): Likewise.
        * elf32-i386.c (allocate_dynrelocs,
        * elf32-i386.c (allocate_dynrelocs,
        elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise.
        elf_i386_size_dynamic_sections, elf_i386_relocate_section): Likewise.
        * elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections,
        * elf32-ppc.c (allocate_dynrelocs, ppc_elf_size_dynamic_sections,
        ppc_elf_relocate_section): Likewise.
        ppc_elf_relocate_section): Likewise.
        * elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections,
        * elf32-sh.c (allocate_dynrelocs, sh_elf_size_dynamic_sections,
        sh_elf_relocate_section): Likewise.
        sh_elf_relocate_section): Likewise.
        * elfxx-sparc.c (allocate_dynrelocs,
        * elfxx-sparc.c (allocate_dynrelocs,
        _bfd_sparc_elf_size_dynamic_sections,
        _bfd_sparc_elf_size_dynamic_sections,
        _bfd_sparc_elf_relocate_section): Likewise.
        _bfd_sparc_elf_relocate_section): Likewise.
2008-03-21  Adam Nemet  
2008-03-21  Adam Nemet  
        * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to
        * elf.c (_bfd_elf_print_private_bfd_data): Use bfd_fprintf_vma to
        print the values from the dynamic section.
        print the values from the dynamic section.
2008-03-20  Richard Sandiford  
2008-03-20  Richard Sandiford  
        * elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro.
        * elfxx-mips.c (MIPS_ELF_GNU_GOT1_MASK): New macro.
        (_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000.
        (_bfd_mips_elf_finish_dynamic_sections): Use it instead of 0x80000000.
2008-03-20  Alan Modra  
2008-03-20  Alan Modra  
        * elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter.
        * elf32-spu.c (spu_elf_create_sections): Remove output_bfd parameter.
        (spu_elf_find_overlays, spu_elf_size_stubs): Likewise
        (spu_elf_find_overlays, spu_elf_size_stubs): Likewise
        (process_stubs, discover_functions, build_call_tree): Likewise.
        (process_stubs, discover_functions, build_call_tree): Likewise.
        (spu_elf_stack_analysis): Likewise.
        (spu_elf_stack_analysis): Likewise.
        (spu_elf_check_vma): Likewise.  Move.
        (spu_elf_check_vma): Likewise.  Move.
        (struct call_info): Make "is_tail" a bitfield.
        (struct call_info): Make "is_tail" a bitfield.
        (insert_callee): Clear fun->start and set fun->is_func if we find
        (insert_callee): Clear fun->start and set fun->is_func if we find
        a non-tail call.
        a non-tail call.
        * elf32-spu.h (spu_elf_create_sections): Update prototype.
        * elf32-spu.h (spu_elf_create_sections): Update prototype.
        (spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto.
        (spu_elf_find_overlays, spu_elf_size_stubs, spu_elf_check_vma): Ditto.
2008-03-17  Ralf Wildenhues  
2008-03-17  Ralf Wildenhues  
        * aclocal.m4: Regenerate.
        * aclocal.m4: Regenerate.
        * configure: Likewise.
        * configure: Likewise.
        * Makefile.in: Likewise.
        * Makefile.in: Likewise.
2008-03-16  H.J. Lu  
2008-03-16  H.J. Lu  
        PR ld/5789
        PR ld/5789
        PR ld/5943
        PR ld/5943
        * elf32-i386.c  (elf_i386_relocate_section): Issue an error
        * elf32-i386.c  (elf_i386_relocate_section): Issue an error
        for R_386_GOTOFF relocaton against undefined hidden/internal
        for R_386_GOTOFF relocaton against undefined hidden/internal
        symbols when building a shared object.
        symbols when building a shared object.
        * elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
        * elf64-x86-64.c (elf64_x86_64_relocate_section): Issue an
        error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
        error for R_X86_64_PC8/R_X86_64_PC16/R_X86_64_PC32
        relocaton against undefined hidden/internal symbols when
        relocaton against undefined hidden/internal symbols when
        building a shared object.
        building a shared object.
        (elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
        (elf64_x86_64_finish_dynamic_symbol): Return FALSE when symbol
        is referenced locally, but isn't defined in a regular file.
        is referenced locally, but isn't defined in a regular file.
2008-03-15  H.J. Lu  
2008-03-15  H.J. Lu  
        * bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO,
        * bfd-in.h (BFD_NO_FLAGS, HAS_RELOC, EXEC_P, HAS_LINENO,
        HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED,
        HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED,
        BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY,
        BFD_IS_RELAXABLE, BFD_TRADITIONAL_FORMAT, BFD_IN_MEMORY,
        HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ...
        HAS_LOAD_PAGE, BFD_LINKER_CREATED): Moved to ...
        * bfd.c: Here.
        * bfd.c: Here.
        * bfd.c (bfd): Change cacheable, target_defaulted, opened_once,
        * bfd.c (bfd): Change cacheable, target_defaulted, opened_once,
        mtime_set, no_export, output_has_begun and has_armap to bit
        mtime_set, no_export, output_has_begun and has_armap to bit
        field.
        field.
        * bfd-in2.h: Regenerated.
        * bfd-in2.h: Regenerated.
2008-03-14  Daniel Jacobowitz  
2008-03-14  Daniel Jacobowitz  
        * cache.c (close_one): Remove mtime hack.
        * cache.c (close_one): Remove mtime hack.
2008-03-14  H.J. Lu  
2008-03-14  H.J. Lu  
        PR ld/5913
        PR ld/5913
        * elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT.
        * elfxx-ia64.c (elfNN_ia64_tprel_base): Remove BFD_ASSERT.
        (elfNN_ia64_dtprel_base): Likewise.
        (elfNN_ia64_dtprel_base): Likewise.
        (elfNN_ia64_relocate_section): Go to missing_tls_sec if
        (elfNN_ia64_relocate_section): Go to missing_tls_sec if
        tls_sec is NULL before calling elfNN_ia64_tprel_base or
        tls_sec is NULL before calling elfNN_ia64_tprel_base or
        elfNN_ia64_dtprel_base.  Report unsupported TLS relocations.
        elfNN_ia64_dtprel_base.  Report unsupported TLS relocations.
2008-03-14  Alan Modra  
2008-03-14  Alan Modra  
        * elf32-spu.c (process_stubs, spu_elf_relocate_section): Move
        * elf32-spu.c (process_stubs, spu_elf_relocate_section): Move
        common code to..
        common code to..
        (maybe_needs_stub): ..here, a new function that also omits stubs
        (maybe_needs_stub): ..here, a new function that also omits stubs
        for .eh_frame, and..
        for .eh_frame, and..
        (needs_ovl_stub): ..here.  Create stubs for labels in code section
        (needs_ovl_stub): ..here.  Create stubs for labels in code section
        referenced by switch jump table.
        referenced by switch jump table.
        (spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return.
        (spu_elf_find_overlays): Set htab->ovly_load and htab->ovly_return.
        (enum _insn_type): Delete.
        (enum _insn_type): Delete.
        (enum _stub_type): New.
        (enum _stub_type): New.
        (count_stub, build_stub): Adjust.
        (count_stub, build_stub): Adjust.
        (allocate_spuear_stubs, build_spuear_stubs): Adjust.
        (allocate_spuear_stubs, build_spuear_stubs): Adjust.
2008-03-13  Alan Modra  
2008-03-13  Alan Modra  
        * elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast.
        * elf.c (_bfd_elf_make_section_from_shdr): Remove unnecessary cast.
        (_bfd_elf_assign_file_position_for_section): Simplify align.
        (_bfd_elf_assign_file_position_for_section): Simplify align.
        (_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough
        (_bfd_elf_init_reloc_shdr): Ensure shift expression wide enough
        for sh_addralign.
        for sh_addralign.
        (elf_fake_sections, swap_out_syms): Likewise.
        (elf_fake_sections, swap_out_syms): Likewise.
        * elflink.c (bfd_elf_final_link): Likewise.
        * elflink.c (bfd_elf_final_link): Likewise.
2008-03-13  Alan Modra  
2008-03-13  Alan Modra  
        * Makefile.am: Run "make dep-am".
        * Makefile.am: Run "make dep-am".
        * Makefile.in: Regenerate.
        * Makefile.in: Regenerate.
        * po/SRC-POTFILES.in: Regenerate.
        * po/SRC-POTFILES.in: Regenerate.
2008-03-12  Bernd Schmidt  
2008-03-12  Bernd Schmidt  
        From Jie Zhang 
        From Jie Zhang 
        * elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4,
        * elf32-bfin.c (struct bfinfdpic_relocs_info): Make got17m4,
        gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo,
        gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4, fdgoffhilo,
        gotoff, call and sym not bitfields.
        gotoff, call and sym not bitfields.
        (bfinfdpic_gc_sweep_hook): New function; update the relocation
        (bfinfdpic_gc_sweep_hook): New function; update the relocation
        information for the relocations of the section being removed.
        information for the relocations of the section being removed.
        (bfinfdpic_check_relocs): Accumulate the number of relocations
        (bfinfdpic_check_relocs): Accumulate the number of relocations
        which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4,
        which set got17m4, gothilo, fd, fdgot17m4, fdgothilo, fdgoff17m4,
        fdgoffhilo, gotoff, call and sym fields.
        fdgoffhilo, gotoff, call and sym fields.
        (elf_backend_gc_sweep_hook): Redefine for FD-PIC.
        (elf_backend_gc_sweep_hook): Redefine for FD-PIC.
2008-03-12  Alan Modra  
2008-03-12  Alan Modra  
        PR 5900
        PR 5900
        * elf-bfd.h: Include elf/internal.h after elf/external.h.
        * elf-bfd.h: Include elf/internal.h after elf/external.h.
        * elfcode.h (elf_swap_symbol_in): Map reserved shndx range.
        * elfcode.h (elf_swap_symbol_in): Map reserved shndx range.
        (elf_swap_symbol_out): Adjust SHN_XINDEX test.
        (elf_swap_symbol_out): Adjust SHN_XINDEX test.
        (elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values
        (elf_swap_ehdr_out): Mask SHN_LORESERVE and SHN_XINDEX to values
        seen in external structs.
        seen in external structs.
        (valid_section_index_p): Delete.
        (valid_section_index_p): Delete.
        (elf_object_p): Don't increment section numbers over reserved range.
        (elf_object_p): Don't increment section numbers over reserved range.
        Simplify test for valid sh_link, sh_info and e_shstrndx fields.
        Simplify test for valid sh_link, sh_info and e_shstrndx fields.
        (elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values
        (elf_write_shdrs_and_ehdr): Mask SHN_LORESERVE and SHN_XINDEX to values
        seen in external structs.  Don't increment section numbers over
        seen in external structs.  Don't increment section numbers over
        reserved range.
        reserved range.
        * elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx.
        * elf.c (bfd_elf_sym_name): Remove redundant tests on st_shndx.
        (bfd_section_from_shdr): Likewise.
        (bfd_section_from_shdr): Likewise.
        (group_signature): Range check before accessing elf_elfsections.
        (group_signature): Range check before accessing elf_elfsections.
        (_bfd_elf_setup_sections): Likewise.
        (_bfd_elf_setup_sections): Likewise.
        (bfd_section_from_shdr): Likewise.
        (bfd_section_from_shdr): Likewise.
        (bfd_section_from_shdr): Don't increment section number over
        (bfd_section_from_shdr): Don't increment section number over
        reserved sections.
        reserved sections.
        (assign_file_positions_for_non_load_sections): Likewise.
        (assign_file_positions_for_non_load_sections): Likewise.
        (assign_file_positions_except_relocs): Likewise.
        (assign_file_positions_except_relocs): Likewise.
        (_bfd_elf_write_object_contents): Likewise.
        (_bfd_elf_write_object_contents): Likewise.
        (assign_section_numbers): Likewise.  Adjust for changed SHN_*.
        (assign_section_numbers): Likewise.  Adjust for changed SHN_*.
        (prep_headers): Delete unused variable.
        (prep_headers): Delete unused variable.
        * elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust
        * elflink.c (bfd_elf_link_record_local_dynamic_symbol): Adjust
        for changed SHN_* values.
        for changed SHN_* values.
        (check_dynsym, elf_link_input_bfd): Likewise.
        (check_dynsym, elf_link_input_bfd): Likewise.
        (bfd_elf_final_link): Likewise.  Don't skip over reserved section
        (bfd_elf_final_link): Likewise.  Don't skip over reserved section
        range.
        range.
        (elf_fixup_link_order): Check that sh_link field is valid.
        (elf_fixup_link_order): Check that sh_link field is valid.
        * elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned.
        * elf-hppa.h (elf_hppa_add_symbol_hook): Make "index" unsigned.
        * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before
        * elf32-arm.c (elf32_arm_gc_mark_extra_sections): Range check before
        accesssing elf_elfsections.
        accesssing elf_elfsections.
        * elf32-avr.c (elf32_avr_size_stubs): Likewise.
        * elf32-avr.c (elf32_avr_size_stubs): Likewise.
        * elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
        * elf32-hppa.c (elf32_hppa_size_stubs): Likewise.
        * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise.
        * elf32-m68hc1x.c (elf32_m68hc11_size_stubs): Likewise.
        * elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed
        * elf64-hppa.c (elf64_hppa_check_relocs): Adjust for changed
        SHN_* defines.  Test for SHN_BAD return from
        SHN_* defines.  Test for SHN_BAD return from
        _bfd_elf_section_from_bfd_section
        _bfd_elf_section_from_bfd_section
2008-03-12  Alan Modra  
2008-03-12  Alan Modra  
        * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype.
        * elf-bfd.h (_bfd_elf_section_from_bfd_section): Update prototype.
        * elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int,
        * elf.c (_bfd_elf_section_from_bfd_section): Return unsigned int,
        SHN_BAD on error.
        SHN_BAD on error.
        (_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from
        (_bfd_elf_print_private_bfd_data): Test for SHN_BAD result from
        _bfd_elf_section_from_bfd_section, not -1.
        _bfd_elf_section_from_bfd_section, not -1.
        (swap_out_syms): Likewise.
        (swap_out_syms): Likewise.
        * elflink.c (elf_link_add_object_symbols): Likewise.
        * elflink.c (elf_link_add_object_symbols): Likewise.
        (bfd_elf_get_bfd_needed_list): Likewise.
        (bfd_elf_get_bfd_needed_list): Likewise.
        (bfd_elf_match_symbols_in_sections): Likewise.
        (bfd_elf_match_symbols_in_sections): Likewise.
        (elf_link_add_object_symbols): Don't bother testing for symbols
        (elf_link_add_object_symbols): Don't bother testing for symbols
        using normal sections before calling bfd_section_from_elf_index.
        using normal sections before calling bfd_section_from_elf_index.
        (elf_link_input_bfd, bfd_elf_final_link): Likewise.
        (elf_link_input_bfd, bfd_elf_final_link): Likewise.
        (bfd_elf_reloc_symbol_deleted_p): Likewise.
        (bfd_elf_reloc_symbol_deleted_p): Likewise.
        * elfcode.h (elf_slurp_symbol_table): Likewise.
        * elfcode.h (elf_slurp_symbol_table): Likewise.
        * elf32-spu.c (get_sym_h): Likewise.
        * elf32-spu.c (get_sym_h): Likewise.
        * elf32-xtensa.c (get_elf_r_symndx_section): Likewise.
        * elf32-xtensa.c (get_elf_r_symndx_section): Likewise.
        * elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto.
        * elf64-ppc.c (opd_entry_value, get_sym_h, ppc64_elf_edit_toc): Ditto.
        * elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
        * elf64-sh64.c (sh_elf64_get_relocated_section_contents): Likewise.
2008-03-11  Alan Modra  
2008-03-11  Alan Modra  
        * elf32-spu.c (spu_elf_relocate_section): Test identical conditions
        * elf32-spu.c (spu_elf_relocate_section): Test identical conditions
        to those in process_stubs for overlay symbols.
        to those in process_stubs for overlay symbols.
2008-03-09  Paul Brook  
2008-03-09  Paul Brook  
        * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new
        * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new
        Tag_VFP_arch values.
        Tag_VFP_arch values.
2008-03-08  Paul Brook  
2008-03-08  Paul Brook  
        * elf32-arm.c (insert_thumb_branch): Rewrite.
        * elf32-arm.c (insert_thumb_branch): Rewrite.
        (elf32_thumb_to_arm_stub): Use new insert_thumb_branch.
        (elf32_thumb_to_arm_stub): Use new insert_thumb_branch.
2008-03-07  Paul Brook  
2008-03-07  Paul Brook  
        * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and
        * elf32-arm.c (elf32_arm_howto_table_1): Fix bitmasks for MOVW and
        MOVT relocations.
        MOVT relocations.
        (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign
        (elf32_arm_final_link_relocate): Fix off by one MOVW/MOVT sign
        extension.
        extension.
        (elf32_arm_relocate_section): Handle MOVW and MOVT
        (elf32_arm_relocate_section): Handle MOVW and MOVT
        relocations.  Improve safety check for other weird relocations.
        relocations.  Improve safety check for other weird relocations.
        (elf32_arm_check_relocs): Only set h->needs_plt for branch/call
        (elf32_arm_check_relocs): Only set h->needs_plt for branch/call
        relocations.
        relocations.
2008-03-03  Bob Wilson  
2008-03-03  Bob Wilson  
        * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
        * xtensa-isa.c (xtensa_isa_num_pipe_stages): Make max_stage static and
        only compute its value once.
        only compute its value once.
2008-03-03  Alan Modra  
2008-03-03  Alan Modra  
        * elf32-spu.c (struct got_entry): Add "addend" field.
        * elf32-spu.c (struct got_entry): Add "addend" field.
        (count_stub, build_stub): Use a new stub if relocation addend
        (count_stub, build_stub): Use a new stub if relocation addend
        differs from existing stubs for this symbol.
        differs from existing stubs for this symbol.
        (process_stubs): Deal with addends.
        (process_stubs): Deal with addends.
        (spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise.
        (spu_elf_relocate_section, spu_elf_output_symbol_hook): Likewise.
2008-03-02  H.J. Lu  
2008-03-02  H.J. Lu  
        PR ld/5789
        PR ld/5789
        * elflink.c (_bfd_elf_symbol_refs_local_p): Always return true
        * elflink.c (_bfd_elf_symbol_refs_local_p): Always return true
        for hidden and local symbols.
        for hidden and local symbols.
2008-03-03  Alan Modra  
2008-03-03  Alan Modra  
        * elf32-ppc.c (allocate_dynrelocs): Discard relocs on
        * elf32-ppc.c (allocate_dynrelocs): Discard relocs on
        undefined symbols with internal or hidden visibility.
        undefined symbols with internal or hidden visibility.
        (ppc_elf_relocate_section): Likewise.  Use SYMBOL_CALLS_LOCAL
        (ppc_elf_relocate_section): Likewise.  Use SYMBOL_CALLS_LOCAL
        rather than SYMBOL_REFERENCES_LOCAL on branches.  Don't
        rather than SYMBOL_REFERENCES_LOCAL on branches.  Don't
        return immediately on dynamic reloc error.
        return immediately on dynamic reloc error.
2008-03-01  Alan Modra  
2008-03-01  Alan Modra  
        * elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs
        * elf64-ppc.c (build_plt_stub): Add relocs on plt call stubs
        if emitrelocations.
        if emitrelocations.
        (get_relocs): New function, split out from..
        (get_relocs): New function, split out from..
        (ppc_build_one_stub): ..here.  Add relocs on plt_branch stubs if
        (ppc_build_one_stub): ..here.  Add relocs on plt_branch stubs if
        emitrelocations.  Remove indx temp.
        emitrelocations.  Remove indx temp.
        (ppc_size_one_stub): Count new stub relocs.
        (ppc_size_one_stub): Count new stub relocs.
        (ppc64_elf_size_stubs): Count new glink reloc.
        (ppc64_elf_size_stubs): Count new glink reloc.
        (ppc64_elf_build_stubs): Emit glink reloc if emitrelocations.
        (ppc64_elf_build_stubs): Emit glink reloc if emitrelocations.
        (ppc64_elf_finish_dynamic_sections): Output glink relocs.
        (ppc64_elf_finish_dynamic_sections): Output glink relocs.
        * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic
        * elf32-ppc.c (ppc_elf_finish_dynamic_sections): Describe non-pic
        glink code.
        glink code.
2008-02-28  Alan Modra  
2008-02-28  Alan Modra  
        * elf32-spu.c (mark_functions_via_relocs): Don't assume that
        * elf32-spu.c (mark_functions_via_relocs): Don't assume that
        the "->start" pointer reaches to function origin, so that we
        the "->start" pointer reaches to function origin, so that we
        can handle functions split over more than two sections.
        can handle functions split over more than two sections.
        (build_call_tree): Likewise.
        (build_call_tree): Likewise.
        (pasted_function): Don't attempt to set fun->start back to the
        (pasted_function): Don't attempt to set fun->start back to the
        function origin, just go back one section.
        function origin, just go back one section.
2008-02-27  Catherine Moore  
2008-02-27  Catherine Moore  
        * elf.c ( _bfd_elf_print_private_bfd_data): Call
        * elf.c ( _bfd_elf_print_private_bfd_data): Call
        elf_backend_get_target_dtag if defined.
        elf_backend_get_target_dtag if defined.
        * elf32-mips.c (elf_backend_get_target_dtag): Define.
        * elf32-mips.c (elf_backend_get_target_dtag): Define.
        * elf64-mips.c: Likewise.
        * elf64-mips.c: Likewise.
        * elfn32-mips.c: Likewise.
        * elfn32-mips.c: Likewise.
        * elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New.
        * elfxx-mips.c (_bfd_mips_elf_get_target_dtag): New.
        * elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare.
        * elfxx-mips.h (_bfd_mips_elf_get_target_dtag): Declare.
        * elf-bfd.h (elf_backend_get_target_dtag): Add prototype.
        * elf-bfd.h (elf_backend_get_target_dtag): Add prototype.
        * elfxx-target.h (elf_backend_get_target_dtag): Add default.
        * elfxx-target.h (elf_backend_get_target_dtag): Add default.
        (elf_backend_data): Add elf_backend_get_target_dtag.
        (elf_backend_data): Add elf_backend_get_target_dtag.
2008-02-26  Alan Modra  
2008-02-26  Alan Modra  
        * elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
        * elf32-ppc.c (ppc_elf_check_relocs): Set pointer_equality_needed
        for R_PPC_REL32 syms.  Don't set non_got_ref on branch reloc syms,
        for R_PPC_REL32 syms.  Don't set non_got_ref on branch reloc syms,
        and assume branch relocs are not dynamic when non-shared.
        and assume branch relocs are not dynamic when non-shared.
        (readonly_dynrelocs): New function, split out from..
        (readonly_dynrelocs): New function, split out from..
        (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
        (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs.
        (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
        (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries,
        clear non_got_ref..
        clear non_got_ref..
        (allocate_dynrelocs): ..and don't set u.def for undefined weak.
        (allocate_dynrelocs): ..and don't set u.def for undefined weak.
        Do allow dynamic relocs on undefined symbols.
        Do allow dynamic relocs on undefined symbols.
        (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
        (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs.
        (ppc_elf_relocate_section): Mirror dynamic reloc changes in
        (ppc_elf_relocate_section): Mirror dynamic reloc changes in
        check_relocs.
        check_relocs.
        (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
        (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak
        plt symbols needing pointer_equality_needed.
        plt symbols needing pointer_equality_needed.
2008-02-23  Alan Modra  
2008-02-23  Alan Modra  
        * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.
        * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change.
2008-02-23  Alan Modra  
2008-02-23  Alan Modra  
        * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
        * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy
        pointer_equality_needed.
        pointer_equality_needed.
        (ppc_elf_check_relocs): Split out non-branch relocs from others
        (ppc_elf_check_relocs): Split out non-branch relocs from others
        that might emit dynamic relocs.  Set pointer_equality_needed
        that might emit dynamic relocs.  Set pointer_equality_needed
        for their symbols.  Don't set non_got_ref on branch reloc symbols.
        for their symbols.  Don't set non_got_ref on branch reloc symbols.
        (ppc_elf_hash_symbol): New function.
        (ppc_elf_hash_symbol): New function.
        (elf_backend_hash_symbol): Define.
        (elf_backend_hash_symbol): Define.
        (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
        (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed.
        Error if pointer_equality_needed on weak plt symbol.
        Error if pointer_equality_needed on weak plt symbol.
2008-02-22  H.J. Lu  
2008-02-22  H.J. Lu  
        PR ld/5788
        PR ld/5788
        * elflink.c (elf_create_symbuf): Correct buffer size and
        * elflink.c (elf_create_symbuf): Correct buffer size and
        position.
        position.
2008-02-22  Nick Clifton  
2008-02-22  Nick Clifton  
        PR 868
        PR 868
        * dwarf2.c: Revert previous patch.  All of the allocate memory is
        * dwarf2.c: Revert previous patch.  All of the allocate memory is
        on an obstack which will be freed at some other time.
        on an obstack which will be freed at some other time.
2008-02-20  Nick Clifton  
2008-02-20  Nick Clifton  
        PR 868
        PR 868
        * libbfd.c (bfd_realloc_or_free): New function.  Performs like
        * libbfd.c (bfd_realloc_or_free): New function.  Performs like
        bfd_realloc, but if the (re)allocation fails, the pointer is
        bfd_realloc, but if the (re)allocation fails, the pointer is
        freed.
        freed.
        * libbfd-in.h: Prototype.
        * libbfd-in.h: Prototype.
        * libbfd.h: Regenerate.
        * libbfd.h: Regenerate.
        * bfdio.c (bfd_bwrite): Use the new function.
        * bfdio.c (bfd_bwrite): Use the new function.
        (bfd_seek): Likewise.
        (bfd_seek): Likewise.
        * bfdwin.c:(bfd_get_file_window): Likewise.
        * bfdwin.c:(bfd_get_file_window): Likewise.
        * elf-strtab.c (_bfd_elf_strtab_add): Likewise.
        * elf-strtab.c (_bfd_elf_strtab_add): Likewise.
        * elf32-ppc.c (ppc_elf_relax_section): Likewise.
        * elf32-ppc.c (ppc_elf_relax_section): Likewise.
        * elf32-xtensa.c (vsprintf_msg): Likewise.
        * elf32-xtensa.c (vsprintf_msg): Likewise.
        * mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
        * mach-o.c (bfd_mach_o_core_fetch_environment): Likewise.
        * stabs.c (_bfd_link_seciton_stabs): Likewise.
        * stabs.c (_bfd_link_seciton_stabs): Likewise.
        * vms-misc.c (_bfd_vms_get_record): Likewise.
        * vms-misc.c (_bfd_vms_get_record): Likewise.
        * vms-tir.c (check_section): Likewise.
        * vms-tir.c (check_section): Likewise.
        * vms.c (vms_new_section_hook): Likewise.
        * vms.c (vms_new_section_hook): Likewise.
        * elf32-arm.c (elf32_arm_section_map_add): Check that the
        * elf32-arm.c (elf32_arm_section_map_add): Check that the
        allocation of sec_data->map succeeded before using it.
        allocation of sec_data->map succeeded before using it.
        * elflink.c (elf_link_output_sym): Do not overwrite finfo->
        * elflink.c (elf_link_output_sym): Do not overwrite finfo->
        symshndxbuf until it is known that the reallocation succeeded.
        symshndxbuf until it is known that the reallocation succeeded.
2008-02-20  Diogo de Carvalho Kraemer  
2008-02-20  Diogo de Carvalho Kraemer  
            Nick Clifton  
            Nick Clifton  
        PR 868
        PR 868
        * dwarf2.c (read_abbrevs): Free the abbreviation table if we run
        * dwarf2.c (read_abbrevs): Free the abbreviation table if we run
        out of memory.
        out of memory.
        (decode_line_info): Free the line_info_table before returning a
        (decode_line_info): Free the line_info_table before returning a
        failure result.
        failure result.
        (_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table.
        (_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table.
        Free the line table.  Free the function table.  Free the variable
        Free the line table.  Free the function table.  Free the variable
        table.
        table.
2008-02-17  Mark Kettenis  
2008-02-17  Mark Kettenis  
        * elf.c (swap_out_syms): Avoid preprocessing directive within
        * elf.c (swap_out_syms): Avoid preprocessing directive within
        macro arg.
        macro arg.
2008-02-17  Jan Kratochvil  
2008-02-17  Jan Kratochvil  
        * elf.c (assign_file_positions_for_load_sections): Set the type of
        * elf.c (assign_file_positions_for_load_sections): Set the type of
        PT_NOTE sections to SHT_NOTE.
        PT_NOTE sections to SHT_NOTE.
2008-02-17  Ulrich Weigand  
2008-02-17  Ulrich Weigand  
        * simple.c (bfd_simple_get_relocated_section_contents): Set
        * simple.c (bfd_simple_get_relocated_section_contents): Set
        link_info.output_bfd.
        link_info.output_bfd.
2008-02-16  Nathan Sidwell  
2008-02-16  Nathan Sidwell  
        * dwarf2.c (find_line): Don't trust debug information after an
        * dwarf2.c (find_line): Don't trust debug information after an
        unparseable compilation unit.
        unparseable compilation unit.
2008-02-15  Alan Modra  
2008-02-15  Alan Modra  
        PR 5765
        PR 5765
        * section.c (SEC_LINK_DUPLICATES): Correct.  Renumber following flags.
        * section.c (SEC_LINK_DUPLICATES): Correct.  Renumber following flags.
        * bfd-in2.h: Regenerate.
        * bfd-in2.h: Regenerate.
2008-02-15  Alan Modra  
2008-02-15  Alan Modra  
        * elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA.
        * elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA.
        * elf.c (bfd_elf_allocate_object): Don't check for already allocated
        * elf.c (bfd_elf_allocate_object): Don't check for already allocated
        tdata.
        tdata.
        * elf32-hppa.c (elf32_hppa_mkobject): New function.
        * elf32-hppa.c (elf32_hppa_mkobject): New function.
        (bfd_elf32_mkobject): Define.
        (bfd_elf32_mkobject): Define.
        * elf32-ppc.c (is_ppc_elf_target): Delete.  Replace all uses with..
        * elf32-ppc.c (is_ppc_elf_target): Delete.  Replace all uses with..
        (is_ppc_elf): ..this new macro.
        (is_ppc_elf): ..this new macro.
        * elf64-ppc.c (is_ppc64_elf_target): Delete.  Replace all uses with..
        * elf64-ppc.c (is_ppc64_elf_target): Delete.  Replace all uses with..
        (is_ppc64_elf): ..this new macro.
        (is_ppc64_elf): ..this new macro.
2008-02-15  Alan Modra  
2008-02-15  Alan Modra  
        * elflink.c: Replace all accesses to hash->creator field with
        * elflink.c: Replace all accesses to hash->creator field with
        output_bfd->xvec.
        output_bfd->xvec.
        * cofflink.c: Likewise.
        * cofflink.c: Likewise.
        * coff-h8300.c: Likewise.
        * coff-h8300.c: Likewise.
        * ecoff.c: Likewise.
        * ecoff.c: Likewise.
        * elf32-m68hc1x.c: Likewise.
        * elf32-m68hc1x.c: Likewise.
        * elf32-ppc.c: Likewise.
        * elf32-ppc.c: Likewise.
        * elf64-alpha.c: Likewise.
        * elf64-alpha.c: Likewise.
        * elf64-ppc.c: Likewise.
        * elf64-ppc.c: Likewise.
        * elf64-sparc.c: Likewise.
        * elf64-sparc.c: Likewise.
        * elfxx-mips.c: Likewise.
        * elfxx-mips.c: Likewise.
        * i386linux.c: Likewise.
        * i386linux.c: Likewise.
        * m68klinux.c: Likewise.
        * m68klinux.c: Likewise.
        * sparclinux.c: Likewise.
        * sparclinux.c: Likewise.
        * sunos.c: Likewise.
        * sunos.c: Likewise.
        * xcofflink.c: Likewise.
        * xcofflink.c: Likewise.
        * linker.c: Likewise.
        * linker.c: Likewise.
        (_bfd_link_hash_table_init): Don't store creator.
        (_bfd_link_hash_table_init): Don't store creator.
2008-02-14  Peter Jones  
2008-02-14  Peter Jones  
        * efi-rtdrv-ia32.c: New file.
        * efi-rtdrv-ia32.c: New file.
        * efi-bsdrv-ia32.c: New file.
        * efi-bsdrv-ia32.c: New file.
        * efi-rtdrv-ia64.c: New file.
        * efi-rtdrv-ia64.c: New file.
        * efi-bsdrv-ia64.c: New file.
        * efi-bsdrv-ia64.c: New file.
        * efi-rtdrv-x86_64.c: New file.
        * efi-rtdrv-x86_64.c: New file.
        * efi-bsdrv-x86_64.c: New file.
        * efi-bsdrv-x86_64.c: New file.
        * peicode.h (pe_bfd_object_p): Add support for boot service and
        * peicode.h (pe_bfd_object_p): Add support for boot service and
        runtime service drivers.
        runtime service drivers.
        * libpei.h: Add macros for EFI formats, and rename the efi application
        * libpei.h: Add macros for EFI formats, and rename the efi application
        format macros to disambiguate.
        format macros to disambiguate.
        * targets.c: Add bfd_target _vec externs.
        * targets.c: Add bfd_target _vec externs.
        (_bfd_tar): Add EFI _vec entries.
        (_bfd_tar): Add EFI _vec entries.
        * config.bfd: Add EFI vectors into the selection routines.
        * config.bfd: Add EFI vectors into the selection routines.
        * configure.in: add EFI _vec entries.
        * configure.in: add EFI _vec entries.
        * configure: Regenerate.
        * configure: Regenerate.
        * Makefile.am: Add EFI files.
        * Makefile.am: Add EFI files.
        * Makefile.in: Regenerate.
        * Makefile.in: Regenerate.
2008-02-14  Nathan Sidwell  
2008-02-14  Nathan Sidwell  
        * dwarf1.c (struct dwarf1_debug): Add syms member.
        * dwarf1.c (struct dwarf1_debug): Add syms member.
        (alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory.
        (alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory.
        (parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate
        (parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate
        section contents, check for out of memory.
        section contents, check for out of memory.
        * dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte.
        * dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte.
        (parse_die): Change data pointers to bfd_byte.
        (parse_die): Change data pointers to bfd_byte.
        (parse_line_table, parse_functions_in_unit): Likewise.
        (parse_line_table, parse_functions_in_unit): Likewise.
2008-02-14  Alan Modra  
2008-02-14  Alan Modra  
        * elflink.c (compute_bucket_count): Warning fixes.
        * elflink.c (compute_bucket_count): Warning fixes.
2008-02-12  DJ Delorie  
2008-02-12  DJ Delorie  
        * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of
        * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of
        relocation pointing to local symbol in merged section.
        relocation pointing to local symbol in merged section.
        * elf32-iq2000.c (iq2000_elf_relocate_offset16): New.
        * elf32-iq2000.c (iq2000_elf_relocate_offset16): New.
        (iq2000_elf_relocate_section): Call it.
        (iq2000_elf_relocate_section): Call it.
2008-02-12  Nick Clifton  
2008-02-12  Nick Clifton  
        PR ld/5692
        PR ld/5692
        * elf-bfd.h (enum elf_object_id): New enum, used to identify
        * elf-bfd.h (enum elf_object_id): New enum, used to identify
        target specific extensions to the elf_obj_tdata structure.
        target specific extensions to the elf_obj_tdata structure.
        (struct elf_obj_tdata): New field 'object_id'.
        (struct elf_obj_tdata): New field 'object_id'.
        (elf_object_id, elf_program_header_size, elf_symtab_hdr): New
        (elf_object_id, elf_program_header_size, elf_symtab_hdr): New
        macros for accessing fields in the elf_obj_tdata structure.
        macros for accessing fields in the elf_obj_tdata structure.
        (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
        (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object.
        (bfd_elf_allocate_object): New function.
        (bfd_elf_allocate_object): New function.
        * elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
        * elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object
        and implement by calling bfd_elf_allocate_object.
        and implement by calling bfd_elf_allocate_object.
        (bfd_elf_allocate_object): New function: Allocates an
        (bfd_elf_allocate_object): New function: Allocates an
        elf_obj_tdata structure, possibly with a target specific
        elf_obj_tdata structure, possibly with a target specific
        extension.
        extension.
        * elfxx-target.h (bfd_elfNN_mkobject): Use
        * elfxx-target.h (bfd_elfNN_mkobject): Use
        bfd_elf_make_generic_object as the default value.
        bfd_elf_make_generic_object as the default value.
        * elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
        * elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata
        for consistency with other, similar structures.
        for consistency with other, similar structures.
        (is_arm_elf): New macro.  Checks a BFD to make sure that is an ARM
        (is_arm_elf): New macro.  Checks a BFD to make sure that is an ARM
        ELF bfd.
        ELF bfd.
        (elf32_arm_mkobject): Call bfd_elf_allocate_object.
        (elf32_arm_mkobject): Call bfd_elf_allocate_object.
        (bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
        (bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check
        the bfd being processed.
        the bfd being processed.
        (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
        (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise.
        (bfd_elf32_arm_set_target_relocs): Likewise.
        (bfd_elf32_arm_set_target_relocs): Likewise.
        (bfd_elf32_arm_final_link_relocate): Likewise.
        (bfd_elf32_arm_final_link_relocate): Likewise.
        (bfd_elf32_arm_copy_private_bfd_data): Likewise.
        (bfd_elf32_arm_copy_private_bfd_data): Likewise.
        (bfd_elf32_arm_merge_eabi_attributes): Likewise.
        (bfd_elf32_arm_merge_eabi_attributes): Likewise.
        (bfd_elf32_arm_merge_private_bfd_data): Likewise.
        (bfd_elf32_arm_merge_private_bfd_data): Likewise.
        (bfd_elf32_arm_check_relocs): Likewise.
        (bfd_elf32_arm_check_relocs): Likewise.
        (bfd_elf32_arm_gc_mark_extra_sections): Likewise.
        (bfd_elf32_arm_gc_mark_extra_sections): Likewise.
        (bfd_elf32_arm_size_dynamic_sections): Likewise.
        (bfd_elf32_arm_size_dynamic_sections): Likewise.
        (bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
        (bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr.
        (bfd_elf32_arm_init_maps): Likewise.
        (bfd_elf32_arm_init_maps): Likewise.
        (bfd_elf32_arm_final_link_relocate): Likewise.
        (bfd_elf32_arm_final_link_relocate): Likewise.
        (bfd_elf32_arm_relocate_section): Likewise.
        (bfd_elf32_arm_relocate_section): Likewise.
        (bfd_elf32_arm_gc_sweep_hook): Likewise.
        (bfd_elf32_arm_gc_sweep_hook): Likewise.
        (bfd_elf32_arm_check_relocs): Likewise.
        (bfd_elf32_arm_check_relocs): Likewise.
        (bfd_elf32_arm_size_dynamic_sections): Likewise.
        (bfd_elf32_arm_size_dynamic_sections): Likewise.
        * elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
        * elf32-i386.c (elf_i386_mkobject): Call bfd_elf_allocate_object.
        (is_i386_elf): New macro.  Checks a BFD to make sure that is an x86
        (is_i386_elf): New macro.  Checks a BFD to make sure that is an x86
        ELF bfd.
        ELF bfd.
        (elf_i386_check_relocs): Use is_i386_elf macro to check    the bfd
        (elf_i386_check_relocs): Use is_i386_elf macro to check    the bfd
        being processed.
        being processed.
        (elf_i386_size_dynamic_sections): Likewise.
        (elf_i386_size_dynamic_sections): Likewise.
        (elf_i386_relocate_section): Likewise.
        (elf_i386_relocate_section): Likewise.
        (elf_i386_check_relocs): Use elf_symtab_hdr.
        (elf_i386_check_relocs): Use elf_symtab_hdr.
        (elf_i386_gc_sweep_hook): Likewise.
        (elf_i386_gc_sweep_hook): Likewise.
        (elf_i386_size_dynamic_sections): Likewise.
        (elf_i386_size_dynamic_sections): Likewise.
        (elf_i386_relocate_section): Likewise.
        (elf_i386_relocate_section): Likewise.
        * elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
        * elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object.
        (elf_create_pointer_linker_section): Use is_ppc_elf_target to
        (elf_create_pointer_linker_section): Use is_ppc_elf_target to
        verify that the bfd before accessing target specific fields.
        verify that the bfd before accessing target specific fields.
        (ppc_elf_check_relocs): Likewise.
        (ppc_elf_check_relocs): Likewise.
        (elf_finish_pointer_linker_section): Likewise.
        (elf_finish_pointer_linker_section): Likewise.
        (elf_create_pointer_linker_section): Use elf_symtab_hdr.
        (elf_create_pointer_linker_section): Use elf_symtab_hdr.
        (ppc_elf_check_relocs): Likewise.
        (ppc_elf_check_relocs): Likewise.
        (ppc_elf_gc_sweep_hook): Likewise.
        (ppc_elf_gc_sweep_hook): Likewise.
        (ppc_elf_tls_optimize): Likewise.
        (ppc_elf_tls_optimize): Likewise.
        (ppc_elf_size_dynamic_sections): Likewise.
        (ppc_elf_size_dynamic_sections): Likewise.
        (ppc_elf_relax_section): Likewise.
        (ppc_elf_relax_section): Likewise.
        (ppc_elf_relocate_section): Likewise.
        (ppc_elf_relocate_section): Likewise.
        * elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
        * elf32-s390.c (struct elf_s390_obj_tdata): Add a comment
        reminding programmers to keep this structure in sync with the one
        reminding programmers to keep this structure in sync with the one
        defined in elf64-s390.c.
        defined in elf64-s390.c.
        (elf_s390_mkobject): Call bfd_elf_allocate_object.
        (elf_s390_mkobject): Call bfd_elf_allocate_object.
        (is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
        (is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
        ELF bfd.
        ELF bfd.
        (elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
        (elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
        being processed.
        being processed.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_relocate_section): Likewise.
        (elf_s390_relocate_section): Likewise.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_relocate_section): Likewise.
        (elf_s390_relocate_section): Likewise.
        * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
        * elf32-sh.c (sh_elf_mkobject): Call bfd_elf_allocate_object.
        (is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
        (is_sh_elf): New macro.  Checks a BFD to make sure that is an SH
        ELF bfd.
        ELF bfd.
        (sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
        (sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the
        bfd being processed.
        bfd being processed.
        (sh_elf_relocate_section): Likewise.
        (sh_elf_relocate_section): Likewise.
        (sh_elf_check_relocs): Likewise.
        (sh_elf_check_relocs): Likewise.
        (sh_elf_copy_private_data): Likewise.
        (sh_elf_copy_private_data): Likewise.
        (sh_elf_relax_section): Use elf_symtab_hdr.
        (sh_elf_relax_section): Use elf_symtab_hdr.
        (sh_elf_size_dynamic_sections): Likewise.
        (sh_elf_size_dynamic_sections): Likewise.
        (sh_elf_relocate_section): Likewise.
        (sh_elf_relocate_section): Likewise.
        (sh_elf_get_relocated_section_contents): Likewise.
        (sh_elf_get_relocated_section_contents): Likewise.
        (sh_elf_gc_sweep_hook): Likewise.
        (sh_elf_gc_sweep_hook): Likewise.
        (sh_elf_check_relocs): Likewise.
        (sh_elf_check_relocs): Likewise.
        * elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
        * elf64-alpha.c (elf64_alpha_mkobject): Call bfd_elf_allocate_object.
        (is_alpha_elf): New macro.  Checks a BFD to make sure that is an
        (is_alpha_elf): New macro.  Checks a BFD to make sure that is an
        Alpha ELF bfd.
        Alpha ELF bfd.
        (elf64_alpha_create_got_section): Use is_alpha_elf macro to check
        (elf64_alpha_create_got_section): Use is_alpha_elf macro to check
        the bfd being processed.
        the bfd being processed.
        (elf64_alpha_create_dynamic_section): Likewise.
        (elf64_alpha_create_dynamic_section): Likewise.
        (elf64_alpha_check_relocs): Likewise.
        (elf64_alpha_check_relocs): Likewise.
        (elf64_alpha_size_got_sections): Likewise.
        (elf64_alpha_size_got_sections): Likewise.
        (elf64_alpha_relax_section): Likewise.
        (elf64_alpha_relax_section): Likewise.
        (elf64_alpha_relocate_section): Likewise.
        (elf64_alpha_relocate_section): Likewise.
        (elf64_alpha_final_link): Likewise.
        (elf64_alpha_final_link): Likewise.
        (elf64_alpha_check_relocs): Use elf_symtab_hdr.
        (elf64_alpha_check_relocs): Use elf_symtab_hdr.
        (elf64_alpha_relax_section): Likewise.
        (elf64_alpha_relax_section): Likewise.
        (elf64_alpha_relocate_section_r): Likewise.
        (elf64_alpha_relocate_section_r): Likewise.
        (elf64_alpha_relocate_section): Likewise.
        (elf64_alpha_relocate_section): Likewise.
        * elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
        * elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object.
        (ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
        (ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd
        being processed.
        being processed.
        (opd_entry_value): Likewise.
        (opd_entry_value): Likewise.
        (allocate_dynrelocs): Likewise.
        (allocate_dynrelocs): Likewise.
        (ppc64_elf_relocate_section): Likewise.
        (ppc64_elf_relocate_section): Likewise.
        (ppc64_elf_check_relocs): Use elf_symtab_hdr.
        (ppc64_elf_check_relocs): Use elf_symtab_hdr.
        (opd_entry_value): Likewise.
        (opd_entry_value): Likewise.
        (ppc64_elf_gc_sweep_hook): Likewise.
        (ppc64_elf_gc_sweep_hook): Likewise.
        (get_sym_h): Likewise.
        (get_sym_h): Likewise.
        (ppc64_elf_edit_opd): Likewise.
        (ppc64_elf_edit_opd): Likewise.
        (ppc64_elf_tls_optimize): Likewise.
        (ppc64_elf_tls_optimize): Likewise.
        (ppc64_elf_edit_toc): Likewise.
        (ppc64_elf_edit_toc): Likewise.
        (ppc64_elf_size_dynamic_sections): Likewise.
        (ppc64_elf_size_dynamic_sections): Likewise.
        (toc_adjusting_stub_needed): Likewise.
        (toc_adjusting_stub_needed): Likewise.
        (ppc64_elf_size_stubs): Likewise.
        (ppc64_elf_size_stubs): Likewise.
        (ppc64_elf_relocate_section): Likewise.
        (ppc64_elf_relocate_section): Likewise.
        * elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
        * elf64-s390.c (struct elf_s390_obj_tdata): Add a comment
        reminding programmers to keep this structure in sync with the one
        reminding programmers to keep this structure in sync with the one
        defined in elf32-s390.c.
        defined in elf32-s390.c.
        (elf_s390_mkobject): Call bfd_elf_allocate_object.
        (elf_s390_mkobject): Call bfd_elf_allocate_object.
        (is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
        (is_s390_elf): New macro.  Checks a BFD to make sure that is an s390
        ELF bfd.
        ELF bfd.
        (elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
        (elf_s390_check_relocs): Use is_s390_elf macro to check    the bfd
        being processed.
        being processed.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_relocate_section): Likewise.
        (elf_s390_relocate_section): Likewise.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_check_relocs): Use elf_symtab_hdr.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_gc_sweep_hook): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_size_dynamic_sections): Likewise.
        (elf_s390_relocate_section): Likewise.
        (elf_s390_relocate_section): Likewise.
        * elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
        * elf64-x86_64.c (elf64_x86_64_mkobject): Call bfd_elf_allocate_object.
        (is_x86_64_elf): New macro.  Checks a BFD to make sure that is an
        (is_x86_64_elf): New macro.  Checks a BFD to make sure that is an
        x86_64 ELF bfd.
        x86_64 ELF bfd.
        (elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
        (elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd
        being processed.
        being processed.
        (elf64_x86_64_size_dynamic_sections): Likewise.
        (elf64_x86_64_size_dynamic_sections): Likewise.
        (elf64_x86_64_relocate_section): Likewise.
        (elf64_x86_64_relocate_section): Likewise.
        (elf64_x86_64_check_relocs): Use elf_symtab_hdr.
        (elf64_x86_64_check_relocs): Use elf_symtab_hdr.
        (elf64_x86_64_gc_sweep_hook): Likewise.
        (elf64_x86_64_gc_sweep_hook): Likewise.
        (elf64_x86_64_size_dynamic_sections): Likewise.
        (elf64_x86_64_size_dynamic_sections): Likewise.
        (elf64_x86_64_relocate_section): Likewise.
        (elf64_x86_64_relocate_section): Likewise.
        * elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
        * elfxx-sparc.c (_bfd_sparc_elf_mkobject): Call bfd_elf_allocate_object.
        (is_sparc_elf): New macro.  Checks a BFD to make sure that is a Sparc
        (is_sparc_elf): New macro.  Checks a BFD to make sure that is a Sparc
        ELF bfd.
        ELF bfd.
        (_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
        (_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the
        bfd being processed.
        bfd being processed.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_size_dynamic_sections): Likewise.
        (_bfd_sparc_elf_size_dynamic_sections): Likewise.
        (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
        (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        (_bfd_sparc_elf_size_dynamic_sections): Likewise.
        (_bfd_sparc_elf_size_dynamic_sections): Likewise.
        (_bfd_sparc_elf_relocate_section): Likewise.
        (_bfd_sparc_elf_relocate_section): Likewise.
2008-02-12  Alan Modra  
2008-02-12  Alan Modra  
        PR 5303, 5755
        PR 5303, 5755
        * arange-set.c: Delete.
        * arange-set.c: Delete.
        * arange-set.h: Delete.
        * arange-set.h: Delete.
        * dwarf2.c: Revert 2007-09-21 changes.
        * dwarf2.c: Revert 2007-09-21 changes.
        * Makefile.am: Likewise.
        * Makefile.am: Likewise.
        * Makefile.in: Regenerate.
        * Makefile.in: Regenerate.
        * po/SRC-POTFILES.in: Regenerate.
        * po/SRC-POTFILES.in: Regenerate.
2008-02-11  Bernd Schmidt  
2008-02-11  Bernd Schmidt  
        * elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
        * elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it
        if necessary.
        if necessary.
        (elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
        (elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type
        mismatches are detected.
        mismatches are detected.
        * elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
        * elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to
        emit invalid relocs or rofixup entries for deleted .eh_frame entries.
        emit invalid relocs or rofixup entries for deleted .eh_frame entries.
2008-02-11  Daniel Jacobowitz  
2008-02-11  Daniel Jacobowitz  
        * cache.c (cache_bread): Set bfd_error_file_truncated if EOF
        * cache.c (cache_bread): Set bfd_error_file_truncated if EOF
        was reached.
        was reached.
        * srec.c (srec_scan): Calculate the checksum.  Complain on mismatch.
        * srec.c (srec_scan): Calculate the checksum.  Complain on mismatch.
2008-02-07  Alan Modra  
2008-02-07  Alan Modra  
        * elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
        * elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling
        of _ovly_buf_table size.
        of _ovly_buf_table size.
        (spu_elf_build_stubs): Use low bit of .size as "present" bit.
        (spu_elf_build_stubs): Use low bit of .size as "present" bit.
        Adjust initialisations relating to _ovly_buf_table.
        Adjust initialisations relating to _ovly_buf_table.
2008-02-04  Bob Wilson  
2008-02-04  Bob Wilson  
        * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
        * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid
        relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
        relocation, do not continue processing it.  Ignore R_XTENSA_ASM_EXPAND
        relocations against dynamic symbols.
        relocations against dynamic symbols.
        (elf_xtensa_finish_dynamic_sections): Do not fail if there is no
        (elf_xtensa_finish_dynamic_sections): Do not fail if there is no
        .xt.lit section.
        .xt.lit section.
2008-02-04  Kai Tietz  
2008-02-04  Kai Tietz  
            H.J. Lu  
            H.J. Lu  
        PR 5715
        PR 5715
        * warning.m4: Enable -Wno-format by default when using gcc on
        * warning.m4: Enable -Wno-format by default when using gcc on
        mingw.
        mingw.
        * configure: Regenerated.
        * configure: Regenerated.
2008-02-04  Adam Nemet  
2008-02-04  Adam Nemet  
        * archures.c: Update copyright.
        * archures.c: Update copyright.
        (bfd_mach_mips_octeon): New macro.
        (bfd_mach_mips_octeon): New macro.
        * bfd-in2.h: Regenerate.
        * bfd-in2.h: Regenerate.
        * elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
        * elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon.
        (mips_set_isa_flags): Likewise.
        (mips_set_isa_flags): Likewise.
        (mips_mach_extensions): Add Octeon.
        (mips_mach_extensions): Add Octeon.
        * cpu-mips.c: Update copyright.
        * cpu-mips.c: Update copyright.
        (I_mipsocteon): New enum constant.
        (I_mipsocteon): New enum constant.
        (arch_info_struct): Add Octeon.
        (arch_info_struct): Add Octeon.
2008-02-04  Alan Modra  
2008-02-04  Alan Modra  
        * elf32-spu.c (spu_elf_relocate_section): Correct return type.
        * elf32-spu.c (spu_elf_relocate_section): Correct return type.
        Return error status on unexpected relocation errors.
        Return error status on unexpected relocation errors.
2008-02-04  Alan Modra  
2008-02-04  Alan Modra  
        PR ld/5692
        PR ld/5692
        * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31.  Instead abort
        * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31.  Instead abort
        on non-ELF input.
        on non-ELF input.
        * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
        * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue
        processing on non-ELF input.
        processing on non-ELF input.
2008-01-31  Marc Gauthier  
2008-01-31  Marc Gauthier  
        * config.bfd (xtensa*-*-*): Recognize processor variants.
        * config.bfd (xtensa*-*-*): Recognize processor variants.
2008-01-31  Nick Clifton  
2008-01-31  Nick Clifton  
        PR ld/5692
        PR ld/5692
        * elf.c (bfd_elf_get_elf_syms): Check the return value of
        * elf.c (bfd_elf_get_elf_syms): Check the return value of
        get_elf_backend_data.
        get_elf_backend_data.
2008-01-28  Fabian Groffen  
2008-01-28  Fabian Groffen  
        * config.bfd (x86_64-*-solaris2): Add support for this target.
        * config.bfd (x86_64-*-solaris2): Add support for this target.
2008-01-28  Alan Modra  
2008-01-28  Alan Modra  
        Rewrite SPU overlay handling code.  Put overlay calls stubs in the
        Rewrite SPU overlay handling code.  Put overlay calls stubs in the
        overlays where possible.  Use a faster call stub, or optionally at
        overlays where possible.  Use a faster call stub, or optionally at
        compile time, a more compact stub.  Double size of _ovly_buf_table
        compile time, a more compact stub.  Double size of _ovly_buf_table
        so that low bit of _ovly_table.buf can be used as a "present" bit.
        so that low bit of _ovly_table.buf can be used as a "present" bit.
        Reserve an extra _ovly_table entry for index zero.
        Reserve an extra _ovly_table entry for index zero.
        * elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
        * elf32-spu.c: (struct spu_link_hash_table): Delete a number of fields,
        add new ones.
        add new ones.
        (struct got_entry): New.
        (struct got_entry): New.
        (struct spu_stub_hash_entry): Delete.
        (struct spu_stub_hash_entry): Delete.
        (stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
        (stub_hash_newfunc, spu_elf_link_hash_table_free): Delete.
        (spu_elf_link_hash_table_create): Adjust for struct changes.
        (spu_elf_link_hash_table_create): Adjust for struct changes.
        (spu_stub_name): Delete.
        (spu_stub_name): Delete.
        (spu_elf_find_overlays): Don't track sections from overlay regions.
        (spu_elf_find_overlays): Don't track sections from overlay regions.
        Instead set ovl_buf number in spu elf section data.  Error if
        Instead set ovl_buf number in spu elf section data.  Error if
        overlays in one region don't start at the same address.  Adjust
        overlays in one region don't start at the same address.  Adjust
        for struct _spu_elf_section_data changes.
        for struct _spu_elf_section_data changes.
        (SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
        (SIZEOF_STUB1, SIZEOF_STUB2, ILA_79, ILA_78): Delete.
        (OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
        (OVL_STUB_SIZE, BRSL, LNOP, ILA): Define.
        (needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
        (needs_ovl_stub): Adjust for struct _spu_elf_section_data changes.
        (enum _insn_type): New.
        (enum _insn_type): New.
        (count_stub, build_stub): New functions.
        (count_stub, build_stub): New functions.
        (allocate_spuear_stubs): Use count_stub.
        (allocate_spuear_stubs): Use count_stub.
        (build_spuear_stubs): Use build_stub.
        (build_spuear_stubs): Use build_stub.
        (populate_stubs, sort_stubs): Delete.
        (populate_stubs, sort_stubs): Delete.
        (process_stubs): New function.
        (process_stubs): New function.
        (write_one_stub): Delete.
        (write_one_stub): Delete.
        (spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
        (spu_elf_size_stubs, spu_elf_build_stubs): Rewrite.
        (alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
        (alloc_stack_info): Adjust for struct _spu_elf_section_data changes.
        (maybe_insert_function, check_function_ranges): Likewise.
        (maybe_insert_function, check_function_ranges): Likewise.
        (find_function, pasted_function, build_call_tree): Likewise.
        (find_function, pasted_function, build_call_tree): Likewise.
        (spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
        (spu_elf_stack_analysis, spu_elf_modify_segment_map): Likewise.
        (spu_elf_modify_program_headers): Likewise.
        (spu_elf_modify_program_headers): Likewise.
        (interesting_section): Detect stub sections differently.  Delete
        (interesting_section): Detect stub sections differently.  Delete
        htab param, adjust all callers.
        htab param, adjust all callers.
        (spu_elf_relocate_section): Rewrite stub handling.
        (spu_elf_relocate_section): Rewrite stub handling.
        (spu_elf_output_symbol_hook): Likewise.
        (spu_elf_output_symbol_hook): Likewise.
        (bfd_elf32_bfd_link_hash_table_free): Delete.
        (bfd_elf32_bfd_link_hash_table_free): Delete.
        * elf32-spu.h (struct _spu_elf_section_data): Move input-only and
        * elf32-spu.h (struct _spu_elf_section_data): Move input-only and
        output-only fields into a union.  Add ovl_buf.
        output-only fields into a union.  Add ovl_buf.
        (spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.
        (spu_elf_size_stubs, spu_elf_build_stubs): Update prototypes.
2008-01-25  DJ Delorie  
2008-01-25  DJ Delorie  
        * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.
        * elf32-m32c.c (_bfd_m32c_elf_eh_frame_address_size): New.
2008-01-25  Kai Tietz  
2008-01-25  Kai Tietz  
        * bfd-in.h: Add mingw I64 support.
        * bfd-in.h: Add mingw I64 support.
        * bfd-in2.h: Regenerated.
        * bfd-in2.h: Regenerated.
        * bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.
        * bfd.c: (bfd_get_sign_extend_vma): Add pe-x86-64 and pei-x86-64.
2008-01-21  Alan Modra  
2008-01-21  Alan Modra  
        PR 4453
        PR 4453
        * format.c (bfd_check_format_matches): Don't accept archives as
        * format.c (bfd_check_format_matches): Don't accept archives as
        fully matching unless they have a map.
        fully matching unless they have a map.
2008-01-21  Alan Modra  
2008-01-21  Alan Modra  
        * elflink.c (_bfd_elf_link_output_relocs): Correct error return.
        * elflink.c (_bfd_elf_link_output_relocs): Correct error return.
2008-01-21  Alan Modra  
2008-01-21  Alan Modra  
        * ecoff.c (_bfd_ecoff_archive_p): Delete.
        * ecoff.c (_bfd_ecoff_archive_p): Delete.
        * libecoff.h (_bfd_ecoff_archive_p): Delete.
        * libecoff.h (_bfd_ecoff_archive_p): Delete.
        * coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
        * coff-alpha.c (ecoffalpha_little_vec): Use bfd_generic_archive_p.
        * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
        * coff-mips.c (ecoff_little_vec, ecoff_big_vec): Likewise.
        (ecoff_biglittle_vec): Likewise.
        (ecoff_biglittle_vec): Likewise.
2008-01-19  Alan Modra  
2008-01-19  Alan Modra  
        PR 5646
        PR 5646
        * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
        * elf64-ppc.c (ppc64_elf_tls_optimize): Ensure htab->tls_get_addr
        non-NULL before dereferencing.
        non-NULL before dereferencing.
2008-01-15  Alan Modra  
2008-01-15  Alan Modra  
        PR 5604
        PR 5604
        * elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
        * elf-bfd.h (struct elf_backend_data): Add gc_keep.  Remove param
        names from others.
        names from others.
        (_bfd_elf_gc_keep): Declare.
        (_bfd_elf_gc_keep): Declare.
        * elfxx-target.h (elf_backend_gc_keep): Define.
        * elfxx-target.h (elf_backend_gc_keep): Define.
        (elfNN_bed): Init new field.
        (elfNN_bed): Init new field.
        * elflink.c (_bfd_elf_gc_keep): New function.
        * elflink.c (_bfd_elf_gc_keep): New function.
        (bfd_elf_gc_sections): Call gc_keep.
        (bfd_elf_gc_sections): Call gc_keep.
        * elf64-ppc.c (elf_backend_gc_keep): Define.
        * elf64-ppc.c (elf_backend_gc_keep): Define.
        (struct _ppc64_elf_section_data): Move .opd related fields to
        (struct _ppc64_elf_section_data): Move .opd related fields to
        a struct so they don't occupy the same storage.  Adjust accesses
        a struct so they don't occupy the same storage.  Adjust accesses
        throughout file.
        throughout file.
        (ppc64_elf_gc_keep): New function, split out from..
        (ppc64_elf_gc_keep): New function, split out from..
        (ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
        (ppc64_elf_gc_mark_hook): ..here.  Don't call _bfd_elf_gc_mark
        to mark .opd section, just set gc_mark.
        to mark .opd section, just set gc_mark.
        (ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
        (ppc64_elf_edit_opd): Remove no_opd_opt parm.  Don't set opd->adjust
        unless we are changing .opd.  Test non-NULL opd->adjust at all
        unless we are changing .opd.  Test non-NULL opd->adjust at all
        accesses throughout file.
        accesses throughout file.
        * elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
        * elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
2008-01-15  Alan Modra  
2008-01-15  Alan Modra  
        * bfd-in.h (BFD_HOST_LONG_LONG): Delete.
        * bfd-in.h (BFD_HOST_LONG_LONG): Delete.
        * bfd-in2.h: Regenerate.
        * bfd-in2.h: Regenerate.
2008-01-11  Tristan Gingold  
2008-01-11  Tristan Gingold  
            Eric Botcazou  
            Eric Botcazou  
        * elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
        * elf32-ppc.c (ppc_elf_gc_sweep_hook): Exit early if generating a
        relocatable.
        relocatable.
        * elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
        * elf32-arm.c (elf32_arm_gc_sweep_hook): Likewise.
        * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
        * elf32-cris.c (cris_elf_gc_sweep_hook): Likewise.
        * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
        * elf32-hppa.c (elf32_hppa_gc_sweep_hook): Likewise.
        * elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
        * elf32-i386.c (elf_i386_gc_sweep_hook): Likewise.
        * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
        * elf32-m32r.c (m32r_elf_gc_sweep_hook): Likewise.
        * elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
        * elf32-m68k.c (elf_m68k_gc_sweep_hook): Likewise.
        * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
        * elf32-s390.c (elf_s390_gc_sweep_hook): Likewise.
        * elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
        * elf32-sh.c (sh_elf_gc_sweep_hook): Likewise.
        * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
        * elf32-vax.c (elf_vax_gc_sweep_hook): Likewise.
        * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
        * elf32-xtensa.c (elf_xtensa_gc_sweep_hook): Likewise.
        * elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
        * elf64-x86-64.c (elf64_x86_64_gc_sweep_hook): Likewise.
        * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
        * elf64-s390.c (elf_s390_gc_sweep_hook): Likewise.
        * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
        * elf64-ppc.c (ppc64_elf_gc_sweep_hook): Likewise.
        * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
        * elfxx-mips.c (_bfd_mips_elf_gc_sweep_hook): Likewise.
        * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        * elfxx-sparc.c (_bfd_sparc_elf_gc_sweep_hook): Likewise.
        * elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
        * elflink.c (bfd_elf_gc_sections): Do not punt on relocatable output
        or executable output with relocations.
        or executable output with relocations.
2008-01-09  Nick Clifton  
2008-01-09  Nick Clifton  
        PR gas/5552
        PR gas/5552
        * elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
        * elf32-fr30.c (fr30_elf_howto_table): Set partial_inplace field
        to FALSE for all relocs.
        to FALSE for all relocs.
2008-01-09  Richard Sandiford  
2008-01-09  Richard Sandiford  
        PR ld/5526
        PR ld/5526
        * elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
        * elf-bfd.h (eh_cie_fde): Add u.cie.u.full_cie and u.cie.merged
        fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
        fields.  Rename u.cie.u.merged to u.cie.u.merged_with.
        (eh_frame_sec_info): Add a cies field.
        (eh_frame_sec_info): Add a cies field.
        (eh_frame_hdr_info): Add a merge_cies field.
        (eh_frame_hdr_info): Add a merge_cies field.
        * elf-eh-frame.c (cie): Add a reloc_index member to the personality
        * elf-eh-frame.c (cie): Add a reloc_index member to the personality
        union.
        union.
        (_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
        (_bfd_elf_begin_eh_frame_parsing): Set hdr_info->merge_cies instead
        of hdr_info->cies.
        of hdr_info->cies.
        (_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
        (_bfd_elf_parse_eh_frame): Remove tmp_cie.  Ccreate an array of
        cie structures in all cases and use it instead of extended_cies.
        cie structures in all cases and use it instead of extended_cies.
        If merging, store the cie array in sec_info->cies and point each
        If merging, store the cie array in sec_info->cies and point each
        CIE's eh_fde_cie at the associated element.  Do not try to
        CIE's eh_fde_cie at the associated element.  Do not try to
        calculate the value of the personality routine here; record the
        calculate the value of the personality routine here; record the
        offset of the relocation instead.  Do not merge CIEs here.
        offset of the relocation instead.  Do not merge CIEs here.
        (_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
        (_bfd_elf_end_eh_frame_parsing): Do not free hdr_info->cies here...
        (_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
        (_bfd_elf_discard_section_eh_frame_hdr): ...do it here instead.
        (_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
        (_bfd_elf_gc_mark_fdes): Mark the original (unmerged) CIE.
        (find_merged_cie): New function.
        (find_merged_cie): New function.
        (_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.
        (_bfd_elf_gc_mark_fdes): Use it.  Free sec_info->cies.
2008-01-07  Nick Clifton  
2008-01-07  Nick Clifton  
        PR binutils/5535
        PR binutils/5535
        * vms.c (vms_close_and_cleanup): Check for the presence of a
        * vms.c (vms_close_and_cleanup): Check for the presence of a
        vms_private_data_struct before examining any of its fields.
        vms_private_data_struct before examining any of its fields.
2008-01-07  H.J. Lu  
2008-01-07  H.J. Lu  
        PR ld/5522
        PR ld/5522
        * elflink.c (elf_link_input_bfd): Don't write out a section if
        * elflink.c (elf_link_input_bfd): Don't write out a section if
        its output section is marked with SEC_NEVER_LOAD.
        its output section is marked with SEC_NEVER_LOAD.
For older changes see ChangeLog-2007
For older changes see ChangeLog-2007


Local Variables:
Local Variables:
mode: change-log
mode: change-log
left-margin: 8
left-margin: 8
fill-column: 74
fill-column: 74
version-control: never
version-control: never
End:
End:
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.