* elfxx-mips.c (struct mips_got_entry): Add tls_type.
[deliverable/binutils-gdb.git] / bfd / ChangeLog
index 38920f681ba19e92e7c4e9a0e9ef2ff73358ec00..57cea9a8e6c8316ccc67a518bd6d2c2e29c22cf7 100644 (file)
@@ -1,3 +1,389 @@
+2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
+           Joseph Myers  <joseph@codesourcery.com>
+
+       * elfxx-mips.c (struct mips_got_entry): Add tls_type.
+       (struct mips_got_info): Add tls_gotno, tls_assigned_gotno,
+       and tls_ldm_offset.
+       (struct mips_elf_got_per_bfd_arg): Add global_count.
+       (struct mips_elf_count_tls_arg): New.
+       (struct mips_elf_hash_sort_data): Update comment for min_got_dynindx.
+       (struct mips_elf_link_hash_entry): Add tls_type and tls_got_offset.
+       (GOT_NORMAL, GOT_TLS_GD, GOT_TLS_LDM, GOT_TLS_IE)
+       (GOT_TLS_OFFSET_DONE, GOT_TLS_DONE): Define.
+       (TLS_RELOC_P): Define.
+       (TP_OFFSET, DTP_OFFSET): Define.
+       (dtprel_base, tprel_base): New functions.
+       (mips_elf_link_hash_newfunc): Initialize tls_type.
+       (mips_elf_got_entry_hash, mips_elf_got_entry_eq)
+       (mips_elf_multi_got_entry_hash, mips_elf_multi_got_entry_eq): Handle
+       TLS entries.
+       (mips_tls_got_relocs, mips_elf_count_local_tls_relocs)
+       (mips_elf_count_global_tls_entries, mips_elf_count_global_tls_relocs)
+       (mips_elf_output_dynamic_relocation, mips_elf_initialize_tls_slots)
+       (mips_tls_got_index): New functions.
+       (mips_elf_local_got_index): Add new R_SYMNDX, H, and R_TYPE
+       arguments.  Pass them to mips_elf_create_local_got_entry.  Use
+       mips_tls_got_index.
+       (mips_elf_global_got_index): Add new R_TYPE and INFO arguments.
+       Handle TLS entries.
+       (mips_elf_got_page, mips_elf_got16_entry): Update calls to
+       mips_elf_create_local_got_entry.
+       (mips_elf_create_local_got_entry): Add new R_SYMNDX, H, and R_TYPE
+       arguments.  Handle TLS entries.
+       (mips_elf_sort_hash_table_f): Add non-TLS assertions.
+       (mips_elf_record_local_got_symbol): Add new TLS_FLAG argument.  Handle
+       TLS entries.
+       (mips_elf_record_global_got_symbol): Likewise.
+       (mips_elf_make_got_per_bfd): Initialize new mips_got_info members.
+       Count TLS entries.
+       (mips_elf_merge_gots): Handle TLS entries when merging.
+       (mips_elf_initialize_tls_index): New function.
+       (mips_elf_set_global_got_offset): Handle TLS entries.
+       (mips_elf_adjust_gp): Handle TLS.
+       (mips_elf_multi_got): Remove redundant call to
+       mips_elf_resolve_final_got_entries.  Initialize global_count.
+       Correct a comment.  Initialize new TLS members of mips_got_info.
+       Assign TLS GOT indexes for new GOTs.
+       (mips_elf_create_got_section): Initialize new TLS members of
+       mips_got_info.
+       (mips_elf_calculate_relocation): Handle TLS relocs.
+       (_bfd_mips_elf_check_relocs): Likewise.  Update calls to changed
+       functions.
+       (_bfd_mips_elf_always_size_sections): Handle TLS.
+       (_bfd_mips_elf_size_dynamic_sections): Likewise.
+       (_bfd_mips_elf_finish_dynamic_symbol): Likewise.  Update calls to
+       changed functions.
+       (_bfd_mips_elf_copy_indirect_symbol): Copy tls_type.
+       (_bfd_mips_elf_hide_symbol): Handle TLS.
+       * elfn32-mips.c (elf_mips_howto_table_rel, elf_mips_howto_table_rela)
+       (mips_reloc_map): Add TLS relocs.
+       * elf32-mips.c (elf_mips_howto_table_rel, mips_reloc_map): Likewise.
+       * elf64-mips.c (mips_elf64_howto_table_rel)
+       (mips_elf64_howto_table_rela, mips_reloc_map): Likewise.
+       * reloc.c: Define new MIPS TLS relocations.
+       * libbfd.h, bfd-in2.h: Regenerated.
+
+2005-03-02  Jan Beulich  <jbeulich@novell.com>
+
+       * Makefile.am: Add dependency of cache.o on libiberty.h.
+       * cache.c: Include libiberty.h.
+       (bfd_open_file): Use unlink_if_ordinary instead of unlink.
+
+2005-03-01  Zack Weinberg  <zack@codesourcery.com>
+
+       * elf.c (bfd_section_from_shdr <default case>): Call
+       elf_backend_section_from_shdr hook unconditionally, and return
+       what it returns.
+       (bfd_section_from_phdr): Similarly, for elf_backend_section_from_phdr.
+       * elfxx-target.h (elf_backend_section_from_shdr)
+       (elf_backend_section_from_phdr): Default to
+       _bfd_elf_make_section_from_shdr and _bfd_elf_make_section_from_phdr
+       respectively.
+
+2005-03-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * targets.h: Typo fix.
+       * bfd-in2.h: Regenerate.
+
+       * bout.c (b_out_write_object_contents): Don't use sizeof on host
+       structs to size on-disk structures.
+       (b_out_set_section_contents): Size the external struct, not the
+       internal one for on-disk size.
+       (b_out_sizeof_headers): Likewise.
+
+2005-03-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_size_stubs): Override defined dot-sym
+       entry points with the func descriptor as well as undefweak.
+
+2005-02-28  Ross Ridge  <rridge@csclub.uwaterloo.ca>
+
+       * peicode.h (pe_ILF_build_a_bfd): Do not assume that an @ will be
+       present when IMPORT_NAME_UNDOECRATE is used.
+
+2005-02-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR 757
+       * elf-bfd.h (_bfd_elf_merge_symbol): Add a pointer to unsigned
+       int.
+
+       * elf32-sh-symbian.c (sh_symbian_relocate_section): Pass NULL
+       to _bfd_elf_merge_symbol.
+
+       * elflink.c (_bfd_elf_merge_symbol): Use the pointer to
+       unsigned int to return the alignment of the old common symbol
+       in the dynamic object.
+       (_bfd_elf_add_default_symbol): Pass NULL to
+       _bfd_elf_merge_symbol.
+       (elf_link_add_object_symbols): Pass &old_alignment to
+       _bfd_elf_merge_symbol. Get the alignment of the new common
+       symbol in the dynamic object.
+
+2005-02-24  Ben Elliston  <bje@au.ibm.com>
+
+       * coffcode.h (coff_sym_filepos): Remove GNU960 conditional code.
+       * format.c (bfd_check_format_matches): Likewise.
+       * archive.c (BFD_GNU960_ARMAG): Likewise.
+       (bfd_generic_archive_p): Likewise.
+       (_bfd_write_archive_contents): Likewise.
+
+2005-02-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.in: (AM_INIT_AUTOMAKE): Set version to 2.15.95.
+       * configure: Regenerate.
+
+2005-02-24  Julian Brown  <julian@sirius.codesourcery.com>
+
+       * elflink.c (elf_link_add_object_symbols): Force symbols in discarded
+       COMDAT group sections to have default visibility.
+
+2005-02-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * coffcode.h (coff_print_aux): Warning fix.
+       * elf-m10300.c (mn10300_elf_relax_section): Use section->id
+       instead of section pointer to identify.
+       * coff-h8300.c (h8300_reloc16_extra_cases): Likewise.  Allocate
+       the correct size buffer for local sym mangling too.
+       (h8300_bfd_link_add_symbols): Likewise.
+       * elf32-sh-symbian.c (sh_symbian_process_embedded_commands): Fix
+       warning.
+       * elf32-sh64.c (shmedia_prepare_reloc): Use %B and %p in error message
+       * elf32-xtensa.c (literal_value_hash): Warning fix.
+       * versados.c (process_otr): Warning fix.
+       (versados_canonicalize_reloc): Likewise.
+       * vms-gsd.c (_bfd_vms_slurp_gsd): Warning fix.
+       * vms.c (fill_section_ptr): Warning fix.
+
+2005-02-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * coff-tic54x.c (SWAP_OUT_RELOC_EXTRA): Defined.
+       * coff-tic80.c (SWAP_OUT_RELOC_EXTRA): Likewise.
+
+2005-02-23  Nick Clifton  <nickc@redhat.com>
+
+       * elfxx-mips.c (mips_elf_create_dynamic_relocation): Initialise
+       the relvaddr field of the Elf32_crinfo structure.
+
+       * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Initialise
+       variables that are passed by reference to
+       m68hc11_get_relocation_value in case that function does not
+       initialise them.
+
+       * elf32-cr16c.c (cr16c_elf_final_link_relocate): Remove duplicated
+       return statements and replace with a single return at the end of
+       the function.  This helps pacify the flow analysis code in gcc 4.0.
+
+       * elf.c (_bfd_elf_compute_section_file_positions): Initialise
+       strtab to avoid compile time warning.
+
+2005-02-23  Ben Elliston  <bje@au.ibm.com>
+
+       * opncls.c (bfd_zalloc): Document this function.
+
+2005-02-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * coffcode.h (sec_to_styp_flags): Replaced SEC_CLINK with
+       SEC_TIC54X_CLINK. Replace SEC_BLOCK with SEC_TIC54X_BLOCK.
+       Replace SEC_SHARED with SEC_COFF_SHARED.
+       (styp_to_sec_flags): Likewise.
+
+       * elfxx-target.h (TARGET_BIG_SYM): Remove SEC_ARCH_BIT_0.
+       (TARGET_LITTLE_SYM): Likewise.
+
+       * section.c (SEC_ARCH_BIT_0): Removed.
+       (SEC_LINK_DUPLICATES_SAME_CONTENTS): Defined with
+       SEC_LINK_DUPLICATES_ONE_ONLY and SEC_LINK_DUPLICATES_SAME_SIZE.
+       (SEC_SHARED): Renamed to ...
+       (SEC_COFF_SHARED): This.
+       (SEC_BLOCK): Renamed to ...
+       (SEC_TIC54X_BLOCK): This.
+       (SEC_CLINK): Renamed to ...
+       (SEC_TIC54X_CLINK): This.
+       (SEC_XXX): Rearranged. Move SEC_COFF_SHARED_LIBRARY,
+       SEC_COFF_SHARED, SEC_TIC54X_BLOCK and SEC_TIC54X_CLINK to the
+       end.
+       * bfd-in2.h: Regenerated.
+
+2005-02-21  Fred Fish  <fnf@specifixinc.com>
+
+       * dwarf2.c (find_abstract_instance_name): Call recursively
+       to handle a DW_AT_specification.
+
+2005-02-21  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
+
+       * elfxx-mips.c (ecoff_swap_rpdr_out, mips_elf_output_extsym,
+       mips_elf_create_dynamic_relocation,
+       _bfd_mips_elf_size_dynamic_sections, _bfd_mips_elf_final_link):
+       Remove #if 0'd code.
+
+2005-02-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * Makefile.am: Run "make dep-am"
+       * Makefile.in: Regenerate.
+
+2005-02-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * coffgen.c (bfd_coff_get_comdat_section): Check that
+       coff_section_data isn't NULL.
+
+2005-02-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (bfd_elf_bfd_from_remote_memory): Warning fix.
+       * coff-m68k.c (bfd_m68k_coff_create_embedded_relocs): Likewise.
+       * coff-rs6000.c (xcoff_write_armap_big): Warning fixes.  Remove
+       useless assignments.
+       (xcoff_write_archive_contents_big): Likewise.
+       (_bfd_xcoff_put_ldsymbol_name): Likewise.
+       * coff64-rs6000.c (_bfd_xcoff64_put_ldsymbol_name): Likewise.
+       * coffgen.c (coff_write_symbols): Make "written" a bfd_vma.
+       * cofflink.c (process_embedded_commands): Warning fixes.
+       * cpu-arm.c: Delete unnecessary prototypes.  Convert to C90.
+       Warning fixes.
+       * dwarf2.c: Warning fixes.
+       * elf-bfd.h: Likewise.
+       * elf-eh-frame.c: Likewise.
+       * elf-strtab.c: Likewise.
+       * elf.c: Likewise.
+       * elf32-m68k.c: Likewise.
+       * elf32-ppc.c: Likewise.
+       * elf32-sh-symbian.c: Likewise.
+       * elf32-sh.c: Delete unnecessary prototypes.  Warning fixes.
+       * elf64-sh64.c: Likewise.
+       * peicode.h: Likewise.
+       * elf64-mmix.c: Warning fixes.
+       * elfcode.h: Likewise.
+       * elfxx-mips.c: Likewise.
+       * libbfd-in.h: Likewise.
+       * libbfd.c: Likewise.
+       * mach-o.c: Likewise.
+       * merge.c: Likewise.
+       * mmo.c: Likewise.
+       * opncls.c: Likewise.
+       * pef.c: Likewise.
+       * srec.c: Likewise.
+       * vms-hdr.c: Likewise.
+       * vms-tir.c: Likewise.
+       * xtensa-isa.c: Likewise.
+       * xtensa-modules.c: Likewise.
+       * xsym.c: Likewise.
+       (pstrcmp): Use correct choice of string lengths.  Fix return value.
+       (bfd_sym_module_name): Correct string length.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2005-02-17  Alexandre Oliva  <aoliva@redhat.com>
+
+       * elf32-frv.c (elf32_frv_relocate_section): Remove warning from
+       uninitialized check_segment[1] in TLSMOFF case.
+       Reported by Alan Modra.
+       (elf32_frv_relocate_section): Improve errors and warnings.
+
+2005-02-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Fix warning.
+
+2005-02-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * coff-arm.c (coff_arm_is_local_label_name): Warning fix.
+       * elf32-frv.c (frvfdpic_relocs_info_hash): Likewise.
+       * pef.c (bfd_pef_scan): Don't ignore return value of
+       bfd_pef_scan_start_address.
+       * mach-o.c (bfd_mach_o_scan): Don't ignore return value of
+       bfd_mach_o_scan_start_address.
+       * elfxx-ia64.c (elfNN_ia64_relax_brl): Rewrite for 32-bit bfd_vma.
+       * elfxx-mips.c: Remove unnecessary prototypes.
+       (sort_dynamic_relocs_64): Abort if not BFD64.
+
+2005-02-16  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (ppc64_elf_edit_toc): Skip toc if size is zero.
+       Skip toc reloc adjust if reloc_count is zero.
+
+2005-02-15  Nigel Stephens  <nigel@mips.com>
+           Maciej W. Rozycki  <macro@mips.com>
+
+       * elf32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16
+       reloc howtos.  Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and
+       R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
+       (elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel.
+       (elf_mips16_gprel_howto): Likewise.  Redefine src_mask and
+       dst_mask.
+       (mips16_gprel_reloc): Remove bit shuffling; call
+       _bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
+       and _bfd_mips16_elf_reloc_shuffle() instead.
+       (mips16_reloc_map): New reloc map for MIPS16 relocs.
+       (bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
+       relocs.
+       (mips_elf32_rtype_to_howto): Fetch MIPS16 howtos from
+       elf_mips16_howto_table_rel.
+       * elf64-mips.c (mips16_elf64_howto_table_rel): New array for
+       MIPS16 REL reloc howtos.  Add R_MIPS16_HI16 and R_MIPS16_LO16
+       relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
+       (elf_mips16_jump_howto): Move into mips16_elf64_howto_table_rel.
+       (elf_mips16_gprel_howto): Likewise.  Redefine src_mask and
+       dst_mask.
+       (mips16_elf64_howto_table_rela): New array for MIPS16 RELA
+       reloc howtos.  Add R_MIPS16_26, R_MIPS16_GPREL, R_MIPS16_HI16 and
+       R_MIPS16_LO16 relocs and R_MIPS16_GOT16 and R_MIPS16_CALL16
+       placeholders.
+       (mips16_gprel_reloc): Remove bit shuffling; call
+       _bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
+       and _bfd_mips16_elf_reloc_shuffle() instead.
+       (mips16_reloc_map): New reloc map for MIPS16 relocs.
+       (bfd_elf64_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
+       relocs.
+       (mips_elf64_rtype_to_howto): Fetch MIPS16 howtos from
+       mips16_elf64_howto_table_rela or mips16_elf64_howto_table_rel.
+       * elfn32-mips.c (elf_mips16_howto_table_rel): New array for MIPS16
+       REL reloc howtos.  Add R_MIPS16_HI16 and R_MIPS16_LO16 relocs and
+       R_MIPS16_GOT16 and R_MIPS16_CALL16 placeholders.
+       (elf_mips16_jump_howto): Move into elf_mips16_howto_table_rel.
+       (elf_mips16_gprel_howto): Likewise.  Redefine src_mask and
+       dst_mask.
+       (mips16_gprel_reloc): Remove bit shuffling; call
+       _bfd_mips16_elf_reloc_unshuffle(), _bfd_mips_elf_gprel16_with_gp()
+       and _bfd_mips16_elf_reloc_shuffle() instead.
+       (mips16_reloc_map): New reloc map for MIPS16 relocs.
+       (bfd_elf32_bfd_reloc_type_lookup): Use mips16_reloc_map for MIPS16
+       relocs.
+       (mips_elf_n32_rtype_to_howto): Fetch MIPS16 howtos from
+       elf_mips16_howto_table_rela or elf_mips16_howto_table_rel.
+       * elfxx-mips.c (_bfd_mips16_elf_reloc_unshuffle): New function to
+       handle bit shuffling for MIPS16 relocs.
+       (_bfd_mips16_elf_reloc_shuffle): Likewise.
+       (_bfd_mips_elf_lo16_reloc): Use _bfd_mips16_elf_reloc_unshuffle()
+       and _bfd_mips16_elf_reloc_shuffle().
+       (_bfd_mips_elf_generic_reloc): Likewise.
+       (mips_elf_calculate_relocation): Likewise.  Handle R_MIPS16_HI16
+       and R_MIPS16_LO16.
+       (mips_elf_obtain_contents): Remove bit shuffling.
+       (mips_elf_perform_relocation): Likewise; call
+       _bfd_mips16_elf_reloc_unshuffle() and _bfd_mips16_elf_reloc_shuffle()
+       instead.
+       (_bfd_mips_elf_relocate_section): Likewise.  Handle R_MIPS16_HI16
+       and R_MIPS16_LO16.
+       * elfxx-mips.h (_bfd_mips16_elf_reloc_unshuffle): Declare.
+       (_bfd_mips16_elf_reloc_shuffle): Likewise.
+       * reloc.c (BFD_RELOC_MIPS16_HI16): New reloc.
+       (BFD_RELOC_MIPS16_HI16_S): Likewise.
+       (BFD_RELOC_MIPS16_LO16): Likewise.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2005-02-15  Jan Beulich  <jbeulich@novell.com>
+
+       * elfxx-ia64.c (ia64_howto_table): Correct strings for
+       R_IA64_DTPMOD64[LM]SB.
+
+2005-02-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elfxx-ia64.c (elfNN_ia64_relax_section): Allow relax
+       backward branch in the same section.
+       (elfNN_ia64_relocate_section): Inform users that the input
+       section is too big to relax br instruction when overflow
+       happens to R_IA64_PCREL21B, R_IA64_PCREL21BI, R_IA64_PCREL21M
+       and R_IA64_PCREL21F.
+
 2005-02-14 Orjan Friberg <orjanf@axis.com>
 
        * elfcore.h (elf_core_file_p): Move the call to
This page took 0.035942 seconds and 4 git commands to generate.