X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2FChangeLog;h=597e4ca62723a03af9e8f571b9b4fd2deb6eaddb;hb=d7eeb4006461c6c05dd2304c34078af8d43165f4;hp=e8cadfb975dec64999f19d9ea6185054e020284f;hpb=91b9a4a49bdd97dcf8ade3b3819f37646e0806d1;p=binutils-gdb.git diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e8cadfb975d..597e4ca6272 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,455 @@ +2010-02-09 Michael Holzheu + + * elf-bfd.h (elfcore_write_s390_timer, elfcore_write_s390_todcmp, + elfcore_write_s390_todpreg, elfcore_write_s390_ctrs, + elfcore_write_s390_prefix): New. + * elf.c (elfcore_write_s390_timer, elfcore_write_s390_todcmp, + elfcore_write_s390_todpreg, elfcore_write_s390_ctrs, + elfcore_write_s390_prefix): New. + (elfcore_grok_note): Handle NT_S390_TIMER, NT_S390_TODCMP, + NT_S390_TODPREG, NT_S390_CTRS and NT_S390_PREFIX. + (elfcore_write_register_note): Handle .reg-s390-timer, + .reg-s390-todcmp, .reg-s390-todpreg, .reg-s390-ctrs, + .reg-s390-prefix section. + +2010-02-09 Alan Modra + + * elf64-ppc.c (struct got_entry): Make tls_type and is_indirect + unsigned char. Update variables and code using them throughout file. + (struct ppc_link_hash_entry): Likewise for tls_mask. + + * elf64-ppc.c (ppc64_elf_layout_multitoc): Don't merge local got ents. + + * elf64-ppc.c (has_small_toc_reloc): Don't define. + (makes_toc_func_call, call_check_in_progress): Shuffle flags. + (struct ppc64_elf_obj_tdata): Add has_small_toc_reloc. Update + code setting the flag. + (ppc64_elf_next_toc_section): Group big-toc sections in + 0x80008000 chunks. + +2010-02-08 David S. Miller + + * elfxx-sparc.h (struct _bfd_sparc_elf_link_hash_table): Remove sgot, + srelgot, splt, srelplt, and sgotplt members in favor of generic copies. + + * elfxx-sparc.c (create_got_section): Delete. + (_bfd_sparc_elf_create_dynamic_sections): Don't call, the dynamic + section creator does that work for us. Use ->elf.foo instead of + ->foo where applicable. + (_bfd_sparc_elf_check_relocs): Use ->elf.foo instead of ->foo + where applicable. + (allocate_dynrelocs): Likewise. + (_bfd_sparc_elf_size_dynamic_sections): Likewise. + (_bfd_sparc_elf_relocate_section): Likewise. + (sparc_vxworks_build_plt_entry): Likewise. + (_bfd_sparc_elf_finish_dynamic_symbol): Likewise. + (sparc_finish_dyn): Likewise. + (sparc_vxworks_finish_exec_plt): Likewise. + (sparc_vxworks_finish_shared_plt): Likewise. + (_bfd_sparc_elf_finish_dynamic_sections): Likewise. + + * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Use the SYMBOL_* + macros for visibilty and locality checks. + (_bfd_sparc_elf_adjust_dynamic_symbol): Likewise. + (allocate_dynrelocs): Likewise. + (_bfd_sparc_elf_relocate_section): Likewise. + (_bfd_sparc_elf_finish_dynamic_symbol):Likewise. + + * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_symbol): Remove set + but never used local var 'dynobj'. + + * elfxx-sparc.c (_bfd_sparc_elf_adjust_dynamic_symbol): Handle + nocopyreloc. + + * reloc.c (BFD_RELOC_SPARC_JMP_IREL): New. + (BFD_RELOC_SPARC_IRELATIVE): Likewise. + * bfd-in2.h: Regenerate. + * libbfd.h: Regenerate. + + * elfxx-sparc.h (_bfd_sparc_elf_link_hash_table): Add loc_hash_table + and loc_hash_memory. + (_bfd_sparc_elf_link_hash_table_free): Declare. + * elf32-sparc.c (elf32_sparc_add_symbol_hook): New. + (elf_backend_add_symbol_hook, elf_backend_post_process_headers, + bfd_elf32_bfd_link_hash_table_free): Define. + * elf64-sparc.c (elf64_sparc_add_symbol_hook): Set + has_ifunc_symbols if STT_GNU_IFUNC. + (bfd_elf64_bfd_link_hash_table_free): Define. + (elf_backend_post_process_headers): Define always. + * elfxx-sparc.c (sparc_jmp_irel_howto, sparc_irelative_howto): New. + (sparc_reloc_map): Add entries for new IFUNC relocs. + (_bfd_sparc_elf_reloc_type_lookup): Handle new IFUNC relocs. + (_bfd_sparc_elf_info_to_howto_ptr): Likewise. + (elf_sparc_local_htab_hash, elf_sparc_local_htab_eq, + elf_sparc_get_local_sym_hash): New. + (_bfd_sparc_elf_create_dynamic_sections): Move PLT ops initialization + from here... + (_bfd_sparc_elf_link_hash_table_create): ... to here. Allocate + local hash table. + (_bfd_sparc_elf_link_hash_table_free): New. + (create_ifunc_sections): New. + (_bfd_sparc_elf_check_relocs): Unconditionally assign htab->elf.dynobj + and call create_ifunc_sections(). For local STT_GNU_IFUNC symbols + cons up a fake local hash table entry for it. Unconditionally add + a PLT refcount for STT_GNU_IFUNC symbols when h->def_regular. Count + dyn relocs for ifunc. + (_bfd_sparc_elf_adjust_dynamic_symbol): Handle ifunc. + (allocate_dynrelocs): Unconditionally emit a PLT entry when + STT_GNU_IFUNC and h->def_regular. Count GOT dyn relocs for ifunc. + (allocate_local_dynrelocs): New function. + (_bfd_sparc_elf_size_dynamic_sections): Invoke it over the local hash + table. Emit dynamic relocs to irelplt when not shared. Treat iplt + like splt. + (_bfd_sparc_elf_relocate_section): Handle ifunc relocations by hand. + (_bfd_sparc_elf_finish_dynamic_symbol): Adjust for non-dynamic ifunc + plt in iplt/irelplt. + +2010-02-08 Richard Sandiford + + * xcofflink.c (_bfd_xcoff_bfd_final_link): When calculating + max_contents_size, only consider sections whose contents must + be swapped in. + +2010-02-09 Alan Modra + + * elf64-ppc.c (allocate_dynrelocs): Remove unused got structs here.. + (ppc64_elf_size_dynamic_sections): ..and here.. + (merge_got_entries): ..rather than here. + +2010-02-09 Alan Modra + + * elf64-ppc.c (struct ppc_link_hash_table): Add do_multi_toc. + (has_small_toc_reloc): Define. + (ppc64_elf_check_relocs): Set the above flags. + (ppc64_elf_edit_opd): Delete obfd param. + (ppc64_elf_tls_optimize): Likewise. + (ppc64_elf_edit_toc): Likewise. + (ppc64_elf_tls_setup): Likewise. Add no_multi_toc param. + * elf64-ppc.h: Update prototypes. + +2010-02-08 Alan Modra + + * section.c (struct bfd_section): Delete has_tls_reloc, + has_tls_get_addr_call, has_gp_reloc, need_finalize_relax, reloc_done. + Add sec_flg0 thru sec_flg5. + (BFD_FAKE_SECTION): Update for changed flags. + * ecoff.c (bfd_debug_section): Likewise. + * elf32-ppc.c (has_tls_reloc, has_tls_get_addr_call): Define. + * elf64-ppc.c (has_tls_reloc, has_tls_get_addr_call): Define. + (has_toc_reloc, makes_toc_func_call, call_check_in_progress): Update. + * elf32-xtensa.c (reloc_done): Define. + * elfxx-ia64.c (skip_relax_pass_0, skip_relax_pass_1): Update. + * bfd-in2.h: Regenerate. + +2010-02-08 Tristan Gingold + + * mach-o.c (bfd_mach_o_canonicalize_one_reloc): Set reloc.r_extern + for non-scattered relocations. + +2010-02-08 Nathan Sidwell + + * elf32-ppc.c (ppc_elf_begin_write_processing): Allow empty + apuinfo sections, only scan input sections once and reuse the + buffer. + +2010-02-08 Philipp Tomsich + + * archures.c (bfd_mach_ppc_titan): Define. + * bfd-in2.h: Regenerate. + * cpu-powerpc.c (bfd_powerpc_archs): Add titan entry. + +2010-02-08 Alan Modra + + * elf32-ppc.c (ppc_elf_check_relocs): Remove dead ifunc code. + +2010-02-05 Sterling Augustine + + * elf.c (assign_file_positions_for_load_sections) Update lma of + section if necessary. Fixes Bugzilla 11219. + +2010-02-05 H.J. Lu + + * elf32-i386.c: Remove trailing white spaces. + * elf64-x86-64.c: Likewise. + +2010-02-03 Nick Clifton + + * elf-bfd.h (emum elf_object_id): Rename to elf_target_id. Add + entries for other architectures. + (struct elf_link_hash_table): Add hash_table_id field. + (elf_hash_table_id): New accessor macro. + * elflink.c (_bfd_elf_link_hash_table_init): Add target_id + parameter. + * elf-m10300.c (elf32_mn10300_hash_table): Check table id before + returning cast pointer. + (elf32_mn10300_link_hash_table_create): Identify new table as + containing MN10300 extensions. + (mn10300_elf_relax_section): Check pointer returned by + elf32_mn10300_hash_table. + * elf32-arm.c: Likewise, except using ARM extensions. + * elf32-avr.c: Likewise, except using AVR extensions. + * elf32-bfin.c: Likewise, except using BFIN extensions. + * elf32-cris.c: Likewise, except using CRIS extensions. + * elf32-frv.c: Likewise, except using FRV extensions. + * elf32-hppa.c: Likewise, except using HPPA32 extensions. + * elf32-i386.c: Likewise, except using I386 extensions. + * elf32-lm32.c: Likewise, except using LM32 extensions. + * elf32-m32r.c: Likewise, except using M32RM extensions. + * elf32-m68hc11.c: Likewise, except using M68HC11 extensions. + * elf32-m68hc1x.c: Likewise, except using M68HC11 extensions. + * elf32-m68hc1x.h: Likewise, except using M68HC11 extensions. + * elf32-m68k.c: Likewise, except using M68K extensions. + * elf32-microblaze.c: Likewise, except using MICROBLAZE extensions. + * elf32-ppc.c: Likewise, except using PPC32 extensions. + * elf32-s390.c: Likewise, except using S390 extensions. + * elf32-sh.c: Likewise, except using SH extensions. + * elf32-spu.c: Likewise, except using SPU extensions. + * elf32-xtensa.c: Likewise, except using XTENSA extensions. + * elf64-alpha.c: Likewise, except using ALPHA extensions. + * elf64-hppa.c: Likewise, except using HPPA64 extensions. + * elf64-ppc.c: Likewise, except using PPC64 extensions. + * elf64-s390.c: Likewise, except using S390 extensions. + * elf64-x86-64.c: Likewise, except using X86_64 extensions. + * elfxx-ia64.c: Likewise, except using IA64 extensions. + * elfxx-mips.c: Likewise, except using MIPS extensions. + * elfxx-sparc.c: Likewise, except using SPARC extensions. + * elfxx-sparc.h: Likewise, except using SPARC extensions. + * elf32-cr16.c (struct elf32_cr16_link_hash_table): Delete + redundant structure. + (elf32_cr16_hash_table): Delete unused macro. + (elf32_cr16_link_hash_traverse): Delete unused macro. + * elf32-score.c: Likewise. + * elf32-score7.c: Likewise. + * elf32-vax.c: Likewise. + * elf64-sh64.c: Likewise. + +2010-02-03 Alan Modra + + * elf64-ppc.c (struct plt_entry): Move earlier in file. + (struct got_entry): Likewise. Add is_indirect and got.ent fields. + (struct ppc64_elf_obj_tdata): Change tlsld_got to be a struct got_entry. + Update all uses. + (struct ppc_link_hash_table): Add got_reli_size and second_toc_pass. + Remove no_multi_toc. + (update_local_sym_info, ppc64_elf_check_relocs): Clear is_indirect + when allocating a new struct got_entry. + (allocate_got): New function, extracted from.. + (allocate_dynrelocs): ..here. Abort on got entry in non-ppc64 bfd. + (ppc64_elf_size_dynamic_sections): Track got relocs allocated in + .reliplt by got_reli_size. Set owner on ppc64_tlsld_got entries. + (ppc64_elf_setup_section_lists): Remove output_bfd param and + no_multi_toc, add add_stub_section and layout_sections_again. Stash + new params in htab. Extract some code to.. + (ppc64_elf_start_multitoc_partition): ..here. New function. + (ppc64_elf_next_toc_section): Check for linker script errors. Handle + second pass toc scan. + (merge_got_entries, merge_global_got, reallocate_got): New functions. + (ppc64_elf_reinit_toc): Rename to.. + (ppc64_elf_finish_multitoc_partition): ..this. + (ppc64_elf_layout_multitoc): New function. + (ppc64_elf_size_stubs): Delete output_bfd, add_stub_section and + layout_sections_again params. + (ppc64_elf_relocate_section): Handle indirect got entries. + * elf64-ppc.h: Update prototypes. Declare new functions. + +2010-02-02 H.J. Lu + + * elf-bfd.h (elfcore_write_xstatereg): New. + + * elf.c (elfcore_grok_xstatereg): New. + (elfcore_write_xstatereg): Likewise. + (elfcore_grok_note): Handle NT_X86_XSTATE. + (elfcore_write_register_note): Handle .reg-xstate section. + +2010-02-01 Tristan Gingold + + * som.c (som_write_ar_hdr): Define this macro. + +2010-01-30 John David Anglin + + * elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L, + R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations that use the + linkage table pointer to use the global table pointer if not doing + a shared link. + +2010-01-29 Joel Brobecker + + * elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal + if it has already been set. + +2010-01-27 Tristan Gingold + + * vms.h: Remove trailing spaces. + (struct hdr_struct): Remove unused hdr_c_cpr field. + (enum file_format_enum): Add comments. + * vms.c (vms_bfd_print_private_bfd_data): New function that + replaces the macro. + Remove trailing spaces. + * vms-misc.c: Improve comments. + (_bfd_vms_get_object_record): Also handle files without pads. + * vms-hdr.c (_bfd_vms_write_dbg): Fix format string. + * vms-gsd.c (struct flagdescstruct): Make name field const. + (gsyflagdesc): Fix typo. + +2010-01-27 Alan Modra + + PR ld/11217 + * elf64-ppc.c (struct ppc_link_hash_table): Add toc_bfd, toc_first_sec. + (ppc64_elf_setup_section_lists): Init them. + (ppc64_elf_next_toc_section): Don't partition multi-toc between .got + and .toc on the same input file. + (ppc64_elf_relocate_section): Correct GOT entry offset. + +2010-01-26 Tristan Gingold + + * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add initializer for write_ar_hdr. + (bfd_target): Add _bfd_write_ar_hdr_fn field. + * archive.c (is_bsd44_extended_name): New macro. + (_bfd_generic_read_ar_hdr_mag): Use it. Add extra_size. + (bfd_slurp_armap): Also check for "__.SYMDEF" as a BSD4.4 extended + name. + (_bfd_archive_bsd44_construct_extended_name_table): New function. + (_bfd_generic_write_ar_hdr): Ditto. + (_bfd_bsd44_write_ar_hdr): Ditto. + (_bfd_write_archive_contents): Call _bfd_write_ar_hdr. + (bsd_write_armap): Adjust firstreal computation. + * libbfd-in.h (struct areltdata): Add extra_size field. + (_bfd_generic_write_ar_hdr): Add prototype. + (_bfd_bsd44_write_ar_hdr): Ditto. + (_bfd_write_ar_hdr): Define. + (_bfd_noarchive_write_ar_hdr): Ditto. + (_bfd_archive_bsd_write_ar_hdr): Ditto. + (_bfd_archive_coff_write_ar_hdr): Ditto. + (_bfd_archive_bsd44_slurp_armap): Ditto. + (_bfd_archive_bsd44_slurp_extended_name_table): Ditto. + (_bfd_archive_bsd44_construct_extended_name_table): New prototype. + (_bfd_archive_bsd44_truncate_arname): Ditto. + (_bfd_archive_bsd44_write_armap): Ditto. + (_bfd_archive_bsd44_read_ar_hdr): Ditto. + (_bfd_archive_bsd44_write_ar_hdr): Ditto. + (_bfd_archive_bsd44_openr_next_archived_file): Ditto. + (_bfd_archive_bsd44_get_elt_at_index): Ditto. + (_bfd_archive_bsd44_generic_stat_arch_elt): Ditto. + (_bfd_archive_bsd44_update_armap_timestamp): Ditto. + * libbfd.h: Regenerate. + * oasys.c (oasys_write_ar_hdr): Define. + * libecoff.h (_bfd_ecoff_write_ar_hdr): Define. + * ieee.c (ieee_write_ar_hdr): Define. + * elf64-mips.c (bfd_elf64_archive_write_ar_hdr): Define. + * coff-rs6000.c (rs6000coff_vec): Adjust for write_ar_hdr field. + (bfd_pmac_xcoff_backend_data): Ditto. + * coff64-rs6000.c (rs6000coff64_vec): Ditto. + (bfd_xcoff_aix5_backend_data): Ditto. + * coff-alpha.c (alpha_ecoff_write_ar_hdr): Define. + * aout-target.h (MY_write_ar_hdr): Define it if not defined. + * aout-tic30.c (MY_write_ar_hdr): Ditto. + * mach-o-target.c (TARGET_NAME): Use _bfd_archive_bsd44 archive. + (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr) + (bfd_mach_o_slurp_armap, bfd_mach_o_slurp_extended_name_table) + (bfd_mach_o_construct_extended_name_table) + (bfd_mach_o_truncate_arname, bfd_mach_o_write_armap) + (bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt) + (bfd_mach_o_update_armap_timestamp): Moved to mach-o.c + * mach-o.c (bfd_mach_o_mkarchive, bfd_mach_o_read_ar_hdr) + (bfd_mach_o_slurp_armap, bfd_mach_o_slurp_extended_name_table) + (bfd_mach_o_construct_extended_name_table) + (bfd_mach_o_truncate_arname, bfd_mach_o_write_armap) + (bfd_mach_o_get_elt_at_index, bfd_mach_o_generic_stat_arch_elt) + (bfd_mach_o_update_armap_timestamp): Moved from mach-o-target.c + * bfd-in2.h: Regenerate. + +2010-01-26 Alan Modra + H.J. Lu + + PR ld/11218 + * elflink.c (elf_link_output_extsym): Do not ignore undefined + symbols with ref_regular set when gc_sections is active. + +2010-01-25 Alan Modra + + PR ld/11217 + * elf64-ppc.c (ppc64_elf_tls_optimize): Optimize tls sequences + with relocations against undefined weak symbols. + (ppc64_elf_relocate_section): Don't optimize calls to undefined + weak functions if the symbol is dynamic. + (ppc64_elf_relocate_section): Edit tprel tls sequences. + * elf32-ppc.c (ppc_elf_relocate_section): Likewise. + (_bfd_elf_ppc_at_tprel_transform): New function. + * bfd-in.h (_bfd_elf_ppc_at_tprel_transform): Declare. + * bfd-in2.h: Regenerate. + +2010-01-23 Richard Sandiford + + * coff-rs6000.c (xcoff_howto_table): Change size to 0 and bitsize to 1. + (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_NONE. + * coff64-rs6000.c (xcoff64_howto_table): Change size to 0 and + bitsize to 1. + (xcoff64_reloc_type_lookup): Handle BFD_RELOC_NONE. + +2010-01-21 Nick Clifton + + * elflink.c (elf_link_add_object_symbols): Look up name of + undefined symbol both before and after versioning has been + applied. Do not bother with symbols that are weakly undefined. + +2010-01-21 Andreas Krebbel + + * elf32-s390.c (elf32_s390_merge_private_bfd_data): New function. + (bfd_elf32_bfd_merge_private_bfd_data): New macro definition. + +2010-01-19 Cary Coutant + + * dwarf2.c (read_attribute_value): Add DW_FORM_ref_sig8. + +2010-01-19 Daisuke Hatayama + Alan Modra + + * elfcode.h (elf_swap_ehdr_out): Handle e_phnum > 0xffff. + (elf_object_p): Read e_phnum extension. + (elf_write_shdrs_and_ehdr): Write e_phnum extension. + * elfcore.h (elf_core_file_p): Read e_phnum extension. Sanity check + that we can read last program header. + +2010-01-19 Matthew Gretton-Dann + + * elf32-arm.c (elf32_arm_howto_table_1): Correct bitsize of + R_ARM_THM_CALL entry. + (elf32_arm_final_link_relocate): Correct calculation of + reloc_signed_max when doing a R_ARM_THM_CALL, R_ARM_THM_XPC22, + or R_ARM_THM_JUMP24 relocation. + +2010-01-18 Alan Modra + + PR 11168 + * coffcode.h (coff_compute_section_file_positions): Move Rs6000COFF_C + block past vars in COFF_IMAGE_WITH_PE block. Report error on more + than 32k sections. + +2010-01-15 Jan Kratochvil + + Fix compilation warning on gcc-3.4. + * vms-tir.c (start_etir_record, sto_imm): Rename the prototype + parameter index to sec_index according to the function definition. + +2010-01-13 Chao-ying Fu + + * elfxx-mips.c (JR_TO_B_P): New define to transform JR to B. + It is true for all CPUs. + (jal_reloc_p): New function. + (mips_elf_calculate_relocation): Rename require_jalxp to + cross_mode_jump_p. + Update comment for CROSS_MODE_JUMP_P. + Set up cross_mode_jump_p based on the mode change. + (mips_elf_perform_relocation): Rename require_jalx to cross_mode_jump_p. + Update comment for CROSS_MODE_JUMP_P. + Test cross_mode_jump_p and jal_reloc_p to turn jal to jalx. + Use !cross_mode_jump_p to guard conversion. + Convert "jr t9" to "b", if possible. + (_bfd_mips_elf_relocate_section): Rename require_jalx to + cross_mode_jump_p. + Pass &cross_mode_jump_p to call mips_elf_calculate_relocation. + Pass cross_mode_jump_p to call mips_elf_perform_relocation. + 2010-01-13 Nick Clifton * cpu-m32c.c (m32c_scan): New function. Ensures that a scan for