X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=bfd%2FChangeLog;h=ca4f83fcda979ae0759b984128b8de6f1f718dcd;hb=c224138d88196fe7cabce4fe554c10a1520f5a4f;hp=42d91a7afd5b36449a9cfc9ae105f1921a9324ee;hpb=fad9eaf0deff64167032634213f1070193d929f7;p=deliverable%2Fbinutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 42d91a7afd..ca4f83fcda 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,528 @@ +2007-11-14 Richard Sandiford + + * elfxx-mips.c (mips_got_page_range): New structure. + (mips_got_page_entry): Likewise. + (mips_got_info): Add page_gotno and got_page_entries fields. + (mips_elf_got_per_bfd_arg): Add max_pages field. Delete + primary_count and current_count fields. + (mips_got_page_entry_hash, mips_got_page_entry_eq): New functions. + (mips_elf_pages_for_range, mips_elf_record_got_page_entry): Likewise. + (mips_elf_get_got_for_bfd): New function, split out from + mips_elf_make_got_per_bfd. Initialize the page_gotno and + got_page_entries fields when creating a new GOT structure. + (mips_elf_make_got_pages_per_bfd): New function. + (mips_elf_merge_got_with): New function, split out from + mips_elf_make_got_per_bfd. Merge page entries as well as + non-page entries. Use the minimum of max_pages and the sum + of the page_gotnos to estimate the number of page entries. + (mips_elf_merge_gots): Use the minimum of max_pages and the + bfd's page_gotno to estimate the number of page entries. + Use the above functions. + (mips_elf_multi_got): Add page entries as well as non-page entries + to the individual per-bfd GOTs. Initialize got_per_bfd_arg.max_pages. + Initialize the page_gotno and got_page_entries fields when creating + a new primary GOT. Use the minimum of pages and page_gotno when + adding the number of pages entries to local_gotno. + (mips_elf_create_got_section): Initialize the page_gotno and + got_page_entries fields of the GOT structure. + (mips_elf_rel_relocation_p, mips_elf_read_rel_addend) + (mips_elf_add_lo16_rel_addend, mips_elf_get_section_contents): New + functions, split out from... + (_bfd_mips_elf_relocate_section): ...here. + (_bfd_mips_elf_check_relocs): Record GOT page entries too. + (_bfd_mips_relax_section): Use mips_elf_get_section_contents. + (_bfd_mips_elf_always_size_sections): Use the smaller of the + loadable_size- and page_gotno-derived estimates. + +2007-11-14 Thiemo Seufer + + * elfxx-mips.c (mips_elf_merge_obj_attributes): Prevent + unwanted fallthroughs in case statement. + +2007-11-13 H.J. Lu + + PR binutils/5307 + * peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Don't + copy input subsystem if output is different from input. + +2007-11-13 Nick Clifton + + * elf-m10300.c (mn10300_elf_final_link_relocate): Prevent the + accidental termination of DWARF location list entries. + (mn10300_elf_relax_delete_bytes): Stop deletion if an align reloc + is encountered that is larger than or not a mutliple of the number + of bytes being deleted. + When adjusting symbols, any symbols inside the region being + deleted must be moved to the end of the region. + Move align relocs forward if there is room for them after the + deletion of the region. + +2007-11-13 Alan Modra + + PR 5233 + * elf.c (rewrite_elf_program_header): Formatting. Add + first_matching_lma and first_suggested_lma booleans and use + instead of testing matching_lma and suggested_lma for zero. + +2007-11-12 H.J. Lu + + PR binutils/5299 + * peicode.h (pe_bfd_object_p): Save and restore previous bfd + state when calling coff_object_p. + +2007-11-12 Alan Modra + + * elf.c (_bfd_elf_get_synthetic_symtab): Only bump the symbol + pointer when we have a valid symbol. Init udata.p to NULL. + +2007-11-09 Nathan Sidwell + + * elf-vxworks.c (elf_vxworks_emit_relocs): Don't clobber + rel_hash. Move loop inside if test. + +2007-11-08 Nathan Sidwell + + * elf-vxworks.h (elf_vxworks_add_dynamic_entries): Declare. + (elf_vxworks_finish_dynamic_entry): Declare. + * elf-vxworks.c: Include elf/vxworks.h. + (elf_vxworks_add_dynamic_entries): New. + (elf_vxworks_finish_dynamic_entry): New. + * Makefile.am (elf-vxworks.lo): Add dependency. + * Makefile.in (elf-vxworks.lo): Add dependency. + * elf32-i386.c (elf_i386_size_dynamic_sections, + elf_i386_finish_dynamic_sections): Call + elf_vxworks_add_dynamic_entries and + elf_vxworks_finish_dynamic_entry. + * elf32-ppc.c (ppc_elf_size_dynamic_sections, + ppc_elf_finish_dynamic_sections): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_size_dynamic_sections, + sparc_finish_dyn): Likewise. + * elf32-sh.c (sh_elf_size_dynamic_sections, + sh_elf_finish_dynamic_sections): Likewise. + * elfxx-mips.c (_bfd_mips_elf_size_dynamic_sections, + _bfd_mips_elf_finish_dynamic_sections): Likewise. + * elf32-arm.c (elf32_arm_size_dynamic_sections, + elf32_arm_finish_dynamic_sections): Likewise. + +2007-11-07 Olivier Hainque + + * bfd/elfxx-mips.c (_bfd_mips_elf_fake_sections): Force + SHF_MIPS_NOSTRIP on .debug_frame for Irix. + +2007-11-06 Alan Modra + + * elf64-ppc.c (ppc64_elf_check_relocs): Don't refcount tlsld_got here.. + (ppc64_elf_gc_sweep_hook): ..or here.. + (ppc64_elf_tls_optimize): ..or here. Make two passes through the + relocs, ensuring that tls_get_addr calls follow gd and ld relocs. + (allocate_dynrelocs): Refcount tlsld_got here. + (ppc64_elf_size_dynamic_sections): Allocate local got and call + allocate_dynrelocs before allocating tlsld_got. + (ppc64_elf_relocate_section): Remove check that a tls_get_addr + call follows gd and ld relocs. + + * elf32-ppc.c (ppc_elf_check_relocs): Don't refcount tlsld_got here.. + (ppc_elf_gc_sweep_hook): ..or here.. + (ppc_elf_tls_optimize): ..or here. Make two passes through the + relocs, ensuring that tls_get_addr calls follow gd and ld relocs. + (allocate_dynrelocs): Refcount tlsld_got here. + (ppc_elf_size_dynamic_sections): Call allocate_dynrelocs before + allocating tlsld_got. + (ppc_elf_relocate_section): Remove check that a tls_get_addr + call follows gd and ld relocs. + +2007-11-05 Alan Modra + + * merge.c (sec_merge_hash_lookup): Revert last change. + (record_section): Likewise. + (_bfd_merge_sections): Likewise. + (_bfd_merged_section_offset): Properly handle NULL secinfo. + (_bfd_add_merge_section): Allocate extra space for a zero + terminator on SEC_STRINGS sections. + +2007-11-05 Danny Smith + + * pe-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Let .data, .text + and .bss section use the default. + * pei-i386.c (COFF_SECTION_ALIGNMENT_ENTRIES): Likewise. + +2007-11-01 Joseph Myers + + * merge.c (sec_merge_hash_lookup): Add parameter sec_end. Check + for unterminated strings. All callers changed. + (record_section): Add parameter abfd. Give error message for + unterminated strings. + (_bfd_merge_sections): Update call to record_section. + (_bfd_write_merged_section, _bfd_merged_section_offset): Handle + NULL secinfo from merge failures. + +2007-10-31 Nick Clifton + + * elf-m10300.c (mn10300_elf_relax_delete_bytes): Do not look for + align relocs when there are no relocs attached to the section. + +2007-10-31 Alan Modra + + * elf-bfd.h (bfd_elf_match_symbols_in_sections): Don't declare. + * elflink.c (bfd_elf_match_symbols_in_sections): Make static. + Remove section name comparisons. + +2007-10-30 Nick Clifton + + * reloc.c (BFD_RELOC_MN10300_ALIGN): Add. + * bfd-in2.h: Regenerate. + * libbfd.h: Regnerate. + * elf-m10300.h: Handle R_MN10300_ALIGN relocs. + (mn10300_elf_relax_delete_bytes): Honour R_MN10300_ALIGN relocs. + Re-fix off by one error in comparisons. + +2007-10-25 Pedro Alves + + * bfd-in.h (STRING_COMMA_LEN): Don't handle NULL STR case. + * bfd-in2.h: Regenerate. + +2007-10-25 Daniel Jacobowitz + + * elf32-ppc.c (ppc_elf_merge_obj_attributes): Add support for + Tag_GNU_Power_ABI_Vector. + +2007-10-25 Joseph Myers + + * elfxx-mips.c (_bfd_mips_elf_modify_segment_map): Do not add + PT_NULL header when not linking. + +2007-10-25 Carlos Eduardo Seo + + * elf.c (elfcore_grok_ppc_vmx): New function. + (elfcore_grok_note): Handle NT_PPC_VMX. + (elfcore_write_ppc_vmx): New function. + * elf-bfd.h (elfcore_write_ppc_vmx): Declare. + +2007-10-24 Alan Modra + + * Makefile.am: Run "make dep-am". + * Makefile.in: Regenerate. + * po/SRC-POTFILES.in: Regenerate. + +2007-10-23 Alan Modra + + * elf64-ppc.c (ppc_build_one_stub): Don't duplicate relocs + emitted for ".brlt" entries. + (toc_adjusting_stub_needed): Don't treat ".fixup" specially here.. + (ppc64_elf_next_input_section): ..instead do so here. + +2007-10-19 Nick Clifton + + * config.bfd: Recognise am34-linux-gnu target. + * reloc.c: Add BFD_RELOC_MN10300_SYM_DIFF relocation. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + * elf-m10300.c (elf_mn10300_howto): Add R_MN10300_SYM_DIFF. + (mn10300_reloc_map): Likewise. + (mn10300_elf_check_relocs): Do not create dynamic relocs for + symbol differences or relocations against absolute symbols. + (mn10300_elf_final_link_relocate): Likewise. + Handle R_MN10300_SYM_DIFF relocs. + (mn10300_elf_relocate_section): Fix for creating local copys of + dynamic relocs. + (mn10300_elf_relax_delete_bytes): Adjust symbols at the end of the + region. Adjust the size of function symbols. + (mn10300_elf_relax_section): Ignore symbols that are in discarded + sections. + +2007-10-19 Nick Clifton + + * elf-m10300.c: Convert to ISO C. + +2007-10-18 H.J. Lu + Alan Modra + + PR ld/4424 + * config.bfd (targ_selvecs): Add bfd_elf64_alpha_vec for + alpha/FreeBSD. Add bfd_elf64_sparc_vec for sparc64/FreeBSD. + Add bfd_elf32_i386_vec and bfd_efi_app_ia32_vec for i386/FreeBSD. + (targ64_selvecs): Set for i386/FreeBSD. + * elf-bfd.h (elf_backend_data): Add relocs_compatible. + (_bfd_elf_default_relocs_compatible): Declare. + (_bfd_elf_relocs_compatible): Declare. + * elfxx-target.h (elf_backend_relocs_compatible): Define. + (elfNN_bed): Init new relocs_compatible field. + * elflink.c (_bfd_elf_default_relocs_compatible): New function. + (_bfd_elf_relocs_compatible): New function. + (elf_link_add_object_symbols): Call bed->relocs_compatible. + * elf32-i386.c (elf_backend_relocs_compatible): Define. + * elf64-alpha.c: Likewise. + * elf64-sparc.c: Likewise. + * elf64-x86-64.c: Likewise. + +2007-10-16 Bob Wilson + + * elf32-xtensa.c (relax_section): Check for a reference to a discarded + DWARF section and anticipate its replacement with the kept section. + +2007-10-16 Bob Wilson + + * elf32-xtensa.c (elf_xtensa_discard_info_for_section): Remove + unnecessary size variables. Set sec->rawsize. + (relax_section, relax_property_section): Likewise. + +2007-10-16 Bob Wilson + + * section.c (struct bfd_section): Clarify comment for rawsize field. + * bfd-in2.h: Regenerate. + +2007-10-16 Bob Wilson + + * elflink.c (_bfd_elf_check_kept_section): Use the section rawsize + values if they are set. + +2007-10-16 Nick Clifton + + PR 5146 + * configure.in (AC_CHECK_HEADERS): Add alloca.h + * configure: Regenerate. + * config.in: Regenerate. + * som.c: Replace alloca-conf.h inclusion with code recommended in + autoconf documentation. + * elf64-hppa.c: Likewise. + +2007-10-16 Nick Clifton + + * configure.in (--enable-elf-stt-common): New configure + option. If enabled then the tools can generate symbols with + the ELF STT_COMMON type. + * config.in: Regenerate. + * configure: Regenerate. + * elf.c (swap_out_syms): If USE_STT_COMMON is defined then set + the type of emitted common symbols to STT_COMMON. + * elfcode.h (elf_slurp_symbol_table): Accept STT_COMMON symbol + types. + +2007-10-15 Alan Modra + + * coff-arm.c (arm_emit_base_file_entry): Check fwrite return value. + Return status. Adjust callers. + * coff-mcore.c (mcore_emit_base_file_entry): Likewise. + * coff-ppc.c (write_base_file_entry): New function. + (coff_ppc_relocate_section): Use it. + * elf32-arm.c (find_thumb_glue): Check asprintf return status. + (find_arm_glue): Likewise. + * vms-misc.c (_bfd_vms_output_flush): Check fwrite return value. + +2007-10-12 Nick Clifton + + PR 5160 + * elflink.c (eval_symbol): Remove bufsz variable and use + sizeof(symbuf) where necessary. + +2007-10-12 M R Swami Reddy + + * elf32-cr16.c (elf32_cr16_relax_section): Fix condition check typo. + +2007-10-12 Daniel Jacobowitz + + * elfxx-mips.c (mips_elf_sort_hash_table_f): Handle forced + local symbols specially. + (mips_elf_set_global_got_offset): Skip forced local symbols. + +2007-10-12 Alan Modra + + * elf.c (elfcore_grok_prxfpreg): Fix comment typo. + +2007-10-10 H.J. Lu + + * elf.c (get_program_header_size): Always add a PT_GNU_RELRO + segment for -z relro. + (_bfd_elf_map_sections_to_segments): Make a PT_GNU_RELRO + segment only when needed. + +2007-10-05 Bob Wilson + + * elf32-xtensa.c (relax_section): Call pin_internal_relocs when + changing a relocation's offset. Adjust call to translate_reloc. Do + not add a fix record for a DIFF reloc. For other relocs, only add a + fix record if the translated target is in a different object file; + otherwise, just update the relocation. Call pin_internal_relocs when + updating a reloc but not when adding a fix record. + (translate_reloc): Get the target section from a new argument, not + from the relocation. Change check for relaxable sections to an + assertion. Compute separate offset adjustments for the base symbol + and the addend, and set the new relocation's addend correctly. Return + the new target section. + +2007-10-05 Bob Wilson + + * elf32-xtensa.c (elf_xtensa_relocate_section): Remove updates of + r_type and howto after calling do_fix_for_relocateable_link and + do_fix_for_final_link. + +2007-10-05 Bob Wilson + + * elf32-xtensa.c (removed_by_actions): New. + (offset_with_removed_text): Reimplement using removed_by_actions. + (offset_with_removed_text_before_fill): Delete. + (relax_property_section): Use removed_by_actions. Rearrange logic. + (relax_section_symbols): Likewise. + +2007-10-04 Bob Wilson + + * elf32-xtensa.c (reloc_bfd_fix_struct): Delete target_abfd field. + (reloc_bfd_fix_init): Remove target_abfd argument. + (relax_section, move_literal): Adjust calls to reloc_bfd_fix_init. + +2007-10-04 Nick Clifton + + PR linker/5099 + * elf64-x86-64.c (elf64_x86_64_check_relocs): Add missing + apostrophe to error message. + +2007-10-01 M R Swami Reddy + + * elf32-cr16.c: Fixed DISP8, DISP20 and IMM20 relocations at + final relocation phase. + Added the below relaxations: IMM32 -> IMM20/IM16 -> IMM4. + * reloc.c: Added 3 new relocations: R_CR16_SWITCH8, + R_CR16_SWITCH16, R_CR16_SWITCH32. + * libbfd.h: Regenerate. + * bfd-in2.h: Regenerate. + +2007-09-30 Alan Modra + + * elflink.c: Formatting. + +2007-09-29 Alan Modra + + * elflink.c (resolve_symbol): Handle symbols in SEC_MERGE + sections. Don't test symbol st_shndx. Don't bother with + bfd_link_hash_common symbols. Print longs rather than ints + in debug messages. + (eval_symbol): Replace "sym" and "advanced" params with "symp". + Replace "addr" and "section_offset" params with "dot". Don't + cast bfd_vma values to signed, cast them to bfd_signed_vma. + (bfd_elf_perform_complex_relocation): Delete "output_bfd", "info", + "local_syms" and "local_sections" params. Add "relocation". + Delete code calculating relocation value. + (evaluate_complex_relocation_symbols): Delete function. Fold into.. + (elf_link_input_bfd): ..existing code examining relocs. + * elf-bfd.h (bfd_elf_perform_complex_relocation): Update prototype. + * elf32-mep.c (mep_elf_check_relocs): Delete function. + (mep_elf_gc_sweep_hook, mep_elf_gc_mark_hook): Likewise. + (mep_elf_object_p): Don't set elf_bad_symtab. + (elf_backend_check_relocs): Don't define. + (elf_backend_gc_mark_hook, elf_backend_gc_sweep_hook): Likewise. + (elf_backend_can_gc_sections, USE_RELA): Likwise. + (mep_elf_relocate_section): Move bfd_elf_perform_complex_relocation + call after we have calculated reloc value. Delete local sym + debug code. Use RELOC_FOR_GLOBAL_SYMBOL. Delete addend + adjusting code.. + (elf_backend_rela_normal): ..instead define this. + +2007-09-28 Alan Modra + + * elf-m10300.c (mn10300_elf_check_relocs): Delete dead code. + * elf32-arm.c (elf32_arm_check_relocs): Likewise. + * elf32-avr.c (elf32_avr_check_relocs): Likewise. + * elf32-bfin.c (bfinfdpic_check_relocs): Likewise. + * elf32-cris.c (cris_elf_check_relocs): Likewise. + * elf32-d10v.c (elf32_d10v_check_relocs): Likewise. + * elf32-dlx.c (elf32_dlx_check_relocs): Likewise. + * elf32-fr30.c (fr30_elf_check_relocs): Likewise. + * elf32-frv.c (_frvfdpic_check_discarded_relocs): Likewise. + (elf32_frv_check_relocs): Likewise. + * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise. + * elf32-m32c.c (m32c_elf_check_relocs): Likewise. + * elf32-m32r.c (m32r_elf_check_relocs): Likewise. + * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise. + * elf32-mcore.c (mcore_elf_check_relocs): Likewise. + * elf32-msp430.c (elf32_msp430_check_relocs): Likewise. + * elf32-mt.c (mt_elf_check_relocs): Likewise. + * elf32-openrisc.c (openrisc_elf_check_relocs): Likewise. + * elf32-sh.c (sh_elf_check_relocs): Likewise. + * elf64-mmix.c (mmix_elf_check_relocs): Likewise. + * elf64-sh64.c (sh_elf64_check_relocs): Likewise. + * elf32-score.c (_bfd_score_elf_check_relocs): Likewise. + (score_elf_local_relocation_p): Likewise. + (_bfd_score_elf_relocate_section): Likewise. + (score_elf_final_link_relocate): Likewise. + +2007-09-26 Jan Beulich + + * elf32-i386.c (elf_i386_check_relocs): Revert NULL pointer + check for R_386_GNU_VTINHERIT. + * elf-m10300.c (mn10300_elf_check_relocs): Check for NULL + pointer for R_xxx_GNU_VTENTRY. + * elf32-arm.c (elf32_arm_check_relocs): Likewise. + * elf32-bfin.c (bfin_check_relocs): Likewise. + (bfinfdpic_check_relocs): Likewise. + * elf32-cris.c (cris_elf_check_relocs): Likewise. + * elf32-d10v.c (elf32_d10v_check_relocs): Likewise. + * elf32-dlx.c (elf32_dlx_check_relocs): Likewise. + * elf32-fr30.c (fr30_elf_check_relocs): Likewise. + * elf32-frv.c (elf32_frv_check_relocs): Likewise. + * elf32-hppa.c (elf32_hppa_check_relocs): Likewise. + * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise. + * elf32-m32r.c (m32r_elf_check_relocs): Likewise. + * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise. + * elf32-m68k.c (elf_m68k_check_relocs): Likewise. + * elf32-mcore.c (mcore_elf_check_relocs): Likewise. + * elf32-openrisc.c (openrisc_elf_check_relocs): Likewise. + * elf32-ppc.c (ppc_elf_check_relocs): Likewise. + * elf32-s390.c (elf_s390_check_relocs): Likewise. + * elf32-score.c (_bfd_score_elf_check_relocs): Likewise. + * elf32-sh.c (sh_elf_check_relocs): Likewise. + * elf32-v850.c (v850_elf_check_relocs): Likewise. + * elf32-vax.c (elf_vax_check_relocs): Likewise. + * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise. + * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise. + * elf64-mmix.c (mmix_elf_check_relocs): Likewise. + * elf64-ppc.c (ppc64_elf_check_relocs): Likewise. + * elf64-s390.c (elf_s390_check_relocs): Likewise. + * elf64-sh64.c (sh_elf64_check_relocs): Likewise. + * elf64-x86-64.c (elf64_x86_64_check_relocs): Likewise. + * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. + * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise. + +2007-09-26 Alan Modra + + * elflink.c (set_symbol_value): Add isymbuf and locsymcount + params. Change symidx to a size_t. Don't access past end + of symbol buffer. + (resolve_symbol): Add isymbuf param and use instead of + finfo->internal_syms. + (eval_symbol, evaluate_complex_relocation_symbols): Likewise. + (elf_link_input_bfd): Don't read symbols specially for + evaluate_complex_relocation_symbols. + +2007-09-26 Tristan Gingold + + * som.c (som_get_reloc_upper_bound): If there are no relocs return + enough space to hold a NULL pointer. + +2007-09-26 Alan Modra + + * elf64-ppc.c (ppc_build_one_stub): Correct rel_hdr.sh_size. + +2007-09-25 Alan Modra + + * elf32-spu.c (struct spu_link_hash_table): Add ovly_load_r_symndx. + (spu_elf_size_stubs): Count stub relocs. + (write_one_stub): Emit relocs on overlay call stubs. + + * elf32-spu.c (struct spu_link_hash_table): Add "stubs". + (spu_elf_link_hash_table_create): Init new field. + (spu_elf_size_stubs): Store sorted stub syms in new htab field + rather than local var. + (spu_elf_build_stubs): Iterate over htab stubs rather than + hash traversal. + (struct stubarr): Delete. + (allocate_spuear_stubs, populate_stubs, write_one_stub): Adjust. + +2007-09-24 Daniel Jacobowitz + + * elf.c (assign_file_positions_for_load_sections): Trust + p_align_valid. + (copy_elf_program_header): Copy PT_NULL segments. + 2007-09-24 Trevor Smigiel * elf32-spu.c (is_indirect_branch): New function.