+2011-12-19 Chung-Lin Tang <cltang@codesourcery.com>
+
+ * reloc.c (BFD_RELOC_MIPS16_TLS_GD,BFD_RELOC_MIPS16_TLS_LDM,
+ BFD_RELOC_MIPS16_TLS_DTPREL_HI16,BFD_RELOC_MIPS16_TLS_DTPREL_LO16,
+ BFD_RELOC_MIPS16_TLS_GOTTPREL,BFD_RELOC_MIPS16_TLS_TPREL_HI16,
+ BFD_RELOC_MIPS16_TLS_TPREL_LO16): New relocations for MIPS16 TLS.
+ * bfd-in2.h (bfd_reloc_code_real): Regenerate.
+ * libbfd.h (bfd_reloc_code_real_names): Regenerate.
+ * elf32-mips.c (elf_mips16_howto_table_rel): Add R_MIPS16_TLS_*
+ entries.
+ (mips16_reloc_map): Add BFD_RELOC_MIPS16_TLS_* to R_MIPS16_TLS_*
+ mappings.
+ * elfn32-mips.c (elf_mips16_howto_table_rel,
+ elf_mips16_howto_table_rela): Add R_MIPS16_TLS_* entries.
+ (mips16_reloc_map): Add BFD_RELOC_MIPS16_TLS_* to R_MIPS16_TLS_*
+ mappings.
+ * elf64-mips.c (mips16_elf64_howto_table_rel,
+ mips16_elf64_howto_table_rela): Add R_MIPS16_TLS_* entries.
+ (mips16_reloc_map): Add BFD_RELOC_MIPS16_TLS_* to R_MIPS16_TLS_*
+ mappings.
+ * elfxx-mips.c (TLS_RELOC_P,mips16_reloc_p,
+ _bfd_mips_elf_check_relocs): Add cases for R_MIPS16_TLS_* relocations.
+ (tls_gd_reloc_p): Add R_MIPS16_TLS_GD case.
+ (tls_ldm_reloc_p): Add R_MIPS16_TLS_LDM case.
+ (tls_gottprel_reloc_p): Add R_MIPS16_TLS_GOTTPREL case.
+ (mips_elf_calculate_relocation): Add cases for R_MIPS16_TLS_*,
+ R_MIPS_TLS_DTPREL32/64, and R_MIPS_TLS_TPREL32/64 relocations.
+
+2011-12-19 Chung-Lin Tang <cltang@codesourcery.com>
+ Catherine Moore <clm@codesourcery.com>
+ Sandra Loosemore <sandra@codesourcery.com>
+ Richard Sandiford <rdsandiford@googlemail.com>
+
+ * elfxx-mips.c (mips_elf_local_pic_function_p): Return true when
+ H is a MIPS16 function with a kept 32-bit stub. Update comments.
+ (mips_elf_get_la25_target): New function.
+ (mips_elf_add_la25_intro): Change to use mips_elf_get_la25_target().
+ (mips_elf_add_la25_stub): Move compute of use_trampoline_p down,
+ change to use mips_elf_get_la25_target().
+ (mips_elf_relocation_needs_la25_stub): Add target_is_16_bit_code_p
+ parameter, add switch case for R_MIPS16_26.
+ (mips_elf_calculate_relocation): Redirect relocation to point to the
+ LA25 stub if it exists, instead of the MIPS16 stub. Update arguments
+ of call to mips_elf_relocation_needs_la25_stub(), don't use la25 stub
+ for mips16->mips16 calls.
+ (_bfd_mips_elf_check_relocs): Update arguments of call to
+ mips_elf_relocation_needs_la25_stub().
+ (mips_elf_create_la25_stub): Change to use mips_elf_get_la25_target().
+
+2011-12-16 Shinichiro Hamaji <shinichiro.hamaji@gmail.com>
+
+ * mach-o-i386.c (TARGET_PRIORITY): Define as 0 (top priority)
+ * mach-o-target.c (TARGET_NAME): Use TARGET_PRIORITY
+ * mach-o-x86-64.c (TARGET_PRIORITY): Define as 0 (top priority)
+ * mach-o.c (bfd_mach_o_header_p): Remove special handling for
+ mach-o-i386.
+ (TARGET_PRIORITY) Set 1 for mach-o-be and mach-o-le, and set 0 for
+ mach-o-fat.
+
+2011-12-15 Kevin Buettner <kevinb@redhat.com>
+
+ * elf32-am33lin.c (elf32_am33lin_grok_prstatus): Add case
+ to correspond to a smaller ELF_NGREG defined by the kernel.
+
+2011-12-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf64-x86-64.c (ELF32_DYNAMIC_INTERPRETER): Set to
+ "/lib/ldx32.so.1".
+
+2011-12-15 Iain Sandoe <iains@gcc.gnu.org>
+
+ * mach-o.c (bfd_mach_o_mkobject_init): Initialize dyn_reloc_cache.
+ (bfd_mach_o_close_and_cleanup): Only cleanup Mach-O private data
+ for object files.
+
+2011-12-15 Shinichiro Hamaji <shinichiro.hamaji@gmail.com>
+
+ * mach-o.c (bfd_mach_o_canonicalize_reloc): Update relocation
+ table only when there isn't the cahce.
+ (bfd_mach_o_get_dynamic_reloc_upper_bound): Need one more space
+ for a pointer for the watchdog.
+ (bfd_mach_o_canonicalize_dynamic_reloc): Utilize cache like
+ bfd_mach_o_canonicalize_reloc.
+ (bfd_mach_o_close_and_cleanup): Call bfd_mach_o_free_cached_info.
+ (bfd_mach_o_free_cached_info): Free up cache data.
+ * mach-o.h (reloc_cache): A place to store cache of dynamic relocs.
+ (bfd_mach_o_free_cached_info): Add declaration.
+
+2011-12-15 Iain Sandoe <iains@gcc.gnu.org>
+
+ * mach-o-target.c (bfd_mach_o_bfd_set_private_flags): Use
+ bfd_mach_o_bfd_set_private_flags.
+ * mach-o.c (bfd_mach_o_bfd_set_private_flags): New.
+ * mach-o.h (bfd_mach_o_bfd_set_private_flags): Declare.
+
+2011-12-14 Nick Clifton <nickc@redhat.com>
+
+ PR ld/12451
+ * elfcode.h (elf_checksum_contents): Read in the section's
+ contents if they are not already available, and the section
+ actually has some contents.
+
+ * compress.c (bfd_get_full_section_contents): Use zmalloc to
+ allocate the buffers so that excess bytes are guaranteed to be
+ zero.
+
+2011-12-14 Iain Sandoe <iains@gcc.gnu.org>
+
+ * mach-o-i386.c (text_section_names_xlat): New table.
+ (data_section_names_xlat): Likewise.
+ (import_section_names_xlat): Likewise.
+ (mach_o_i386_segsec_names_xlat): Likewise.
+ (bfd_mach_o_tgt_seg_table): Use new tables.
+ * mach-o-x86-64.c (bfd_mach_o_tgt_seg_table): Set NULL.
+ * mach-o.c (mach_o_section_name_xlat, mach_o_segment_name_xlat):
+ Move to mach-o.h as typedefs.
+ (text_section_names_xlat): Update for current GCC usage.
+ (data_section_names_xlat): Likewise.
+ (dwarf_section_names_xlat): Likewise.
+ (objc_section_names_xlat): New table.
+ (segsec_names_xlat): Add objc table.
+ (bfd_mach_o_normalize_section_name): Replace with...
+ (bfd_mach_o_section_data_for_mach_sect): New.
+ (bfd_mach_o_section_data_for_bfd_name): New.
+ (bfd_mach_o_section_data_for_bfd_name): Update to use additional data.
+ (bfd_mach_o_convert_section_name_to_mach_o): Likewise.
+ (bfd_mach_o_bfd_copy_private_section_data): Implement.
+ (bfd_mach_o_write_symtab): Write a zero-length string as the first entry
+ for compatibility with system tools.
+ (bfd_mach_o_build_commands): Update section alignment info.
+ (bfd_mach_o_new_section_hook): Use translation table data to define
+ default section flags, type, attributes and alignment, when available.
+ (bfd_mach_o_init_section_from_mach_o): Add TODO comment.
+ (bfd_mach_o_section_type_name): Add 'symbol_stubs'.
+ (bfd_mach_o_section_attribute_name): Add 'self_modifying_code'.
+ (bfd_mach_o_get_section_type_from_name): Change "not-found" return
+ value.
+ (bfd_mach_o_tgt_seg_table): Set default NULL.
+ * mach-o.h (bfd_mach_o_segment_command): Use define for name length.
+ (bfd_mach_o_backend_data): Move until after contents are defined.
+ (bfd_mach_o_normalize_section_name): Remove.
+ (bfd_mach_o_convert_section_name_to_bfd): Declare.
+ (mach_o_section_name_xlat): Declare.
+ (mach_o_segment_name_xlat): Declare.
+ (bfd_mach_o_section_data_for_mach_sect): Declare.
+ (bfd_mach_o_section_data_for_bfd_name): Declare.
+
+2011-12-13 Shinichiro Hamaji <shinichiro.hamaji@gmail.com>
+
+ * dwarf2.c (bfd_dwarf2_cleanup_debug_info): Accept stash as an
+ argument like other functions to support formats other than ELF.
+ * elf-bfd.h (bfd_dwarf2_cleanup_debug_info): Move to bfd-in.h.
+ * elf.c (_bfd_elf_close_and_cleanup): Pass dwarf2_find_line_info
+ in tdata as a parameter.
+ * libbfd-in.h (bfd_dwarf2_cleanup_debug_info): Move from
+ elf-bfd.h.
+ * libbfd.h (bfd_dwarf2_cleanup_debug_info): Regenerate.
+ * mach-o-target.c (bfd_mach_o_close_and_cleanup): Remove the
+ fallback macro.
+ (bfd_mach_o_find_nearest_line): Likewise.
+ * mach-o.c (bfd_mach_o_find_nearest_line): Add the definition
+ which calls _bfd_dwarf2_find_nearest_line.
+ (bfd_mach_o_close_and_cleanup): Likewise.
+ * mach-o.h (mach_o_data_struct): Add dwarf2_find_line_info.
+ (bfd_mach_o_find_nearest_line): Add declaration.
+ (bfd_mach_o_close_and_cleanup): Add declaration.
+
+2011-12-13 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_read_symtab_symbols): Make global. Remove
+ prototype.
+ (bfd_mach_o_section_get_entry_size): Make global.
+ (bfd_mach_o_section_get_nbr_indirect): Likewise.
+ (bfd_mach_o_read_symtab_strtab): Likewise.
+ (struct bfd_mach_o_xlat_name): Move to mach-o.h
+ (bfd_mach_o_print_flags): Move to binutils/od-macho.c
+ (bfd_mach_o_get_name_of_null, bfd_mach_o_get_name): Likewise.
+ (bfd_mach_o_cpu_name, bfd_mach_o_filetype_name): Likewise.
+ (bfd_mach_o_header_flags_name): Likewise.
+ (bfd_mach_o_load_command_name): Likewise.
+ (bfd_mach_o_print_private_header): Likewise.
+ (bfd_mach_o_print_section_map, bfd_mach_o_print_section): Likwise.
+ (bfd_mach_o_print_segment, bfd_mach_o_print_dysymtab): Likewise.
+ (bfd_mach_o_print_dyld_info): Likewise.
+ (bfd_mach_o_print_private_bfd_data): Remove.
+ (bfd_mach_o_type_name): Make global.
+ (bfd_mach_o_section_attribute_name): Likewise.
+ * mach-o.h (bfd_mach_o_xlat_name): Added.
+ (bfd_mach_o_section_get_nbr_indirect)
+ (bfd_mach_o_section_get_entry_size)
+ (bfd_mach_o_read_symtab_symbols)
+ (bfd_mach_o_read_symtab_strtab)
+ (bfd_mach_o_section_attribute_name)
+ (bfd_mach_o_section_type_name): Likewise.
+ * mach-o-target.c (bfd_mach_o_bfd_print_private_bfd_data): Define.
+
+2011-12-13 Chung-Lin Tang <cltang@codesourcery.com>
+
+ * elfxx-mips.c (mips_elf_calculate_relocation): Correct
+ R_MIPS16_HI16/R_MIPS16_LO16 handling of two cleared lower bits,
+ update comments.
+
+2011-12-12 Iain Sandoe <iains@gcc.gnu.org>
+
+ * mach-o.c (bfd_mach_o_read_section_32): Null-terminate sectname.
+ (bfd_mach_o_read_section_64): Likewise.
+
+2011-12-11 John Davis Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR binutils/13476
+ * elf32-hppa.c (final_link_relocate): Convert R_PARISC_TLS_GD21L,
+ R_PARISC_TLS_LDM21L and R_PARISC_TLS_IE21L relocations to
+ R_PARISC_DPREL21L when not doing a shared link. Likewise convert
+ R_PARISC_TLS_GD14R, R_PARISC_TLS_LDM14R and R_PARISC_TLS_IE14R to
+ R_PARISC_DPREL14R. Handle R_PARISC_TLS_GD21L, R_PARISC_TLS_LDM21L
+ and R_PARISC_TLS_IE21L with R_PARISC_DLTIND21L.
+
+2011-12-10 David Daney <david.daney@cavium.com>
+
+ * elfxx-mips.c (mips_elf_link_hash_table.rld_value): Remove.
+ (mips_elf_link_hash_table.rld_symbol): New field;
+ (MIPS_ELF_RLD_MAP_SIZE): New macro.
+ (_bfd_mips_elf_add_symbol_hook): Remember __rld_obj_head symbol
+ in rld_symbol.
+ (_bfd_mips_elf_create_dynamic_sections): Remember __rld_map symbol
+ in rld_symbol.
+ (_bfd_mips_elf_size_dynamic_sections): Set correct size for .rld_map.
+ (_bfd_mips_elf_finish_dynamic_symbol): Remove .rld_map handling.
+ (_bfd_mips_elf_finish_dynamic_sections): Use rld_symbol to
+ calculate DT_MIPS_RLD_MAP value.
+ (_bfd_mips_elf_link_hash_table_create): Initialize rld_symbol,
+ quit initializing rld_value.
+
+2011-12-08 Andrew Pinski <apinski@cavium.com>
+ Adam Nemet <anemet@caviumnetworks.com>
+
+ * archures.c (bfd_mach_mips_octeon2): New macro
+ * bfd-in2.h: Regenerate.
+ * cpu-mips.c (I_mipsocteon2): New enum value.
+ (arch_info_struct): Add bfd_mach_mips_octeon2.
+ * elfxx-mips.c (_bfd_elf_mips_mach): Support E_MIPS_MACH_OCTEON2.
+ (mips_set_isa_flags): Add bfd_mach_mips_octeon2.
+ (mips_mach_extensions): Add bfd_mach_mips_octeon2.
+
+2011-12-07 Alan Modra <amodra@gmail.com>
+
+ PR ld/12772
+ * elflink.c (elf_gc_sweep_symbol): Discard unmarked symbols
+ defined in shared libraries.
+
+2011-12-07 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_canonicalize_symtab): Fix indentation.
+ Adjust the condition.
+ (bfd_mach_o_read_symtab_symbol): Now returns a bfd_boolean.
+ Adjust return statements.
+ (bfd_mach_o_read_symtab_strtab): Likewise.
+ (bfd_mach_o_read_symtab_symbols): Likewise.
+ (bfd_mach_o_scan_start_address): Likewise. Make it static.
+ (bfd_mach_o_scan): Likewise.
+ (bfd_mach_o_read_dysymtab_symbol): Remove unused function.
+ (bfd_mach_o_header_p): Adjust call.
+ (bfd_mach_o_cpu_name): Make it const.
+ (bfd_mach_o_filetype_name): Likewise.
+ (bfd_mach_o_header_flags_name): Likewise.
+ (bfd_mach_o_section_type_name): Likewise.
+ (bfd_mach_o_section_attribute_name): Likewise.
+ (bfd_mach_o_load_command_name): Likewise.
+ (bfd_mach_o_get_section_type_from_name): Add a const qualifier
+ after above change.
+ (bfd_mach_o_get_section_attribute_from_name): Likewise.
+ * mach-o.h (bfd_mach_o_read_dysymtab_symbol)
+ (bfd_mach_o_scan_start_address, bfd_mach_o_scan): Remove.
+
+2011-12-06 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * elf-bfd.h (elfcore_write_s390_last_break): Add prototype.
+ (elfcore_write_s390_system_call): Likewise.
+ * elf.c (elfcore_write_s390_last_break): New function.
+ (elfcore_write_s390_system_call): Likewise.
+ (elfcore_write_register_note): Call them.
+ (elfcore_grok_s390_last_break): New function.
+ (elfcore_grok_s390_system_call): Likewise.
+ (elfcore_grok_note): Call them.
+
+2011-12-05 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_read_symtab_symbol): Accept indirect symbols.
+
+2011-12-05 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_write_contents): Handle LC_LOAD_UPWARD_DYLIB.
+ (bfd_mach_o_read_dylib): Likewise.
+ (bfd_mach_o_read_command): Likewise.
+ (bfd_mach_o_bfd_print_private_bfd_data): Likewise.
+
+2011-12-05 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_read_command): Add the bfd in the error
+ message.
+ (bfd_mach_o_openr_next_archived_file): Use arch name as member name.
+ (bfd_mach_o_fat_extract): Ditto.
+
+2011-12-03 Alan Modra <amodra@gmail.com>
+
+ PR ld/13468
+ * elflink.c (bfd_elf_final_link): Don't segfault when checking
+ for DT_TEXTREL and .dynamic does not exist.
+
+2011-12-03 Alan Modra <amodra@gmail.com>
+
+ PR ld/13470
+ * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Revert substantive
+ change in 2011-07-01 commit. Comment.
+ * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
+
+2011-12-01 Mikael Pettersson <mikpe@it.uu.se>
+
+ * elf32-m68k.c (elf_m68k_check_relocs) <R_68K_8, R68K_16, R_68K_32>: For
+ non-SEC_ALLOC sections break before GOT and PLT accounting.
+
+2011-12-01 Hans-Peter Nilsson <hp@axis.com>
+
+ * elf32-cris.c (cris_elf_check_relocs) <plt accounting for
+ R_CRIS_8, R_CRIS_16, and R_CRIS_32>: Move early break for
+ non-SEC_ALLOC sections before GOT and PLT accounting.
+
+2011-11-29 Andrew Pinski <apinski@cavium.com>
+
+ * archures.c (bfd_mach_mips_octeonp): New macro.
+ * bfd-in2.h: Regenerate.
+ * bfd/cpu-mips.c (I_mipsocteonp): New enum value.
+ (arch_info_struct): Add bfd_mach_mips_octeonp.
+ * elfxx-mips.c (mips_set_isa_flags): Add bfd_mach_mips_octeonp.
+ (mips_mach_extensions): Add bfd_mach_mips_octeonp.
+
+2011-11-23 Tristan Gingold <gingold@adacore.com>
+
+ * vms-lib.c (get_idxlen): Add comments. Fix type in sizeof.
+ (vms_write_index): Add comments.
+
+2011-11-22 DJ Delorie <dj@redhat.com>
+
+ * elf32-rx.c (rx_elf_object_p): Add more checks for "scanning" to
+ avoid using the special non-swapping target when not explicitly
+ requested.
+
+2011-11-22 Daniel Calcoen <Daniel.Calcoen@cern.ch>
+
+ * elf32-rx.c (rx_elf_object_p): Correct typo: lma->vma.
+
+2011-11-22 Tristan Gingold <gingold@adacore.com>
+
+ * mach-o.c (bfd_mach_o_print_symbol): Display COM for common
+ symbols. Print section name in brackets.
+
+2011-11-21 Andreas Tobler <andreast@fgznet.ch>
+
+ * config.bfd: Add vectors for powerpc and powerpc64-freebsd.
+ * configure.in (TDEFINES): Add rules for powerpc*-freebsd.
+ * configure: Regenerate.
+ * elf32-ppc.c: Add powerpc-freebsd definitions.
+ * elf64-ppc.c: Add powerpc64-freebsd definitions.
+ * targets.c: Add bits for powerpc and powerpc64-freebsd.
+
+2011-11-17 Philipp Thomas <philipp@thogro.org>
+
+ * elf32-arm.c (elf32_thumb_to_arm_stub): Sync message so that it
+ needs to be translated only once.
+
+2011-11-16 Maciej W. Rozycki <macro@codesourcery.com>
+
+ * elf64-mips.c (mips_elf64_howto_table_rela): Set src_mask to
+ zero throughout.
+ (mips16_elf64_howto_table_rela): Likewise.
+ (micromips_elf64_howto_table_rela): Likewise.
+ * elfn32-mips.c (elf_mips_howto_table_rela): Likewise.
+ (elf_mips16_howto_table_rela): Likewise.
+ (elf_micromips_howto_table_rela): Likewise.
+
2011-11-15 Alan Modra <amodra@gmail.com>
Andreas Tobler <andreast@fgznet.ch>