2009-11-26 Per Øyvind Karlsen <peroyvind@mandriva.org>
[binutils-gdb.git] / bfd / ChangeLog
index ed8f2f2b45fc27b0388510631f97c6f44c091ca1..ce9ce06e667ab0f23eb25d6ba10f763760caec01 100644 (file)
@@ -1,3 +1,870 @@
+2009-11-26  Per Øyvind Karlsen <peroyvind@mandriva.org>
+
+       * plugin.c (bfd_plugin_bfd_copy_link_hash_symbol_type): Define.
+
+2009-11-24  Joel Brobecker  <brobecker@adacore.com>
+
+       * acinclude.m4: Add include of ../config/zlib.m4.
+       * configure.in: AM_ZLIB to check for zlib support.
+       * configure: Regenerate.
+
+2009-11-23  Paul Brook  <paul@codesourcery.com>
+
+       * libbfd-in.h (_bfd_generic_copy_link_hash_symbol_type): Add
+       prototype.
+       * elf-bfd.h (_bfd_elf_copy_link_hash_symbol_type): Add prototype.
+       * linker.c (_bfd_generic_copy_link_hash_symbol_type): New function.
+       * elflink.c (_bfd_elf_copy_link_hash_symbol_type): New function.
+       * targets.c (BFD_JUMP_TABLE_LINK, struct bfd_target): Add
+       _copy_link_hash_symbol_type.
+       * coff64-rs6000.c (rs6000coff64_vec, aix5coff64_vec): Add
+       _bfd_generic_copy_link_hash_symbol_type.
+       * coff-rs6000.c (rs6000coff_vec, pmac_xcoff_vec): Add
+       _bfd_generic_copy_link_hash_symbol_type.
+       * aout-adobe.c (aout_32_bfd_copy_link_hash_symbol_type): Define.
+       * aout-target.h (MY_bfd_copy_link_hash_symbol_type): Define.
+       * aout-tic30.c (MY_bfd_copy_link_hash_symbol_type): Define.
+       * binary.c (binary_bfd_copy_link_hash_symbol_type): Define.
+       * bout.c (b_out_bfd_copy_link_hash_symbol_type): Define.
+       * coffcode.h (coff_bfd_copy_link_hash_symbol_type): Define.
+       * elfxx-target.h (bfd_elfNN_bfd_copy_link_hash_symbol_type): Define.
+       * i386msdos.c (msdos_bfd_copy_link_hash_symbol_type): Define.
+       * i386os9k.c (os9k_bfd_copy_link_hash_symbol_type): Define.
+       * ieee.c (ieee_bfd_copy_link_hash_symbol_type): Define.
+       * ihex.c (ihex_bfd_copy_link_hash_symbol_type): Define.
+       * libecoff.h (_bfd_ecoff_bfd_copy_link_hash_symbol_type): Define.
+       * mach-o.c (bfd_mach_o_bfd_copy_link_hash_symbol_type): Define.
+       * mmo.c (mmo_bfd_copy_link_hash_symbol_type): Define.
+       * nlm-target.h (nlm_bfd_copy_link_hash_symbol_type): Define.
+       * oasys.c (oasys_bfd_copy_link_hash_symbol_type): Define.
+       * pef.c (bfd_pef_bfd_copy_link_hash_symbol_type): Define.
+       * ppcboot.c (ppcboot_bfd_copy_link_hash_symbol_type): Define.
+       * som.c (som_bfd_copy_link_hash_symbol_type): Define.
+       * srec.c (srec_bfd_copy_link_hash_symbol_type): Define.
+       * tekhex.c (tekhex_bfd_copy_link_hash_symbol_type): Define.
+       * versados.c (versados_bfd_copy_link_hash_symbol_type): Define.
+       * vms.c (vms_bfd_copy_link_hash_symbol_type): Define.
+       * xsym.c (bfd_sym_bfd_copy_link_hash_symbol_type): Define.
+       * bfd-in2.h: Regenerate.
+       * libbfd.h: Regenerate.
+
+2009-11-19  Tristan Gingold  <gingold@adacore.com>
+
+       * coff-rs6000.c (rs6000coff_vec): Use generic routines instead of
+       hard-coded casts.
+       (pmac_xcoff_vec): Ditto.
+       * coff64-rs6000.c (rs6000coff64_vec): Ditto.
+       (aix5coff64_vec): Ditto.
+
+2009-11-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfd-in.h (_bfd_elf_ppc_at_tls_transform): Declare.
+       * bfd-in2.h: Regenerate.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Move code for R_PPC64_TLS
+       insn optimisation to..
+       * elf32-ppc.c (_bfd_elf_ppc_at_tls_transform): ..here.  New function.
+       (ppc_elf_relocate_section): Use it.
+
+2009-11-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * targets.c: Don't include alloca-conf.h.
+       (bfd_get_target_info): Don't use alloca.
+
+2009-11-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/10955
+       * elfxx-ia64.c (elfNN_ia64_update_short_info): Also skip ABS
+       sections.
+
+2009-11-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/10955
+       * elfxx-ia64.c (elfNN_ia64_link_hash_table): Update comments.
+       (elfNN_ia64_update_short_info): Remove "->output_section" from
+       ia64_info->max_short_sec and ia64_info->min_short_sec.
+       (elfNN_ia64_choose_gp): Likewise.
+       (elfNN_ia64_relax_section): Pass tsec->output_section to
+       elfNN_ia64_update_short_info.
+
+2009-11-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/10955
+       * elfxx-ia64.c (elfNN_ia64_link_hash_table): Add max_short_sec,
+       max_short_offset, min_short_sec and min_short_offset.
+       (elfNN_ia64_update_short_info): New.
+       (elfNN_ia64_relax_section): Update max_short_sec,
+       max_short_offset, min_short_sec and min_short_offset.
+       (elfNN_ia64_choose_gp): Use min_short_sec/max_short_sec if
+       they are set.
+
+2009-11-17  Paul Brook  <paul@codesourcery.com>
+           Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (using_thumb_only, arch_has_arm_nop,
+       arch_has_thumb2_nop): Handle TAG_CPU_ARCH_V7E_M.
+       (tag_cpu_arch_combine): Ditto. Correct MAX_TAG_CPU_ARCH test.
+
+2009-11-17  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-spu.c (struct spu_link_hash_table): Remove overlay_fixed,
+       reserved, and extra_stack_space members.
+       (spu_elf_auto_overlay): Use auto_overlay_fixed, auto_overlay_reserved,
+       and extra_stack_space members of htab->params instead.
+
+2009-11-17  Tristan Gingold  <gingold@adacore.com>
+
+       * targets.c: Include alloca-conf.h
+
+2009-11-16  Kai Tietz  <kai.tietz@onevision.com>
+
+       * targets.c (bfd_get_target_info): New function.
+       (_bfd_find_arch_match): New function.
+       * bfd-in2.h: Regenerated.
+
+2009-11-12  Nick Clifton  <nickc@redhat.com>
+
+       * po/ru.po: Updates Russian translation.
+
+2009-11-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/id.po: Updated Indonesian translation.
+
+2009-11-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * configure.in: Call ACX_LARGEFILE.  Stop calling AC_PLUGINS,
+       AC_SYS_LARGEFILE and checking the Solaris largefile exception.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2009-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/10911
+       * elflink.c (elf_link_output_extsym): Don't return on
+       STT_GNU_IFUNC symbol when stripping.
+
+2009-11-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * elf32-hppa.c (elf32_hppa_final_link): Don't sort unwind information
+       in a relocatable link.
+       * elf64-hppa.c (elf_hppa_final_link): Likewise.
+
+2009-11-05  Nick Clifton  <nickc@redhat.com>
+
+       * elflink.c (elf_link_add_object_symbols): Improve error
+       message generated when a symbol is left unresolved because a
+       --no-add-needed command line option has prevented the
+       inclusion of the DSO defining it.
+
+2009-11-03  Alan Modra  <amodra@bigpond.net.au>
+           Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-spu.c (mark_functions_via_relocs): Handle non-branch relocs
+       (jump tables or other references to code labels) as well.
+
+2009-11-02  Paul Brook  <paul@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle VFPv4
+       attributes.
+
+2009-11-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (elf_link_add_object_symbols): Don't force debug
+       symbols local.
+
+2009-10-29  Johan Kristell  <johankri@axis.com>
+
+       * elf32-cris.c (cris_elf_plt_sym_val): New function.
+       (elf_backend_plt_sym_val): Define.
+
+2009-10-27  Kai Tietz  <kai.tietz@onevision.com>
+
+       * peXXigen.c (bfdver.h): Add include.
+       (LINKER_VERSION): Do calculation based on BFD_VERSION.
+
+2009-10-25  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * elf32-vax.c (elf_vax_relocate_section): Correct assertion.
+
+2009-10-25  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * elf32-vax.c (elf_vax_plt_entry): Fix formatting.
+
+2009-10-25  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * elf32-vax.c (elf_vax_relocate_section): Fix a typo.
+
+2009-10-23  Kai Tietz  <kai.tietz@onevision.com>
+
+       * coff-x86_64.c (coff_amd64_rtype_to_howto): Subtract offset
+       of R_AMD64_PCRLONG_<X> relocations from addend.
+
+2009-10-23  Alan Modra  <amodra@bigpond.net.au>
+
+       * plugin.c: Produce empty object if not BFD_SUPPORTS_PLUGINS.
+
+2009-10-20  Alan Modra  <amodra@bigpond.net.au>
+
+       PR binutils/10802
+       * opncls.c (_maybe_make_executable): Make DYNAMIC files executable.
+
+2009-10-19  Hans-Peter Nilsson  <hp@axis.com>
+
+       * elf32-cris.c (cris_elf_relocate_section) <case R_CRIS_32_DTPREL>:
+       Don't subtract the size of the TLS block for non-shared objects
+       from the relocation.
+
+2009-10-17  Arnold Metselaar  <arnold.metselaar@planet.nl>
+
+       * coff-z80.c (z80coff_vec): Allow sections to be of type
+       SEC_CODE or SEC_DATA
+
+2009-10-16  Alan Modra  <amodra@bigpond.net.au>
+
+       PR binutils/10785
+       * coff-alpha.c (alpha_ecoff_get_elt_at_filepos): Don't bfd_alloc
+       bim and bim->buffer.  bfd_malloc instead.
+       * peicode.h (pe_ILF_build_a_bfd): Similarly.
+       (ILF_DATA_SIZE): Don't include bim.
+       * opncls.c (bfd_close): Test bim->buffer non-NULL before freeing.
+
+2009-10-14  Alan Modra  <amodra@bigpond.net.au>
+
+       * aoutx.h (aout_link_check_ar_symbols): Typo fix.
+
+2009-10-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR binutils/10763
+       * elf32-i386.c (elf_i386_finish_dynamic_symbol): Declare plt
+       earlier.
+
+2009-10-13  Alan Modra  <amodra@bigpond.net.au>
+
+       * elflink.c (_bfd_elf_merge_symbol): Revert previous patch.
+
+2009-10-12  Roland McGrath  <roland@frob.com>
+
+       * elflink.c (elf_link_add_object_symbols, _bfd_elf_merge_symbol):
+       Fix %s that should be %B in several message formats.
+
+2009-10-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * cofflink.c (_bfd_coff_link_input_bfd): Skip section symbols for
+       excluded output sections.
+
+2009-10-09  Tristan Gingold  <gingold@adacore.com>
+
+       * mach-o.c (bfd_mach_o_read_command): Handle BFD_MACH_O_LC_RPATH.
+       (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
+
+2009-10-09  Tristan Gingold  <gingold@adacore.com>
+
+       * mach-o.c (bfd_mach_o_scan_read_symtab_symbols): Rename to
+       bfd_mach_o_read_symtab_symbols.
+       (bfd_mach_o_scan_write_thread): Rename to bfd_mach_o_write_thread.
+       (bfd_mach_o_scan_write_relocs): Rename to bfd_mach_o_write_relocs.
+       (bfd_mach_o_scan_write_section_32): Rename to
+       bfd_mach_o_write_section_32.
+       (bfd_mach_o_scan_write_section_64): Rename to
+       bfd_mach_o_write_section_64.
+       (bfd_mach_o_scan_write_segment_32): Rename to
+       bfd_mach_o_write_segment_32.
+       (bfd_mach_o_scan_write_segment_64): Rename to
+       bfd_mach_o_write_segment_64.
+       (bfd_mach_o_scan_write_symtab): Rename to bfd_mach_o_write_symtab.
+       (bfd_mach_o_scan_read_section_32): Rename to
+       bfd_mach_o_read_section_32.
+       (bfd_mach_o_scan_read_section_64): Rename to
+       bfd_mach_o_read_section_64.
+       (bfd_mach_o_scan_read_section): Rename to bfd_mach_o_read_section.
+       (bfd_mach_o_scan_read_symtab_strtab): Rename to
+       bfd_mach_o_read_symtab_strtab.
+       (bfd_mach_o_scan_read_symtab_symbol): Rename to
+       bfd_mach_o_read_symtab_symbol.
+       (bfd_mach_o_scan_read_dysymtab_symbol): Rename to
+       bfd_mach_o_read_dysymtab_symbol.
+       (bfd_mach_o_scan_read_dylinker): Rename to bfd_mach_o_read_dylinker.
+       (bfd_mach_o_scan_read_dylib): Rename to bfd_mach_o_read_dylib.
+       (bfd_mach_o_scan_read_prebound_dylib): Rename to
+       bfd_mach_o_read_prebound_dylib.
+       (bfd_mach_o_scan_read_thread): Rename to bfd_mach_o_read_thread.
+       (bfd_mach_o_scan_read_dysymtab): Rename to bfd_mach_o_read_dysymtab.
+       (bfd_mach_o_scan_read_symtab): Rename to bfd_mach_o_read_symtab.
+       (bfd_mach_o_scan_read_uuid): Rename to bfd_mach_o_read_uuid.
+       (bfd_mach_o_scan_read_linkedit): Rename to bfd_mach_o_read_linkedit.
+       (bfd_mach_o_scan_read_str): Rename to bfd_mach_o_read_str.
+       (bfd_mach_o_scan_read_dyld_info): Rename to bfd_mach_o_read_dyld_info.
+       (bfd_mach_o_scan_read_segment): Rename to bfd_mach_o_read_segment.
+       (bfd_mach_o_scan_read_segment_32): Rename to
+       bfd_mach_o_read_segment_32.
+       (bfd_mach_o_scan_read_segment_64): Rename to
+       bfd_mach_o_read_segment_64.
+       (bfd_mach_o_scan_read_command): Rename to bfd_mach_o_read_command.
+       * mach-o.h (bfd_mach_o_scan_read_dysymtab_symbol): Rename to
+       bfd_mach_o_read_dysymtab_symbol.
+
+2009-10-09  Tristan Gingold  <gingold@adacore.com>
+
+       * mach-o.c (bfd_mach_o_section_get_entry_size): Moved.
+       (bfd_mach_o_section_get_nbr_indirect): Ditto.
+       (bfd_mach_o_get_synthetic_symtab): New function.
+       (bfd_mach_o_print_private_header): Print the number of commands
+       in decimal.
+       * mach-o.h (bfd_mach_o_get_synthetic_symtab): Add prototype.
+       * mach-o-target.c: Do not defined bfd_mach_o_get_synthetic_symtab.
+
+2009-10-08  Tristan Gingold  <gingold@adacore.com>
+
+       * config.bfd: Add bfd_mach_o_i386_vec in x86_64-darwin targ_selvecs.
+
+2009-10-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * bfd-in2.h: Regenerated.
+
+2009-10-02  Alan Modra  <amodra@bigpond.net.au>
+
+       * aout-cris.c (N_SHARED_LIB): Don't define.
+       * hp300bsd.c (N_SHARED_LIB): Don't define.
+       * i386bsd.c (N_SHARED_LIB): Don't define.
+       * i386linux.c (N_SHARED_LIB): Don't define.
+       * i386lynx.c (N_SHARED_LIB): Don't define.
+       * m68klinux.c (N_SHARED_LIB): Don't define.
+       * m88kmach3.c (N_SHARED_LIB): Don't define.
+       * mipsbsd.c (N_SHARED_LIB): Don't define.
+       * newsos3.c (N_SHARED_LIB): Don't define.
+       * pc532-mach.c (N_SHARED_LIB): Don't define.
+       * pdp11.c (N_SHARED_LIB): Don't define.
+       * sparclinux.c (N_SHARED_LIB): Don't define.
+       * vaxbsd.c (N_SHARED_LIB): Don't define.
+
+2009-10-01  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * cofflink.c (_bfd_coff_generic_relocate_section): Look for the aux
+       symbol for a weak undef in the auxbfd, not the input bfd.
+
+2009-10-01  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * elf32-spu.c (spu_elf_auto_overlay): Insert icache linker script
+       after .toe instead of before .text section.  Set the LMA of all
+       overlay sections to their icache IA address.
+       (spu_elf_find_overlays): Determine icache set id without reference
+       to the LMA.
+
+2009-09-30  Tristan Gingold  <gingold@adacore.com>
+
+       * configure.com: Use hosts/alphavms.h on both alpha and ia64 VMS.
+
+2009-09-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf64_x86_64_append_rela): New.
+       (elf64_x86_64_relocate_section): Use it.
+       (elf64_x86_64_finish_dynamic_symbol): Likewise.
+
+2009-09-29  DJ Delorie  <dj@redhat.com>
+
+       * Makefile.am (ALL_MACHINES): Add cpu-rx.lo.
+       (ALL_MACHINES_CFILES): Add cpu-rx.c.
+       (BFD32_BACKENDS): Add elf32-rx.lo.
+       (BFD32_BACKENDS_CFILES): Add elf32-rx.c.
+       * archures.c (bfd_architecture): Add bfd_arch_rx and bfd_mach_rx.
+       Export bfd_rx_arch.
+       (bfd_archures_list): Add bfd_rx_arch.
+       * config.bfd: Add entry for rx-*-elf.
+       * configure.in: Add entries for bfd_elf32_rx_le_vec and
+       bfd_elf32_rx_be_vec.
+       * reloc.c: Add RX relocations.
+       * targets.c: Add RX target vectors.
+       * Makefile.in: Regenerate.
+       * bfd-in2.h: Regenerate.
+       * configure: Regenerate.
+       * libbfd.h: Regenerate.
+       * cpu-rx.c: New file.
+       * elf32-rx.c: New file.
+
+2009-09-29 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+       * elf32-cr16.c (elf32_cr16_relocate_section): Removed
+       info->relocatable to fix the ld/testsuites/ld-elf/linkonce1 test case.
+
+2009-09-28  Nick Clifton  <nickc@redhat.com>
+
+       PR 10478: Accepting Solaris binaries.
+       * elf.c (bfd_section_from_shdr): Allow SHN_BEFORE and SHN_AFTER
+       section link values in x86 binaries.
+       * elfcode.h (elf_object_p): Likewise.
+
+2009-09-28  Philippe De Muyter  <phdm@macqel.be>
+
+       * elf32-m68k.c (elf_m68k_final_write_processing): New function.
+       (elf_backend_final_write_processing): Macro defined as above function.
+
+2009-09-25  Martin Thuresson  <martint@google.com>
+
+       Update sources to make alpha and arm targets compile cleanly with
+       -Wc++-compat:
+       * ecoff.c: Add casts.
+       * ecofflink.c: Add casts.
+       * elf64-alpha.c: Add casts.
+       (struct alpha_elf_got_entry, struct alpha_elf_reloc_entry): Move
+       to top level.
+       (SKIP_HOWTO): Use enum name.
+       * elf32-arm.c: Add casts.
+       (elf32_arm_vxworks_bed): Update code to avoid multiple
+       declarations.
+       (struct map_stub): Move to top level.
+
+2009-09-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR ld/10630
+       * elflink.c (elf_link_output_extsym): Turn off visibility on
+       local symbol.
+       (bfd_elf_final_link): Turn off visibility on dynamic local
+       symbol.
+
+2009-09-24  Alan Modra  <amodra@bigpond.net.au>
+
+       PR binutils/10654
+       * dwarf2.c (lookup_address_in_line_info_table): Remove workaround
+       for invalid location lists generated by gcc-2.95 and Intel 6.0 C++.
+       Remove "function" parm, adjust caller.
+
+2009-09-23  Matt Rice  <ratmice@gmail.com>
+
+       * bfd-in.h (bfd_elf_size_dynamic_sections): Add audit and depaudit
+       arguments.
+       * elflink.c (bfd_elf_size_dynamic_sections): Generate DT_AUDIT,
+       DT_DEPAUDIT from audit/depaudit arguments.
+       (elf_finalize_dynstr): Finalize DT_AUDIT and DT_DEPAUDIT strtab entries.
+       (elf_link_add_object_symbols): Set dt_audit target data when finding a
+       DT_AUDIT.
+       * bfd-in2.h: Regenerate.
+       * bfd-elf.h: Add dt_audit to elf_obj_tdata, and elf_dt_audit macro.
+
+2009-09-23  Jie Zhang  <jie.zhang@analog.com>
+
+       * elf32-bfin.c (_bfinfdpic_size_got_plt): Make sure empty
+       .rel.plt and .plt sections are removed.
+       (elf32_bfinfdpic_size_dynamic_sections): Remove empty .dynbss
+       section.  Remove the duplicated removing of empty .rel.plt
+       section.
+
+2009-09-21  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Extend previous
+       patch to handle the new personality relaxation.
+
+2009-09-21  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf-eh-frame.c (make_pc_relative): New function.
+       (_bfd_elf_write_section_eh_frame): Use it.
+
+2009-09-21  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-ppc.c (TLS_GET_ADDR_GLINK_SIZE): Define.
+       (ADD_3_12_2, BEQLR, CMPWI_11_0, LWZ_11_3, LWZ_12_3): Define.
+       (MR_0_3, MR_3_0): Define.
+       (struct ppc_elf_link_hash_table): Add no_tls_get_addr_opt.
+       (ppc_elf_select_plt_layout): Save emit_stub_syms param earlier.
+       (ppc_elf_tls_setup): Add no_tls_get_addr_opt param and save to hash
+       table.  Check for presense of __tls_get_addr_opt
+       (allocate_dynrelocs): Increase glink entry size for __tls_get_addr.
+       (ppc_elf_size_dynamic_sections): Add DT_PPC_TLS_OPT tag.
+       (write_glink_stub): Add param p.
+       (ppc_elf_relocate_section): Adjust write_glink_stub call.
+       (ppc_elf_finish_dynamic_symbol): Emit special glink call stub for
+       __tls_get_addr.
+       * elf32-ppc.h (ppc_elf_tls_setup): Update prototype.
+       * elf64-ppc.c (struct ppc_link_hash_table): Add no_tls_get_addr_opt.
+       (ppc64_elf_tls_setup): Add no_tls_get_addr_opt param and save to hash
+       table.  Check for presense of __tls_get_addr_opt.
+       (ppc64_elf_size_dynamic_sections): Add DT_PPC64_TLS_OPT tag.
+       (LD_R11_0R3, LD_R12_0R3, MR_R0_R3, CMPDI_R11_0, ADD_R3_R12_R13,
+       BEQLR, MR_R3_R0, MFLR_R11, STD_R11_0R1, BCTRL, LD_R11_0R1,
+       LD_R2_0R1, MTLR_R11): Define.
+       (build_tls_get_addr_stub): New function.
+       (ppc_build_one_stub): Call it.
+       (ppc_size_one_stub): Add extra size for __tls_get_addr stub.
+       (ppc64_elf_relocate_section): Don't change nop to ld 2,40(1) for
+       __tls_get_addr plt call.
+       * elf64-ppc.h (ppc64_elf_tls_setup): Update prototype.
+
+2009-09-19  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * elf-bfd.h (eh_cie_fde): Add personality_offset and
+       make_per_encoding_relative to the CIE structure.  Add a padding field.
+       * elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Use 0x70
+       rather than 0xf0 when masking out the base address encoding
+       Record the offset of personality data from the start of the CIE.
+       Remove a repeated elf_backend_can_make_relative_eh_frame check.
+       (find_merged_cie): Take an info argument.  If the personality
+       binds locally, try converting an absolute personality into
+       a local one.
+       (_bfd_elf_discard_section_eh_frame): Use 0x70 rather than 0xf0
+       when masking out the base address encoding.  Update the call to
+       find_merged_cie.
+       (_bfd_elf_eh_frame_section_offset): Discard relocations against
+       the personality data if we are converting into PC-relative form.
+       (_bfd_elf_write_section_eh_frame): Use 0x70 rather than 0xf0
+       when masking out the base address encoding.  Handle
+       make_per_encoding_relative.
+
+2009-09-18  Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/10406
+       * elf32-ppc.c (ppc_elf_howto_raw): Make R_PPC_EMB_SDAI16 and
+       R_PPC_EMB_SDA2I16 complain_overflow_signed.
+       (create_sdata_sym): Pass info rather than htab.
+       Update all callers.  Ensure symbols are hidden.
+       (ppc_elf_check_relocs): Allow SDAREL16 when shared.
+       (ppc_elf_size_dynamic_sections): When shared, equate _SDA_BASE_ to
+       _GLOBAL_OFFSET_TABLE_.
+       (elf_finish_pointer_linker_section): Don't assume that sdata base
+       symbol is always at 0x8000 offset.  Don't subtract the addend here.
+       (is_static_defined): New function.
+       (ppc_elf_relocate_section): Verify symbol base used in SDA relocs
+       is statically defined.  Clear addend for EMB_SDAI16 and EMB_SDA2I16
+       relocs.  Downgrade error on unexpected section for EMB_SDA2REL
+       reloc symbols to a warning.
+
+2009-09-18  Nick Clifton  <nickc@redhat.com>
+
+       * po/es.po: Updated Spanish translation.
+       * po/vi.po: Updated Vietnamese translation.
+
+2009-09-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf64-ppc.c (follow_link, elf_follow_link, ppc_follow_link): New
+       functions.  Use throughout.
+       (ppc64_elf_copy_indirect_symbol): Set direct symbol "oh" field
+       from indirect symbol.
+       (lookup_fdh): Rename from get_fdh.  Follow indirect sym links.
+       (add_symbol_adjust): Simplify.
+       (defined_code_entry, defined_func_desc): New functions.
+       (ppc64_elf_gc_keep): Follow indirect sym links.  Use defined_code_entry.
+       (ppc64_elf_gc_mark_dynamic_ref): Use defined_func_desc and
+       defined_code_entry to follow indirect sym links.
+       (ppc64_elf_gc_mark_hook, func_desc_adjust): Likewise.
+       (ppc_type_of_stub): Follow indirect sym links.
+       (toc_adjusting_stub_needed): Likewise.
+       (ppc_build_one_stub): Likewise.  Make undefined dot-symbols weak
+       rather than defining them at stub.
+       (ppc64_elf_relocate_section): Rewrite call test to avoid multiple
+       assignments in test.
+
+2009-09-16  Tristan Gingold  <gingold@adacore.com>
+
+       * mach-o.h (bfd_mach_o_filetype): Add new constants from darwin10.
+       Reindent.
+       * mach-o.c (bfd_mach_o_cpu_name): Reindent.
+       (bfd_mach_o_filetype_name): Complete with new constants.  Reindent.
+       (bfd_mach_o_print_private_header): Use fputs instead of fprintf
+       when possible to avoid warnings.
+       (bfd_mach_o_print_section_map): Ditto.
+       (bfd_mach_o_section_get_entry_size): New function.
+       (bfd_mach_o_section_get_nbr_indirect): Simplify using the newly
+       added function.
+       (bfd_mach_o_print_dysymtab): Print address of indirect symbols.
+
+2009-09-14  Nick Clifton  <nickc@redhat.com>
+
+       * po/fi.po: Updated Finnish translation.
+
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/bfd.pot: Updated by the Translation project.
+
+2009-09-11  Philippe De Muyter  <phdm@macqel.be>
+
+       * binary.c (binary_object_p): Remove bfd_external_binary_architecture
+       hack.  objcopy `-B' (`--binary-architecture') option is now handled
+       in a generic way.
+
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * rs6000-core.c (read_hdr): Fix typo in recent C++ compatibility
+       changes.
+
+2009-09-11  Jie Zhang  <jie.zhang@analog.com>
+
+       * elf32-bfin.c (bfinfdpic_relocs_info_find): Just return
+       NULL if `ht' is NULL.
+
+2009-09-09  Martin Thuresson  <martin@mtme.org>
+
+       Update sources to compile cleanly with -Wc++-compat:
+       * aoutx.h: Add casts.
+       * archive.c: Add casts.
+       * archive64.c: Add casts.
+       * archures.c: Add casts.
+       * bfd-in2.h: Regenerated.
+       * bfd.c: Add casts. (enum bfd_direction): Move out to top level.
+       * bfdio.c: Add casts.
+       * binary.c: Add casts.
+       * cache.c (cache_bseek,cache_bread_1,cache_bwrite): Updated
+       parameter to use enum value instead of int.
+       * coffcode.h: Add casts.
+       * coffgen.c: Add casts.
+       * cofflink.c: Add casts.
+       * compress.c: Add casts.
+       * dwarf1.c: Add casts.
+       * dwarf2.c: Add casts. (struct dwarf2_debug): Rename member bfd to
+       bfd_ptr. Update code to use new name.
+       * elf-attrs.c: Add casts.
+       * elf-bfd.h (elf_link_virtual_table_entry): Gives name to
+       anonymous struct. (union gotplt_union, struct
+       elf_link_virtual_table_entry): Move to top level.
+       * elf-eh-frame.c: Add casts.
+       * elf-strtab.c: Add casts.
+       * elf.c: Add casts. (_bfd_elm_make_Section_from_phdr): Change
+       argument name from typename to type_name.
+       * elf32-i386.c: Add casts.
+       * elf64-x86-64.c: Add casts.
+       * elfcode.h: Add casts.
+       * elfcore.h: Add casts.
+       * elflink.c: Add casts.
+       * format.c: Add casts.
+       * hash.c: Add casts.
+       * ihex.c: Add casts.
+       * libaout.h (enum aout_subformat, enum aout_magic): Move to top
+       level.
+       * libbfd.c: Add casts.
+       * linker.c: Add casts.
+       * merge.c: Add casts.
+       * opncls.c: Add casts.
+       * peXXigen.c: Add casts.
+       * peicode.h: Add casts.
+       * reloc.c: Add casts.
+       * section.c: Add casts.
+       * simple.c: Add casts.
+       * srec.c: Add casts.
+       * stabs.c: Add casts.
+       * syms.c: Add casts.
+       * targets.c: Add casts.
+       * tekhex.c: Add casts.
+       * verilog.c: Add casts.
+
+2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure: Regenerate.
+
+2009-09-09  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_final_link_relocate): Set sym_flags
+       for the mode of target PLT entries.
+       (allocate_dynrelocs): Only adjust symbol type if setting its
+       value.
+
+2009-09-09  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure: Regenerate.
+
+2009-09-09  Nick Clifton  <nickc@redhat.com>
+
+       PR 10478:
+       * elf.c (bfd_section_from_shdr): Do not reject sparc binaries with
+       section headers containing sh_link values of SHN_BEFORE or
+       SHN_AFTER.
+       * elfcode.h (elf_object_p): Likewise.
+
+2009-09-09  Tristan Gingold  <gingold@adacore.com>
+
+       Handle DYLD_INFO introduced by Darwin10.
+       * mach-o.h (bfd_mach_o_load_command_type): Add
+       BFD_MACH_O_LC_DYLD_INFO.
+       (bfd_mach_o_dyld_info_command): New type.
+       (bfd_mach_o_load_command): Add dyld_info field.
+       * mach-o.c (bfd_mach_o_scan_read_str): Reduce size of buf.
+       (bfd_mach_o_scan_read_dyld_info): New function.
+       (bfd_mach_o_scan_read_command): Handle BFD_MACH_O_LC_DYLD_INFO.
+       (bfd_mach_o_bfd_print_private_bfd_data): Ditto.
+       (bfd_mach_o_load_command_name): AddB FD_MACH_O_LC_DYLD_INFO.
+       (bfd_mach_o_print_dyld_info): New function.
+
+2009-09-09  M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+       * elf32-cr16.c (elf32_cr16_relocate_section): Add code to discard the
+       linkonce or linker script discarded section.
+
+2009-09-09  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-xtensa.c (elf_xtensa_relax_section): Delete -r check.
+
+2009-09-07  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * elf32-m68k.c (rtype_to_howto): If the reloc index is out of
+       range call the bfd error hander and use R_68K_NONE instead.
+
+2009-09-07  Tristan Gingold  <gingold@adacore.com>
+
+       * po/SRC-POTFILES.in: Regenerate.
+       * po/bfd.pot: Regenerate.
+
+       * bfd.m4 (BFD_HAVE_TIME_TYPE_MEMBER,
+       BFD_HAVE_SYS_STAT_TYPE_MEMBER): Moved to gas/acinclude.m4
+       * configure.in: Move tests for tm_gmtoff, st_mtim.tv_sec and
+       st_mtim.tv_nsec to gas/configure.in
+       (bfd_elf64_ia64_vms_vec): Remove vmsutil.lo
+       * configure: Regenerate.
+       * config.in: Regenerate.
+       * vmsutil.c: Moved to gas/config/te-vms.c
+       * vmsutil.h: Removed.
+       * Makefile.am (BFD32_BACKENDS_CFILES): Remove vmsutil.c
+       (BFD32_BACKENDS): Remove vmsutil.lo
+       * Makefile.in: Regenerate.
+
+2009-09-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * coffcode.h: Include libiberty.h.
+
+2009-09-05  Martin Thuresson  <martin@mtme.org>
+
+       * coff-arm.c (coff_arm_relocate_section)
+       (record_thumb_to_arm_glue, bfd_arm_process_before_allocation):
+       Change member name class to symbol_class.
+       * coff-i960.c (coff_i960_relocate_section) Rename variable
+       class to class_val. Change member name class to symbol_class.
+       * coff-rs6000.c (_bfd_xcoff_swap_aux_in)
+       (_bfd_xcoff_swap_aux_out): Rename arguments class to in_class.
+       * coff-stgo32.c (adjust_aux_in_post)
+       (adjust_aux_out_pre, adjust_aux_out_post): Rename arguments class
+       to in_class.
+       * coff64-rs6000.c (_bfd_xcoff64_swap_aux_in)
+       (_bfd_xcoff64_swap_aux_out): Rename arguments class to in_class.
+       * coffcode.h (coff_pointerize_aux_hook): Rename variable class
+       to n_sclass.
+       * coffgen.c (coff_write_symbol, coff_pointerize_aux): Rename
+       variables named class to n_sclass. (coff_write_symbols): Rename
+       variable class to sym_class. (bfd_coff_set_symbol_class): Rename
+       argument class to symbol_class.
+       * cofflink.c (_bfd_coff_link_hash_newfunc)
+       (coff_link_add_symbols, _bfd_coff_link_input_bfd)
+       (_bfd_coff_write_global_sym, _bfd_coff_generic_relocate_section):
+       Update code to use renamed members.
+       * coffswap.h (coff_swap_aux_in, coff_swap_aux_out): Rename
+       argument class to in_class.
+       * libcoff-in.h (struct coff_link_hash_entry, struct
+       coff_debug_merge_type) Renamed members class to symbol_class and
+       type_class.
+       * libcoff.h Regenerated.
+       * peXXigen.c: (_bfd_XXi_swap_aux_in, _bfd_XXi_swap_aux_out):
+       Rename argument class to in_class.
+       * pef.c (bfd_pef_parse_imported_symbol): Update code to use
+       renamed members.
+       * pef.h (struct bfd_pef_imported_symbol): Changed name of
+       member class to symbol_class.
+
+2009-09-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure: Regenerated.
+
+2009-09-04  Tristan Gingold  <gingold@adacore.com>
+
+       * configure.in: Bump version to 2.20.51
+
+2009-09-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-spu.c (spu_elf_relocate_section): Correct 2009-07-24 logic.
+
+2009-09-04  Jie Zhang  <jie.zhang@analog.com>
+
+       * elf32-bfin.c (elf32_bfinfdpic_create_dynamic_sections): Always
+       create .rela.bss.
+       (elf32_bfinfdpic_size_dynamic_sections): Set SEC_EXCLUDE flag
+       for empty .rela.bss and .rel.plt sections.
+
+2009-09-03  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * elfxx-mips.c (mips_elf_calculate_relocation): Don't relocate
+       R_MIPS_JALR unless symbol resolves locally.
+
+2009-09-03  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * elfxx-mips.c (_bfd_mips_elf_check_relocs): Don't set
+       has_static_relocs for R_MIPS_JALR.
+
+2009-09-03  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * elf64-mips.c (mips_elf64_howto_table_rela): Add support for
+       R_MIPS_TLS_DTPMOD64 and R_MIPS_TLS_TPREL64, replacing the
+       respective stubs.
+
+2009-09-01  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Declare
+       plt earlier.
+
+2009-09-01  Tristan Gingold  <gingold@adacore.com>
+
+       * makefile.vms: Ported to Itanium VMS.  Remove useless variable and
+       dependencies.  Reindent.
+       * configure.com: Ported to Itanium VMS.  Now generates a build.com
+       to build without make.  Add messages but make edit silent.
+       * hosts/alphavms.h: Add a prototype for stpcpy.
+       * vms.c: Add a missing include for Alpha VMS.
+       * elfxx-ia64.c (ELF_OSABI): Define for OpenVMS.
+
+2009-08-31  Jan Beulich  <jbeulich@novell.com>
+
+       * elf-bfd.h (bfd_elf_get_default_section_type): Declare.
+       * elf.c (bfd_elf_get_default_section_type): New.
+       (elf_fake_sections): Use bfd_elf_get_default_section_type.
+
+2009-08-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_finish_dynamic_symbol): Revert the
+       accidental checkin.
+       * elf64-x86-64.c (elf64_x86_64_finish_dynamic_symbol): Likwise.
+
+2009-08-30  Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/10569
+       * bfd.c (bfd_emul_get_maxpagesize): Don't abort.
+       (bfd_emul_get_commonpagesize): Likewise.
+
+2009-08-29  Martin Thuresson  <martin@mtme.org>
+
+       * elf32-arm.c (struct stub_def): Rename member template to
+       template_sequence. (arm_build_one_stub,
+       find_stub_size_and_template, arm_size_one_stub, arm_map_one_stub):
+       Rename variable template to template_sequence.
+       * elfxx-ia64.c (elfNN_ia64_relax_br, elfNN_ia64_relax_brl):
+       Rename variable template to template_val.
+       * aoutx.h (NAME (aout, make_empty_symbol)): Rename variable
+       new to new_symbol.
+       * coffgen.c (coff_make_empty_symbol)
+       (coff_bfd_make_debug_symbol): Rename variable new to new_symbol.
+       * cpu-ia64-opc.c (ext_reg, ins_imms_scaled): Rename variable
+       new to new_insn.
+       * ecoff.c (_bfd_ecoff_make_empty_symbol): Rename variable new
+       to new_symbol.
+       * elf32-m68k.c (elf_m68k_get_got_entry_type): Rename argument
+       new to new_reloc.
+       * hash.c (bfd_hash_lookup): Rename variable new to new_string.
+       * ieee.c (ieee_make_empty_symbol): Rename variable new to
+       new_symbol.
+       * linker.c (bfd_new_link_order): Rename variable new to
+       new_lo.
+       * mach-o.c (bfd_mach_o_sizeof_headers): Rename variable new to
+       symbol.
+       * oasys.c (oasys_make_empty_symbol): Rename variable new to
+       new_symbol_type.
+       * pdp11.c (NAME (aout, make_empty_symbol)): Rename variable
+       new to new_symbol_type.
+       * plugin.c (bfd_plugin_make_empty_symbol): Rename variable new
+       to new_symbol.
+       * rs6000-core.c (CoreHdr, VmInfo): Rename union member new to
+       new_dump.
+       (read_hdr, rs6000coff_core_p)
+       (rs6000coff_core_file_matches_executable_p)
+       (rs6000coff_core_file_failing_command)
+       (rs6000coff_core_file_failing_signal): Updated function to use new
+       union member name.
+       * som.c (som_make_empty_symbol): Rename variable new to
+       new_symbol_type.
+       * syms.c (_bfd_generic_make_empty_symbol): Rename variable new
+       to new_symbol.
+       * tekhex.c (first_phase, tekhex_make_empty_symbol): Rename
+       variable new to new_symbol.
+
 2009-08-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * acinclude.m4 (AM_INSTALL_LIBBFD): Call AM_SUBST_NOTMAKE for
        bfinfdpic_gc_sweep_hook, bfinfdpic_check_relocs,
        bfin_finish_dynamic_symbol, bfd_bfin_elf32_create_embedded_relocs):
        Adjust to match the renamed reloc definitions.
-       
+
 2009-08-08  Alan Modra  <amodra@bigpond.net.au>
 
        PR 10494
 
 2009-07-22  H.J. Lu  <hongjiu.lu@intel.com>
 
-        * elflink.c (elf_link_output_extsym): Revert the last change.
+       * elflink.c (elf_link_output_extsym): Revert the last change.
 
 2009-07-22  H.J. Lu  <hongjiu.lu@intel.com>
 
-        PR ld/10433
-        * elflink.c (elf_link_output_extsym): Special case ifunc syms
-        when ref_regular, not def_regular.
+       PR ld/10433
+       * elflink.c (elf_link_output_extsym): Special case ifunc syms
+       when ref_regular, not def_regular.
 
 2009-07-21  H.J. Lu  <hongjiu.lu@intel.com>
 
-        PR ld/10426
-        * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
-        from a DSO into a normal FUNC symbol.
-        (elf_link_output_extsym): Turn an undefined IFUNC symbol into
-        a normal FUNC symbol.
+       PR ld/10426
+       * elflink.c (elf_link_add_object_symbols): Turn an IFUNC symbol
+       from a DSO into a normal FUNC symbol.
+       (elf_link_output_extsym): Turn an undefined IFUNC symbol into
+       a normal FUNC symbol.
 
 2009-07-17  Chao-ying Fu  <fu@mips.com>
 
        * coffcode.h (sec_to_styp_flags):  Partially revert (functional
        changes only) earlier patch:-
 
-  2009-06-25  Kai Tietz  <kai.tietz@onevision.com>
+2009-06-25  Kai Tietz  <kai.tietz@onevision.com>
 
-         * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
-         give .debug and .reloc data characteristics.
-         (DOT_RELOC): New define for .reloc section string.
-         (coff_write_object_contents): Use DOT_RELOC instead of string.
+       * coffcode.h (sec_to_styp_flags): Set discardable for .reloc and
+       give .debug and .reloc data characteristics.
+       (DOT_RELOC): New define for .reloc section string.
+       (coff_write_object_contents): Use DOT_RELOC instead of string.
 
 2009-07-02  Tom Tromey  <tromey@redhat.com>
 
        BFD_HAVE_SYS_STAT_TYPE_MEMBER): New config functions.
        * configure.in: Use them.
        * configure: Regenerate.
-       * config.in: Regnerate.
+       * config.in: Regenerate.
        * vmsutil.c: Include sysdep.h, remove ansidecl.h.
        #define _BSD_SOURCE. Add comments.
        (vms_file_stats_name): Calculate creation date based on available
        (bfd_mach_o_print_thread): Define.
 
        * mach-o.c (text_section_names_xlat): Add an entry for __const.
-       (bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs): 
+       (bfd_mach_o_canonicalize_one_reloc, bfd_mach_o_canonicalize_relocs):
        New functions extracted from ...
        (bfd_mach_o_canonicalize_reloc): ... This.  Simplified.
        (bfd_mach_o_get_dynamic_reloc_upper_bound): New function.
        (bfd_mach_o_scan_read_dysymtab_symbol): Ditto.
        (bfd_mach_o_get_reloc_upper_bound): New prototype.
        (bfd_mach_o_canonicalize_reloc): Ditto.
-       
+
        * mach-o-target.c (bfd_mach_o_bfd_is_local_label_name): Remove
        duplicated macro.  Now defined to _bfd_generic_is_local_label.
        (TARGET_NAME_BACKEND): New macro...
        Clean up copyright notice.
 
 2009-06-10  Paul Pluzhnikov  <ppluzhnikov@google.com>
-       
+
        * bfd-in2.h: bfd_mmap prototype.
        * bfdio.c (bfd_mmap): New function.
        * libbfd.h (bfd_iovec): Add bmmap.
        * cache.c (cache_bmmap): New function.
        (cache_iovec): Initialize bmmap member.
        * opencls.c (opncls_bmmap): New function.
-       (opncls_iovec): Initialize bmmap member.        
-       
+       (opncls_iovec): Initialize bmmap member.
+
 2009-06-09  Tristan Gingold  <gingold@adacore.com>
 
        * mach-o.h (bfd_mach_o_symtab_command): Remove stabs_segment
 
 2009-05-24  Alan Modra  <amodra@bigpond.net.au>
 
-       * bfdio.c (bfd_seek): Formatting.  Ensure newly allocated memory
-       for BFD_IN_MEMORY is cleared.
-       (bfd_bwrite): Zero excess memory allocated.
+       * bfdio.c (bfd_seek): Formatting.  Ensure newly allocated memory
+       for BFD_IN_MEMORY is cleared.
+       (bfd_bwrite): Zero excess memory allocated.
 
 2009-05-22  Julian Brown  <julian@codesourcery.com>