X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=1b54ff76e84619fb66861f36f7e2ea35e1a1160b;hb=625af618e73144b15dcb1ff188ce91439ec4bd5b;hp=76b95d82e66947cf366b0bf670e28ea344f65a8c;hpb=f8a52b59238d1947546fab1c04406a768e4cba99;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 76b95d82e6..1b54ff76e8 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,420 @@ +2008-02-26 Alan Modra + + * 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, + and assume branch relocs are not dynamic when non-shared. + (readonly_dynrelocs): New function, split out from.. + (maybe_set_textrel): ..here, renamed from old readonly_dynrelocs. + (ppc_elf_adjust_dynamic_symbol): For symbols generating plt entries, + clear non_got_ref.. + (allocate_dynrelocs): ..and don't set u.def for undefined weak. + Do allow dynamic relocs on undefined symbols. + (ppc_elf_adjust_dynamic_symbol): Use readonly_dynrelocs. + (ppc_elf_relocate_section): Mirror dynamic reloc changes in + check_relocs. + (ppc_elf_finish_dynamic_symbol): Don't give a warning on weak + plt symbols needing pointer_equality_needed. + +2008-02-23 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Revert non_got_ref change. + +2008-02-23 Alan Modra + + * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Copy + pointer_equality_needed. + (ppc_elf_check_relocs): Split out non-branch relocs from others + that might emit dynamic relocs. Set pointer_equality_needed + for their symbols. Don't set non_got_ref on branch reloc symbols. + (ppc_elf_hash_symbol): New function. + (elf_backend_hash_symbol): Define. + (ppc_elf_finish_dynamic_symbol): Handle pointer_equality_needed. + Error if pointer_equality_needed on weak plt symbol. + +2008-02-22 H.J. Lu + + PR ld/5788 + * elflink.c (elf_create_symbuf): Correct buffer size and + position. + +2008-02-22 Nick Clifton + + PR 868 + * dwarf2.c: Revert previous patch. All of the allocate memory is + on an obstack which will be freed at some other time. + +2008-02-20 Nick Clifton + + PR 868 + * libbfd.c (bfd_realloc_or_free): New function. Performs like + bfd_realloc, but if the (re)allocation fails, the pointer is + freed. + * libbfd-in.h: Prototype. + * libbfd.h: Regenerate. + * bfdio.c (bfd_bwrite): Use the new function. + (bfd_seek): Likewise. + * bfdwin.c:(bfd_get_file_window): Likewise. + * elf-strtab.c (_bfd_elf_strtab_add): Likewise. + * elf32-ppc.c (ppc_elf_relax_section): Likewise. + * elf32-xtensa.c (vsprintf_msg): Likewise. + * mach-o.c (bfd_mach_o_core_fetch_environment): Likewise. + * stabs.c (_bfd_link_seciton_stabs): Likewise. + * vms-misc.c (_bfd_vms_get_record): Likewise. + * vms-tir.c (check_section): Likewise. + * vms.c (vms_new_section_hook): Likewise. + * elf32-arm.c (elf32_arm_section_map_add): Check that the + allocation of sec_data->map succeeded before using it. + * elflink.c (elf_link_output_sym): Do not overwrite finfo-> + symshndxbuf until it is known that the reallocation succeeded. + +2008-02-20 Diogo de Carvalho Kraemer + Nick Clifton + + PR 868 + * dwarf2.c (read_abbrevs): Free the abbreviation table if we run + out of memory. + (decode_line_info): Free the line_info_table before returning a + failure result. + (_bfd_dwarf2_cleanup_debug_info): Free the abbreviation table. + Free the line table. Free the function table. Free the variable + table. + +2008-02-17 Mark Kettenis + + * elf.c (swap_out_syms): Avoid preprocessing directive within + macro arg. + +2008-02-17 Jan Kratochvil + + * elf.c (assign_file_positions_for_load_sections): Set the type of + PT_NOTE sections to SHT_NOTE. + +2008-02-17 Ulrich Weigand + + * simple.c (bfd_simple_get_relocated_section_contents): Set + link_info.output_bfd. + +2008-02-16 Nathan Sidwell + + * dwarf2.c (find_line): Don't trust debug information after an + unparseable compilation unit. + +2008-02-15 Alan Modra + + PR 5765 + * section.c (SEC_LINK_DUPLICATES): Correct. Renumber following flags. + * bfd-in2.h: Regenerate. + +2008-02-15 Alan Modra + + * elf-bfd.h (enum elf_object_id): Add HPPA_ELF_TDATA. + * elf.c (bfd_elf_allocate_object): Don't check for already allocated + tdata. + * elf32-hppa.c (elf32_hppa_mkobject): New function. + (bfd_elf32_mkobject): Define. + * elf32-ppc.c (is_ppc_elf_target): Delete. Replace all uses with.. + (is_ppc_elf): ..this new macro. + * elf64-ppc.c (is_ppc64_elf_target): Delete. Replace all uses with.. + (is_ppc64_elf): ..this new macro. + +2008-02-15 Alan Modra + + * elflink.c: Replace all accesses to hash->creator field with + output_bfd->xvec. + * cofflink.c: Likewise. + * coff-h8300.c: Likewise. + * ecoff.c: Likewise. + * elf32-m68hc1x.c: Likewise. + * elf32-ppc.c: Likewise. + * elf64-alpha.c: Likewise. + * elf64-ppc.c: Likewise. + * elf64-sparc.c: Likewise. + * elfxx-mips.c: Likewise. + * i386linux.c: Likewise. + * m68klinux.c: Likewise. + * sparclinux.c: Likewise. + * sunos.c: Likewise. + * xcofflink.c: Likewise. + * linker.c: Likewise. + (_bfd_link_hash_table_init): Don't store creator. + +2008-02-14 Peter Jones + + * efi-rtdrv-ia32.c: New file. + * efi-bsdrv-ia32.c: New file. + * efi-rtdrv-ia64.c: New file. + * efi-bsdrv-ia64.c: New file. + * efi-rtdrv-x86_64.c: New file. + * efi-bsdrv-x86_64.c: New file. + * peicode.h (pe_bfd_object_p): Add support for boot service and + runtime service drivers. + * libpei.h: Add macros for EFI formats, and rename the efi application + format macros to disambiguate. + * targets.c: Add bfd_target _vec externs. + (_bfd_tar): Add EFI _vec entries. + * config.bfd: Add EFI vectors into the selection routines. + * configure.in: add EFI _vec entries. + * configure: Regenerate. + * Makefile.am: Add EFI files. + * Makefile.in: Regenerate. + +2008-02-14 Nathan Sidwell + + * dwarf1.c (struct dwarf1_debug): Add syms member. + (alloc_dwarf1_unit, alloc_dwarf1_func): Check for out of memory. + (parse_line_table, _bfd_dwarf1_find_nearest_line): Relocate + section contents, check for out of memory. + + * dwarf1.c (struct dwarf1_debug): Change data pointers to bfd_byte. + (parse_die): Change data pointers to bfd_byte. + (parse_line_table, parse_functions_in_unit): Likewise. + +2008-02-14 Alan Modra + + * elflink.c (compute_bucket_count): Warning fixes. + +2008-02-12 DJ Delorie + + * elf32-iq2000.c (iq2000_elf_relocate_section): Adjust addend of + relocation pointing to local symbol in merged section. + + * elf32-iq2000.c (iq2000_elf_relocate_offset16): New. + (iq2000_elf_relocate_section): Call it. + +2008-02-12 Nick Clifton + + PR ld/5692 + * elf-bfd.h (enum elf_object_id): New enum, used to identify + target specific extensions to the elf_obj_tdata structure. + (struct elf_obj_tdata): New field 'object_id'. + (elf_object_id, elf_program_header_size, elf_symtab_hdr): New + macros for accessing fields in the elf_obj_tdata structure. + (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object. + (bfd_elf_allocate_object): New function. + * elf.c (bfd_elf_mkobject): Rename to bfd_elf_make_generic_object + and implement by calling bfd_elf_allocate_object. + (bfd_elf_allocate_object): New function: Allocates an + elf_obj_tdata structure, possibly with a target specific + extension. + * elfxx-target.h (bfd_elfNN_mkobject): Use + bfd_elf_make_generic_object as the default value. + * elf32-arm.c (elf32_arm_obj_tdata): Rename to elf_arm_obj_tdata + for consistency with other, similar structures. + (is_arm_elf): New macro. Checks a BFD to make sure that is an ARM + ELF bfd. + (elf32_arm_mkobject): Call bfd_elf_allocate_object. + (bfd_elf32_arm_vfp11_erratum_scan): Use is_arm_elf macro to check + the bfd being processed. + (bfd_elf32_arm_vfp11_fix_veneer_locations): Likewise. + (bfd_elf32_arm_set_target_relocs): Likewise. + (bfd_elf32_arm_final_link_relocate): Likewise. + (bfd_elf32_arm_copy_private_bfd_data): Likewise. + (bfd_elf32_arm_merge_eabi_attributes): Likewise. + (bfd_elf32_arm_merge_private_bfd_data): Likewise. + (bfd_elf32_arm_check_relocs): Likewise. + (bfd_elf32_arm_gc_mark_extra_sections): Likewise. + (bfd_elf32_arm_size_dynamic_sections): Likewise. + (bfd_elf32_arm_process_before_allocation): Use elf_symtab_hdr. + (bfd_elf32_arm_init_maps): Likewise. + (bfd_elf32_arm_final_link_relocate): Likewise. + (bfd_elf32_arm_relocate_section): Likewise. + (bfd_elf32_arm_gc_sweep_hook): Likewise. + (bfd_elf32_arm_check_relocs): Likewise. + (bfd_elf32_arm_size_dynamic_sections): Likewise. + * 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 + ELF bfd. + (elf_i386_check_relocs): Use is_i386_elf macro to check the bfd + being processed. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + (elf_i386_check_relocs): Use elf_symtab_hdr. + (elf_i386_gc_sweep_hook): Likewise. + (elf_i386_size_dynamic_sections): Likewise. + (elf_i386_relocate_section): Likewise. + * elf32-ppc.c (ppc_elf_mkobject): Call bfd_elf_allocate_object. + (elf_create_pointer_linker_section): Use is_ppc_elf_target to + verify that the bfd before accessing target specific fields. + (ppc_elf_check_relocs): Likewise. + (elf_finish_pointer_linker_section): Likewise. + (elf_create_pointer_linker_section): Use elf_symtab_hdr. + (ppc_elf_check_relocs): Likewise. + (ppc_elf_gc_sweep_hook): Likewise. + (ppc_elf_tls_optimize): Likewise. + (ppc_elf_size_dynamic_sections): Likewise. + (ppc_elf_relax_section): Likewise. + (ppc_elf_relocate_section): Likewise. + * elf32-s390.c (struct elf_s390_obj_tdata): Add a comment + reminding programmers to keep this structure in sync with the one + defined in elf64-s390.c. + (elf_s390_mkobject): Call bfd_elf_allocate_object. + (is_s390_elf): New macro. Checks a BFD to make sure that is an s390 + ELF bfd. + (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd + being processed. + (elf_s390_size_dynamic_sections): Likewise. + (elf_s390_relocate_section): Likewise. + (elf_s390_check_relocs): Use elf_symtab_hdr. + (elf_s390_gc_sweep_hook): Likewise. + (elf_s390_size_dynamic_sections): Likewise. + (elf_s390_relocate_section): Likewise. + * 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 + ELF bfd. + (sh_elf_size_dynamic_sections): Use is_sh_elf macro to check the + bfd being processed. + (sh_elf_relocate_section): Likewise. + (sh_elf_check_relocs): Likewise. + (sh_elf_copy_private_data): Likewise. + (sh_elf_relax_section): Use elf_symtab_hdr. + (sh_elf_size_dynamic_sections): Likewise. + (sh_elf_relocate_section): Likewise. + (sh_elf_get_relocated_section_contents): Likewise. + (sh_elf_gc_sweep_hook): Likewise. + (sh_elf_check_relocs): Likewise. + * 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 + Alpha ELF bfd. + (elf64_alpha_create_got_section): Use is_alpha_elf macro to check + the bfd being processed. + (elf64_alpha_create_dynamic_section): Likewise. + (elf64_alpha_check_relocs): Likewise. + (elf64_alpha_size_got_sections): Likewise. + (elf64_alpha_relax_section): Likewise. + (elf64_alpha_relocate_section): Likewise. + (elf64_alpha_final_link): Likewise. + (elf64_alpha_check_relocs): Use elf_symtab_hdr. + (elf64_alpha_relax_section): Likewise. + (elf64_alpha_relocate_section_r): Likewise. + (elf64_alpha_relocate_section): Likewise. + * elf64-ppc.c (ppc64_elf_mkobject): Call bfd_elf_allocate_object. + (ppc64_elf_check_relocs): Use is_ppc64_elf_target to check the bfd + being processed. + (opd_entry_value): Likewise. + (allocate_dynrelocs): Likewise. + (ppc64_elf_relocate_section): Likewise. + (ppc64_elf_check_relocs): Use elf_symtab_hdr. + (opd_entry_value): Likewise. + (ppc64_elf_gc_sweep_hook): Likewise. + (get_sym_h): Likewise. + (ppc64_elf_edit_opd): Likewise. + (ppc64_elf_tls_optimize): Likewise. + (ppc64_elf_edit_toc): Likewise. + (ppc64_elf_size_dynamic_sections): Likewise. + (toc_adjusting_stub_needed): Likewise. + (ppc64_elf_size_stubs): Likewise. + (ppc64_elf_relocate_section): Likewise. + * elf64-s390.c (struct elf_s390_obj_tdata): Add a comment + reminding programmers to keep this structure in sync with the one + defined in elf32-s390.c. + (elf_s390_mkobject): Call bfd_elf_allocate_object. + (is_s390_elf): New macro. Checks a BFD to make sure that is an s390 + ELF bfd. + (elf_s390_check_relocs): Use is_s390_elf macro to check the bfd + being processed. + (elf_s390_size_dynamic_sections): Likewise. + (elf_s390_relocate_section): Likewise. + (elf_s390_check_relocs): Use elf_symtab_hdr. + (elf_s390_gc_sweep_hook): Likewise. + (elf_s390_size_dynamic_sections): Likewise. + (elf_s390_relocate_section): Likewise. + * 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 + x86_64 ELF bfd. + (elf64_x86_64_check_relocs): Use is_x86_64_elf macro to check the bfd + being processed. + (elf64_x86_64_size_dynamic_sections): Likewise. + (elf64_x86_64_relocate_section): Likewise. + (elf64_x86_64_check_relocs): Use elf_symtab_hdr. + (elf64_x86_64_gc_sweep_hook): Likewise. + (elf64_x86_64_size_dynamic_sections): Likewise. + (elf64_x86_64_relocate_section): Likewise. + * 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 + ELF bfd. + (_bfd_sparc_elf_check_relocs): Use is_sparc_elf macro to check the + bfd being processed. + (_bfd_sparc_elf_gc_sweep_hook): Likewise. + (_bfd_sparc_elf_size_dynamic_sections): Likewise. + (_bfd_sparc_elf_check_relocs): Use elf_symtab_hdr. + (_bfd_sparc_elf_gc_sweep_hook): Likewise. + (_bfd_sparc_elf_size_dynamic_sections): Likewise. + (_bfd_sparc_elf_relocate_section): Likewise. + +2008-02-12 Alan Modra + + PR 5303, 5755 + * arange-set.c: Delete. + * arange-set.h: Delete. + * dwarf2.c: Revert 2007-09-21 changes. + * Makefile.am: Likewise. + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2008-02-11 Bernd Schmidt + + * elf32-bfin.c (bfin_relocate_section): Set up dynobj before using it + if necessary. + (elf32_bfin_merge_private_bfd_data): Simplify, and ensure object type + mismatches are detected. + + * elf32-bfin.c (bfinfdpic_relocate_section): Take more care not to + emit invalid relocs or rofixup entries for deleted .eh_frame entries. + +2008-02-11 Daniel Jacobowitz + + * cache.c (cache_bread): Set bfd_error_file_truncated if EOF + was reached. + * srec.c (srec_scan): Calculate the checksum. Complain on mismatch. + +2008-02-07 Alan Modra + + * elf32-spu.c (spu_elf_size_stubs): Revert 2008-01-28 doubling + of _ovly_buf_table size. + (spu_elf_build_stubs): Use low bit of .size as "present" bit. + Adjust initialisations relating to _ovly_buf_table. + +2008-02-04 Bob Wilson + + * elf32-xtensa (elf_xtensa_relocate_section): After finding an invalid + relocation, do not continue processing it. Ignore R_XTENSA_ASM_EXPAND + relocations against dynamic symbols. + (elf_xtensa_finish_dynamic_sections): Do not fail if there is no + .xt.lit section. + +2008-02-04 Kai Tietz + H.J. Lu + + PR 5715 + * warning.m4: Enable -Wno-format by default when using gcc on + mingw. + * configure: Regenerated. + +2008-02-04 Adam Nemet + + * archures.c: Update copyright. + (bfd_mach_mips_octeon): New macro. + * bfd-in2.h: Regenerate. + * elfxx-mips.c (_bfd_elf_mips_mach): Handle Octeon. + (mips_set_isa_flags): Likewise. + (mips_mach_extensions): Add Octeon. + * cpu-mips.c: Update copyright. + (I_mipsocteon): New enum constant. + (arch_info_struct): Add Octeon. + +2008-02-04 Alan Modra + + * elf32-spu.c (spu_elf_relocate_section): Correct return type. + Return error status on unexpected relocation errors. + +2008-02-04 Alan Modra + + PR ld/5692 + * elf.c (bfd_elf_get_elf_syms): Revert 2008-01-31. Instead abort + on non-ELF input. + * elf32-arm.c (elf32_arm_size_dynamic_sections): Skip glue + processing on non-ELF input. + 2008-01-31 Marc Gauthier * config.bfd (xtensa*-*-*): Recognize processor variants.