bfd/
[binutils-gdb.git] / bfd / ChangeLog
index d882c17900944e6b621f8c7eccb7cd09c114e17a..597e4ca62723a03af9e8f571b9b4fd2deb6eaddb 100644 (file)
@@ -1,3 +1,305 @@
+2010-02-09  Michael Holzheu  <holzheu@de.ibm.com>
+
+       * 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  <amodra@gmail.com>
+
+       * 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  <davem@davemloft.net>
+
+       * 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  <r.sandiford@uk.ibm.com>
+
+       * 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  <amodra@gmail.com>
+
+       * 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  <amodra@gmail.com>
+
+       * 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  <amodra@gmail.com>
+
+       * 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  <gingold@adacore.com>
+
+       * mach-o.c (bfd_mach_o_canonicalize_one_reloc): Set reloc.r_extern
+       for non-scattered relocations.
+
+2010-02-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * 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  <philipp.tomsich@theobroma-systems.com>
+
+       * 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  <amodra@gmail.com>
+
+       * elf32-ppc.c (ppc_elf_check_relocs): Remove dead ifunc code.
+
+2010-02-05  Sterling Augustine  <sterling@tensilica.com>
+
+       * elf.c (assign_file_positions_for_load_sections) Update lma of
+       section if necessary.  Fixes Bugzilla 11219.
+
+2010-02-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c: Remove trailing white spaces.
+       * elf64-x86-64.c: Likewise.
+
+2010-02-03  Nick Clifton  <nickc@redhat.com>
+
+       * 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  <amodra@gmail.com>
+
+       * 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  <hongjiu.lu@intel.com>
+
+       * 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  <gingold@adacore.com>
+
+       * som.c (som_write_ar_hdr): Define this macro.
+
+2010-01-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * 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  <brobecker@adacore.com>
+
+       * elf.c (elfcore_grok_lwpstatus): Do not overwrite the core signal
+       if it has already been set.
+
+2010-01-27  Tristan Gingold  <gingold@adacore.com>
+
+       * 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  <amodra@gmail.com>
+
+       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  <gingold@adacore.com>
 
        * targets.c (BFD_JUMP_TABLE_ARCHIVE): Add initializer for write_ar_hdr.