[binutils] Bump binutils to 2.20.1

Review URL: http://codereview.chromium.org/3018030
diff --git a/binutils/bfd/ChangeLog b/binutils/bfd/ChangeLog
index 316725d..f523265 100644
--- a/binutils/bfd/ChangeLog
+++ b/binutils/bfd/ChangeLog
@@ -1,3 +1,151 @@
+2010-03-03  Tristan Gingold  <gingold@adacore.com>
+
+	* Makefile.am (RELEASE): Unset.
+	* Makefile.in: Regenerate.
+
+2010-03-01  Tristan Gingold  <gingold@adacore.com>
+
+	* configure.in: Bump version to 2.20.1
+	* Makefile.am (RELEASE): Set.
+	* configure, Makefile.in: Regenerate.
+
+2010-02-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+	2010-01-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+	* 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-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	PR binutils/11280
+	* configure.host (*-*-solaris2.11):  Add host define to select
+	valid default code page for windres/windmc on solaris.
+
+2010-01-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* 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-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-25  Alan Modra  <amodra@gmail.com>
+
+	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-25  Alan Modra  <amodra@gmail.com>
+
+	2009-12-11  Nick Clifton  <nickc@redhat.com>
+	* elf32-ppc.c: Fix shadowed variable warnings.
+	* elf64-ppc.c: Likewise.
+
+	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.
+
+2010-01-11  Alan Modra  <amodra@gmail.com>
+
+	PR 11103
+	* dwarf1.c (parse_die): Correct FORM_STRING data pointer increment.
+
+2010-01-11  Alan Modra  <amodra@gmail.com>
+
+	PR 6832
+	* dwarf2.c (struct comp_unit): Add sec_info_ptr.
+	(find_abstract_instance_name): Use it.
+	(parse_comp_unit): Set it.
+
+2009-12-21  Alan Modra  <amodra@gmail.com>
+
+	* elf64-ppc.c: Delete my email address.
+
+2009-12-17  Alan Modra  <amodra@bigpond.net.au>
+
+	PR ld/11088
+	* elf32-ppc.c (update_plt_info): Clear sec here when addend is
+	less than 32768..
+	(ppc_elf_check_relocs): ..rather than doing so here.  Ignore new
+	relax relocs.
+	(ppc_elf_gc_sweep_hook): Don't segfault when symbol hiding has
+	removed plt_entry records.
+	(ppc_elf_tls_setup): Handle PIE calls to __tls_get_addr correctly.
+	(ppc_elf_tls_optimize): Likewise.  Also dec __tls_get_addr refcount
+	when optimizing code using new tlsgd and tlsld marker relocs.
+	(ppc_elf_relax_section): Differentiate relaxed PLTREL24 relocs
+	from ADDR24 relocs using plt or glink.  Don't clear the addend
+	for R_PPC_RELAX_PLTREL24.
+	(ppc_elf_relocate_section): Correctly handle addends on relaxed
+	PLTREL24 relocs.
+
+2009-12-17  Alan Modra  <amodra@bigpond.net.au>
+
+	PR ld/11088
+	* elf64-ppc.c (ppc64_elf_gc_sweep_hook): Don't abort if symbol
+	hiding has nulled out plt.plist.
+
+2009-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+	PR ld/11047
+	* elf32-ppc.c (ppc_elf_relocate_section): Delete __tls_get_addr
+	symbol reference from relocs belonging to calls that are
+	optimized away.
+	* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+
+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-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-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-16  Tristan Gingold  <gingold@adacore.com>
+
+	* configure.in: Bump version to 2.20.0
+	* Makefile.am (RELEASE): Unset.
+	* configure, Makefile.in: Regenerate.
+
 2009-10-16  Tristan Gingold  <gingold@adacore.com>
 
 	* configure.in: Bump version to 2.20
diff --git a/binutils/bfd/Makefile.am b/binutils/bfd/Makefile.am
index a0c1eaa..13ace29 100644
--- a/binutils/bfd/Makefile.am
+++ b/binutils/bfd/Makefile.am
@@ -4,7 +4,7 @@
 ACLOCAL_AMFLAGS = -I . -I .. -I ../config
 
 # Uncomment the following line when doing a release.
-RELEASE=y
+# RELEASE=y
 
 INCDIR = $(srcdir)/../include
 CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
diff --git a/binutils/bfd/Makefile.in b/binutils/bfd/Makefile.in
index 6bebad7..4068a2d 100644
--- a/binutils/bfd/Makefile.in
+++ b/binutils/bfd/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -317,7 +317,7 @@
 ACLOCAL_AMFLAGS = -I . -I .. -I ../config
 
 # Uncomment the following line when doing a release.
-RELEASE = y
+# RELEASE=y
 INCDIR = $(srcdir)/../include
 CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
 SUBDIRS = doc po
@@ -1537,7 +1537,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -1562,7 +1562,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
diff --git a/binutils/bfd/aclocal.m4 b/binutils/bfd/aclocal.m4
index 77edbce..0948e43 100644
--- a/binutils/bfd/aclocal.m4
+++ b/binutils/bfd/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/bfd/bfd-in.h b/binutils/bfd/bfd-in.h
index 516102e..01b877d 100644
--- a/binutils/bfd/bfd-in.h
+++ b/binutils/bfd/bfd-in.h
@@ -1,7 +1,7 @@
 /* Main header file for the bfd library -- portable access to object files.
 
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
@@ -908,6 +908,13 @@
 extern bfd_boolean elf32_arm_fix_exidx_coverage
   (struct bfd_section **, unsigned int, struct bfd_link_info *);
 
+/* PowerPC @tls opcode transform/validate.  */
+extern unsigned int _bfd_elf_ppc_at_tls_transform
+  (unsigned int, unsigned int);
+/* PowerPC @tprel opcode transform/validate.  */
+extern unsigned int _bfd_elf_ppc_at_tprel_transform
+  (unsigned int, unsigned int);
+
 /* TI COFF load page support.  */
 extern void bfd_ticoff_set_section_load_page
   (struct bfd_section *, int);
diff --git a/binutils/bfd/bfd-in2.h b/binutils/bfd/bfd-in2.h
index 40d3b7a..d98c6ec 100644
--- a/binutils/bfd/bfd-in2.h
+++ b/binutils/bfd/bfd-in2.h
@@ -8,7 +8,7 @@
 /* Main header file for the bfd library -- portable access to object files.
 
    Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
@@ -915,6 +915,13 @@
 extern bfd_boolean elf32_arm_fix_exidx_coverage
   (struct bfd_section **, unsigned int, struct bfd_link_info *);
 
+/* PowerPC @tls opcode transform/validate.  */
+extern unsigned int _bfd_elf_ppc_at_tls_transform
+  (unsigned int, unsigned int);
+/* PowerPC @tprel opcode transform/validate.  */
+extern unsigned int _bfd_elf_ppc_at_tprel_transform
+  (unsigned int, unsigned int);
+
 /* TI COFF load page support.  */
 extern void bfd_ticoff_set_section_load_page
   (struct bfd_section *, int);
diff --git a/binutils/bfd/coff-rs6000.c b/binutils/bfd/coff-rs6000.c
index e8d5484..040a030 100644
--- a/binutils/bfd/coff-rs6000.c
+++ b/binutils/bfd/coff-rs6000.c
@@ -896,11 +896,11 @@
 
   EMPTY_HOWTO (0xe),
 
-  /* Non-relocating reference.  */
+  /* Non-relocating reference.  Bitsize is 1 so that r_rsize is 0.  */
   HOWTO (R_REF,			/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 1,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
@@ -1162,6 +1162,8 @@
     case BFD_RELOC_32:
     case BFD_RELOC_CTOR:
       return &xcoff_howto_table[0];
+    case BFD_RELOC_NONE:
+      return &xcoff_howto_table[0xf];
     default:
       return NULL;
     }
diff --git a/binutils/bfd/coff64-rs6000.c b/binutils/bfd/coff64-rs6000.c
index e202070..8abec10 100644
--- a/binutils/bfd/coff64-rs6000.c
+++ b/binutils/bfd/coff64-rs6000.c
@@ -1594,11 +1594,11 @@
 
   EMPTY_HOWTO (0xe),
 
-  /* Non-relocating reference.	*/
+  /* Non-relocating reference.  Bitsize is 1 so that r_rsize is 0.  */
   HOWTO (R_REF,			/* type */
 	 0,			/* rightshift */
-	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
+	 0,			/* size (0 = byte, 1 = short, 2 = long) */
+	 1,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont, /* complain_on_overflow */
@@ -1882,6 +1882,8 @@
       return &xcoff64_howto_table[0x1c];
     case BFD_RELOC_64:
       return &xcoff64_howto_table[0];
+    case BFD_RELOC_NONE:
+      return &xcoff64_howto_table[0xf];
     default:
       return NULL;
     }
diff --git a/binutils/bfd/configure b/binutils/bfd/configure
index dcc9bd9..6502be6 100755
--- a/binutils/bfd/configure
+++ b/binutils/bfd/configure
@@ -4116,7 +4116,7 @@
 
 # Define the identity of the package.
  PACKAGE=bfd
- VERSION=2.20
+ VERSION=2.20.1
 
 
 cat >>confdefs.h <<_ACEOF
diff --git a/binutils/bfd/configure.host b/binutils/bfd/configure.host
index 11b42e0..eb7bfe9 100644
--- a/binutils/bfd/configure.host
+++ b/binutils/bfd/configure.host
@@ -56,6 +56,12 @@
 
 m68*-hp-hpux*)		HDEFINES=-DHOST_HP300HPUX ;;
 
+# Some Solaris systems (osol0906 at least) have a libc that doesn't recognise
+# the "MS-ANSI" code page name, so we define an override for CP_ACP (sets the
+# default code page used by windres/windmc when not specified by a commandline
+# option) to select the "WINDOWS-1252" name instead.  See PR11280 for details.
+*-*-solaris2.11)	HDEFINES=-DCP_ACP=1 ;;
+
 *-*-windows*)
 			HOST_64BIT_TYPE=__int64
 			HOST_U_64BIT_TYPE="unsigned __int64"
diff --git a/binutils/bfd/configure.in b/binutils/bfd/configure.in
index d03a271..e39187d 100644
--- a/binutils/bfd/configure.in
+++ b/binutils/bfd/configure.in
@@ -8,7 +8,7 @@
 AC_CANONICAL_TARGET
 AC_ISC_POSIX
 
-AM_INIT_AUTOMAKE(bfd, 2.20)
+AM_INIT_AUTOMAKE(bfd, 2.20.1)
 
 dnl These must be called before LT_INIT, because it may want
 dnl to call AC_CHECK_PROG.
diff --git a/binutils/bfd/doc/Makefile.in b/binutils/bfd/doc/Makefile.in
index 370fcad..3af328b 100644
--- a/binutils/bfd/doc/Makefile.in
+++ b/binutils/bfd/doc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/binutils/bfd/doc/bfdver.texi b/binutils/bfd/doc/bfdver.texi
index 6ae2b43..eb5d7e1 100644
--- a/binutils/bfd/doc/bfdver.texi
+++ b/binutils/bfd/doc/bfdver.texi
@@ -1,4 +1,4 @@
-@set VERSION 2.20
+@set VERSION 2.20.1
 @set VERSION_PACKAGE (GNU Binutils) 
-@set UPDATED October 2009
+@set UPDATED March 2010
 @set BUGURL @uref{http://www.sourceware.org/bugzilla/}
diff --git a/binutils/bfd/dwarf1.c b/binutils/bfd/dwarf1.c
index 2674044..375f4cf 100644
--- a/binutils/bfd/dwarf1.c
+++ b/binutils/bfd/dwarf1.c
@@ -1,5 +1,5 @@
 /* DWARF 1 find nearest line (_bfd_dwarf1_find_nearest_line).
-   Copyright 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2008
+   Copyright 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
    Written by Gavin Romig-Koch of Cygnus Solutions (gavin@cygnus.com).
@@ -251,8 +251,8 @@
 	  break;
 	case FORM_STRING:
 	  if (attr == AT_name)
-	    aDieInfo->name = (char *)xptr;
-	  xptr += strlen (aDieInfo->name) + 1;
+	    aDieInfo->name = (char *) xptr;
+	  xptr += strlen ((char *) xptr) + 1;
 	  break;
 	}
     }
diff --git a/binutils/bfd/dwarf2.c b/binutils/bfd/dwarf2.c
index 5d504c8..da68e1f 100644
--- a/binutils/bfd/dwarf2.c
+++ b/binutils/bfd/dwarf2.c
@@ -216,6 +216,9 @@
      by its reference.  */
   bfd_byte *info_ptr_unit;
 
+  /* Pointer to the start of the debug section, for DW_FORM_ref_addr.  */
+  bfd_byte *sec_info_ptr;
+
   /* The offset into .debug_line of the line number table.  */
   unsigned long line_offset;
 
@@ -1680,7 +1683,7 @@
       if (!die_ref)
 	abort ();
 
-      info_ptr = unit->stash->sec_info_ptr + die_ref;
+      info_ptr = unit->sec_info_ptr + die_ref;
     }
   else 
     info_ptr = unit->info_ptr_unit + die_ref;
@@ -2088,6 +2091,7 @@
   unit->end_ptr = end_ptr;
   unit->stash = stash;
   unit->info_ptr_unit = info_ptr_unit;
+  unit->sec_info_ptr = stash->sec_info_ptr;
 
   for (i = 0; i < abbrev->num_attrs; ++i)
     {
diff --git a/binutils/bfd/elf32-arm.c b/binutils/bfd/elf32-arm.c
index 157024c..f0700b0 100644
--- a/binutils/bfd/elf32-arm.c
+++ b/binutils/bfd/elf32-arm.c
@@ -1,6 +1,6 @@
 /* 32-bit ELF support for ARM
    Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-   2008, 2009  Free Software Foundation, Inc.
+   2008, 2009, 2010  Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -224,7 +224,7 @@
   HOWTO (R_ARM_THM_CALL,	/* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 25,			/* bitsize */
+	 24,			/* bitsize */
 	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed,/* complain_on_overflow */
@@ -7533,7 +7533,7 @@
 	bitsize = howto->bitsize;
 	if (!thumb2)
 	  bitsize -= 2;
-	reloc_signed_max = ((1 << (bitsize - 1)) - 1) >> howto->rightshift;
+	reloc_signed_max = (1 << (bitsize - 1)) - 1;
 	reloc_signed_min = ~reloc_signed_max;
 
 	/* Assumes two's complement.  */
diff --git a/binutils/bfd/elf32-cris.c b/binutils/bfd/elf32-cris.c
index 2037b10..ceea1b9 100644
--- a/binutils/bfd/elf32-cris.c
+++ b/binutils/bfd/elf32-cris.c
@@ -1690,15 +1690,10 @@
 		= -elf_cris_hash_table (info)->dtpmod_refcount;
 	    }
 
-	  /* The thread-based offset to the local symbol is the
-	     relocation.
-	     For the executable, TLS data begins at the thread pointer plus
-	     the negative size of the TLS data.  For a DSO, that's part of
-	     the module TLS offset.  */
+	  /* The relocation is the offset from the start of the module
+	     TLS block to the (local) symbol.  */
 	  relocation -= elf_hash_table (info)->tls_sec == NULL
-	    ? 0 : (elf_hash_table (info)->tls_sec->vma
-		   + (info->shared
-		      ? 0 : elf_hash_table (info)->tls_size));
+	    ? 0 : elf_hash_table (info)->tls_sec->vma;
 	  break;
 
 	case R_CRIS_32_GD:
diff --git a/binutils/bfd/elf32-ppc.c b/binutils/bfd/elf32-ppc.c
index 95058a2..fc4347e 100644
--- a/binutils/bfd/elf32-ppc.c
+++ b/binutils/bfd/elf32-ppc.c
@@ -1,6 +1,6 @@
 /* PowerPC-specific support for 32-bit ELF
    Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-   2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -3323,6 +3323,8 @@
 {
   struct plt_entry *ent;
 
+  if (addend < 32768)
+    sec = NULL;
   for (ent = *plist; ent != NULL; ent = ent->next)
     if (ent->sec == sec && ent->addend == addend)
       break;
@@ -3508,8 +3510,7 @@
 		      if (info->shared)
 			addend = rel->r_addend;
 		    }
-		  if (!update_plt_info (abfd, ifunc,
-					addend < 32768 ? NULL : got2, addend))
+		  if (!update_plt_info (abfd, ifunc, got2, addend))
 		    return FALSE;
 		}
 	    }
@@ -3748,8 +3749,7 @@
 		    addend = rel->r_addend;
 		}
 	      h->needs_plt = 1;
-	      if (!update_plt_info (abfd, &h->plt.plist,
-				    addend < 32768 ? NULL : got2, addend))
+	      if (!update_plt_info (abfd, &h->plt.plist, got2, addend))
 		return FALSE;
 	    }
 	  break;
@@ -3780,10 +3780,9 @@
 	case R_PPC_EMB_MRKREF:
 	case R_PPC_NONE:
 	case R_PPC_max:
-	case R_PPC_RELAX32:
-	case R_PPC_RELAX32PC:
-	case R_PPC_RELAX32_PLT:
-	case R_PPC_RELAX32PC_PLT:
+	case R_PPC_RELAX:
+	case R_PPC_RELAX_PLT:
+	case R_PPC_RELAX_PLTREL24:
 	  break;
 
 	  /* These should only appear in dynamic objects.  */
@@ -3961,7 +3960,7 @@
 		      || !h->def_regular)))
 	    {
 	      struct ppc_elf_dyn_relocs *p;
-	      struct ppc_elf_dyn_relocs **head;
+	      struct ppc_elf_dyn_relocs **rel_head;
 
 #ifdef DEBUG
 	      fprintf (stderr,
@@ -3986,7 +3985,7 @@
 		 relocations we need for this symbol.  */
 	      if (h != NULL)
 		{
-		  head = &ppc_elf_hash_entry (h)->dyn_relocs;
+		  rel_head = &ppc_elf_hash_entry (h)->dyn_relocs;
 		}
 	      else
 		{
@@ -4007,17 +4006,17 @@
 		    s = sec;
 
 		  vpp = &elf_section_data (s)->local_dynrel;
-		  head = (struct ppc_elf_dyn_relocs **) vpp;
+		  rel_head = (struct ppc_elf_dyn_relocs **) vpp;
 		}
 
-	      p = *head;
+	      p = *rel_head;
 	      if (p == NULL || p->sec != sec)
 		{
 		  p = bfd_alloc (htab->elf.dynobj, sizeof *p);
 		  if (p == NULL)
 		    return FALSE;
-		  p->next = *head;
-		  *head = p;
+		  p->next = *rel_head;
+		  *rel_head = p;
 		  p->sec = sec;
 		  p->count = 0;
 		  p->pc_count = 0;
@@ -4486,7 +4485,7 @@
 		  struct plt_entry *ent;
 
 		  ent = find_plt_ent (&h->plt.plist, NULL, 0);
-		  if (ent->plt.refcount > 0)
+		  if (ent != NULL && ent->plt.refcount > 0)
 		    ent->plt.refcount -= 1;
 		}
 	    }
@@ -4534,7 +4533,7 @@
 	      if (r_type == R_PPC_PLTREL24 && info->shared)
 		addend = rel->r_addend;
 	      ent = find_plt_ent (&h->plt.plist, got2, addend);
-	      if (ent->plt.refcount > 0)
+	      if (ent != NULL && ent->plt.refcount > 0)
 		ent->plt.refcount -= 1;
 	    }
 	  break;
@@ -4582,9 +4581,10 @@
 		       && tga->root.type == bfd_link_hash_undefweak)))
 	    {
 	      struct plt_entry *ent;
-	      ent = find_plt_ent (&tga->plt.plist, NULL, 0);
-	      if (ent != NULL
-		  && ent->plt.refcount > 0)
+	      for (ent = tga->plt.plist; ent != NULL; ent = ent->next)
+		if (ent->plt.refcount > 0)
+		  break;
+	      if (ent != NULL)
 		{
 		  tga->root.type = bfd_link_hash_indirect;
 		  tga->root.u.i.link = &opt->root;
@@ -4669,6 +4669,7 @@
       {
 	Elf_Internal_Sym *locsyms = NULL;
 	Elf_Internal_Shdr *symtab_hdr = &elf_symtab_hdr (ibfd);
+	asection *got2 = bfd_get_section_by_name (ibfd, ".got2");
 
 	for (sec = ibfd->sections; sec != NULL; sec = sec->next)
 	  if (sec->has_tls_reloc && !bfd_is_abs_section (sec->output_section))
@@ -4762,6 +4763,13 @@
 		      else
 			continue;
 
+		    case R_PPC_TLSGD:
+		    case R_PPC_TLSLD:
+		      expecting_tls_get_addr = 2;
+		      tls_set = 0;
+		      tls_clear = 0;
+		      break;
+
 		    default:
 		      continue;
 		    }
@@ -4769,7 +4777,8 @@
 		  if (pass == 0)
 		    {
 		      if (!expecting_tls_get_addr
-			  || !sec->has_tls_get_addr_call)
+			  || (expecting_tls_get_addr == 1
+			      && !sec->has_tls_get_addr_call))
 			continue;
 
 		      if (rel + 1 < relend
@@ -4785,6 +4794,23 @@
 		      break;
 		    }
 
+		  if (expecting_tls_get_addr)
+		    {
+		      struct plt_entry *ent;
+		      bfd_vma addend = 0;
+
+		      if (info->shared
+			  && ELF32_R_TYPE (rel[1].r_info) == R_PPC_PLTREL24)
+			addend = rel[1].r_addend;
+		      ent = find_plt_ent (&htab->tls_get_addr->plt.plist,
+					  got2, addend);
+		      if (ent != NULL && ent->plt.refcount > 0)
+			ent->plt.refcount -= 1;
+
+		      if (expecting_tls_get_addr == 2)
+			continue;
+		    }
+
 		  if (h != NULL)
 		    {
 		      tls_mask = &ppc_elf_hash_entry (h)->tls_mask;
@@ -4829,16 +4855,6 @@
 			*got_count -= 1;
 		    }
 
-		  if (expecting_tls_get_addr)
-		    {
-		      struct plt_entry *ent;
-
-		      ent = find_plt_ent (&htab->tls_get_addr->plt.plist,
-					  NULL, 0);
-		      if (ent != NULL && ent->plt.refcount > 0)
-			ent->plt.refcount -= 1;
-		    }
-
 		  *tls_mask |= tls_set;
 		  *tls_mask &= ~tls_clear;
 		}
@@ -5619,6 +5635,7 @@
       local_plt = (struct plt_entry **) end_local_got;
       end_local_plt = local_plt + locsymcount;
       lgot_masks = (char *) end_local_plt;
+
       for (; local_got < end_local_got; ++local_got, ++lgot_masks)
 	if (*local_got > 0)
 	  {
@@ -5662,7 +5679,7 @@
 	  for (ent = *local_plt; ent != NULL; ent = ent->next)
 	    if (ent->plt.refcount > 0)
 	      {
-		asection *s = htab->iplt;
+		s = htab->iplt;
 
 		if (!doneone)
 		  {
@@ -6018,7 +6035,7 @@
   for (irel = internal_relocs; irel < irelend; irel++)
     {
       unsigned long r_type = ELF32_R_TYPE (irel->r_info);
-      bfd_vma reladdr, toff, roff;
+      bfd_vma toff, roff;
       asection *tsec;
       struct one_fixup *f;
       size_t insn_offset = 0;
@@ -6202,7 +6219,6 @@
 	continue;
 
       roff = irel->r_offset;
-      reladdr = isec->output_section->vma + isec->output_offset + roff;
 
       /* If the branch is in range, no need to do anything.  */
       if (tsec != bfd_und_section_ptr
@@ -6239,28 +6255,28 @@
 	    {
 	      size = 4 * ARRAY_SIZE (shared_stub_entry);
 	      insn_offset = 12;
-	      stub_rtype = R_PPC_RELAX32PC;
 	    }
 	  else
 	    {
 	      size = 4 * ARRAY_SIZE (stub_entry);
 	      insn_offset = 0;
-	      stub_rtype = R_PPC_RELAX32;
 	    }
-
-	  if (R_PPC_RELAX32_PLT - R_PPC_RELAX32
-	      != R_PPC_RELAX32PC_PLT - R_PPC_RELAX32PC)
-	    abort ();
+	  stub_rtype = R_PPC_RELAX;
 	  if (tsec == htab->plt
 	      || tsec == htab->glink)
-	    stub_rtype += R_PPC_RELAX32_PLT - R_PPC_RELAX32;
+	    {
+	      stub_rtype = R_PPC_RELAX_PLT;
+	      if (r_type == R_PPC_PLTREL24)
+		stub_rtype = R_PPC_RELAX_PLTREL24;
+	    }
 
 	  /* Hijack the old relocation.  Since we need two
 	     relocations for this use a "composite" reloc.  */
 	  irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
 				       stub_rtype);
 	  irel->r_offset = trampoff + insn_offset;
-	  if (r_type == R_PPC_PLTREL24)
+	  if (r_type == R_PPC_PLTREL24
+	      && stub_rtype != R_PPC_RELAX_PLTREL24)
 	    irel->r_addend = 0;
 
 	  /* Record the fixup so we don't do it again this section.  */
@@ -6430,7 +6446,7 @@
     {
       /* Convert the internal relax relocs to external form.  */
       for (irel = internal_relocs; irel < irelend; irel++)
-	if (ELF32_R_TYPE (irel->r_info) == R_PPC_RELAX32)
+	if (ELF32_R_TYPE (irel->r_info) == R_PPC_RELAX)
 	  {
 	    unsigned long r_symndx = ELF32_R_SYM (irel->r_info);
 
@@ -6613,6 +6629,91 @@
 	  && h->root.u.def.section->output_section != NULL);
 }
 
+/* If INSN is an opcode that may be used with an @tls operand, return
+   the transformed insn for TLS optimisation, otherwise return 0.  If
+   REG is non-zero only match an insn with RB or RA equal to REG.  */
+
+unsigned int
+_bfd_elf_ppc_at_tls_transform (unsigned int insn, unsigned int reg)
+{
+  unsigned int rtra;
+
+  if ((insn & (0x3f << 26)) != 31 << 26)
+    return 0;
+
+  if (reg == 0 || ((insn >> 11) & 0x1f) == reg)
+    rtra = insn & ((1 << 26) - (1 << 16));
+  else if (((insn >> 16) & 0x1f) == reg)
+    rtra = (insn & (0x1f << 21)) | ((insn & (0x1f << 11)) << 5);
+  else
+    return 0;
+
+  if ((insn & (0x3ff << 1)) == 266 << 1)
+    /* add -> addi.  */
+    insn = 14 << 26;
+  else if ((insn & (0x1f << 1)) == 23 << 1
+	   && ((insn & (0x1f << 6)) < 14 << 6
+	       || ((insn & (0x1f << 6)) >= 16 << 6
+		   && (insn & (0x1f << 6)) < 24 << 6)))
+    /* load and store indexed -> dform.  */
+    insn = (32 | ((insn >> 6) & 0x1f)) << 26;
+  else if ((insn & (((0x1a << 5) | 0x1f) << 1)) == 21 << 1)
+    /* ldx, ldux, stdx, stdux -> ld, ldu, std, stdu.  */
+    insn = ((58 | ((insn >> 6) & 4)) << 26) | ((insn >> 6) & 1);
+  else if ((insn & (((0x1f << 5) | 0x1f) << 1)) == 341 << 1)
+    /* lwax -> lwa.  */
+    insn = (58 << 26) | 2;
+  else
+    return 0;
+  insn |= rtra;
+  return insn;
+}
+
+/* If INSN is an opcode that may be used with an @tprel operand, return
+   the transformed insn for an undefined weak symbol, ie. with the
+   thread pointer REG operand removed.  Otherwise return 0.  */
+
+unsigned int
+_bfd_elf_ppc_at_tprel_transform (unsigned int insn, unsigned int reg)
+{
+  if ((insn & (0x1f << 16)) == reg << 16
+      && ((insn & (0x3f << 26)) == 14u << 26 /* addi */
+	  || (insn & (0x3f << 26)) == 15u << 26 /* addis */
+	  || (insn & (0x3f << 26)) == 32u << 26 /* lwz */
+	  || (insn & (0x3f << 26)) == 34u << 26 /* lbz */
+	  || (insn & (0x3f << 26)) == 36u << 26 /* stw */
+	  || (insn & (0x3f << 26)) == 38u << 26 /* stb */
+	  || (insn & (0x3f << 26)) == 40u << 26 /* lhz */
+	  || (insn & (0x3f << 26)) == 42u << 26 /* lha */
+	  || (insn & (0x3f << 26)) == 44u << 26 /* sth */
+	  || (insn & (0x3f << 26)) == 46u << 26 /* lmw */
+	  || (insn & (0x3f << 26)) == 47u << 26 /* stmw */
+	  || (insn & (0x3f << 26)) == 48u << 26 /* lfs */
+	  || (insn & (0x3f << 26)) == 50u << 26 /* lfd */
+	  || (insn & (0x3f << 26)) == 52u << 26 /* stfs */
+	  || (insn & (0x3f << 26)) == 54u << 26 /* stfd */
+	  || ((insn & (0x3f << 26)) == 58u << 26 /* lwa,ld,lmd */
+	      && (insn & 3) != 1)
+	  || ((insn & (0x3f << 26)) == 62u << 26 /* std, stmd */
+	      && ((insn & 3) == 0 || (insn & 3) == 3))))
+    {
+      insn &= ~(0x1f << 16);
+    }
+  else if ((insn & (0x1f << 21)) == reg << 21
+	   && ((insn & (0x3e << 26)) == 24u << 26 /* ori, oris */
+	       || (insn & (0x3e << 26)) == 26u << 26 /* xori,xoris */
+	       || (insn & (0x3e << 26)) == 28u << 26 /* andi,andis */))
+    {
+      insn &= ~(0x1f << 21);
+      insn |= (insn & (0x1f << 16)) << 5;
+      if ((insn & (0x3e << 26)) == 26 << 26 /* xori,xoris */)
+	insn -= 2 >> 26;  /* convert to ori,oris */
+    }
+  else
+    insn = 0;
+  return insn;
+}
+
 /* The RELOCATE_SECTION function is called by the ELF backend linker
    to handle the relocations for a section.
 
@@ -6658,7 +6759,6 @@
   Elf_Internal_Rela *rel;
   Elf_Internal_Rela *relend;
   Elf_Internal_Rela outrel;
-  bfd_byte *loc;
   asection *got2, *sreloc = NULL;
   bfd_vma *local_got_offsets;
   bfd_boolean ret = TRUE;
@@ -6702,7 +6802,7 @@
       reloc_howto_type *howto;
       unsigned long r_symndx;
       bfd_vma relocation;
-      bfd_vma branch_bit, insn, from;
+      bfd_vma branch_bit, from;
       bfd_boolean unresolved_reloc;
       bfd_boolean warned;
       unsigned int tls_type, tls_mask, tls_gd;
@@ -6800,6 +6900,7 @@
 	      && (tls_mask & TLS_TPREL) == 0)
 	    {
 	      bfd_vma insn;
+
 	      insn = bfd_get_32 (output_bfd, contents + rel->r_offset - d_offset);
 	      insn &= 31 << 21;
 	      insn |= 0x3c020000;	/* addis 0,2,0 */
@@ -6813,37 +6914,12 @@
 	  if ((tls_mask & TLS_TLS) != 0
 	      && (tls_mask & TLS_TPREL) == 0)
 	    {
-	      bfd_vma insn, rtra;
+	      bfd_vma insn;
+
 	      insn = bfd_get_32 (output_bfd, contents + rel->r_offset);
-	      if ((insn & ((31 << 26) | (31 << 11)))
-		  == ((31 << 26) | (2 << 11)))
-		rtra = insn & ((1 << 26) - (1 << 16));
-	      else if ((insn & ((31 << 26) | (31 << 16)))
-		       == ((31 << 26) | (2 << 16)))
-		rtra = (insn & (31 << 21)) | ((insn & (31 << 11)) << 5);
-	      else
+	      insn = _bfd_elf_ppc_at_tls_transform (insn, 2);
+	      if (insn == 0)
 		abort ();
-	      if ((insn & ((1 << 11) - (1 << 1))) == 266 << 1)
-		/* add -> addi.  */
-		insn = 14 << 26;
-	      else if ((insn & (31 << 1)) == 23 << 1
-		       && ((insn & (31 << 6)) < 14 << 6
-			   || ((insn & (31 << 6)) >= 16 << 6
-			       && (insn & (31 << 6)) < 24 << 6)))
-		/* load and store indexed -> dform.  */
-		insn = (32 | ((insn >> 6) & 31)) << 26;
-	      else if ((insn & (31 << 1)) == 21 << 1
-		       && (insn & (0x1a << 6)) == 0)
-		/* ldx, ldux, stdx, stdux -> ld, ldu, std, stdu.  */
-		insn = (((58 | ((insn >> 6) & 4)) << 26)
-			| ((insn >> 6) & 1));
-	      else if ((insn & (31 << 1)) == 21 << 1
-		       && (insn & ((1 << 11) - (1 << 1))) == 341 << 1)
-		/* lwax -> lwa.  */
-		insn = (58 << 26) | 2;
-	      else
-		abort ();
-	      insn |= rtra;
 	      bfd_put_32 (output_bfd, insn, contents + rel->r_offset);
 	      r_type = R_PPC_TPREL16_LO;
 	      rel->r_info = ELF32_R_INFO (r_symndx, r_type);
@@ -6914,9 +6990,7 @@
 		  insn1 |= 32 << 26;	/* lwz */
 		  if (offset != (bfd_vma) -1)
 		    {
-		      rel[1].r_info
-			= ELF32_R_INFO (ELF32_R_SYM (rel[1].r_info),
-					R_PPC_NONE);
+		      rel[1].r_info = ELF32_R_INFO (STN_UNDEF, R_PPC_NONE);
 		      insn2 = 0x7c631214;	/* add 3,3,2 */
 		      bfd_put_32 (output_bfd, insn2, contents + offset);
 		    }
@@ -6990,8 +7064,7 @@
 	      bfd_put_32 (output_bfd, insn2, contents + offset);
 	      /* Zap the reloc on the _tls_get_addr call too.  */
 	      BFD_ASSERT (offset == rel[1].r_offset);
-	      rel[1].r_info = ELF32_R_INFO (ELF32_R_SYM (rel[1].r_info),
-					    R_PPC_NONE);
+	      rel[1].r_info = ELF32_R_INFO (STN_UNDEF, R_PPC_NONE);
 	    }
 	  break;
 
@@ -7020,8 +7093,7 @@
 			  contents + rel->r_offset - d_offset);
 	      /* Zap the reloc on the _tls_get_addr call too.  */
 	      BFD_ASSERT (rel->r_offset - d_offset == rel[1].r_offset);
-	      rel[1].r_info = ELF32_R_INFO (ELF32_R_SYM (rel[1].r_info),
-					    R_PPC_NONE);
+	      rel[1].r_info = ELF32_R_INFO (STN_UNDEF, R_PPC_NONE);
 	      rel--;
 	      continue;
 	    }
@@ -7044,20 +7116,24 @@
 	  /* Branch not taken prediction relocations.  */
 	case R_PPC_ADDR14_BRNTAKEN:
 	case R_PPC_REL14_BRNTAKEN:
-	  insn = bfd_get_32 (output_bfd, contents + rel->r_offset);
-	  insn &= ~BRANCH_PREDICT_BIT;
-	  insn |= branch_bit;
+	  {
+	    bfd_vma insn;
 
-	  from = (rel->r_offset
-		  + input_section->output_offset
-		  + input_section->output_section->vma);
+	    insn = bfd_get_32 (output_bfd, contents + rel->r_offset);
+	    insn &= ~BRANCH_PREDICT_BIT;
+	    insn |= branch_bit;
 
-	  /* Invert 'y' bit if not the default.  */
-	  if ((bfd_signed_vma) (relocation + rel->r_addend - from) < 0)
-	    insn ^= BRANCH_PREDICT_BIT;
+	    from = (rel->r_offset
+		    + input_section->output_offset
+		    + input_section->output_section->vma);
 
-	  bfd_put_32 (output_bfd, insn, contents + rel->r_offset);
-	  break;
+	    /* Invert 'y' bit if not the default.  */
+	    if ((bfd_signed_vma) (relocation + rel->r_addend - from) < 0)
+	      insn ^= BRANCH_PREDICT_BIT;
+
+	    bfd_put_32 (output_bfd, insn, contents + rel->r_offset);
+	    break;
+	  }
 	}
 
       ifunc = NULL;
@@ -7288,6 +7364,7 @@
 			    || h->root.type != bfd_link_hash_undefweak))
 		      {
 			asection *rsec = htab->relgot;
+			bfd_byte * loc;
 
 			outrel.r_offset = (htab->got->output_section->vma
 					   + htab->got->output_offset
@@ -7439,6 +7516,21 @@
 	case R_PPC_TPREL16_LO:
 	case R_PPC_TPREL16_HI:
 	case R_PPC_TPREL16_HA:
+	  if (h != NULL
+	      && h->root.type == bfd_link_hash_undefweak
+	      && h->dynindx == -1)
+	    {
+	      /* Make this relocation against an undefined weak symbol
+		 resolve to zero.  This is really just a tweak, since
+		 code using weak externs ought to check that they are
+		 defined before using them.  */
+	      bfd_byte *p = contents + rel->r_offset - d_offset;
+	      unsigned int insn = bfd_get_32 (output_bfd, p);
+	      insn = _bfd_elf_ppc_at_tprel_transform (insn, 2);
+	      if (insn != 0)
+		bfd_put_32 (output_bfd, insn, p);
+	      break;
+	    }
 	  addend -= htab->elf.tls_sec->vma + TP_OFFSET;
 	  /* The TPREL16 relocs shouldn't really be used in shared
 	     libs as they will result in DT_TEXTREL being set, but
@@ -7519,7 +7611,7 @@
 		  && !h->def_regular))
 	    {
 	      int skip;
-
+	      bfd_byte * loc;
 #ifdef DEBUG
 	      fprintf (stderr, "ppc_elf_relocate_section needs to "
 		       "create relocation for %s\n",
@@ -7653,12 +7745,20 @@
 	    }
 	  break;
 
-	case R_PPC_RELAX32PC_PLT:
-	case R_PPC_RELAX32_PLT:
+	case R_PPC_RELAX_PLT:
+	case R_PPC_RELAX_PLTREL24:
 	  if (h != NULL)
 	    {
-	      struct plt_entry *ent = find_plt_ent (&h->plt.plist, got2,
-						    info->shared ? addend : 0);
+	      struct plt_entry *ent;
+	      bfd_vma got2_addend = 0;
+
+	      if (r_type == R_PPC_RELAX_PLTREL24)
+		{
+		  if (info->shared)
+		    got2_addend = addend;
+		  addend = 0;
+		}
+	      ent = find_plt_ent (&h->plt.plist, got2, got2_addend);
 	      if (htab->plt_type == PLT_NEW)
 		relocation = (htab->glink->output_section->vma
 			      + htab->glink->output_offset
@@ -7668,18 +7768,14 @@
 			      + htab->plt->output_offset
 			      + ent->plt.offset);
 	    }
-	  if (r_type == R_PPC_RELAX32_PLT)
-	    goto relax32;
 	  /* Fall thru */
 
-	case R_PPC_RELAX32PC:
-	  relocation -= (input_section->output_section->vma
-			 + input_section->output_offset
-			 + rel->r_offset - 4);
-	  /* Fall thru */
+	case R_PPC_RELAX:
+	  if (info->shared)
+	    relocation -= (input_section->output_section->vma
+			   + input_section->output_offset
+			   + rel->r_offset - 4);
 
-	case R_PPC_RELAX32:
-	relax32:
 	  {
 	    unsigned long t0;
 	    unsigned long t1;
@@ -7909,7 +8005,9 @@
 	      }
 
 	    if (r_type == R_PPC_EMB_SDA21)
-	      {			/* fill in register field */
+	      {
+		bfd_vma insn;  /* Fill in register field.  */
+
 		insn = bfd_get_32 (output_bfd, contents + rel->r_offset);
 		insn = (insn & ~RA_REGISTER_MASK) | (reg << RA_REGISTER_SHIFT);
 		bfd_put_32 (output_bfd, insn, contents + rel->r_offset);
diff --git a/binutils/bfd/elf32-spu.c b/binutils/bfd/elf32-spu.c
index 890f260..250beef 100644
--- a/binutils/bfd/elf32-spu.c
+++ b/binutils/bfd/elf32-spu.c
@@ -331,16 +331,7 @@
 
   /* How much memory we have.  */
   unsigned int local_store;
-  /* Local store --auto-overlay should reserve for non-overlay
-     functions and data.  */
-  unsigned int overlay_fixed;
-  /* Local store --auto-overlay should reserve for stack and heap.  */
-  unsigned int reserved;
-  /* If reserved is not specified, stack analysis will calculate a value
-     for the stack.  This parameter adjusts that value to allow for
-     negative sp access (the ABI says 2000 bytes below sp are valid,
-     and the overlay manager uses some of this area).  */
-  int extra_stack_space;
+
   /* Count of overlay stubs needed in non-overlay area.  */
   unsigned int non_ovly_stub;
 
@@ -2692,19 +2683,12 @@
       Elf_Internal_Sym *sym;
       struct elf_link_hash_entry *h;
       bfd_vma val;
-      bfd_boolean reject, is_call;
+      bfd_boolean nonbranch, is_call;
       struct function_info *caller;
       struct call_info *callee;
 
-      reject = FALSE;
       r_type = ELF32_R_TYPE (irela->r_info);
-      if (r_type != R_SPU_REL16
-	  && r_type != R_SPU_ADDR16)
-	{
-	  reject = TRUE;
-	  if (!(call_tree && spu_hash_table (info)->params->auto_overlay))
-	    continue;
-	}
+      nonbranch = r_type != R_SPU_REL16 && r_type != R_SPU_ADDR16;
 
       r_indx = ELF32_R_SYM (irela->r_info);
       if (!get_sym_h (&h, &sym, &sym_sec, psyms, r_indx, sec->owner))
@@ -2715,7 +2699,7 @@
 	continue;
 
       is_call = FALSE;
-      if (!reject)
+      if (!nonbranch)
 	{
 	  unsigned char insn[4];
 
@@ -2746,14 +2730,13 @@
 	    }
 	  else
 	    {
-	      reject = TRUE;
-	      if (!(call_tree && spu_hash_table (info)->params->auto_overlay)
-		  || is_hint (insn))
+	      nonbranch = TRUE;
+	      if (is_hint (insn))
 		continue;
 	    }
 	}
 
-      if (reject)
+      if (nonbranch)
 	{
 	  /* For --auto-overlay, count possible stubs we need for
 	     function pointer references.  */
@@ -2763,8 +2746,20 @@
 	  else
 	    sym_type = ELF_ST_TYPE (sym->st_info);
 	  if (sym_type == STT_FUNC)
-	    spu_hash_table (info)->non_ovly_stub += 1;
-	  continue;
+	    {
+	      if (call_tree && spu_hash_table (info)->params->auto_overlay)
+		spu_hash_table (info)->non_ovly_stub += 1;
+	      /* If the symbol type is STT_FUNC then this must be a
+		 function pointer initialisation.  */
+	      continue;
+	    }
+	  /* Ignore data references.  */
+	  if ((sym_sec->flags & (SEC_ALLOC | SEC_LOAD | SEC_CODE))
+	      != (SEC_ALLOC | SEC_LOAD | SEC_CODE))
+	    continue;
+	  /* Otherwise we probably have a jump table reloc for
+	     a switch statement or some other reference to a
+	     code label.  */
 	}
 
       if (h)
@@ -2813,7 +2808,7 @@
       callee->is_pasted = FALSE;
       callee->broken_cycle = FALSE;
       callee->priority = priority;
-      callee->count = 1;
+      callee->count = nonbranch? 0 : 1;
       if (callee->fun->last_caller != sec)
 	{
 	  callee->fun->last_caller = sec;
@@ -4159,6 +4154,7 @@
   bfd **bfd_arr;
   struct elf_segment_map *m;
   unsigned int fixed_size, lo, hi;
+  unsigned int reserved;
   struct spu_link_hash_table *htab;
   unsigned int base, i, count, bfd_count;
   unsigned int region, ovlynum;
@@ -4194,7 +4190,8 @@
     goto err_exit;
 
   htab = spu_hash_table (info);
-  if (htab->reserved == 0)
+  reserved = htab->params->auto_overlay_reserved;
+  if (reserved == 0)
     {
       struct _sum_stack_param sum_stack_param;
 
@@ -4202,11 +4199,12 @@
       sum_stack_param.overall_stack = 0;
       if (!for_each_node (sum_stack, info, &sum_stack_param, TRUE))
 	goto err_exit;
-      htab->reserved = sum_stack_param.overall_stack + htab->extra_stack_space;
+      reserved = (sum_stack_param.overall_stack
+		  + htab->params->extra_stack_space);
     }
 
   /* No need for overlays if everything already fits.  */
-  if (fixed_size + htab->reserved <= htab->local_store
+  if (fixed_size + reserved <= htab->local_store
       && htab->params->ovly_flavour != ovly_soft_icache)
     {
       htab->params->auto_overlay = 0;
@@ -4319,7 +4317,7 @@
     }
   free (bfd_arr);
 
-  fixed_size += htab->reserved;
+  fixed_size += reserved;
   fixed_size += htab->non_ovly_stub * ovl_stub_size (htab->params);
   if (fixed_size + mos_param.max_overlay_size <= htab->local_store)
     {
@@ -4358,13 +4356,13 @@
 			    (bfd_vma) mos_param.max_overlay_size);
 
   /* Now see if we should put some functions in the non-overlay area.  */
-  else if (fixed_size < htab->overlay_fixed)
+  else if (fixed_size < htab->params->auto_overlay_fixed)
     {
       unsigned int max_fixed, lib_size;
 
       max_fixed = htab->local_store - mos_param.max_overlay_size;
-      if (max_fixed > htab->overlay_fixed)
-	max_fixed = htab->overlay_fixed;
+      if (max_fixed > htab->params->auto_overlay_fixed)
+	max_fixed = htab->params->auto_overlay_fixed;
       lib_size = max_fixed - fixed_size;
       lib_size = auto_ovl_lib_functions (info, lib_size);
       if (lib_size == (unsigned int) -1)
diff --git a/binutils/bfd/elf64-ppc.c b/binutils/bfd/elf64-ppc.c
index 35757b8..dd28092 100644
--- a/binutils/bfd/elf64-ppc.c
+++ b/binutils/bfd/elf64-ppc.c
@@ -1,9 +1,9 @@
 /* PowerPC64-specific support for 64-bit ELF.
    Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-   2009 Free Software Foundation, Inc.
+   2009, 2010 Free Software Foundation, Inc.
    Written by Linus Nordberg, Swox AB <info@swox.com>,
    based on elf32-ppc.c by Ian Lance Taylor.
-   Largely rewritten by Alan Modra <amodra@bigpond.net.au>
+   Largely rewritten by Alan Modra.
 
    This file is part of BFD, the Binary File Descriptor library.
 
@@ -3732,6 +3732,8 @@
 
   /* Temp used when calculating TOC pointers.  */
   bfd_vma toc_curr;
+  bfd *toc_bfd;
+  asection *toc_first_sec;
 
   /* Highest input section id.  */
   int top_id;
@@ -5401,8 +5403,6 @@
   /* No relocs implies we are linking a --just-symbols object.  */
   if (opd_sec->reloc_count == 0)
     {
-      bfd_vma val;
-
       if (!bfd_get_section_contents (opd_bfd, opd_sec, &val, offset, 8))
 	return (bfd_vma) -1;
 
@@ -5866,9 +5866,7 @@
 	      for (ent = h->plt.plist; ent != NULL; ent = ent->next)
 		if (ent->addend == rel->r_addend)
 		  break;
-	      if (ent == NULL)
-		abort ();
-	      if (ent->plt.refcount > 0)
+	      if (ent != NULL && ent->plt.refcount > 0)
 		ent->plt.refcount -= 1;
 	    }
 	  break;
@@ -7413,10 +7411,13 @@
 
 		  if (h != NULL)
 		    {
-		      if (h->root.type != bfd_link_hash_defined
-			  && h->root.type != bfd_link_hash_defweak)
+		      if (h->root.type == bfd_link_hash_defined
+			  || h->root.type == bfd_link_hash_defweak)
+			value = h->root.u.def.value;
+		      else if (h->root.type == bfd_link_hash_undefweak)
+			value = 0;
+		      else
 			continue;
-		      value = h->root.u.def.value;
 		    }
 		  else
 		    /* Symbols referenced by TLS relocs must be of type
@@ -7429,11 +7430,17 @@
 		      || !h->def_dynamic)
 		    {
 		      is_local = TRUE;
-		      value += sym_sec->output_offset;
-		      value += sym_sec->output_section->vma;
-		      value -= htab->elf.tls_sec->vma;
-		      ok_tprel = (value + TP_OFFSET + ((bfd_vma) 1 << 31)
-				  < (bfd_vma) 1 << 32);
+		      if (h != NULL
+			  && h->root.type == bfd_link_hash_undefweak)
+			ok_tprel = TRUE;
+		      else
+			{
+			  value += sym_sec->output_offset;
+			  value += sym_sec->output_section->vma;
+			  value -= htab->elf.tls_sec->vma;
+			  ok_tprel = (value + TP_OFFSET + ((bfd_vma) 1 << 31)
+				      < (bfd_vma) 1 << 32);
+			}
 		    }
 
 		  r_type = ELF64_R_TYPE (rel->r_info);
@@ -8575,8 +8582,7 @@
 	  for (ent = *local_plt; ent != NULL; ent = ent->next)
 	    if (ent->plt.refcount > 0)
 	      {
-		asection *s = htab->iplt;
-
+		s = htab->iplt;
 		ent->plt.offset = s->size;
 		s->size += PLT_ENTRY_SIZE;
 
@@ -9608,6 +9614,8 @@
     htab->stub_group[id].toc_off = TOC_BASE_OFF;
 
   elf_gp (output_bfd) = htab->toc_curr = ppc64_elf_toc (output_bfd);
+  htab->toc_bfd = NULL;
+  htab->toc_first_sec = NULL;
 
   /* We can't use output_bfd->section_count here to find the top output
      section index as some sections may have been removed, and
@@ -9642,11 +9650,21 @@
 
   if (!htab->no_multi_toc)
     {
-      bfd_vma addr = isec->output_offset + isec->output_section->vma;
-      bfd_vma off = addr - htab->toc_curr;
+      bfd_vma addr, off;
 
+      if (htab->toc_bfd != isec->owner)
+	{
+	  htab->toc_bfd = isec->owner;
+	  htab->toc_first_sec = isec;
+	}
+      addr = isec->output_offset + isec->output_section->vma;
+      off = addr - htab->toc_curr;
       if (off + isec->size > 0x10000)
-	htab->toc_curr = addr;
+	{
+	  addr = (htab->toc_first_sec->output_offset
+		  + htab->toc_first_sec->output_section->vma);
+	  htab->toc_curr = addr;
+	}
 
       elf_gp (isec->owner) = (htab->toc_curr
 			      - elf_gp (isec->output_section->owner)
@@ -11018,37 +11036,10 @@
 	  if (tls_mask != 0
 	      && (tls_mask & TLS_TPREL) == 0)
 	    {
-	      bfd_vma rtra;
 	      insn = bfd_get_32 (output_bfd, contents + rel->r_offset);
-	      if ((insn & ((0x3f << 26) | (31 << 11)))
-		  == ((31 << 26) | (13 << 11)))
-		rtra = insn & ((1 << 26) - (1 << 16));
-	      else if ((insn & ((0x3f << 26) | (31 << 16)))
-		       == ((31 << 26) | (13 << 16)))
-		rtra = (insn & (31 << 21)) | ((insn & (31 << 11)) << 5);
-	      else
+	      insn = _bfd_elf_ppc_at_tls_transform (insn, 13);
+	      if (insn == 0)
 		abort ();
-	      if ((insn & ((1 << 11) - (1 << 1))) == 266 << 1)
-		/* add -> addi.  */
-		insn = 14 << 26;
-	      else if ((insn & (31 << 1)) == 23 << 1
-		       && ((insn & (31 << 6)) < 14 << 6
-			   || ((insn & (31 << 6)) >= 16 << 6
-			       && (insn & (31 << 6)) < 24 << 6)))
-		/* load and store indexed -> dform.  */
-		insn = (32 | ((insn >> 6) & 31)) << 26;
-	      else if ((insn & (31 << 1)) == 21 << 1
-		       && (insn & (0x1a << 6)) == 0)
-		/* ldx, ldux, stdx, stdux -> ld, ldu, std, stdu.  */
-		insn = (((58 | ((insn >> 6) & 4)) << 26)
-			| ((insn >> 6) & 1));
-	      else if ((insn & (31 << 1)) == 21 << 1
-		       && (insn & ((1 << 11) - (1 << 1))) == 341 << 1)
-		/* lwax -> lwa.  */
-		insn = (58 << 26) | 2;
-	      else
-		abort ();
-	      insn |= rtra;
 	      bfd_put_32 (output_bfd, insn, contents + rel->r_offset);
 	      /* Was PPC64_TLS which sits on insn boundary, now
 		 PPC64_TPREL16_LO which is at low-order half-word.  */
@@ -11129,8 +11120,7 @@
 		  insn1 |= 58 << 26;	/* ld */
 		  insn2 = 0x7c636a14;	/* add 3,3,13 */
 		  if (offset != (bfd_vma) -1)
-		    rel[1].r_info = ELF64_R_INFO (ELF64_R_SYM (rel[1].r_info),
-						  R_PPC64_NONE);
+		    rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE);
 		  if ((tls_mask & TLS_EXPLICIT) == 0)
 		    r_type = (((r_type - (R_PPC64_GOT_TLSGD16 & 3)) & 3)
 			      + R_PPC64_GOT_TPREL16_DS);
@@ -11229,8 +11219,7 @@
 	      rel->r_info = ELF64_R_INFO (r_symndx, r_type);
 	      /* Zap the reloc on the _tls_get_addr call too.  */
 	      BFD_ASSERT (offset == rel[1].r_offset);
-	      rel[1].r_info = ELF64_R_INFO (ELF64_R_SYM (rel[1].r_info),
-					    R_PPC64_NONE);
+	      rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE);
 	      insn3 = bfd_get_32 (output_bfd,
 				  contents + offset + 4);
 	      if (insn3 == NOP
@@ -11275,8 +11264,7 @@
 	      rel->r_offset = offset + d_offset;
 	      /* Zap the reloc on the _tls_get_addr call too.  */
 	      BFD_ASSERT (offset == rel[1].r_offset);
-	      rel[1].r_info = ELF64_R_INFO (ELF64_R_SYM (rel[1].r_info),
-					    R_PPC64_NONE);
+	      rel[1].r_info = ELF64_R_INFO (STN_UNDEF, R_PPC64_NONE);
 	      insn2 = 0x38630000;	/* addi 3,3,0 */
 	      insn3 = bfd_get_32 (output_bfd,
 				  contents + offset + 4);
@@ -11533,6 +11521,7 @@
 	     checking whether the function is defined.  */
 	  else if (h != NULL
 		   && h->elf.root.type == bfd_link_hash_undefweak
+		   && h->elf.dynindx == -1
 		   && r_type == R_PPC64_REL24
 		   && relocation == 0
 		   && addend == 0)
@@ -11770,10 +11759,8 @@
 	    if (off >= (bfd_vma) -2)
 	      abort ();
 
-	    relocation = got->output_offset + off;
-
-	    /* TOC base (r2) is TOC start plus 0x8000.  */
-	    addend = -TOC_BASE_OFF;
+	    relocation = got->output_section->vma + got->output_offset + off;
+	    addend = -(TOCstart + htab->stub_group[input_section->id].toc_off);
 	  }
 	  break;
 
@@ -11868,6 +11855,22 @@
 	case R_PPC64_TPREL16_HIGHERA:
 	case R_PPC64_TPREL16_HIGHEST:
 	case R_PPC64_TPREL16_HIGHESTA:
+	  if (h != NULL
+	      && h->elf.root.type == bfd_link_hash_undefweak
+	      && h->elf.dynindx == -1)
+	    {
+	      /* Make this relocation against an undefined weak symbol
+		 resolve to zero.  This is really just a tweak, since
+		 code using weak externs ought to check that they are
+		 defined before using them.  */
+	      bfd_byte *p = contents + rel->r_offset - d_offset;
+
+	      insn = bfd_get_32 (output_bfd, p);
+	      insn = _bfd_elf_ppc_at_tprel_transform (insn, 13);
+	      if (insn != 0)
+		bfd_put_32 (output_bfd, insn, p);
+	      break;
+	    }
 	  addend -= htab->elf.tls_sec->vma + TP_OFFSET;
 	  if (info->shared)
 	    /* The TPREL16 relocs shouldn't really be used in shared
@@ -11950,10 +11953,8 @@
 		      ? h->elf.type == STT_GNU_IFUNC
 		      : ELF_ST_TYPE (sym->st_info) == STT_GNU_IFUNC)))
 	    {
-	      Elf_Internal_Rela outrel;
 	      bfd_boolean skip, relocate;
 	      asection *sreloc;
-	      bfd_byte *loc;
 	      bfd_vma out_off;
 
 	      /* When generating a dynamic object, these relocations
@@ -12414,9 +12415,6 @@
 
   if (h->needs_copy)
     {
-      Elf_Internal_Rela rela;
-      bfd_byte *loc;
-
       /* This symbol needs a copy reloc.  Set it up.  */
 
       if (h->dynindx == -1
diff --git a/binutils/bfd/opncls.c b/binutils/bfd/opncls.c
index 3337efe..4afde88 100644
--- a/binutils/bfd/opncls.c
+++ b/binutils/bfd/opncls.c
@@ -635,7 +635,7 @@
   /* If the file was open for writing and is now executable,
      make it so.  */
   if (abfd->direction == write_direction
-      && abfd->flags & EXEC_P)
+      && (abfd->flags & (EXEC_P | DYNAMIC)) != 0)
     {
       struct stat buf;
 
diff --git a/binutils/bfd/po/bfd.pot b/binutils/bfd/po/bfd.pot
index 5f00211..a453192 100644
--- a/binutils/bfd/po/bfd.pot
+++ b/binutils/bfd/po/bfd.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:05+0200\n"
+"POT-Creation-Date: 2010-03-03 15:03+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -48,128 +48,128 @@
 msgid "*unknown*"
 msgstr ""
 
-#: aoutx.h:3994 aoutx.h:4320
+#: aoutx.h:3997 aoutx.h:4323
 msgid "%P: %B: unexpected relocation type\n"
 msgstr ""
 
-#: aoutx.h:5354
+#: aoutx.h:5358
 #, c-format
 msgid "%s: relocatable link from %s to %s not supported"
 msgstr ""
 
-#: archive.c:2056
+#: archive.c:2057
 msgid "Warning: writing archive was slow: rewriting timestamp\n"
 msgstr ""
 
-#: archive.c:2342
+#: archive.c:2344
 msgid "Reading archive file mod timestamp"
 msgstr ""
 
-#: archive.c:2366
+#: archive.c:2368
 msgid "Writing updated armap timestamp"
 msgstr ""
 
-#: bfd.c:375
+#: bfd.c:376
 msgid "No error"
 msgstr ""
 
-#: bfd.c:376
+#: bfd.c:377
 msgid "System call error"
 msgstr ""
 
-#: bfd.c:377
+#: bfd.c:378
 msgid "Invalid bfd target"
 msgstr ""
 
-#: bfd.c:378
+#: bfd.c:379
 msgid "File in wrong format"
 msgstr ""
 
-#: bfd.c:379
+#: bfd.c:380
 msgid "Archive object file in wrong format"
 msgstr ""
 
-#: bfd.c:380
+#: bfd.c:381
 msgid "Invalid operation"
 msgstr ""
 
-#: bfd.c:381
+#: bfd.c:382
 msgid "Memory exhausted"
 msgstr ""
 
-#: bfd.c:382
+#: bfd.c:383
 msgid "No symbols"
 msgstr ""
 
-#: bfd.c:383
+#: bfd.c:384
 msgid "Archive has no index; run ranlib to add one"
 msgstr ""
 
-#: bfd.c:384
+#: bfd.c:385
 msgid "No more archived files"
 msgstr ""
 
-#: bfd.c:385
+#: bfd.c:386
 msgid "Malformed archive"
 msgstr ""
 
-#: bfd.c:386
+#: bfd.c:387
 msgid "File format not recognized"
 msgstr ""
 
-#: bfd.c:387
+#: bfd.c:388
 msgid "File format is ambiguous"
 msgstr ""
 
-#: bfd.c:388
+#: bfd.c:389
 msgid "Section has no contents"
 msgstr ""
 
-#: bfd.c:389
+#: bfd.c:390
 msgid "Nonrepresentable section on output"
 msgstr ""
 
-#: bfd.c:390
+#: bfd.c:391
 msgid "Symbol needs debug section which does not exist"
 msgstr ""
 
-#: bfd.c:391
+#: bfd.c:392
 msgid "Bad value"
 msgstr ""
 
-#: bfd.c:392
+#: bfd.c:393
 msgid "File truncated"
 msgstr ""
 
-#: bfd.c:393
+#: bfd.c:394
 msgid "File too big"
 msgstr ""
 
-#: bfd.c:394
+#: bfd.c:395
 #, c-format
 msgid "Error reading %s: %s"
 msgstr ""
 
-#: bfd.c:395
+#: bfd.c:396
 msgid "#<Invalid error code>"
 msgstr ""
 
-#: bfd.c:919
+#: bfd.c:920
 #, c-format
 msgid "BFD %s assertion fail %s:%d"
 msgstr ""
 
-#: bfd.c:931
+#: bfd.c:932
 #, c-format
 msgid "BFD %s internal error, aborting at %s line %d in %s\n"
 msgstr ""
 
-#: bfd.c:935
+#: bfd.c:936
 #, c-format
 msgid "BFD %s internal error, aborting at %s line %d\n"
 msgstr ""
 
-#: bfd.c:937
+#: bfd.c:938
 msgid "Please report this bug.\n"
 msgstr ""
 
@@ -189,8 +189,8 @@
 msgstr ""
 
 #: bout.c:1150 elf-m10300.c:2078 elf32-avr.c:1639 elf32-frv.c:5743
-#: elf32-xtensa.c:6639 elfxx-sparc.c:2456 reloc.c:5386 reloc16.c:162
-#: vms.c:1918 elf32-ia64.c:788 elf64-ia64.c:788
+#: elfxx-sparc.c:2456 reloc.c:5386 reloc16.c:162 vms.c:1918 elf32-ia64.c:788
+#: elf64-ia64.c:788
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr ""
 
@@ -254,7 +254,7 @@
 "  consider relinking with --support-old-code enabled"
 msgstr ""
 
-#: coff-arm.c:1755 coff-tic80.c:695 cofflink.c:3027
+#: coff-arm.c:1755 coff-tic80.c:695 cofflink.c:3030
 msgid "%B: bad reloc address 0x%lx in section `%A'"
 msgstr ""
 
@@ -267,14 +267,14 @@
 msgid "error: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
 msgstr ""
 
-#: coff-arm.c:2227 elf32-arm.c:10327
+#: coff-arm.c:2227 elf32-arm.c:10334
 #, c-format
 msgid ""
 "error: %B passes floats in float registers, whereas %B passes them in "
 "integer registers"
 msgstr ""
 
-#: coff-arm.c:2230 elf32-arm.c:10331
+#: coff-arm.c:2230 elf32-arm.c:10338
 #, c-format
 msgid ""
 "error: %B passes floats in integer registers, whereas %B passes them in "
@@ -295,12 +295,12 @@
 "position independent"
 msgstr ""
 
-#: coff-arm.c:2275 elf32-arm.c:10396
+#: coff-arm.c:2275 elf32-arm.c:10403
 #, c-format
 msgid "Warning: %B supports interworking, whereas %B does not"
 msgstr ""
 
-#: coff-arm.c:2278 elf32-arm.c:10402
+#: coff-arm.c:2278 elf32-arm.c:10409
 #, c-format
 msgid "Warning: %B does not support interworking, whereas %B does"
 msgstr ""
@@ -310,7 +310,7 @@
 msgid "private flags = %x:"
 msgstr ""
 
-#: coff-arm.c:2310 elf32-arm.c:10453
+#: coff-arm.c:2310 elf32-arm.c:10460
 #, c-format
 msgid " [floats passed in float registers]"
 msgstr ""
@@ -320,7 +320,7 @@
 msgid " [floats passed in integer registers]"
 msgstr ""
 
-#: coff-arm.c:2315 elf32-arm.c:10456
+#: coff-arm.c:2315 elf32-arm.c:10463
 #, c-format
 msgid " [position independent]"
 msgstr ""
@@ -345,14 +345,14 @@
 msgid " [interworking not supported]"
 msgstr ""
 
-#: coff-arm.c:2371 elf32-arm.c:9360
+#: coff-arm.c:2371 elf32-arm.c:9367
 #, c-format
 msgid ""
 "Warning: Not setting interworking flag of %B since it has already been "
 "specified as non-interworking"
 msgstr ""
 
-#: coff-arm.c:2375 elf32-arm.c:9364
+#: coff-arm.c:2375 elf32-arm.c:9371
 #, c-format
 msgid "Warning: Clearing the interworking flag of %B due to outside request"
 msgstr ""
@@ -375,7 +375,7 @@
 msgid "uncertain calling convention for non-COFF symbol"
 msgstr ""
 
-#: coff-m68k.c:506 elf32-bfin.c:5693 elf32-cr16.c:2965 elf32-m68k.c:4615
+#: coff-m68k.c:506 elf32-bfin.c:5691 elf32-cr16.c:2965 elf32-m68k.c:4615
 msgid "unsupported reloc type"
 msgstr ""
 
@@ -408,17 +408,17 @@
 msgid "Unrecognized reloc"
 msgstr ""
 
-#: coff-rs6000.c:2787
+#: coff-rs6000.c:2789
 #, c-format
 msgid "%s: unsupported relocation type 0x%02x"
 msgstr ""
 
-#: coff-rs6000.c:2880
+#: coff-rs6000.c:2882
 #, c-format
 msgid "%s: TOC reloc at 0x%x to symbol `%s' with no TOC entry"
 msgstr ""
 
-#: coff-rs6000.c:3646 coff64-rs6000.c:2168
+#: coff-rs6000.c:3648 coff64-rs6000.c:2170
 msgid "%B: symbol `%s' has unrecognized smclas %d"
 msgstr ""
 
@@ -490,24 +490,24 @@
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr ""
 
-#: coffgen.c:1571
+#: coffgen.c:1573
 msgid "%B: bad string table size %lu"
 msgstr ""
 
-#: cofflink.c:513 elflink.c:4307
+#: cofflink.c:513 elflink.c:4308
 msgid "Warning: type of symbol `%s' changed from %d to %d in %B"
 msgstr ""
 
-#: cofflink.c:2305
+#: cofflink.c:2308
 msgid "%B: relocs in section `%A', but it has no contents"
 msgstr ""
 
-#: cofflink.c:2636 coffswap.h:826
+#: cofflink.c:2639 coffswap.h:826
 #, c-format
 msgid "%s: %s: reloc overflow: 0x%lx > 0xffff"
 msgstr ""
 
-#: cofflink.c:2645 coffswap.h:812
+#: cofflink.c:2648 coffswap.h:812
 #, c-format
 msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
 msgstr ""
@@ -521,54 +521,54 @@
 msgid "warning: unable to update contents of %s section in %s"
 msgstr ""
 
-#: dwarf2.c:430
+#: dwarf2.c:436
 #, c-format
 msgid "Dwarf Error: Can't find %s section."
 msgstr ""
 
-#: dwarf2.c:457
+#: dwarf2.c:463
 #, c-format
 msgid "Dwarf Error: unable to decompress %s section."
 msgstr ""
 
-#: dwarf2.c:468
+#: dwarf2.c:474
 #, c-format
 msgid "Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu)."
 msgstr ""
 
-#: dwarf2.c:865
+#: dwarf2.c:871
 #, c-format
 msgid "Dwarf Error: Invalid or unhandled FORM value: %u."
 msgstr ""
 
-#: dwarf2.c:1079
+#: dwarf2.c:1085
 msgid "Dwarf Error: mangled line number section (bad file number)."
 msgstr ""
 
-#: dwarf2.c:1413
+#: dwarf2.c:1419
 msgid "Dwarf Error: mangled line number section."
 msgstr ""
 
-#: dwarf2.c:1760 dwarf2.c:1867 dwarf2.c:2139
+#: dwarf2.c:1698 dwarf2.c:1806 dwarf2.c:2078
 #, c-format
 msgid "Dwarf Error: Could not find abbrev number %u."
 msgstr ""
 
-#: dwarf2.c:2100
+#: dwarf2.c:2039
 #, c-format
 msgid ""
 "Dwarf Error: found dwarf version '%u', this reader only handles version 2 "
 "and 3 information."
 msgstr ""
 
-#: dwarf2.c:2107
+#: dwarf2.c:2046
 #, c-format
 msgid ""
 "Dwarf Error: found address size '%u', this reader can not handle sizes "
 "greater than '%u'."
 msgstr ""
 
-#: dwarf2.c:2130
+#: dwarf2.c:2069
 #, c-format
 msgid "Dwarf Error: Bad abbrev number: %u."
 msgstr ""
@@ -642,11 +642,11 @@
 msgid "error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s'"
 msgstr ""
 
-#: elf-eh-frame.c:884
+#: elf-eh-frame.c:885
 msgid "%P: error in %B(%A); no .eh_frame_hdr table will be created.\n"
 msgstr ""
 
-#: elf-eh-frame.c:1122
+#: elf-eh-frame.c:1123
 msgid ""
 "%P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created.\n"
 msgstr ""
@@ -658,25 +658,25 @@
 "pie\n"
 msgstr ""
 
-#: elf-m10200.c:456 elf-m10300.c:1575 elf32-avr.c:1251 elf32-bfin.c:3200
-#: elf32-cr16.c:1517 elf32-cr16c.c:790 elf32-cris.c:2089 elf32-crx.c:933
+#: elf-m10200.c:456 elf-m10300.c:1575 elf32-avr.c:1251 elf32-bfin.c:3204
+#: elf32-cr16.c:1517 elf32-cr16c.c:790 elf32-cris.c:2084 elf32-crx.c:933
 #: elf32-d10v.c:516 elf32-fr30.c:616 elf32-frv.c:4114 elf32-h8300.c:516
 #: elf32-i860.c:1218 elf32-ip2k.c:1499 elf32-iq2000.c:691 elf32-lm32.c:1171
 #: elf32-m32c.c:560 elf32-m32r.c:3102 elf32-m68hc1x.c:1136 elf32-mep.c:541
 #: elf32-microblaze.c:1226 elf32-moxie.c:291 elf32-msp430.c:493 elf32-mt.c:402
 #: elf32-openrisc.c:411 elf32-score.c:2752 elf32-score7.c:2591
-#: elf32-spu.c:5045 elf32-v850.c:1701 elf32-xstormy16.c:948 elf64-mmix.c:1533
+#: elf32-spu.c:5047 elf32-v850.c:1701 elf32-xstormy16.c:948 elf64-mmix.c:1533
 msgid "internal error: out of range error"
 msgstr ""
 
-#: elf-m10200.c:460 elf-m10300.c:1579 elf32-avr.c:1255 elf32-bfin.c:3204
-#: elf32-cr16.c:1521 elf32-cr16c.c:794 elf32-cris.c:2093 elf32-crx.c:937
+#: elf-m10200.c:460 elf-m10300.c:1579 elf32-avr.c:1255 elf32-bfin.c:3208
+#: elf32-cr16.c:1521 elf32-cr16c.c:794 elf32-cris.c:2088 elf32-crx.c:937
 #: elf32-d10v.c:520 elf32-fr30.c:620 elf32-frv.c:4118 elf32-h8300.c:520
 #: elf32-i860.c:1222 elf32-iq2000.c:695 elf32-lm32.c:1175 elf32-m32c.c:564
 #: elf32-m32r.c:3106 elf32-m68hc1x.c:1140 elf32-mep.c:545
 #: elf32-microblaze.c:1230 elf32-moxie.c:295 elf32-msp430.c:497
 #: elf32-openrisc.c:415 elf32-score.c:2756 elf32-score7.c:2595
-#: elf32-spu.c:5049 elf32-v850.c:1705 elf32-xstormy16.c:952 elf64-mmix.c:1537
+#: elf32-spu.c:5051 elf32-v850.c:1705 elf32-xstormy16.c:952 elf64-mmix.c:1537
 #: elfxx-mips.c:9103
 msgid "internal error: unsupported relocation error"
 msgstr ""
@@ -684,25 +684,25 @@
 #: elf-m10200.c:464 elf32-cr16.c:1525 elf32-cr16c.c:798 elf32-crx.c:941
 #: elf32-d10v.c:524 elf32-h8300.c:524 elf32-lm32.c:1179 elf32-m32r.c:3110
 #: elf32-m68hc1x.c:1144 elf32-microblaze.c:1234 elf32-score.c:2760
-#: elf32-score7.c:2599 elf32-spu.c:5053
+#: elf32-score7.c:2599 elf32-spu.c:5055
 msgid "internal error: dangerous error"
 msgstr ""
 
-#: elf-m10200.c:468 elf-m10300.c:1592 elf32-avr.c:1263 elf32-bfin.c:3212
-#: elf32-cr16.c:1529 elf32-cr16c.c:802 elf32-cris.c:2101 elf32-crx.c:945
+#: elf-m10200.c:468 elf-m10300.c:1592 elf32-avr.c:1263 elf32-bfin.c:3216
+#: elf32-cr16.c:1529 elf32-cr16c.c:802 elf32-cris.c:2096 elf32-crx.c:945
 #: elf32-d10v.c:528 elf32-fr30.c:628 elf32-frv.c:4126 elf32-h8300.c:528
 #: elf32-i860.c:1230 elf32-ip2k.c:1514 elf32-iq2000.c:703 elf32-lm32.c:1183
 #: elf32-m32c.c:572 elf32-m32r.c:3114 elf32-m68hc1x.c:1148 elf32-mep.c:553
 #: elf32-microblaze.c:1238 elf32-moxie.c:303 elf32-msp430.c:505 elf32-mt.c:410
 #: elf32-openrisc.c:423 elf32-score.c:2769 elf32-score7.c:2603
-#: elf32-spu.c:5057 elf32-v850.c:1725 elf32-xstormy16.c:960 elf64-mmix.c:1545
+#: elf32-spu.c:5059 elf32-v850.c:1725 elf32-xstormy16.c:960 elf64-mmix.c:1545
 msgid "internal error: unknown error"
 msgstr ""
 
-#: elf-m10300.c:1512 elf32-arm.c:8963 elf32-i386.c:3984 elf32-m32r.c:2588
-#: elf32-m68k.c:4099 elf32-ppc.c:7906 elf32-s390.c:3015 elf32-sh.c:3429
-#: elf32-xtensa.c:3027 elf64-ppc.c:12063 elf64-s390.c:2974 elf64-sh64.c:1648
-#: elf64-x86-64.c:3657 elfxx-sparc.c:3317
+#: elf-m10300.c:1512 elf32-arm.c:8970 elf32-i386.c:3986 elf32-m32r.c:2588
+#: elf32-m68k.c:4099 elf32-ppc.c:8116 elf32-s390.c:3015 elf32-sh.c:3429
+#: elf32-xtensa.c:3027 elf64-ppc.c:12252 elf64-s390.c:2974 elf64-sh64.c:1648
+#: elf64-x86-64.c:3658 elfxx-sparc.c:3317
 msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr ""
 
@@ -716,11 +716,11 @@
 msgid "internal error: suspicious relocation type used in shared library"
 msgstr ""
 
-#: elf-m10300.c:4385 elf32-arm.c:11346 elf32-cr16.c:2519 elf32-cris.c:3030
-#: elf32-hppa.c:1891 elf32-i370.c:506 elf32-i386.c:1975 elf32-lm32.c:1873
-#: elf32-m32r.c:1921 elf32-m68k.c:3188 elf32-ppc.c:4953 elf32-s390.c:1650
-#: elf32-sh.c:2574 elf32-vax.c:1052 elf64-ppc.c:6348 elf64-s390.c:1623
-#: elf64-sh64.c:3396 elf64-x86-64.c:1821 elfxx-sparc.c:1802
+#: elf-m10300.c:4385 elf32-arm.c:11353 elf32-cr16.c:2519 elf32-cris.c:3025
+#: elf32-hppa.c:1891 elf32-i370.c:506 elf32-i386.c:1977 elf32-lm32.c:1873
+#: elf32-m32r.c:1921 elf32-m68k.c:3188 elf32-ppc.c:5026 elf32-s390.c:1650
+#: elf32-sh.c:2574 elf32-vax.c:1052 elf64-ppc.c:6394 elf64-s390.c:1623
+#: elf64-sh64.c:3396 elf64-x86-64.c:1822 elfxx-sparc.c:1802
 #, c-format
 msgid "dynamic variable `%s' is zero size"
 msgstr ""
@@ -729,138 +729,138 @@
 msgid "%B: invalid string offset %u >= %lu for section `%s'"
 msgstr ""
 
-#: elf.c:439
+#: elf.c:441
 msgid "%B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
 msgstr ""
 
-#: elf.c:595
+#: elf.c:597
 msgid "%B: Corrupt size field in group section header: 0x%lx"
 msgstr ""
 
-#: elf.c:631
+#: elf.c:633
 msgid "%B: invalid SHT_GROUP entry"
 msgstr ""
 
-#: elf.c:701
+#: elf.c:703
 msgid "%B: no group info for section %A"
 msgstr ""
 
-#: elf.c:730 elf.c:2960 elflink.c:9912
+#: elf.c:732 elf.c:2979 elflink.c:9922
 msgid "%B: warning: sh_link not set for section `%A'"
 msgstr ""
 
-#: elf.c:749
+#: elf.c:751
 msgid "%B: sh_link [%d] in section `%A' is incorrect"
 msgstr ""
 
-#: elf.c:784
+#: elf.c:786
 msgid "%B: unknown [%d] section `%s' in group [%s]"
 msgstr ""
 
-#: elf.c:1104
+#: elf.c:1106
 #, c-format
 msgid ""
 "\n"
 "Program Header:\n"
 msgstr ""
 
-#: elf.c:1146
+#: elf.c:1148
 #, c-format
 msgid ""
 "\n"
 "Dynamic Section:\n"
 msgstr ""
 
-#: elf.c:1282
+#: elf.c:1284
 #, c-format
 msgid ""
 "\n"
 "Version definitions:\n"
 msgstr ""
 
-#: elf.c:1307
+#: elf.c:1309
 #, c-format
 msgid ""
 "\n"
 "Version References:\n"
 msgstr ""
 
-#: elf.c:1312
+#: elf.c:1314
 #, c-format
 msgid "  required from %s:\n"
 msgstr ""
 
-#: elf.c:1702
+#: elf.c:1718
 msgid "%B: invalid link %lu for reloc section %s (index %u)"
 msgstr ""
 
-#: elf.c:1870
+#: elf.c:1886
 msgid ""
 "%B: don't know how to handle allocated, application specific section `%s' [0x"
 "%8x]"
 msgstr ""
 
-#: elf.c:1882
+#: elf.c:1898
 msgid "%B: don't know how to handle processor specific section `%s' [0x%8x]"
 msgstr ""
 
-#: elf.c:1893
+#: elf.c:1909
 msgid "%B: don't know how to handle OS specific section `%s' [0x%8x]"
 msgstr ""
 
-#: elf.c:1903
+#: elf.c:1919
 msgid "%B: don't know how to handle section `%s' [0x%8x]"
 msgstr ""
 
-#: elf.c:2500
+#: elf.c:2517
 #, c-format
 msgid "warning: section `%A' type changed to PROGBITS"
 msgstr ""
 
-#: elf.c:2917
+#: elf.c:2936
 msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
 msgstr ""
 
-#: elf.c:2940
+#: elf.c:2959
 msgid "%B: sh_link of section `%A' points to removed section `%A' of `%B'"
 msgstr ""
 
-#: elf.c:4311
+#: elf.c:4333
 msgid ""
 "%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr ""
 
-#: elf.c:4338
+#: elf.c:4360
 msgid "%B: Not enough room for program headers, try linking with -N"
 msgstr ""
 
-#: elf.c:4420
+#: elf.c:4442
 msgid "%B: section %A vma 0x%lx overlaps previous sections"
 msgstr ""
 
-#: elf.c:4515
+#: elf.c:4537
 msgid "%B: section `%A' can't be allocated in segment %d"
 msgstr ""
 
-#: elf.c:4565
+#: elf.c:4587
 msgid "%B: warning: allocated section `%s' not in segment"
 msgstr ""
 
-#: elf.c:5065
+#: elf.c:5087
 msgid "%B: symbol `%s' required but not present"
 msgstr ""
 
-#: elf.c:5404
+#: elf.c:5426
 msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
 msgstr ""
 
-#: elf.c:6370
+#: elf.c:6393
 #, c-format
 msgid ""
 "Unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr ""
 
-#: elf.c:7356
+#: elf.c:7382
 msgid "%B: unsupported relocation type %s"
 msgstr ""
 
@@ -921,299 +921,299 @@
 msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
 msgstr ""
 
-#: elf32-arm.c:7405
+#: elf32-arm.c:7408
 msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
 msgstr ""
 
-#: elf32-arm.c:8085
+#: elf32-arm.c:8092
 msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
 msgstr ""
 
-#: elf32-arm.c:8300
+#: elf32-arm.c:8307
 msgid ""
 "%B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group "
 "relocations"
 msgstr ""
 
-#: elf32-arm.c:8340 elf32-arm.c:8427 elf32-arm.c:8510 elf32-arm.c:8595
+#: elf32-arm.c:8347 elf32-arm.c:8434 elf32-arm.c:8517 elf32-arm.c:8602
 msgid "%B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s"
 msgstr ""
 
-#: elf32-arm.c:8821 elf32-sh.c:3325 elf64-sh64.c:1556
+#: elf32-arm.c:8828 elf32-sh.c:3325 elf64-sh64.c:1556
 msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
 msgstr ""
 
-#: elf32-arm.c:8939 elf32-m68k.c:4134 elf32-xtensa.c:2765 elf64-ppc.c:10743
+#: elf32-arm.c:8946 elf32-m68k.c:4134 elf32-xtensa.c:2765 elf64-ppc.c:10939
 msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:8940 elf32-m68k.c:4135 elf32-xtensa.c:2766 elf64-ppc.c:10744
+#: elf32-arm.c:8947 elf32-m68k.c:4135 elf32-xtensa.c:2766 elf64-ppc.c:10940
 msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:8997
+#: elf32-arm.c:9004
 msgid "out of range"
 msgstr ""
 
-#: elf32-arm.c:9001
+#: elf32-arm.c:9008
 msgid "unsupported relocation"
 msgstr ""
 
-#: elf32-arm.c:9009
+#: elf32-arm.c:9016
 msgid "unknown error"
 msgstr ""
 
-#: elf32-arm.c:9409
+#: elf32-arm.c:9416
 msgid ""
 "Warning: Clearing the interworking flag of %B because non-interworking code "
 "in %B has been linked with it"
 msgstr ""
 
-#: elf32-arm.c:9652
+#: elf32-arm.c:9659
 msgid "error: %B: Unknown CPU architecture"
 msgstr ""
 
-#: elf32-arm.c:9690
+#: elf32-arm.c:9697
 msgid "error: %B: Conflicting CPU architectures %d/%d"
 msgstr ""
 
-#: elf32-arm.c:9747
+#: elf32-arm.c:9754
 msgid "error: %B uses VFP register arguments, %B does not"
 msgstr ""
 
-#: elf32-arm.c:9897
+#: elf32-arm.c:9904
 msgid "error: %B: Conflicting architecture profiles %c/%c"
 msgstr ""
 
-#: elf32-arm.c:9921
+#: elf32-arm.c:9928
 msgid "Warning: %B: Conflicting platform configuration"
 msgstr ""
 
-#: elf32-arm.c:9930
+#: elf32-arm.c:9937
 msgid "error: %B: Conflicting use of R9"
 msgstr ""
 
-#: elf32-arm.c:9942
+#: elf32-arm.c:9949
 msgid "error: %B: SB relative addressing conflicts with use of R9"
 msgstr ""
 
-#: elf32-arm.c:9955
+#: elf32-arm.c:9962
 msgid ""
 "warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; "
 "use of wchar_t values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:9986
+#: elf32-arm.c:9993
 msgid ""
 "warning: %B uses %s enums yet the output is to use %s enums; use of enum "
 "values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:9998
+#: elf32-arm.c:10005
 msgid "error: %B uses iWMMXt register arguments, %B does not"
 msgstr ""
 
-#: elf32-arm.c:10020
+#: elf32-arm.c:10027
 msgid "error: fp16 format mismatch between %B and %B"
 msgstr ""
 
-#: elf32-arm.c:10063 elf32-arm.c:10156
+#: elf32-arm.c:10070 elf32-arm.c:10163
 msgid "%B: Unknown mandatory EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:10071 elf32-arm.c:10164
+#: elf32-arm.c:10078 elf32-arm.c:10171
 msgid "Warning: %B: Unknown EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:10224
+#: elf32-arm.c:10231
 msgid "error: %B is already in final BE8 format"
 msgstr ""
 
-#: elf32-arm.c:10300
+#: elf32-arm.c:10307
 msgid ""
 "error: Source object %B has EABI version %d, but target %B has EABI version %"
 "d"
 msgstr ""
 
-#: elf32-arm.c:10316
+#: elf32-arm.c:10323
 msgid "error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
 msgstr ""
 
-#: elf32-arm.c:10341
+#: elf32-arm.c:10348
 msgid "error: %B uses VFP instructions, whereas %B does not"
 msgstr ""
 
-#: elf32-arm.c:10345
+#: elf32-arm.c:10352
 msgid "error: %B uses FPA instructions, whereas %B does not"
 msgstr ""
 
-#: elf32-arm.c:10355
+#: elf32-arm.c:10362
 msgid "error: %B uses Maverick instructions, whereas %B does not"
 msgstr ""
 
-#: elf32-arm.c:10359
+#: elf32-arm.c:10366
 msgid "error: %B does not use Maverick instructions, whereas %B does"
 msgstr ""
 
-#: elf32-arm.c:10378
+#: elf32-arm.c:10385
 msgid "error: %B uses software FP, whereas %B uses hardware FP"
 msgstr ""
 
-#: elf32-arm.c:10382
+#: elf32-arm.c:10389
 msgid "error: %B uses hardware FP, whereas %B uses software FP"
 msgstr ""
 
 #. Ignore init flag - it may not be set, despite the flags field
 #. containing valid data.
 #. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-arm.c:10429 elf32-bfin.c:5082 elf32-cris.c:4110 elf32-m68hc1x.c:1280
+#: elf32-arm.c:10436 elf32-bfin.c:5080 elf32-cris.c:4105 elf32-m68hc1x.c:1280
 #: elf32-m68k.c:1169 elf32-score.c:4039 elf32-score7.c:3876 elf32-vax.c:540
 #: elfxx-mips.c:12755
 #, c-format
 msgid "private flags = %lx:"
 msgstr ""
 
-#: elf32-arm.c:10438
+#: elf32-arm.c:10445
 #, c-format
 msgid " [interworking enabled]"
 msgstr ""
 
-#: elf32-arm.c:10446
+#: elf32-arm.c:10453
 #, c-format
 msgid " [VFP float format]"
 msgstr ""
 
-#: elf32-arm.c:10448
+#: elf32-arm.c:10455
 #, c-format
 msgid " [Maverick float format]"
 msgstr ""
 
-#: elf32-arm.c:10450
+#: elf32-arm.c:10457
 #, c-format
 msgid " [FPA float format]"
 msgstr ""
 
-#: elf32-arm.c:10459
+#: elf32-arm.c:10466
 #, c-format
 msgid " [new ABI]"
 msgstr ""
 
-#: elf32-arm.c:10462
+#: elf32-arm.c:10469
 #, c-format
 msgid " [old ABI]"
 msgstr ""
 
-#: elf32-arm.c:10465
+#: elf32-arm.c:10472
 #, c-format
 msgid " [software FP]"
 msgstr ""
 
-#: elf32-arm.c:10474
+#: elf32-arm.c:10481
 #, c-format
 msgid " [Version1 EABI]"
 msgstr ""
 
-#: elf32-arm.c:10477 elf32-arm.c:10488
+#: elf32-arm.c:10484 elf32-arm.c:10495
 #, c-format
 msgid " [sorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:10479 elf32-arm.c:10490
+#: elf32-arm.c:10486 elf32-arm.c:10497
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:10485
+#: elf32-arm.c:10492
 #, c-format
 msgid " [Version2 EABI]"
 msgstr ""
 
-#: elf32-arm.c:10493
+#: elf32-arm.c:10500
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr ""
 
-#: elf32-arm.c:10496
+#: elf32-arm.c:10503
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr ""
 
-#: elf32-arm.c:10503
+#: elf32-arm.c:10510
 #, c-format
 msgid " [Version3 EABI]"
 msgstr ""
 
-#: elf32-arm.c:10507
+#: elf32-arm.c:10514
 #, c-format
 msgid " [Version4 EABI]"
 msgstr ""
 
-#: elf32-arm.c:10511
+#: elf32-arm.c:10518
 #, c-format
 msgid " [Version5 EABI]"
 msgstr ""
 
-#: elf32-arm.c:10514
+#: elf32-arm.c:10521
 #, c-format
 msgid " [BE8]"
 msgstr ""
 
-#: elf32-arm.c:10517
+#: elf32-arm.c:10524
 #, c-format
 msgid " [LE8]"
 msgstr ""
 
-#: elf32-arm.c:10523
+#: elf32-arm.c:10530
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr ""
 
-#: elf32-arm.c:10530
+#: elf32-arm.c:10537
 #, c-format
 msgid " [relocatable executable]"
 msgstr ""
 
-#: elf32-arm.c:10533
+#: elf32-arm.c:10540
 #, c-format
 msgid " [has entry point]"
 msgstr ""
 
-#: elf32-arm.c:10538
+#: elf32-arm.c:10545
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr ""
 
-#: elf32-arm.c:10783 elf32-i386.c:1300 elf32-s390.c:998 elf32-xtensa.c:1000
-#: elf64-s390.c:952 elf64-x86-64.c:1082 elfxx-sparc.c:1121
+#: elf32-arm.c:10790 elf32-i386.c:1300 elf32-s390.c:998 elf32-xtensa.c:1000
+#: elf64-s390.c:952 elf64-x86-64.c:1083 elfxx-sparc.c:1121
 msgid "%B: bad symbol index: %d"
 msgstr ""
 
-#: elf32-arm.c:10904 elf64-x86-64.c:1242 elf64-x86-64.c:1411 elfxx-mips.c:7870
+#: elf32-arm.c:10911 elf64-x86-64.c:1243 elf64-x86-64.c:1412 elfxx-mips.c:7870
 msgid ""
 "%B: relocation %s against `%s' can not be used when making a shared object; "
 "recompile with -fPIC"
 msgstr ""
 
-#: elf32-arm.c:11893
+#: elf32-arm.c:11900
 #, c-format
 msgid "Errors encountered processing file %s"
 msgstr ""
 
-#: elf32-arm.c:13339
+#: elf32-arm.c:13346
 msgid "%B: error: Cortex-A8 erratum stub is allocated in unsafe location"
 msgstr ""
 
 #. There's not much we can do apart from complain if this
 #. happens.
-#: elf32-arm.c:13366
+#: elf32-arm.c:13373
 msgid "%B: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr ""
 
-#: elf32-arm.c:13457 elf32-arm.c:13479
+#: elf32-arm.c:13464 elf32-arm.c:13486
 msgid "%B: error: VFP11 veneer out of range"
 msgstr ""
 
-#: elf32-avr.c:1259 elf32-bfin.c:3208 elf32-cris.c:2097 elf32-fr30.c:624
+#: elf32-avr.c:1259 elf32-bfin.c:3212 elf32-cris.c:2092 elf32-fr30.c:624
 #: elf32-frv.c:4122 elf32-i860.c:1226 elf32-ip2k.c:1510 elf32-iq2000.c:699
 #: elf32-m32c.c:568 elf32-mep.c:549 elf32-moxie.c:299 elf32-msp430.c:501
 #: elf32-mt.c:406 elf32-openrisc.c:419 elf32-v850.c:1709 elf32-xstormy16.c:956
@@ -1221,7 +1221,7 @@
 msgid "internal error: dangerous relocation"
 msgstr ""
 
-#: elf32-avr.c:2409 elf32-hppa.c:605 elf32-m68hc1x.c:165 elf64-ppc.c:4141
+#: elf32-avr.c:2409 elf32-hppa.c:605 elf32-m68hc1x.c:165 elf64-ppc.c:4146
 msgid "%B: cannot create stub entry %s"
 msgstr ""
 
@@ -1229,54 +1229,54 @@
 msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
 msgstr ""
 
-#: elf32-bfin.c:1614 elf32-i386.c:4026 elf32-m68k.c:4176 elf32-s390.c:3067
-#: elf64-s390.c:3026 elf64-x86-64.c:3697
+#: elf32-bfin.c:1614 elf32-i386.c:4028 elf32-m68k.c:4176 elf32-s390.c:3067
+#: elf64-s390.c:3026 elf64-x86-64.c:3698
 msgid "%B(%A+0x%lx): reloc against `%s': error %d"
 msgstr ""
 
-#: elf32-bfin.c:2714
+#: elf32-bfin.c:2718
 msgid "%B: relocation at `%A+0x%x' references symbol `%s' with nonzero addend"
 msgstr ""
 
-#: elf32-bfin.c:2728 elf32-frv.c:2904
+#: elf32-bfin.c:2732 elf32-frv.c:2904
 msgid "relocation references symbol not defined in the module"
 msgstr ""
 
-#: elf32-bfin.c:2825
+#: elf32-bfin.c:2829
 msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
 msgstr ""
 
-#: elf32-bfin.c:2866 elf32-bfin.c:2989 elf32-frv.c:3641 elf32-frv.c:3762
+#: elf32-bfin.c:2870 elf32-bfin.c:2993 elf32-frv.c:3641 elf32-frv.c:3762
 msgid "cannot emit fixups in read-only section"
 msgstr ""
 
-#: elf32-bfin.c:2897 elf32-bfin.c:3027 elf32-frv.c:3672 elf32-frv.c:3806
+#: elf32-bfin.c:2901 elf32-bfin.c:3031 elf32-frv.c:3672 elf32-frv.c:3806
 #: elf32-lm32.c:1104
 msgid "cannot emit dynamic relocations in read-only section"
 msgstr ""
 
-#: elf32-bfin.c:2947
+#: elf32-bfin.c:2951
 msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
 msgstr ""
 
-#: elf32-bfin.c:3112
+#: elf32-bfin.c:3116
 msgid "relocations between different segments are not supported"
 msgstr ""
 
-#: elf32-bfin.c:3113
+#: elf32-bfin.c:3117
 msgid "warning: relocation references a different segment"
 msgstr ""
 
-#: elf32-bfin.c:4974 elf32-frv.c:6408
+#: elf32-bfin.c:4972 elf32-frv.c:6408
 msgid "%B: unsupported relocation type %i"
 msgstr ""
 
-#: elf32-bfin.c:5127 elf32-frv.c:6816
+#: elf32-bfin.c:5125 elf32-frv.c:6816
 #, c-format
 msgid "%s: cannot link non-fdpic object file into fdpic executable"
 msgstr ""
 
-#: elf32-bfin.c:5131 elf32-frv.c:6820
+#: elf32-bfin.c:5129 elf32-frv.c:6820
 #, c-format
 msgid "%s: cannot link fdpic object file into non-fdpic executable"
 msgstr ""
@@ -1293,8 +1293,8 @@
 msgid "%B, section %A: No PLT for relocation %s against symbol `%s'"
 msgstr ""
 
-#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1641 elf32-cris.c:1730
-#: elf32-cris.c:1883
+#: elf32-cris.c:1246 elf32-cris.c:1379 elf32-cris.c:1641 elf32-cris.c:1725
+#: elf32-cris.c:1878
 msgid "[whose name is lost]"
 msgstr ""
 
@@ -1303,7 +1303,7 @@
 "%B, section %A: relocation %s with non-zero addend %d against local symbol"
 msgstr ""
 
-#: elf32-cris.c:1373 elf32-cris.c:1724 elf32-cris.c:1877
+#: elf32-cris.c:1373 elf32-cris.c:1719 elf32-cris.c:1872
 msgid ""
 "%B, section %A: relocation %s with non-zero addend %d against symbol `%s'"
 msgstr ""
@@ -1323,79 +1323,79 @@
 "declaration mixup?"
 msgstr ""
 
-#: elf32-cris.c:2010
+#: elf32-cris.c:2005
 msgid ""
 "%B, section %A: relocation %s is not allowed for symbol: `%s' which is "
 "defined outside the program, perhaps a declaration mixup?"
 msgstr ""
 
-#: elf32-cris.c:2063
+#: elf32-cris.c:2058
 msgid "(too many global variables for -fpic: recompile with -fPIC)"
 msgstr ""
 
-#: elf32-cris.c:2070
+#: elf32-cris.c:2065
 msgid ""
 "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or "
 "-mno-small-tls)"
 msgstr ""
 
-#: elf32-cris.c:3204
+#: elf32-cris.c:3199
 msgid ""
 "%B, section %A:\n"
 "  v10/v32 compatible object %s must not contain a PIC relocation"
 msgstr ""
 
-#: elf32-cris.c:3309
+#: elf32-cris.c:3304
 msgid ""
 "%B, section %A:\n"
 "  relocation %s not valid in a shared object; typically an option mixup, "
 "recompile with -fPIC"
 msgstr ""
 
-#: elf32-cris.c:3523
+#: elf32-cris.c:3518
 msgid ""
 "%B, section %A:\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
 msgstr ""
 
-#: elf32-cris.c:3940
+#: elf32-cris.c:3935
 msgid ""
 "%B, section `%A', to symbol `%s':\n"
 "  relocation %s should not be used in a shared object; recompile with -fPIC"
 msgstr ""
 
-#: elf32-cris.c:4059
+#: elf32-cris.c:4054
 msgid "Unexpected machine number"
 msgstr ""
 
-#: elf32-cris.c:4113
+#: elf32-cris.c:4108
 #, c-format
 msgid " [symbols have a _ prefix]"
 msgstr ""
 
-#: elf32-cris.c:4116
+#: elf32-cris.c:4111
 #, c-format
 msgid " [v10 and v32]"
 msgstr ""
 
-#: elf32-cris.c:4119
+#: elf32-cris.c:4114
 #, c-format
 msgid " [v32]"
 msgstr ""
 
-#: elf32-cris.c:4164
+#: elf32-cris.c:4159
 msgid "%B: uses _-prefixed symbols, but writing file with non-prefixed symbols"
 msgstr ""
 
-#: elf32-cris.c:4165
+#: elf32-cris.c:4160
 msgid "%B: uses non-prefixed symbols, but writing file with _-prefixed symbols"
 msgstr ""
 
-#: elf32-cris.c:4184
+#: elf32-cris.c:4179
 msgid "%B contains CRIS v32 code, incompatible with previous objects"
 msgstr ""
 
-#: elf32-cris.c:4186
+#: elf32-cris.c:4181
 msgid "%B contains non-CRIS-v32 code, incompatible with previous objects"
 msgstr ""
 
@@ -1525,52 +1525,52 @@
 msgid ".got section not immediately after .plt section"
 msgstr ""
 
-#: elf32-i386.c:371 elf32-ppc.c:1666 elf32-s390.c:379 elf64-ppc.c:2283
+#: elf32-i386.c:371 elf32-ppc.c:1674 elf32-s390.c:379 elf64-ppc.c:2283
 #: elf64-s390.c:403 elf64-x86-64.c:234
 msgid "%B: invalid relocation type %d"
 msgstr ""
 
-#: elf32-i386.c:1246 elf64-x86-64.c:1029
+#: elf32-i386.c:1246 elf64-x86-64.c:1030
 msgid ""
 "%B: TLS transition from %s to %s against `%s' at 0x%lx in section `%A' failed"
 msgstr ""
 
-#: elf32-i386.c:1387 elf32-i386.c:2970 elf64-x86-64.c:1171 elf64-x86-64.c:2680
+#: elf32-i386.c:1387 elf32-i386.c:2972 elf64-x86-64.c:1172 elf64-x86-64.c:2681
 msgid "%B: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
 msgstr ""
 
-#: elf32-i386.c:1548 elf32-s390.c:1180 elf32-sh.c:5065 elf32-xtensa.c:1173
+#: elf32-i386.c:1549 elf32-s390.c:1180 elf32-sh.c:5065 elf32-xtensa.c:1173
 #: elf64-s390.c:1143 elfxx-sparc.c:1257
 msgid "%B: `%s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf32-i386.c:2805
+#: elf32-i386.c:2807
 msgid "%B: unrecognized relocation (0x%x) in section `%A'"
 msgstr ""
 
-#: elf32-i386.c:3219 elf64-x86-64.c:3081
+#: elf32-i386.c:3221 elf64-x86-64.c:3082
 msgid "hidden symbol"
 msgstr ""
 
-#: elf32-i386.c:3222 elf64-x86-64.c:3084
+#: elf32-i386.c:3224 elf64-x86-64.c:3085
 msgid "internal symbol"
 msgstr ""
 
-#: elf32-i386.c:3225 elf64-x86-64.c:3087
+#: elf32-i386.c:3227 elf64-x86-64.c:3088
 msgid "protected symbol"
 msgstr ""
 
-#: elf32-i386.c:3228 elf64-x86-64.c:3090
+#: elf32-i386.c:3230 elf64-x86-64.c:3091
 msgid "symbol"
 msgstr ""
 
-#: elf32-i386.c:3233
+#: elf32-i386.c:3235
 msgid ""
 "%B: relocation R_386_GOTOFF against undefined %s `%s' can not be used when "
 "making a shared object"
 msgstr ""
 
-#: elf32-i386.c:3243
+#: elf32-i386.c:3245
 msgid ""
 "%B: relocation R_386_GOTOFF against protected function `%s' can not be used "
 "when making a shared object"
@@ -1686,7 +1686,7 @@
 msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
 msgstr ""
 
-#: elf32-m68hc1x.c:1255 elf32-ppc.c:4255 elf64-sparc.c:698 elfxx-mips.c:12617
+#: elf32-m68hc1x.c:1255 elf32-ppc.c:4262 elf64-sparc.c:698 elfxx-mips.c:12617
 msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
 msgstr ""
 
@@ -1786,7 +1786,7 @@
 msgid "%B: probably compiled without -fPIC?"
 msgstr ""
 
-#: elf32-microblaze.c:2086 elflink.c:12444
+#: elf32-microblaze.c:2086 elflink.c:12457
 msgid "%B: bad relocation section name `%s'"
 msgstr ""
 
@@ -1799,124 +1799,124 @@
 msgid "32bits gp relative relocation occurs for an external symbol"
 msgstr ""
 
-#: elf32-ppc.c:1731
+#: elf32-ppc.c:1739
 #, c-format
 msgid "generic linker can't handle %s"
 msgstr ""
 
-#: elf32-ppc.c:2211
+#: elf32-ppc.c:2219
 msgid "corrupt or empty %s section in %B"
 msgstr ""
 
-#: elf32-ppc.c:2218
+#: elf32-ppc.c:2226
 msgid "unable to read in %s section from %B"
 msgstr ""
 
-#: elf32-ppc.c:2224
+#: elf32-ppc.c:2232
 msgid "corrupt %s section in %B"
 msgstr ""
 
-#: elf32-ppc.c:2267
+#: elf32-ppc.c:2275
 msgid "warning: unable to set size of %s section in %B"
 msgstr ""
 
-#: elf32-ppc.c:2315
+#: elf32-ppc.c:2323
 msgid "failed to allocate space for new APUinfo section."
 msgstr ""
 
-#: elf32-ppc.c:2334
+#: elf32-ppc.c:2342
 msgid "failed to compute new APUinfo section."
 msgstr ""
 
-#: elf32-ppc.c:2337
+#: elf32-ppc.c:2345
 msgid "failed to install new APUinfo section."
 msgstr ""
 
-#: elf32-ppc.c:3364
+#: elf32-ppc.c:3379
 msgid "%B: relocation %s cannot be used when making a shared object"
 msgstr ""
 
 #. It does not make sense to have a procedure linkage
 #. table entry for a local symbol.
-#: elf32-ppc.c:3723
+#: elf32-ppc.c:3732
 msgid "%B(%A+0x%lx): %s reloc against local symbol"
 msgstr ""
 
-#: elf32-ppc.c:4067 elf32-ppc.c:4082 elfxx-mips.c:12324 elfxx-mips.c:12350
+#: elf32-ppc.c:4074 elf32-ppc.c:4089 elfxx-mips.c:12324 elfxx-mips.c:12350
 #: elfxx-mips.c:12372 elfxx-mips.c:12398
 msgid "Warning: %B uses hard float, %B uses soft float"
 msgstr ""
 
-#: elf32-ppc.c:4070 elf32-ppc.c:4074
+#: elf32-ppc.c:4077 elf32-ppc.c:4081
 msgid ""
 "Warning: %B uses double-precision hard float, %B uses single-precision hard "
 "float"
 msgstr ""
 
-#: elf32-ppc.c:4078
+#: elf32-ppc.c:4085
 msgid "Warning: %B uses soft float, %B uses single-precision hard float"
 msgstr ""
 
-#: elf32-ppc.c:4085 elf32-ppc.c:4089 elfxx-mips.c:12304 elfxx-mips.c:12308
+#: elf32-ppc.c:4092 elf32-ppc.c:4096 elfxx-mips.c:12304 elfxx-mips.c:12308
 msgid "Warning: %B uses unknown floating point ABI %d"
 msgstr ""
 
-#: elf32-ppc.c:4131 elf32-ppc.c:4135
+#: elf32-ppc.c:4138 elf32-ppc.c:4142
 msgid "Warning: %B uses unknown vector ABI %d"
 msgstr ""
 
-#: elf32-ppc.c:4139
+#: elf32-ppc.c:4146
 msgid "Warning: %B uses vector ABI \"%s\", %B uses \"%s\""
 msgstr ""
 
-#: elf32-ppc.c:4156 elf32-ppc.c:4159
+#: elf32-ppc.c:4163 elf32-ppc.c:4166
 msgid "Warning: %B uses r3/r4 for small structure returns, %B uses memory"
 msgstr ""
 
-#: elf32-ppc.c:4162 elf32-ppc.c:4166
+#: elf32-ppc.c:4169 elf32-ppc.c:4173
 msgid "Warning: %B uses unknown small structure return convention %d"
 msgstr ""
 
-#: elf32-ppc.c:4220
+#: elf32-ppc.c:4227
 msgid ""
 "%B: compiled with -mrelocatable and linked with modules compiled normally"
 msgstr ""
 
-#: elf32-ppc.c:4228
+#: elf32-ppc.c:4235
 msgid ""
 "%B: compiled normally and linked with modules compiled with -mrelocatable"
 msgstr ""
 
-#: elf32-ppc.c:4314
+#: elf32-ppc.c:4323
 msgid "Using bss-plt due to %B"
 msgstr ""
 
-#: elf32-ppc.c:7056 elf64-ppc.c:11364
+#: elf32-ppc.c:7219 elf64-ppc.c:11541
 msgid "%B: unknown relocation type %d for symbol %s"
 msgstr ""
 
-#: elf32-ppc.c:7316
+#: elf32-ppc.c:7480
 msgid "%B(%A+0x%lx): non-zero addend on %s reloc against `%s'"
 msgstr ""
 
-#: elf32-ppc.c:7499 elf64-ppc.c:11854
+#: elf32-ppc.c:7678 elf64-ppc.c:12043
 msgid "%B(%A+0x%lx): relocation %s for indirect function %s unsupported"
 msgstr ""
 
-#: elf32-ppc.c:7709 elf32-ppc.c:7736 elf32-ppc.c:7787
+#: elf32-ppc.c:7908 elf32-ppc.c:7938 elf32-ppc.c:7985
 msgid ""
 "%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
 msgstr ""
 
-#: elf32-ppc.c:7847
+#: elf32-ppc.c:8057
 msgid "%B: relocation %s is not yet supported for symbol %s."
 msgstr ""
 
-#: elf32-ppc.c:7955 elf64-ppc.c:12110
+#: elf32-ppc.c:8165 elf64-ppc.c:12299
 msgid "%B(%A+0x%lx): %s reloc against `%s': error %d"
 msgstr ""
 
-#: elf32-ppc.c:8423
+#: elf32-ppc.c:8656
 #, c-format
 msgid "%s not defined in linker created %s"
 msgstr ""
@@ -2079,135 +2079,135 @@
 msgid "%B: linking little endian files with big endian files"
 msgstr ""
 
-#: elf32-spu.c:723
+#: elf32-spu.c:713
 msgid "%X%P: overlay section %A does not start on a cache line.\n"
 msgstr ""
 
-#: elf32-spu.c:731
+#: elf32-spu.c:721
 msgid "%X%P: overlay section %A is larger than a cache line.\n"
 msgstr ""
 
-#: elf32-spu.c:751
+#: elf32-spu.c:741
 msgid "%X%P: overlay section %A is not in cache area.\n"
 msgstr ""
 
-#: elf32-spu.c:791
+#: elf32-spu.c:781
 msgid "%X%P: overlay sections %A and %A do not start at the same address.\n"
 msgstr ""
 
-#: elf32-spu.c:1015
+#: elf32-spu.c:1005
 msgid "warning: call to non-function symbol %s defined in %B"
 msgstr ""
 
-#: elf32-spu.c:1365
+#: elf32-spu.c:1355
 msgid "%A:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
 msgstr ""
 
-#: elf32-spu.c:1884
+#: elf32-spu.c:1874
 msgid "%B is not allowed to define %s"
 msgstr ""
 
-#: elf32-spu.c:1892
+#: elf32-spu.c:1882
 #, c-format
 msgid "you are not allowed to define %s in a script"
 msgstr ""
 
-#: elf32-spu.c:1926
+#: elf32-spu.c:1916
 #, c-format
 msgid "%s in overlay section"
 msgstr ""
 
-#: elf32-spu.c:1955
+#: elf32-spu.c:1945
 msgid "overlay stub relocation overflow"
 msgstr ""
 
-#: elf32-spu.c:1964 elf64-ppc.c:10441
+#: elf32-spu.c:1954 elf64-ppc.c:10637
 msgid "stubs don't match calculated size"
 msgstr ""
 
-#: elf32-spu.c:2546
+#: elf32-spu.c:2536
 #, c-format
 msgid "warning: %s overlaps %s\n"
 msgstr ""
 
-#: elf32-spu.c:2562
+#: elf32-spu.c:2552
 #, c-format
 msgid "warning: %s exceeds section size\n"
 msgstr ""
 
-#: elf32-spu.c:2593
+#: elf32-spu.c:2583
 msgid "%A:0x%v not found in function table\n"
 msgstr ""
 
-#: elf32-spu.c:2740
+#: elf32-spu.c:2723
 msgid "%B(%A+0x%v): call to non-code section %B(%A), analysis incomplete\n"
 msgstr ""
 
-#: elf32-spu.c:3297
+#: elf32-spu.c:3291
 #, c-format
 msgid "Stack analysis will ignore the call from %s to %s\n"
 msgstr ""
 
-#: elf32-spu.c:3988
+#: elf32-spu.c:3982
 msgid "  %s: 0x%v\n"
 msgstr ""
 
-#: elf32-spu.c:3989
+#: elf32-spu.c:3983
 msgid "%s: 0x%v 0x%v\n"
 msgstr ""
 
-#: elf32-spu.c:3994
+#: elf32-spu.c:3988
 msgid "  calls:\n"
 msgstr ""
 
-#: elf32-spu.c:4002
+#: elf32-spu.c:3996
 #, c-format
 msgid "   %s%s %s\n"
 msgstr ""
 
-#: elf32-spu.c:4304
+#: elf32-spu.c:4301
 #, c-format
 msgid "%s duplicated in %s\n"
 msgstr ""
 
-#: elf32-spu.c:4308
+#: elf32-spu.c:4305
 #, c-format
 msgid "%s duplicated\n"
 msgstr ""
 
-#: elf32-spu.c:4315
+#: elf32-spu.c:4312
 msgid "sorry, no support for duplicate object files in auto-overlay script\n"
 msgstr ""
 
-#: elf32-spu.c:4356
+#: elf32-spu.c:4353
 msgid ""
 "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local "
 "store\n"
 msgstr ""
 
-#: elf32-spu.c:4512
+#: elf32-spu.c:4509
 msgid "%B:%A%s exceeds overlay size\n"
 msgstr ""
 
-#: elf32-spu.c:4669
+#: elf32-spu.c:4671
 msgid "Stack size for call graph root nodes.\n"
 msgstr ""
 
-#: elf32-spu.c:4670
+#: elf32-spu.c:4672
 msgid ""
 "\n"
 "Stack size for functions.  Annotations: '*' max stack, 't' tail call\n"
 msgstr ""
 
-#: elf32-spu.c:4680
+#: elf32-spu.c:4682
 msgid "Maximum stack required is 0x%v\n"
 msgstr ""
 
-#: elf32-spu.c:4771
+#: elf32-spu.c:4773
 msgid "fatal error while creating .fixup"
 msgstr ""
 
-#: elf32-spu.c:5009
+#: elf32-spu.c:5011
 msgid "%B(%s+0x%lx): unresolvable %s relocation against symbol `%s'"
 msgstr ""
 
@@ -2350,26 +2350,26 @@
 msgid "Attempt to convert L32R/CALLX to CALL failed"
 msgstr ""
 
-#: elf32-xtensa.c:6290 elf32-xtensa.c:6366 elf32-xtensa.c:7486
+#: elf32-xtensa.c:6290 elf32-xtensa.c:6366 elf32-xtensa.c:7482
 msgid ""
 "%B(%A+0x%lx): could not decode instruction; possible configuration mismatch"
 msgstr ""
 
-#: elf32-xtensa.c:7226
+#: elf32-xtensa.c:7222
 msgid ""
 "%B(%A+0x%lx): could not decode instruction for XTENSA_ASM_SIMPLIFY "
 "relocation; possible configuration mismatch"
 msgstr ""
 
-#: elf32-xtensa.c:8987
+#: elf32-xtensa.c:8983
 msgid "invalid relocation address"
 msgstr ""
 
-#: elf32-xtensa.c:9036
+#: elf32-xtensa.c:9032
 msgid "overflow after relaxation"
 msgstr ""
 
-#: elf32-xtensa.c:10167
+#: elf32-xtensa.c:10163
 msgid "%B(%A+0x%lx): unexpected fix for %s relocation"
 msgstr ""
 
@@ -2493,59 +2493,59 @@
 msgid "%B: compiled for a little endian system and target is big endian"
 msgstr ""
 
-#: elf64-ppc.c:6338
+#: elf64-ppc.c:6384
 #, c-format
 msgid ""
 "copy reloc against `%s' requires lazy plt linking; avoid setting "
 "LD_BIND_NOW=1 or upgrade gcc"
 msgstr ""
 
-#: elf64-ppc.c:6767
+#: elf64-ppc.c:6811
 msgid "dynreloc miscount for %B, section %A"
 msgstr ""
 
-#: elf64-ppc.c:6851
+#: elf64-ppc.c:6895
 msgid "%B: .opd is not a regular array of opd entries"
 msgstr ""
 
-#: elf64-ppc.c:6860
+#: elf64-ppc.c:6904
 msgid "%B: unexpected reloc type %u in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:6881
+#: elf64-ppc.c:6925
 msgid "%B: undefined sym `%s' in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:7640 elf64-ppc.c:8017
+#: elf64-ppc.c:7767 elf64-ppc.c:8144
 #, c-format
 msgid "%s defined in removed toc entry"
 msgstr ""
 
-#: elf64-ppc.c:8910
+#: elf64-ppc.c:9085
 #, c-format
 msgid "long branch stub `%s' offset overflow"
 msgstr ""
 
-#: elf64-ppc.c:8969
+#: elf64-ppc.c:9144
 #, c-format
 msgid "can't find branch stub `%s'"
 msgstr ""
 
-#: elf64-ppc.c:9031 elf64-ppc.c:9169
+#: elf64-ppc.c:9206 elf64-ppc.c:9342
 #, c-format
 msgid "linkage table error against `%s'"
 msgstr ""
 
-#: elf64-ppc.c:9326
+#: elf64-ppc.c:9510
 #, c-format
 msgid "can't build branch stub `%s'"
 msgstr ""
 
-#: elf64-ppc.c:9799
+#: elf64-ppc.c:9995
 msgid "%B section %A exceeds stub group size"
 msgstr ""
 
-#: elf64-ppc.c:10453
+#: elf64-ppc.c:10649
 #, c-format
 msgid ""
 "linker stubs in %u group%s\n"
@@ -2556,24 +2556,24 @@
 "  plt call     %lu"
 msgstr ""
 
-#: elf64-ppc.c:11252
+#: elf64-ppc.c:11428
 msgid ""
 "%B(%A+0x%lx): automatic multiple TOCs not supported using your crt files; "
 "recompile with -mminimal-toc or upgrade gcc"
 msgstr ""
 
-#: elf64-ppc.c:11260
+#: elf64-ppc.c:11436
 msgid ""
 "%B(%A+0x%lx): sibling call optimization to `%s' does not allow automatic "
 "multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, "
 "or make `%s' extern"
 msgstr ""
 
-#: elf64-ppc.c:11961
+#: elf64-ppc.c:12150
 msgid "%B: relocation %s is not supported for symbol %s."
 msgstr ""
 
-#: elf64-ppc.c:12044
+#: elf64-ppc.c:12233
 msgid "%B: error: relocation %s not a multiple of %d"
 msgstr ""
 
@@ -2602,48 +2602,48 @@
 msgid "%B: linking UltraSPARC specific with HAL specific code"
 msgstr ""
 
-#: elf64-x86-64.c:1337
+#: elf64-x86-64.c:1338
 msgid "%B: '%s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf64-x86-64.c:2701
+#: elf64-x86-64.c:2702
 msgid ""
 "%B: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %d"
 msgstr ""
 
-#: elf64-x86-64.c:2980
+#: elf64-x86-64.c:2981
 msgid ""
 "%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be "
 "used when making a shared object"
 msgstr ""
 
-#: elf64-x86-64.c:3091
+#: elf64-x86-64.c:3092
 msgid "; recompile with -fPIC"
 msgstr ""
 
-#: elf64-x86-64.c:3096
+#: elf64-x86-64.c:3097
 msgid ""
 "%B: relocation %s against %s `%s' can not be used when making a shared object"
 "%s"
 msgstr ""
 
-#: elf64-x86-64.c:3098
+#: elf64-x86-64.c:3099
 msgid ""
 "%B: relocation %s against undefined %s `%s' can not be used when making a "
 "shared object%s"
 msgstr ""
 
-#: elfcode.h:795
+#: elfcode.h:811
 #, c-format
 msgid "warning: %s has a corrupt string table index - ignoring"
 msgstr ""
 
-#: elfcode.h:1201
+#: elfcode.h:1217
 #, c-format
 msgid "%s: version count (%ld) does not match symbol count (%ld)"
 msgstr ""
 
-#: elfcode.h:1441
+#: elfcode.h:1457
 #, c-format
 msgid "%s(%s): relocation %d has invalid symbol index %ld"
 msgstr ""
@@ -2689,156 +2689,156 @@
 "object file has no symbol table"
 msgstr ""
 
-#: elflink.c:2375
+#: elflink.c:2376
 msgid "%B: relocation size mismatch in %B section %A"
 msgstr ""
 
-#: elflink.c:2678
+#: elflink.c:2679
 #, c-format
 msgid "warning: type and size of dynamic symbol `%s' are not defined"
 msgstr ""
 
-#: elflink.c:3424
+#: elflink.c:3425
 msgid "%P: alternate ELF machine code found (%d) in %B, expecting %d\n"
 msgstr ""
 
-#: elflink.c:4032
+#: elflink.c:4033
 msgid "%B: %s: invalid version %u (max %d)"
 msgstr ""
 
-#: elflink.c:4068
+#: elflink.c:4069
 msgid "%B: %s: invalid needed version %d"
 msgstr ""
 
-#: elflink.c:4253
+#: elflink.c:4254
 msgid ""
 "Warning: alignment %u of common symbol `%s' in %B is greater than the "
 "alignment (%u) of its section %A"
 msgstr ""
 
-#: elflink.c:4259
+#: elflink.c:4260
 msgid "Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B"
 msgstr ""
 
-#: elflink.c:4274
+#: elflink.c:4275
 msgid "Warning: size of symbol `%s' changed from %lu in %B to %lu in %B"
 msgstr ""
 
-#: elflink.c:4438
+#: elflink.c:4440
 #, c-format
 msgid "%s: invalid DSO for symbol `%s' definition"
 msgstr ""
 
-#: elflink.c:5688
+#: elflink.c:5692
 #, c-format
 msgid "%s: undefined version: %s"
 msgstr ""
 
-#: elflink.c:5756
+#: elflink.c:5760
 msgid "%B: .preinit_array section is not allowed in DSO"
 msgstr ""
 
-#: elflink.c:7484
+#: elflink.c:7493
 #, c-format
 msgid "undefined %s reference in complex symbol: %s"
 msgstr ""
 
-#: elflink.c:7638
+#: elflink.c:7647
 #, c-format
 msgid "unknown operator '%c' in complex symbol"
 msgstr ""
 
-#: elflink.c:7976 elflink.c:7993 elflink.c:8030 elflink.c:8047
+#: elflink.c:7985 elflink.c:8002 elflink.c:8039 elflink.c:8056
 msgid "%B: Unable to sort relocs - they are in more than one size"
 msgstr ""
 
-#: elflink.c:8007 elflink.c:8061
+#: elflink.c:8016 elflink.c:8070
 msgid "%B: Unable to sort relocs - they are of an unknown size"
 msgstr ""
 
-#: elflink.c:8112
+#: elflink.c:8121
 msgid "Not enough memory to sort relocations"
 msgstr ""
 
-#: elflink.c:8304
+#: elflink.c:8314
 msgid "%B: Too many sections: %d (>= %d)"
 msgstr ""
 
-#: elflink.c:8540
+#: elflink.c:8550
 msgid "%B: %s symbol `%s' in %B is referenced by DSO"
 msgstr ""
 
-#: elflink.c:8625
+#: elflink.c:8635
 msgid "%B: could not find output section %A for input section %A"
 msgstr ""
 
-#: elflink.c:8745
+#: elflink.c:8755
 msgid "%B: %s symbol `%s' isn't defined"
 msgstr ""
 
-#: elflink.c:9301
+#: elflink.c:9311
 msgid ""
 "error: %B contains a reloc (0x%s) for section %A that references a non-"
 "existent global symbol"
 msgstr ""
 
-#: elflink.c:9366
+#: elflink.c:9376
 msgid ""
 "%X`%s' referenced in section `%A' of %B: defined in discarded section `%A' "
 "of %B\n"
 msgstr ""
 
-#: elflink.c:9991
+#: elflink.c:10001
 msgid "%A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections"
 msgstr ""
 
-#: elflink.c:9996
+#: elflink.c:10006
 #, c-format
 msgid "%A has both ordered and unordered sections"
 msgstr ""
 
-#: elflink.c:10872 elflink.c:10916
+#: elflink.c:10882 elflink.c:10926
 msgid "%B: could not find output section %s"
 msgstr ""
 
-#: elflink.c:10877
+#: elflink.c:10887
 #, c-format
 msgid "warning: %s section has zero size"
 msgstr ""
 
-#: elflink.c:10982
+#: elflink.c:10992
 msgid "%P: warning: creating a DT_TEXTREL in a shared object.\n"
 msgstr ""
 
-#: elflink.c:11165
+#: elflink.c:11175
 msgid "%P%X: can not read symbols: %E\n"
 msgstr ""
 
-#: elflink.c:11483
+#: elflink.c:11494
 msgid "Removing unused section '%s' in file '%B'"
 msgstr ""
 
-#: elflink.c:11695
+#: elflink.c:11706
 msgid "Warning: gc-sections option ignored"
 msgstr ""
 
-#: elflink.c:12242
+#: elflink.c:12255
 msgid "%B: ignoring duplicate section `%A'"
 msgstr ""
 
-#: elflink.c:12249 elflink.c:12256
+#: elflink.c:12262 elflink.c:12269
 msgid "%B: duplicate section `%A' has different size"
 msgstr ""
 
-#: elflink.c:12264 elflink.c:12269
+#: elflink.c:12277 elflink.c:12282
 msgid "%B: warning: could not read contents of section `%A'"
 msgstr ""
 
-#: elflink.c:12273
+#: elflink.c:12286
 msgid "%B: warning: duplicate section `%A' has different contents"
 msgstr ""
 
-#: elflink.c:12374 linker.c:3098
+#: elflink.c:12387 linker.c:3104
 msgid "%F%P: already_linked_table: %E\n"
 msgstr ""
 
@@ -3060,7 +3060,7 @@
 msgid "%B: bad section length in ihex_read_section"
 msgstr ""
 
-#: ihex.c:825
+#: ihex.c:826
 #, c-format
 msgid "%s: address 0x%s out of range for Intel Hex file"
 msgstr ""
@@ -3075,20 +3075,20 @@
 msgid "Deprecated %s called\n"
 msgstr ""
 
-#: linker.c:1874
+#: linker.c:1877
 msgid "%B: indirect symbol `%s' to `%s' is a loop"
 msgstr ""
 
-#: linker.c:2740
+#: linker.c:2744
 #, c-format
 msgid "Attempt to do relocatable link with %s input and %s output"
 msgstr ""
 
-#: linker.c:3065
+#: linker.c:3071
 msgid "%B: warning: ignoring duplicate section `%A'\n"
 msgstr ""
 
-#: linker.c:3079
+#: linker.c:3085
 msgid "%B: warning: duplicate section `%A' has different size\n"
 msgstr ""
 
@@ -3152,7 +3152,7 @@
 msgid " #: Segment name     Section name     Address\n"
 msgstr ""
 
-#: merge.c:829
+#: merge.c:831
 #, c-format
 msgid "%s: access beyond end of merged section (%ld)"
 msgstr ""
@@ -3348,33 +3348,33 @@
 msgstr ""
 
 #. XXX code yet to be written.
-#: peicode.h:752
+#: peicode.h:751
 msgid "%B: Unhandled import type; %x"
 msgstr ""
 
-#: peicode.h:757
+#: peicode.h:756
 msgid "%B: Unrecognised import type; %x"
 msgstr ""
 
-#: peicode.h:771
+#: peicode.h:770
 msgid "%B: Unrecognised import name type; %x"
 msgstr ""
 
-#: peicode.h:1154
+#: peicode.h:1160
 msgid "%B: Unrecognised machine type (0x%x) in Import Library Format archive"
 msgstr ""
 
-#: peicode.h:1166
+#: peicode.h:1172
 msgid ""
 "%B: Recognised but unhandled machine type (0x%x) in Import Library Format "
 "archive"
 msgstr ""
 
-#: peicode.h:1184
+#: peicode.h:1190
 msgid "%B: size field is zero in Import Library Format header"
 msgstr ""
 
-#: peicode.h:1215
+#: peicode.h:1221
 msgid "%B: string not null terminated in ILF object file."
 msgstr ""
 
diff --git a/binutils/bfd/version.h b/binutils/bfd/version.h
index b580166..7846721 100644
--- a/binutils/bfd/version.h
+++ b/binutils/bfd/version.h
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20091016
+#define BFD_VERSION_DATE 20100303
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff --git a/binutils/binutils/ChangeLog b/binutils/binutils/ChangeLog
index bee7b35..c48a0a9 100644
--- a/binutils/binutils/ChangeLog
+++ b/binutils/binutils/ChangeLog
@@ -1,3 +1,40 @@
+2010-02-05  Christophe Lyon  <christophe.lyon@st.com>
+
+	* objdump.c (disassemble_bytes): Clear aux->reloc before printing
+	a new address, so as not to reuse a previous, non-related reloc.
+
+2010-01-05  Alan Modra  <amodra@gmail.com>
+
+	PR 11129
+	2009-11-20  Ben Elliston  <bje@au.ibm.com>
+	* Makefile.am (syslex.o): Use $(NO_WERROR) not -Wno-error.
+	(sysinfo.o): Likewise.
+	PR 10764
+	2009-10-16  Jerker Bäck <jerker.back@gmail.com>
+	* Makefile.am (sysinfo.o, syslex.o): Place source file after all
+	command line switches.
+	* Makefile.in: Regenerate.
+
+2009-12-31  Eirik Byrkjeflot Anonsen  <eirik@opera.com>
+	    Nick Clifton  <nickc@redhat.com>
+
+	* objcopy.c (add_redefine_syms_file): Avoid symbol buffer
+	overrun.
+
+2009-10-23  Thomas Cougnard  <thomas.cougnard@gmail.com>
+
+	* readelf.c (dynamic_info): Correct size of array.
+
+2009-10-19  Jerker Bäck  <jerker.back@gmail.com>
+
+	PR binutils/10793
+	* prdbg.c (tg_end_struct_type): Warning fix.
+
+	PR binutils/10792
+	* dlltool.c (dll_name_list_append): Declare variable at start
+	of block.
+	(dll_name_list_count, dll_name-list_print): Likewise.
+
 2009-10-01  Alan Modra  <amodra@bigpond.net.au>
 
 	* addr2line.c (slurp_symtab): Don't use bfd_read_minisymbols.
diff --git a/binutils/binutils/MAINTAINERS b/binutils/binutils/MAINTAINERS
index 6d31632..29b7ea7 100644
--- a/binutils/binutils/MAINTAINERS
+++ b/binutils/binutils/MAINTAINERS
@@ -38,7 +38,7 @@
   Jeff Law <law@redhat.com>
   Jim Wilson <wilson@tuliptree.org>
   DJ Delorie <dj@redhat.com>
-  Alan Modra <amodra@bigpond.net.au>
+  Alan Modra <amodra@gmail.com>
   Michael Meissner <gnu@the-meissners.org>
   Daniel Jacobowitz <dan@debian.org>
   Richard Sandiford <rdsandiford@googlemail.com>
@@ -77,7 +77,7 @@
   FRV		   Alexandre Oliva <aoliva@redhat.com>
   H8300		   Prafulla Thakare <prafulla.thakare@kpitcummins.com>
   HPPA		   Dave Anglin <dave.anglin@nrc.ca>
-  HPPA elf32	   Alan Modra <amodra@bigpond.net.au>
+  HPPA elf32	   Alan Modra <amodra@gmail.com>
   HPPA elf64	   Jeff Law <law@redhat.com> [Basic maintainance only]
   IA-64		   Jim Wilson <wilson@tuliptree.org>
   IQ2000	   Stan Cox <scox@redhat.com>
@@ -102,14 +102,14 @@
   MSP430	   Dmitry Diky <diwil@spec.ru>
   NetBSD support   Matt Thomas <matt@netbsd.org>
   PPC		   Geoff Keating <geoffk@geoffk.org>
-  PPC		   Alan Modra <amodra@bigpond.net.au>
+  PPC		   Alan Modra <amodra@gmail.com>
   PPC vector ext   Aldy Hernandez <aldyh@redhat.com>
   s390, s390x	   Martin Schwidefsky <schwidefsky@de.ibm.com>
   SCORE		   Mei Ligang <ligang@sunnorth.com.cn>
   SH		   Alexandre Oliva <aoliva@redhat.com>
   SH		   Kaz Kojima <kkojima@rr.iij4u.or.jp>
   SPARC		   Jakub Jelinek <jakub@redhat.com>
-  SPU		   Alan Modra <amodra@bigpond.net.au>
+  SPU		   Alan Modra <amodra@gmail.com>
   TESTSUITES	   Ben Elliston <bje@gnu.org>
   TIC4X            Svein Seldal <svein@dev.seldal.com>
   TIC54X           Timothy Wall <twall@alum.mit.edu>
diff --git a/binutils/binutils/Makefile.am b/binutils/binutils/Makefile.am
index abade21..db7a773 100644
--- a/binutils/binutils/Makefile.am
+++ b/binutils/binutils/Makefile.am
@@ -255,16 +255,16 @@
 
 syslex.o: syslex.c sysinfo.h config.h
 	if [ -r syslex.c ]; then \
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \
+	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
 	else \
-	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\
+	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
 	fi
 
 sysinfo.o: sysinfo.c
 	if [ -r sysinfo.c ]; then \
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \
+	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
 	else \
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \
+	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
 	fi
 
 bin2c$(EXEEXT_FOR_BUILD):
diff --git a/binutils/binutils/Makefile.in b/binutils/binutils/Makefile.in
index a1f3800..ab0c1a6 100644
--- a/binutils/binutils/Makefile.in
+++ b/binutils/binutils/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -840,7 +840,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -865,7 +865,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -1197,16 +1197,16 @@
 
 syslex.o: syslex.c sysinfo.h config.h
 	if [ -r syslex.c ]; then \
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) syslex.c -Wno-error ; \
+	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
 	else \
-	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/syslex.c -Wno-error ;\
+	  $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
 	fi
 
 sysinfo.o: sysinfo.c
 	if [ -r sysinfo.c ]; then \
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) sysinfo.c -Wno-error ; \
+	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) sysinfo.c ; \
 	else \
-	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/sysinfo.c -Wno-error ; \
+	  $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/sysinfo.c ; \
 	fi
 
 bin2c$(EXEEXT_FOR_BUILD):
diff --git a/binutils/binutils/aclocal.m4 b/binutils/binutils/aclocal.m4
index 4813787..8d793e8 100644
--- a/binutils/binutils/aclocal.m4
+++ b/binutils/binutils/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/binutils/dlltool.c b/binutils/binutils/dlltool.c
index 71fd993..897790d 100644
--- a/binutils/binutils/dlltool.c
+++ b/binutils/binutils/dlltool.c
@@ -3162,13 +3162,15 @@
 static void
 dll_name_list_append (dll_name_list_type * list, bfd_byte * data)
 {
+  dll_name_list_node_type * entry;
+
   /* Error checking.  */
   if (! list || ! list->tail)
     return;
 
   /* Allocate new node.  */
-  dll_name_list_node_type * entry =
-    (dll_name_list_node_type *) xmalloc (sizeof (dll_name_list_node_type));
+  entry = ((dll_name_list_node_type *)
+	   xmalloc (sizeof (dll_name_list_node_type)));
 
   /* Initialize its values.  */
   entry->dllname = xstrdup ((char *) data);
@@ -3184,12 +3186,14 @@
 static int 
 dll_name_list_count (dll_name_list_type * list)
 {
+  dll_name_list_node_type * p;
+  int count = 0;
+
   /* Error checking.  */
   if (! list || ! list->head)
     return 0;
 
-  int count = 0;
-  dll_name_list_node_type * p = list->head;
+  p = list->head;
 
   while (p && p->next)
     {
@@ -3204,11 +3208,13 @@
 static void 
 dll_name_list_print (dll_name_list_type * list)
 {
+  dll_name_list_node_type * p;
+
   /* Error checking.  */
   if (! list || ! list->head)
     return;
 
-  dll_name_list_node_type * p = list->head;
+  p = list->head;
 
   while (p && p->next && p->next->dllname && *(p->next->dllname))
     {
diff --git a/binutils/binutils/doc/Makefile.in b/binutils/binutils/doc/Makefile.in
index f2d63c8..e0d674e 100644
--- a/binutils/binutils/doc/Makefile.in
+++ b/binutils/binutils/doc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/binutils/binutils/objcopy.c b/binutils/binutils/objcopy.c
index 2048827..e0cac19 100644
--- a/binutils/binutils/objcopy.c
+++ b/binutils/binutils/objcopy.c
@@ -1237,7 +1237,7 @@
 	   filename, strerror (errno));
 
   bufsize = 100;
-  buf = (char *) xmalloc (bufsize);
+  buf = (char *) xmalloc (bufsize + 1 /* For the terminating NUL.  */);
 
   lineno = 1;
   c = getc (file);
@@ -1254,7 +1254,7 @@
 	  if (len >= bufsize)
 	    {
 	      bufsize *= 2;
-	      buf = (char *) xrealloc (buf, bufsize);
+	      buf = (char *) xrealloc (buf, bufsize + 1);
 	    }
 	  c = getc (file);
 	}
@@ -1280,7 +1280,7 @@
 	  if (len >= bufsize)
 	    {
 	      bufsize *= 2;
-	      buf = (char *) xrealloc (buf, bufsize);
+	      buf = (char *) xrealloc (buf, bufsize + 1);
 	    }
 	  c = getc (file);
 	}
diff --git a/binutils/binutils/objdump.c b/binutils/binutils/objdump.c
index dd0d0ef..ff2d703 100644
--- a/binutils/binutils/objdump.c
+++ b/binutils/binutils/objdump.c
@@ -1465,6 +1465,9 @@
       previous_octets = octets;
       octets = 0;
 
+      /* Make sure we don't use relocs from previous instructions.  */
+      aux->reloc = NULL;
+
       /* If we see more than SKIP_ZEROES octets of zeroes, we just
 	 print `...'.  */
       for (z = addr_offset * opb; z < stop_offset * opb; z++)
@@ -1568,8 +1571,6 @@
 		      info->flags |= INSN_HAS_RELOC;
 		      aux->reloc = **relppp;
 		    }
-		  else
-		    aux->reloc = NULL;
 		}
 
 	      octets = (*disassemble_fn) (section->vma + addr_offset, info);
diff --git a/binutils/binutils/po/binutils.pot b/binutils/binutils/po/binutils.pot
index 6a5ec37..45a9042 100644
--- a/binutils/binutils/po/binutils.pot
+++ b/binutils/binutils/po/binutils.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:08+0200\n"
+"POT-Creation-Date: 2010-03-03 14:57+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -50,24 +50,24 @@
 "\n"
 msgstr ""
 
-#: addr2line.c:94 ar.c:295 coffdump.c:469 dlltool.c:3832 dllwrap.c:510
-#: nlmconv.c:1113 objcopy.c:563 objcopy.c:598 readelf.c:2922 size.c:99
+#: addr2line.c:94 ar.c:295 coffdump.c:469 dlltool.c:3838 dllwrap.c:510
+#: nlmconv.c:1113 objcopy.c:563 objcopy.c:598 readelf.c:2935 size.c:99
 #: srconv.c:1741 strings.c:676 sysdump.c:653 windmc.c:233 windres.c:698
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
-#: addr2line.c:281
+#: addr2line.c:292
 #, c-format
 msgid "%s: cannot get addresses from archive"
 msgstr ""
 
-#: addr2line.c:298
+#: addr2line.c:309
 #, c-format
 msgid "%s: cannot find section %s"
 msgstr ""
 
-#: addr2line.c:364 nm.c:1554 objdump.c:3229
+#: addr2line.c:375 nm.c:1554 objdump.c:3234
 #, c-format
 msgid "unknown demangling style `%s'"
 msgstr ""
@@ -312,7 +312,7 @@
 msgid "creating %s"
 msgstr ""
 
-#: ar.c:851 ar.c:906 ar.c:1234 objcopy.c:2026
+#: ar.c:851 ar.c:906 ar.c:1234 objcopy.c:2027
 #, c-format
 msgid "internal stat error on %s"
 msgstr ""
@@ -451,27 +451,27 @@
 msgid "%s: supported architectures:"
 msgstr ""
 
-#: bucomm.c:398
+#: bucomm.c:399
 #, c-format
 msgid "BFD header file version %s\n"
 msgstr ""
 
-#: bucomm.c:547
+#: bucomm.c:548
 #, c-format
 msgid "%s: bad number: %s"
 msgstr ""
 
-#: bucomm.c:564 strings.c:422
+#: bucomm.c:565 strings.c:422
 #, c-format
 msgid "'%s': No such file"
 msgstr ""
 
-#: bucomm.c:566 strings.c:424
+#: bucomm.c:567 strings.c:424
 #, c-format
 msgid "Warning: could not locate '%s'.  reason: %s"
 msgstr ""
 
-#: bucomm.c:570
+#: bucomm.c:571
 #, c-format
 msgid "Warning: '%s' is not an ordinary file"
 msgstr ""
@@ -767,271 +767,271 @@
 msgid "Created lib file"
 msgstr ""
 
-#: dlltool.c:3369 dlltool.c:3391
+#: dlltool.c:3375 dlltool.c:3397
 #, c-format
 msgid "%s is not a library"
 msgstr ""
 
-#: dlltool.c:3409
+#: dlltool.c:3415
 #, c-format
 msgid "Import library `%s' specifies two or more dlls"
 msgstr ""
 
-#: dlltool.c:3420
+#: dlltool.c:3426
 #, c-format
 msgid "Unable to determine dll name for `%s' (not an import library?)"
 msgstr ""
 
-#: dlltool.c:3641
+#: dlltool.c:3647
 #, c-format
 msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
 msgstr ""
 
-#: dlltool.c:3647
+#: dlltool.c:3653
 #, c-format
 msgid "Error, duplicate EXPORT with ordinals: %s"
 msgstr ""
 
-#: dlltool.c:3752
+#: dlltool.c:3758
 msgid "Processing definitions"
 msgstr ""
 
-#: dlltool.c:3784
+#: dlltool.c:3790
 msgid "Processed definitions"
 msgstr ""
 
 #. xgetext:c-format
-#: dlltool.c:3791 dllwrap.c:471
+#: dlltool.c:3797 dllwrap.c:471
 #, c-format
 msgid "Usage %s <option(s)> <object-file(s)>\n"
 msgstr ""
 
 #. xgetext:c-format
-#: dlltool.c:3793
+#: dlltool.c:3799
 #, c-format
 msgid ""
 "   -m --machine <machine>    Create as DLL for <machine>.  [default: %s]\n"
 msgstr ""
 
-#: dlltool.c:3794
+#: dlltool.c:3800
 #, c-format
 msgid ""
 "        possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, "
 "ppc, thumb\n"
 msgstr ""
 
-#: dlltool.c:3795
+#: dlltool.c:3801
 #, c-format
 msgid "   -e --output-exp <outname> Generate an export file.\n"
 msgstr ""
 
-#: dlltool.c:3796
+#: dlltool.c:3802
 #, c-format
 msgid "   -l --output-lib <outname> Generate an interface library.\n"
 msgstr ""
 
-#: dlltool.c:3797
+#: dlltool.c:3803
 #, c-format
 msgid "   -y --output-delaylib <outname> Create a delay-import library.\n"
 msgstr ""
 
-#: dlltool.c:3798
+#: dlltool.c:3804
 #, c-format
 msgid "   -a --add-indirect         Add dll indirects to export file.\n"
 msgstr ""
 
-#: dlltool.c:3799
+#: dlltool.c:3805
 #, c-format
 msgid ""
 "   -D --dllname <name>       Name of input dll to put into interface lib.\n"
 msgstr ""
 
-#: dlltool.c:3800
+#: dlltool.c:3806
 #, c-format
 msgid "   -d --input-def <deffile>  Name of .def file to be read in.\n"
 msgstr ""
 
-#: dlltool.c:3801
+#: dlltool.c:3807
 #, c-format
 msgid "   -z --output-def <deffile> Name of .def file to be created.\n"
 msgstr ""
 
-#: dlltool.c:3802
+#: dlltool.c:3808
 #, c-format
 msgid "      --export-all-symbols   Export all symbols to .def\n"
 msgstr ""
 
-#: dlltool.c:3803
+#: dlltool.c:3809
 #, c-format
 msgid "      --no-export-all-symbols  Only export listed symbols\n"
 msgstr ""
 
-#: dlltool.c:3804
+#: dlltool.c:3810
 #, c-format
 msgid "      --exclude-symbols <list> Don't export <list>\n"
 msgstr ""
 
-#: dlltool.c:3805
+#: dlltool.c:3811
 #, c-format
 msgid "      --no-default-excludes  Clear default exclude symbols\n"
 msgstr ""
 
-#: dlltool.c:3806
+#: dlltool.c:3812
 #, c-format
 msgid "   -b --base-file <basefile> Read linker generated base file.\n"
 msgstr ""
 
-#: dlltool.c:3807
+#: dlltool.c:3813
 #, c-format
 msgid "   -x --no-idata4            Don't generate idata$4 section.\n"
 msgstr ""
 
-#: dlltool.c:3808
+#: dlltool.c:3814
 #, c-format
 msgid "   -c --no-idata5            Don't generate idata$5 section.\n"
 msgstr ""
 
-#: dlltool.c:3809
+#: dlltool.c:3815
 #, c-format
 msgid ""
 "      --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata"
 "$5.\n"
 msgstr ""
 
-#: dlltool.c:3810
+#: dlltool.c:3816
 #, c-format
 msgid ""
 "   -U --add-underscore       Add underscores to all symbols in interface "
 "library.\n"
 msgstr ""
 
-#: dlltool.c:3811
+#: dlltool.c:3817
 #, c-format
 msgid ""
 "      --add-stdcall-underscore Add underscores to stdcall symbols in "
 "interface library.\n"
 msgstr ""
 
-#: dlltool.c:3812
+#: dlltool.c:3818
 #, c-format
 msgid "   -k --kill-at              Kill @<n> from exported names.\n"
 msgstr ""
 
-#: dlltool.c:3813
+#: dlltool.c:3819
 #, c-format
 msgid "   -A --add-stdcall-alias    Add aliases without @<n>.\n"
 msgstr ""
 
-#: dlltool.c:3814
+#: dlltool.c:3820
 #, c-format
 msgid "   -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
 msgstr ""
 
-#: dlltool.c:3815
+#: dlltool.c:3821
 #, c-format
 msgid "   -S --as <name>            Use <name> for assembler.\n"
 msgstr ""
 
-#: dlltool.c:3816
+#: dlltool.c:3822
 #, c-format
 msgid "   -f --as-flags <flags>     Pass <flags> to the assembler.\n"
 msgstr ""
 
-#: dlltool.c:3817
+#: dlltool.c:3823
 #, c-format
 msgid ""
 "   -C --compat-implib        Create backward compatible import library.\n"
 msgstr ""
 
-#: dlltool.c:3818
+#: dlltool.c:3824
 #, c-format
 msgid ""
 "   -n --no-delete            Keep temp files (repeat for extra "
 "preservation).\n"
 msgstr ""
 
-#: dlltool.c:3819
+#: dlltool.c:3825
 #, c-format
 msgid ""
 "   -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
 msgstr ""
 
-#: dlltool.c:3820
+#: dlltool.c:3826
 #, c-format
 msgid ""
 "   -I --identify <implib>    Report the name of the DLL associated with "
 "<implib>.\n"
 msgstr ""
 
-#: dlltool.c:3821
+#: dlltool.c:3827
 #, c-format
 msgid ""
 "      --identify-strict      Causes --identify to report error when multiple "
 "DLLs.\n"
 msgstr ""
 
-#: dlltool.c:3822
+#: dlltool.c:3828
 #, c-format
 msgid "   -v --verbose              Be verbose.\n"
 msgstr ""
 
-#: dlltool.c:3823
+#: dlltool.c:3829
 #, c-format
 msgid "   -V --version              Display the program version.\n"
 msgstr ""
 
-#: dlltool.c:3824
+#: dlltool.c:3830
 #, c-format
 msgid "   -h --help                 Display this information.\n"
 msgstr ""
 
-#: dlltool.c:3825
+#: dlltool.c:3831
 #, c-format
 msgid "   @<file>                   Read options from <file>.\n"
 msgstr ""
 
-#: dlltool.c:3827
+#: dlltool.c:3833
 #, c-format
 msgid ""
 "   -M --mcore-elf <outname>  Process mcore-elf object files into <outname>.\n"
 msgstr ""
 
-#: dlltool.c:3828
+#: dlltool.c:3834
 #, c-format
 msgid "   -L --linker <name>        Use <name> as the linker.\n"
 msgstr ""
 
-#: dlltool.c:3829
+#: dlltool.c:3835
 #, c-format
 msgid "   -F --linker-flags <flags> Pass <flags> to the linker.\n"
 msgstr ""
 
-#: dlltool.c:3966
+#: dlltool.c:3972
 #, c-format
 msgid "Path components stripped from dllname, '%s'."
 msgstr ""
 
-#: dlltool.c:4014
+#: dlltool.c:4020
 #, c-format
 msgid "Unable to open base-file: %s"
 msgstr ""
 
-#: dlltool.c:4049
+#: dlltool.c:4055
 #, c-format
 msgid "Machine '%s' not supported"
 msgstr ""
 
-#: dlltool.c:4118
+#: dlltool.c:4124
 #, c-format
 msgid "Warning, machine type (%d) not supported for delayimport."
 msgstr ""
 
-#: dlltool.c:4186 dllwrap.c:201
+#: dlltool.c:4192 dllwrap.c:201
 #, c-format
 msgid "Tried file: %s"
 msgstr ""
 
-#: dlltool.c:4193 dllwrap.c:208
+#: dlltool.c:4199 dllwrap.c:208
 #, c-format
 msgid "Using file: %s"
 msgstr ""
@@ -1276,60 +1276,60 @@
 msgid "DRIVER options  : %s\n"
 msgstr ""
 
-#: dwarf.c:101 dwarf.c:145 readelf.c:355 readelf.c:520
+#: dwarf.c:106 dwarf.c:155 readelf.c:357 readelf.c:525
 #, c-format
 msgid "Unhandled data length: %d\n"
 msgstr ""
 
-#: dwarf.c:294 dwarf.c:2625
+#: dwarf.c:304 dwarf.c:2649
 msgid "badly formed extended line op encountered!\n"
 msgstr ""
 
-#: dwarf.c:301
+#: dwarf.c:311
 #, c-format
 msgid "  Extended opcode %d: "
 msgstr ""
 
-#: dwarf.c:306
+#: dwarf.c:316
 #, c-format
 msgid ""
 "End of Sequence\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:312
+#: dwarf.c:322
 #, c-format
 msgid "set Address to 0x%lx\n"
 msgstr ""
 
-#: dwarf.c:317
+#: dwarf.c:327
 #, c-format
 msgid "  define new File Table entry\n"
 msgstr ""
 
-#: dwarf.c:318 dwarf.c:2240
+#: dwarf.c:328 dwarf.c:2263
 #, c-format
 msgid "  Entry\tDir\tTime\tSize\tName\n"
 msgstr ""
 
-#: dwarf.c:320
+#: dwarf.c:330
 #, c-format
 msgid "   %d\t"
 msgstr ""
 
-#: dwarf.c:323 dwarf.c:325 dwarf.c:327 dwarf.c:2252 dwarf.c:2254 dwarf.c:2256
+#: dwarf.c:333 dwarf.c:335 dwarf.c:337 dwarf.c:2275 dwarf.c:2277 dwarf.c:2279
 #, c-format
 msgid "%lu\t"
 msgstr ""
 
-#: dwarf.c:328
+#: dwarf.c:338
 #, c-format
 msgid ""
 "%s\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:332
+#: dwarf.c:342
 #, c-format
 msgid "set Discriminator to %lu\n"
 msgstr ""
@@ -1338,456 +1338,456 @@
 #. the limited range of the unsigned char data type used
 #. for op_code.
 #. && op_code <= DW_LNE_hi_user
-#: dwarf.c:374
+#: dwarf.c:384
 #, c-format
 msgid "user defined: length %d\n"
 msgstr ""
 
-#: dwarf.c:376 dwarf.c:2656
+#: dwarf.c:386 dwarf.c:2680
 #, c-format
 msgid "UNKNOWN: length %d\n"
 msgstr ""
 
-#: dwarf.c:389
+#: dwarf.c:399
 msgid "<no .debug_str section>"
 msgstr ""
 
-#: dwarf.c:395
+#: dwarf.c:405
 #, c-format
 msgid "DW_FORM_strp offset too big: %lx\n"
 msgstr ""
 
-#: dwarf.c:396
+#: dwarf.c:406
 msgid "<offset is too big>"
 msgstr ""
 
-#: dwarf.c:629
+#: dwarf.c:639
 #, c-format
 msgid "Unknown TAG value: %lx"
 msgstr ""
 
-#: dwarf.c:665
+#: dwarf.c:675
 #, c-format
 msgid "Unknown FORM value: %lx"
 msgstr ""
 
-#: dwarf.c:674
+#: dwarf.c:684
 #, c-format
 msgid " %lu byte block: "
 msgstr ""
 
-#: dwarf.c:1092
+#: dwarf.c:1102
 #, c-format
 msgid "(User defined location op)"
 msgstr ""
 
-#: dwarf.c:1094
+#: dwarf.c:1104
 #, c-format
 msgid "(Unknown location op)"
 msgstr ""
 
-#: dwarf.c:1142
+#: dwarf.c:1152
 msgid "Internal error: DWARF version is not 2 or 3.\n"
 msgstr ""
 
-#: dwarf.c:1241
+#: dwarf.c:1251
 msgid "DW_FORM_data8 is unsupported when sizeof (unsigned long) != 8\n"
 msgstr ""
 
-#: dwarf.c:1290
+#: dwarf.c:1300
 #, c-format
 msgid " (indirect string, offset: 0x%lx): %s"
 msgstr ""
 
-#: dwarf.c:1299
+#: dwarf.c:1309
 #, c-format
 msgid "Unrecognized form: %lu\n"
 msgstr ""
 
-#: dwarf.c:1383
+#: dwarf.c:1393
 #, c-format
 msgid "(not inlined)"
 msgstr ""
 
-#: dwarf.c:1386
+#: dwarf.c:1396
 #, c-format
 msgid "(inlined)"
 msgstr ""
 
-#: dwarf.c:1389
+#: dwarf.c:1399
 #, c-format
 msgid "(declared as inline but ignored)"
 msgstr ""
 
-#: dwarf.c:1392
+#: dwarf.c:1402
 #, c-format
 msgid "(declared as inline and inlined)"
 msgstr ""
 
-#: dwarf.c:1395
+#: dwarf.c:1405
 #, c-format
 msgid "  (Unknown inline attribute value: %lx)"
 msgstr ""
 
-#: dwarf.c:1556
+#: dwarf.c:1566
 #, c-format
 msgid "(location list)"
 msgstr ""
 
-#: dwarf.c:1575 dwarf.c:3257
+#: dwarf.c:1585 dwarf.c:3281
 #, c-format
 msgid " [without DW_AT_frame_base]"
 msgstr ""
 
-#: dwarf.c:1587
+#: dwarf.c:1597
 #, c-format
 msgid ""
 "Offset %lx used as value for DW_AT_import attribute of DIE at offset %lx is "
 "too big.\n"
 msgstr ""
 
-#: dwarf.c:1761
+#: dwarf.c:1771
 #, c-format
 msgid "Unknown AT value: %lx"
 msgstr ""
 
-#: dwarf.c:1828
+#: dwarf.c:1838
 #, c-format
 msgid "Reserved length value (%lx) found in section %s\n"
 msgstr ""
 
-#: dwarf.c:1839
+#: dwarf.c:1849
 #, c-format
 msgid "Corrupt unit length (%lx) found in section %s\n"
 msgstr ""
 
-#: dwarf.c:1846
+#: dwarf.c:1856
 #, c-format
 msgid "No comp units in %s section ?"
 msgstr ""
 
-#: dwarf.c:1855
+#: dwarf.c:1865
 #, c-format
 msgid "Not enough memory for a debug info array of %u entries"
 msgstr ""
 
-#: dwarf.c:1863 dwarf.c:2858 dwarf.c:2952 dwarf.c:3026 dwarf.c:3143
-#: dwarf.c:3292 dwarf.c:3350 dwarf.c:3546
+#: dwarf.c:1873 dwarf.c:2882 dwarf.c:2976 dwarf.c:3050 dwarf.c:3167
+#: dwarf.c:3316 dwarf.c:3374 dwarf.c:3571
 #, c-format
 msgid ""
 "Contents of the %s section:\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:1871
+#: dwarf.c:1881
 #, c-format
 msgid "Unable to locate %s section!\n"
 msgstr ""
 
-#: dwarf.c:1934
+#: dwarf.c:1944
 #, c-format
 msgid "  Compilation Unit @ offset 0x%lx:\n"
 msgstr ""
 
-#: dwarf.c:1935
+#: dwarf.c:1945
 #, c-format
 msgid "   Length:        0x%lx (%s)\n"
 msgstr ""
 
-#: dwarf.c:1937
+#: dwarf.c:1947
 #, c-format
 msgid "   Version:       %d\n"
 msgstr ""
 
-#: dwarf.c:1938
+#: dwarf.c:1948
 #, c-format
 msgid "   Abbrev Offset: %ld\n"
 msgstr ""
 
-#: dwarf.c:1939
+#: dwarf.c:1949
 #, c-format
 msgid "   Pointer Size:  %d\n"
 msgstr ""
 
-#: dwarf.c:1945
+#: dwarf.c:1955
 #, c-format
 msgid ""
 "Debug info is corrupted, length of CU at %lx extends beyond end of section "
 "(length = %lx)\n"
 msgstr ""
 
-#: dwarf.c:1954
+#: dwarf.c:1964
 #, c-format
 msgid "CU at offset %lx contains corrupt or unsupported version number: %d.\n"
 msgstr ""
 
-#: dwarf.c:1964
+#: dwarf.c:1974
 #, c-format
 msgid ""
 "Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section "
 "size (%lx)\n"
 msgstr ""
 
-#: dwarf.c:1998
+#: dwarf.c:2021
 #, c-format
 msgid ""
 "Bogus end-of-siblings marker detected at offset %lx in .debug_info section\n"
 msgstr ""
 
-#: dwarf.c:2002
+#: dwarf.c:2025
 msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
 msgstr ""
 
-#: dwarf.c:2009
+#: dwarf.c:2032
 #, c-format
 msgid " <%d><%lx>: Abbrev Number: %lu"
 msgstr ""
 
-#: dwarf.c:2026
+#: dwarf.c:2049
 #, c-format
 msgid ""
 "DIE at offset %lx refers to abbreviation number %lu which does not exist\n"
 msgstr ""
 
-#: dwarf.c:2032
+#: dwarf.c:2055
 #, c-format
 msgid " (%s)\n"
 msgstr ""
 
-#: dwarf.c:2123
+#: dwarf.c:2146
 #, c-format
 msgid ""
 "Raw dump of debug contents of section %s:\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:2161
+#: dwarf.c:2184
 #, c-format
 msgid ""
 "The information in section %s appears to be corrupt - the section is too "
 "small\n"
 msgstr ""
 
-#: dwarf.c:2171 dwarf.c:2459
+#: dwarf.c:2194 dwarf.c:2482
 msgid "Only DWARF version 2 and 3 line info is currently supported.\n"
 msgstr ""
 
-#: dwarf.c:2192
+#: dwarf.c:2215
 #, c-format
 msgid "  Offset:                      0x%lx\n"
 msgstr ""
 
-#: dwarf.c:2193
+#: dwarf.c:2216
 #, c-format
 msgid "  Length:                      %ld\n"
 msgstr ""
 
-#: dwarf.c:2194
+#: dwarf.c:2217
 #, c-format
 msgid "  DWARF Version:               %d\n"
 msgstr ""
 
-#: dwarf.c:2195
+#: dwarf.c:2218
 #, c-format
 msgid "  Prologue Length:             %d\n"
 msgstr ""
 
-#: dwarf.c:2196
+#: dwarf.c:2219
 #, c-format
 msgid "  Minimum Instruction Length:  %d\n"
 msgstr ""
 
-#: dwarf.c:2197
+#: dwarf.c:2220
 #, c-format
 msgid "  Initial value of 'is_stmt':  %d\n"
 msgstr ""
 
-#: dwarf.c:2198
+#: dwarf.c:2221
 #, c-format
 msgid "  Line Base:                   %d\n"
 msgstr ""
 
-#: dwarf.c:2199
+#: dwarf.c:2222
 #, c-format
 msgid "  Line Range:                  %d\n"
 msgstr ""
 
-#: dwarf.c:2200
+#: dwarf.c:2223
 #, c-format
 msgid "  Opcode Base:                 %d\n"
 msgstr ""
 
-#: dwarf.c:2209
+#: dwarf.c:2232
 #, c-format
 msgid ""
 "\n"
 " Opcodes:\n"
 msgstr ""
 
-#: dwarf.c:2212
+#: dwarf.c:2235
 #, c-format
 msgid "  Opcode %d has %d args\n"
 msgstr ""
 
-#: dwarf.c:2218
+#: dwarf.c:2241
 #, c-format
 msgid ""
 "\n"
 " The Directory Table is empty.\n"
 msgstr ""
 
-#: dwarf.c:2221
+#: dwarf.c:2244
 #, c-format
 msgid ""
 "\n"
 " The Directory Table:\n"
 msgstr ""
 
-#: dwarf.c:2225
+#: dwarf.c:2248
 #, c-format
 msgid "  %s\n"
 msgstr ""
 
-#: dwarf.c:2236
+#: dwarf.c:2259
 #, c-format
 msgid ""
 "\n"
 " The File Name Table is empty.\n"
 msgstr ""
 
-#: dwarf.c:2239
+#: dwarf.c:2262
 #, c-format
 msgid ""
 "\n"
 " The File Name Table:\n"
 msgstr ""
 
-#: dwarf.c:2247
+#: dwarf.c:2270
 #, c-format
 msgid "  %d\t"
 msgstr ""
 
-#: dwarf.c:2258
+#: dwarf.c:2281
 #, c-format
 msgid "%s\n"
 msgstr ""
 
 #. Now display the statements.
-#: dwarf.c:2266
+#: dwarf.c:2289
 #, c-format
 msgid ""
 "\n"
 " Line Number Statements:\n"
 msgstr ""
 
-#: dwarf.c:2282
+#: dwarf.c:2305
 #, c-format
 msgid "  Special opcode %d: advance Address by %lu to 0x%lx"
 msgstr ""
 
-#: dwarf.c:2286
+#: dwarf.c:2309
 #, c-format
 msgid " and Line by %d to %d\n"
 msgstr ""
 
-#: dwarf.c:2296
+#: dwarf.c:2319
 #, c-format
 msgid "  Copy\n"
 msgstr ""
 
-#: dwarf.c:2304
+#: dwarf.c:2327
 #, c-format
 msgid "  Advance PC by %lu to 0x%lx\n"
 msgstr ""
 
-#: dwarf.c:2312
+#: dwarf.c:2335
 #, c-format
 msgid "  Advance Line by %d to %d\n"
 msgstr ""
 
-#: dwarf.c:2319
+#: dwarf.c:2342
 #, c-format
 msgid "  Set File Name to entry %d in the File Name Table\n"
 msgstr ""
 
-#: dwarf.c:2327
+#: dwarf.c:2350
 #, c-format
 msgid "  Set column to %lu\n"
 msgstr ""
 
-#: dwarf.c:2334
+#: dwarf.c:2357
 #, c-format
 msgid "  Set is_stmt to %d\n"
 msgstr ""
 
-#: dwarf.c:2339
+#: dwarf.c:2362
 #, c-format
 msgid "  Set basic block\n"
 msgstr ""
 
-#: dwarf.c:2347
+#: dwarf.c:2370
 #, c-format
 msgid "  Advance PC by constant %lu to 0x%lx\n"
 msgstr ""
 
-#: dwarf.c:2355
+#: dwarf.c:2378
 #, c-format
 msgid "  Advance PC by fixed size amount %lu to 0x%lx\n"
 msgstr ""
 
-#: dwarf.c:2360
+#: dwarf.c:2383
 #, c-format
 msgid "  Set prologue_end to true\n"
 msgstr ""
 
-#: dwarf.c:2364
+#: dwarf.c:2387
 #, c-format
 msgid "  Set epilogue_begin to true\n"
 msgstr ""
 
-#: dwarf.c:2370 dwarf.c:2734
+#: dwarf.c:2393 dwarf.c:2758
 #, c-format
 msgid "  Set ISA to %lu\n"
 msgstr ""
 
-#: dwarf.c:2374 dwarf.c:2738
+#: dwarf.c:2397 dwarf.c:2762
 #, c-format
 msgid "  Unknown opcode %d with operands: "
 msgstr ""
 
-#: dwarf.c:2407
+#: dwarf.c:2430
 #, c-format
 msgid ""
 "Decoded dump of debug contents of section %s:\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:2449
+#: dwarf.c:2472
 msgid "The line info appears to be corrupt - the section is too small\n"
 msgstr ""
 
-#: dwarf.c:2568
+#: dwarf.c:2592
 #, c-format
 msgid "CU: %s:\n"
 msgstr ""
 
-#: dwarf.c:2569 dwarf.c:2582
+#: dwarf.c:2593 dwarf.c:2606
 #, c-format
 msgid "File name                            Line number    Starting address\n"
 msgstr ""
 
-#: dwarf.c:2575
+#: dwarf.c:2599
 #, c-format
 msgid "CU: %s/%s:\n"
 msgstr ""
 
-#: dwarf.c:2580 dwarf.c:2652
+#: dwarf.c:2604 dwarf.c:2676
 #, c-format
 msgid "%s:\n"
 msgstr ""
 
 #. If directory index is 0, that means current directory.
-#: dwarf.c:2685
+#: dwarf.c:2709
 #, c-format
 msgid ""
 "\n"
@@ -1795,116 +1795,116 @@
 msgstr ""
 
 #. The directory index starts counting at 1.
-#: dwarf.c:2691
+#: dwarf.c:2715
 #, c-format
 msgid ""
 "\n"
 "%s/%s:\n"
 msgstr ""
 
-#: dwarf.c:2776
+#: dwarf.c:2800
 #, c-format
 msgid "%-35s  %11d  %#18lx\n"
 msgstr ""
 
-#: dwarf.c:2781
+#: dwarf.c:2805
 #, c-format
 msgid "%s  %11d  %#18lx\n"
 msgstr ""
 
-#: dwarf.c:2811 dwarf.c:3088 dwarf.c:3510
+#: dwarf.c:2835 dwarf.c:3112 dwarf.c:3534
 #, c-format
 msgid ""
 "Unable to load/parse the .debug_info section, so cannot interpret the %s "
 "section.\n"
 msgstr ""
 
-#: dwarf.c:2892 dwarf.c:3395
+#: dwarf.c:2916 dwarf.c:3419
 #, c-format
 msgid ""
 ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
 msgstr ""
 
-#: dwarf.c:2906
+#: dwarf.c:2930
 msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
 msgstr ""
 
-#: dwarf.c:2913
+#: dwarf.c:2937
 #, c-format
 msgid "  Length:                              %ld\n"
 msgstr ""
 
-#: dwarf.c:2915
+#: dwarf.c:2939
 #, c-format
 msgid "  Version:                             %d\n"
 msgstr ""
 
-#: dwarf.c:2917
+#: dwarf.c:2941
 #, c-format
 msgid "  Offset into .debug_info section:     0x%lx\n"
 msgstr ""
 
-#: dwarf.c:2919
+#: dwarf.c:2943
 #, c-format
 msgid "  Size of area in .debug_info section: %ld\n"
 msgstr ""
 
-#: dwarf.c:2922
+#: dwarf.c:2946
 #, c-format
 msgid ""
 "\n"
 "    Offset\tName\n"
 msgstr ""
 
-#: dwarf.c:2973
+#: dwarf.c:2997
 #, c-format
 msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
 msgstr ""
 
-#: dwarf.c:2979
+#: dwarf.c:3003
 #, c-format
 msgid " DW_MACINFO_end_file\n"
 msgstr ""
 
-#: dwarf.c:2987
+#: dwarf.c:3011
 #, c-format
 msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
 msgstr ""
 
-#: dwarf.c:2996
+#: dwarf.c:3020
 #, c-format
 msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
 msgstr ""
 
-#: dwarf.c:3008
+#: dwarf.c:3032
 #, c-format
 msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
 msgstr ""
 
-#: dwarf.c:3037
+#: dwarf.c:3061
 #, c-format
 msgid "  Number TAG\n"
 msgstr ""
 
-#: dwarf.c:3043
+#: dwarf.c:3067
 #, c-format
 msgid "   %ld      %s    [%s]\n"
 msgstr ""
 
-#: dwarf.c:3046
+#: dwarf.c:3070
 msgid "has children"
 msgstr ""
 
-#: dwarf.c:3046
+#: dwarf.c:3070
 msgid "no children"
 msgstr ""
 
-#: dwarf.c:3049
+#: dwarf.c:3073
 #, c-format
 msgid "    %-18s %s\n"
 msgstr ""
 
-#: dwarf.c:3082 dwarf.c:3288 dwarf.c:3504
+#: dwarf.c:3106 dwarf.c:3312 dwarf.c:3528
 #, c-format
 msgid ""
 "\n"
@@ -1912,181 +1912,181 @@
 msgstr ""
 
 #. FIXME: Should we handle this case?
-#: dwarf.c:3132
+#: dwarf.c:3156
 msgid "Location lists in .debug_info section aren't in ascending order!\n"
 msgstr ""
 
-#: dwarf.c:3135
+#: dwarf.c:3159
 msgid "No location lists in .debug_info section!\n"
 msgstr ""
 
-#: dwarf.c:3140
+#: dwarf.c:3164
 #, c-format
 msgid "Location lists in %s section start at 0x%lx\n"
 msgstr ""
 
-#: dwarf.c:3144
+#: dwarf.c:3168
 #, c-format
 msgid "    Offset   Begin    End      Expression\n"
 msgstr ""
 
-#: dwarf.c:3175
+#: dwarf.c:3199
 #, c-format
 msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
 msgstr ""
 
-#: dwarf.c:3179
+#: dwarf.c:3203
 #, c-format
 msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
 msgstr ""
 
-#: dwarf.c:3187
+#: dwarf.c:3211
 #, c-format
 msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
 msgstr ""
 
-#: dwarf.c:3196 dwarf.c:3231 dwarf.c:3241
+#: dwarf.c:3220 dwarf.c:3255 dwarf.c:3265
 #, c-format
 msgid "Location list starting at offset 0x%lx is not terminated.\n"
 msgstr ""
 
-#: dwarf.c:3215 dwarf.c:3597
+#: dwarf.c:3239 dwarf.c:3622
 #, c-format
 msgid "<End of list>\n"
 msgstr ""
 
-#: dwarf.c:3225
+#: dwarf.c:3249
 #, c-format
 msgid "(base address)\n"
 msgstr ""
 
-#: dwarf.c:3260
+#: dwarf.c:3284
 msgid " (start == end)"
 msgstr ""
 
-#: dwarf.c:3262
+#: dwarf.c:3286
 msgid " (start > end)"
 msgstr ""
 
-#: dwarf.c:3272
+#: dwarf.c:3296
 #, c-format
 msgid "There are %ld unused bytes at the end of section %s\n"
 msgstr ""
 
-#: dwarf.c:3406
+#: dwarf.c:3430
 msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
 msgstr ""
 
-#: dwarf.c:3410
+#: dwarf.c:3434
 #, c-format
 msgid "  Length:                   %ld\n"
 msgstr ""
 
-#: dwarf.c:3411
+#: dwarf.c:3435
 #, c-format
 msgid "  Version:                  %d\n"
 msgstr ""
 
-#: dwarf.c:3412
+#: dwarf.c:3436
 #, c-format
 msgid "  Offset into .debug_info:  0x%lx\n"
 msgstr ""
 
-#: dwarf.c:3413
+#: dwarf.c:3437
 #, c-format
 msgid "  Pointer Size:             %d\n"
 msgstr ""
 
-#: dwarf.c:3414
+#: dwarf.c:3438
 #, c-format
 msgid "  Segment Size:             %d\n"
 msgstr ""
 
-#: dwarf.c:3423
+#: dwarf.c:3447
 msgid "Pointer size + Segment size is not a power of two.\n"
 msgstr ""
 
-#: dwarf.c:3428
+#: dwarf.c:3452
 #, c-format
 msgid ""
 "\n"
 "    Address            Length\n"
 msgstr ""
 
-#: dwarf.c:3430
+#: dwarf.c:3454
 #, c-format
 msgid ""
 "\n"
 "    Address    Length\n"
 msgstr ""
 
-#: dwarf.c:3520
+#: dwarf.c:3544
 msgid "No range lists in .debug_info section!\n"
 msgstr ""
 
-#: dwarf.c:3543
-#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr ""
-
-#: dwarf.c:3547
-#, c-format
-msgid "    Offset   Begin    End\n"
-msgstr ""
-
 #: dwarf.c:3568
 #, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
+msgid "Range lists in %s section start at 0x%lx\n"
 msgstr ""
 
 #: dwarf.c:3572
 #, c-format
+msgid "    Offset   Begin    End\n"
+msgstr ""
+
+#: dwarf.c:3593
+#, c-format
+msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
+msgstr ""
+
+#: dwarf.c:3597
+#, c-format
 msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
 msgstr ""
 
-#: dwarf.c:3615
+#: dwarf.c:3640
 msgid "(start == end)"
 msgstr ""
 
-#: dwarf.c:3617
+#: dwarf.c:3642
 msgid "(start > end)"
 msgstr ""
 
-#: dwarf.c:3853
+#: dwarf.c:3879
 msgid "bad register: "
 msgstr ""
 
-#: dwarf.c:3855
+#: dwarf.c:3881
 #, c-format
 msgid "Contents of the %s section:\n"
 msgstr ""
 
-#: dwarf.c:4619
+#: dwarf.c:4646
 #, c-format
 msgid "  DW_CFA_??? (User defined call frame op: %#x)\n"
 msgstr ""
 
-#: dwarf.c:4621
+#: dwarf.c:4648
 #, c-format
 msgid "unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
 msgstr ""
 
-#: dwarf.c:4645
+#: dwarf.c:4672
 #, c-format
 msgid "Displaying the debug contents of section %s is not yet supported.\n"
 msgstr ""
 
-#: dwarf.c:4687
+#: dwarf.c:4714
 #, c-format
 msgid "%s: Error: "
 msgstr ""
 
-#: dwarf.c:4698
+#: dwarf.c:4725
 #, c-format
 msgid "%s: Warning: "
 msgstr ""
 
-#: dwarf.c:4796 dwarf.c:4862
+#: dwarf.c:4823 dwarf.c:4889
 #, c-format
 msgid "Unrecognized debug option '%s'\n"
 msgstr ""
@@ -2111,238 +2111,238 @@
 msgid "  [-X32_64]    - accepts 32 and 64 bit objects\n"
 msgstr ""
 
-#: ieee.c:309
+#: ieee.c:311
 msgid "unexpected end of debugging information"
 msgstr ""
 
-#: ieee.c:396
+#: ieee.c:398
 msgid "invalid number"
 msgstr ""
 
-#: ieee.c:449
+#: ieee.c:451
 msgid "invalid string length"
 msgstr ""
 
-#: ieee.c:504 ieee.c:545
+#: ieee.c:506 ieee.c:547
 msgid "expression stack overflow"
 msgstr ""
 
-#: ieee.c:524
+#: ieee.c:526
 msgid "unsupported IEEE expression operator"
 msgstr ""
 
-#: ieee.c:539
+#: ieee.c:541
 msgid "unknown section"
 msgstr ""
 
-#: ieee.c:560
+#: ieee.c:562
 msgid "expression stack underflow"
 msgstr ""
 
-#: ieee.c:574
+#: ieee.c:576
 msgid "expression stack mismatch"
 msgstr ""
 
-#: ieee.c:611
+#: ieee.c:613
 msgid "unknown builtin type"
 msgstr ""
 
-#: ieee.c:756
+#: ieee.c:758
 msgid "BCD float type not supported"
 msgstr ""
 
-#: ieee.c:893
+#: ieee.c:895
 msgid "unexpected number"
 msgstr ""
 
-#: ieee.c:900
+#: ieee.c:902
 msgid "unexpected record type"
 msgstr ""
 
-#: ieee.c:933
+#: ieee.c:935
 msgid "blocks left on stack at end"
 msgstr ""
 
-#: ieee.c:1206
+#: ieee.c:1208
 msgid "unknown BB type"
 msgstr ""
 
-#: ieee.c:1215
+#: ieee.c:1217
 msgid "stack overflow"
 msgstr ""
 
-#: ieee.c:1238
+#: ieee.c:1240
 msgid "stack underflow"
 msgstr ""
 
-#: ieee.c:1350 ieee.c:1420 ieee.c:2118
+#: ieee.c:1352 ieee.c:1422 ieee.c:2120
 msgid "illegal variable index"
 msgstr ""
 
-#: ieee.c:1398
+#: ieee.c:1400
 msgid "illegal type index"
 msgstr ""
 
-#: ieee.c:1408 ieee.c:1445
+#: ieee.c:1410 ieee.c:1447
 msgid "unknown TY code"
 msgstr ""
 
-#: ieee.c:1427
+#: ieee.c:1429
 msgid "undefined variable in TY"
 msgstr ""
 
 #. Pascal file name.  FIXME.
-#: ieee.c:1839
+#: ieee.c:1841
 msgid "Pascal file name not supported"
 msgstr ""
 
-#: ieee.c:1887
+#: ieee.c:1889
 msgid "unsupported qualifier"
 msgstr ""
 
-#: ieee.c:2156
+#: ieee.c:2158
 msgid "undefined variable in ATN"
 msgstr ""
 
-#: ieee.c:2199
+#: ieee.c:2201
 msgid "unknown ATN type"
 msgstr ""
 
 #. Reserved for FORTRAN common.
-#: ieee.c:2321
+#: ieee.c:2323
 msgid "unsupported ATN11"
 msgstr ""
 
 #. We have no way to record this information.  FIXME.
-#: ieee.c:2348
+#: ieee.c:2350
 msgid "unsupported ATN12"
 msgstr ""
 
-#: ieee.c:2408
+#: ieee.c:2410
 msgid "unexpected string in C++ misc"
 msgstr ""
 
-#: ieee.c:2421
+#: ieee.c:2423
 msgid "bad misc record"
 msgstr ""
 
-#: ieee.c:2462
+#: ieee.c:2464
 msgid "unrecognized C++ misc record"
 msgstr ""
 
-#: ieee.c:2577
+#: ieee.c:2579
 msgid "undefined C++ object"
 msgstr ""
 
-#: ieee.c:2611
+#: ieee.c:2613
 msgid "unrecognized C++ object spec"
 msgstr ""
 
-#: ieee.c:2647
+#: ieee.c:2649
 msgid "unsupported C++ object type"
 msgstr ""
 
-#: ieee.c:2657
+#: ieee.c:2659
 msgid "C++ base class not defined"
 msgstr ""
 
-#: ieee.c:2669 ieee.c:2774
+#: ieee.c:2671 ieee.c:2776
 msgid "C++ object has no fields"
 msgstr ""
 
-#: ieee.c:2688
+#: ieee.c:2690
 msgid "C++ base class not found in container"
 msgstr ""
 
-#: ieee.c:2795
+#: ieee.c:2797
 msgid "C++ data member not found in container"
 msgstr ""
 
-#: ieee.c:2836 ieee.c:2986
+#: ieee.c:2838 ieee.c:2988
 msgid "unknown C++ visibility"
 msgstr ""
 
-#: ieee.c:2870
+#: ieee.c:2872
 msgid "bad C++ field bit pos or size"
 msgstr ""
 
-#: ieee.c:2962
+#: ieee.c:2964
 msgid "bad type for C++ method function"
 msgstr ""
 
-#: ieee.c:2972
+#: ieee.c:2974
 msgid "no type information for C++ method function"
 msgstr ""
 
-#: ieee.c:3011
+#: ieee.c:3013
 msgid "C++ static virtual method"
 msgstr ""
 
-#: ieee.c:3106
+#: ieee.c:3108
 msgid "unrecognized C++ object overhead spec"
 msgstr ""
 
-#: ieee.c:3145
+#: ieee.c:3147
 msgid "undefined C++ vtable"
 msgstr ""
 
-#: ieee.c:3214
+#: ieee.c:3216
 msgid "C++ default values not in a function"
 msgstr ""
 
-#: ieee.c:3254
+#: ieee.c:3256
 msgid "unrecognized C++ default type"
 msgstr ""
 
-#: ieee.c:3285
+#: ieee.c:3287
 msgid "reference parameter is not a pointer"
 msgstr ""
 
-#: ieee.c:3368
+#: ieee.c:3370
 msgid "unrecognized C++ reference type"
 msgstr ""
 
-#: ieee.c:3450
+#: ieee.c:3452
 msgid "C++ reference not found"
 msgstr ""
 
-#: ieee.c:3458
+#: ieee.c:3460
 msgid "C++ reference is not pointer"
 msgstr ""
 
-#: ieee.c:3484 ieee.c:3492
+#: ieee.c:3486 ieee.c:3494
 msgid "missing required ASN"
 msgstr ""
 
-#: ieee.c:3519 ieee.c:3527
+#: ieee.c:3521 ieee.c:3529
 msgid "missing required ATN65"
 msgstr ""
 
-#: ieee.c:3541
+#: ieee.c:3543
 msgid "bad ATN65 record"
 msgstr ""
 
-#: ieee.c:4169
+#: ieee.c:4171
 #, c-format
 msgid "IEEE numeric overflow: 0x"
 msgstr ""
 
-#: ieee.c:4213
+#: ieee.c:4215
 #, c-format
 msgid "IEEE string length overflow: %u\n"
 msgstr ""
 
-#: ieee.c:5210
+#: ieee.c:5212
 #, c-format
 msgid "IEEE unsupported integer type size %u\n"
 msgstr ""
 
-#: ieee.c:5244
+#: ieee.c:5246
 #, c-format
 msgid "IEEE unsupported float type size %u\n"
 msgstr ""
 
-#: ieee.c:5278
+#: ieee.c:5280
 #, c-format
 msgid "IEEE unsupported complex type size %u\n"
 msgstr ""
@@ -2609,17 +2609,17 @@
 msgid "%s: invalid output format"
 msgstr ""
 
-#: nm.c:337 readelf.c:6917 readelf.c:6962
+#: nm.c:337 readelf.c:7016 readelf.c:7061
 #, c-format
 msgid "<processor specific>: %d"
 msgstr ""
 
-#: nm.c:339 readelf.c:6926 readelf.c:6980
+#: nm.c:339 readelf.c:7025 readelf.c:7079
 #, c-format
 msgid "<OS specific>: %d"
 msgstr ""
 
-#: nm.c:341 readelf.c:6929 readelf.c:6983
+#: nm.c:341 readelf.c:7028 readelf.c:7082
 #, c-format
 msgid "<unknown>: %d"
 msgstr ""
@@ -2911,7 +2911,7 @@
 msgid "cannot open '%s': %s"
 msgstr ""
 
-#: objcopy.c:751 objcopy.c:3335
+#: objcopy.c:751 objcopy.c:3336
 #, c-format
 msgid "%s: fread failed"
 msgstr ""
@@ -2921,309 +2921,309 @@
 msgid "%s:%d: Ignoring rubbish found on this line"
 msgstr ""
 
-#: objcopy.c:1120
+#: objcopy.c:1121
 #, c-format
 msgid "not stripping symbol `%s' because it is named in a relocation"
 msgstr ""
 
-#: objcopy.c:1203
+#: objcopy.c:1204
 #, c-format
 msgid "%s: Multiple redefinition of symbol \"%s\""
 msgstr ""
 
-#: objcopy.c:1207
+#: objcopy.c:1208
 #, c-format
 msgid "%s: Symbol \"%s\" is target of more than one redefinition"
 msgstr ""
 
-#: objcopy.c:1235
+#: objcopy.c:1236
 #, c-format
 msgid "couldn't open symbol redefinition file %s (error: %s)"
 msgstr ""
 
-#: objcopy.c:1313
+#: objcopy.c:1314
 #, c-format
 msgid "%s:%d: garbage found at end of line"
 msgstr ""
 
-#: objcopy.c:1316
+#: objcopy.c:1317
 #, c-format
 msgid "%s:%d: missing new symbol name"
 msgstr ""
 
-#: objcopy.c:1326
+#: objcopy.c:1327
 #, c-format
 msgid "%s:%d: premature end of file"
 msgstr ""
 
-#: objcopy.c:1352
+#: objcopy.c:1353
 #, c-format
 msgid "stat returns negative size for `%s'"
 msgstr ""
 
-#: objcopy.c:1364
+#: objcopy.c:1365
 #, c-format
 msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
 msgstr ""
 
-#: objcopy.c:1419
+#: objcopy.c:1420
 msgid "Unable to change endianness of input file(s)"
 msgstr ""
 
-#: objcopy.c:1428
+#: objcopy.c:1429
 #, c-format
 msgid "copy from `%s' [%s] to `%s' [%s]\n"
 msgstr ""
 
-#: objcopy.c:1473
+#: objcopy.c:1474
 #, c-format
 msgid "Unable to recognise the format of the input file `%s'"
 msgstr ""
 
-#: objcopy.c:1476
+#: objcopy.c:1477
 #, c-format
 msgid "Warning: Output file cannot represent architecture `%s'"
 msgstr ""
 
-#: objcopy.c:1539
+#: objcopy.c:1540
 #, c-format
 msgid "warning: file alignment (0x%s) > section alignment (0x%s)"
 msgstr ""
 
-#: objcopy.c:1598
+#: objcopy.c:1599
 #, c-format
 msgid "can't add section '%s'"
 msgstr ""
 
-#: objcopy.c:1607
+#: objcopy.c:1608
 #, c-format
 msgid "can't create section `%s'"
 msgstr ""
 
-#: objcopy.c:1653
+#: objcopy.c:1654
 #, c-format
 msgid "cannot create debug link section `%s'"
 msgstr ""
 
-#: objcopy.c:1746
+#: objcopy.c:1747
 msgid "Can't fill gap after section"
 msgstr ""
 
-#: objcopy.c:1770
+#: objcopy.c:1771
 msgid "can't add padding"
 msgstr ""
 
-#: objcopy.c:1861
+#: objcopy.c:1862
 #, c-format
 msgid "cannot fill debug link section `%s'"
 msgstr ""
 
-#: objcopy.c:1924
+#: objcopy.c:1925
 msgid "error copying private BFD data"
 msgstr ""
 
-#: objcopy.c:1935
+#: objcopy.c:1936
 #, c-format
 msgid "this target does not support %lu alternative machine codes"
 msgstr ""
 
-#: objcopy.c:1939
+#: objcopy.c:1940
 msgid "treating that number as an absolute e_machine value instead"
 msgstr ""
 
-#: objcopy.c:1943
+#: objcopy.c:1944
 msgid "ignoring the alternative value"
 msgstr ""
 
-#: objcopy.c:1974 objcopy.c:2009
+#: objcopy.c:1975 objcopy.c:2010
 #, c-format
 msgid "cannot create tempdir for archive copying (error: %s)"
 msgstr ""
 
-#: objcopy.c:2070
+#: objcopy.c:2071
 msgid "Unable to recognise the format of file"
 msgstr ""
 
-#: objcopy.c:2167
+#: objcopy.c:2168
 #, c-format
 msgid "error: the input file '%s' is empty"
 msgstr ""
 
-#: objcopy.c:2299
+#: objcopy.c:2300
 #, c-format
 msgid "Multiple renames of section %s"
 msgstr ""
 
-#: objcopy.c:2350
+#: objcopy.c:2351
 msgid "error in private header data"
 msgstr ""
 
-#: objcopy.c:2428
+#: objcopy.c:2429
 msgid "failed to create output section"
 msgstr ""
 
-#: objcopy.c:2442
+#: objcopy.c:2443
 msgid "failed to set size"
 msgstr ""
 
-#: objcopy.c:2456
+#: objcopy.c:2457
 msgid "failed to set vma"
 msgstr ""
 
-#: objcopy.c:2481
+#: objcopy.c:2482
 msgid "failed to set alignment"
 msgstr ""
 
-#: objcopy.c:2515
+#: objcopy.c:2516
 msgid "failed to copy private data"
 msgstr ""
 
-#: objcopy.c:2597
+#: objcopy.c:2598
 msgid "relocation count is negative"
 msgstr ""
 
 #. User must pad the section up in order to do this.
-#: objcopy.c:2658
+#: objcopy.c:2659
 #, c-format
 msgid ""
 "cannot reverse bytes: length of section %s must be evenly divisible by %d"
 msgstr ""
 
-#: objcopy.c:2842
+#: objcopy.c:2843
 msgid "can't create debugging section"
 msgstr ""
 
-#: objcopy.c:2855
+#: objcopy.c:2856
 msgid "can't set debugging section contents"
 msgstr ""
 
-#: objcopy.c:2863
+#: objcopy.c:2864
 #, c-format
 msgid "don't know how to write debugging information for %s"
 msgstr ""
 
-#: objcopy.c:3005
+#: objcopy.c:3006
 msgid "could not create temporary file to hold stripped copy"
 msgstr ""
 
-#: objcopy.c:3077
+#: objcopy.c:3078
 #, c-format
 msgid "%s: bad version in PE subsystem"
 msgstr ""
 
-#: objcopy.c:3107
+#: objcopy.c:3108
 #, c-format
 msgid "unknown PE subsystem: %s"
 msgstr ""
 
-#: objcopy.c:3167
+#: objcopy.c:3168
 msgid "byte number must be non-negative"
 msgstr ""
 
-#: objcopy.c:3177
+#: objcopy.c:3178
 msgid "interleave must be positive"
 msgstr ""
 
-#: objcopy.c:3197 objcopy.c:3205
+#: objcopy.c:3198 objcopy.c:3206
 #, c-format
 msgid "%s both copied and removed"
 msgstr ""
 
-#: objcopy.c:3306 objcopy.c:3380 objcopy.c:3480 objcopy.c:3511 objcopy.c:3535
-#: objcopy.c:3539 objcopy.c:3559
+#: objcopy.c:3307 objcopy.c:3381 objcopy.c:3481 objcopy.c:3512 objcopy.c:3536
+#: objcopy.c:3540 objcopy.c:3560
 #, c-format
 msgid "bad format for %s"
 msgstr ""
 
-#: objcopy.c:3330
+#: objcopy.c:3331
 #, c-format
 msgid "cannot open: %s: %s"
 msgstr ""
 
-#: objcopy.c:3449
+#: objcopy.c:3450
 #, c-format
 msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
 msgstr ""
 
-#: objcopy.c:3610
+#: objcopy.c:3611
 #, c-format
 msgid "unknown long section names option '%s'"
 msgstr ""
 
-#: objcopy.c:3628
+#: objcopy.c:3629
 msgid "unable to parse alternative machine code"
 msgstr ""
 
-#: objcopy.c:3673
+#: objcopy.c:3674
 msgid "number of bytes to reverse must be positive and even"
 msgstr ""
 
-#: objcopy.c:3676
+#: objcopy.c:3677
 #, c-format
 msgid "Warning: ignoring previous --reverse-bytes value of %d"
 msgstr ""
 
-#: objcopy.c:3691
+#: objcopy.c:3692
 #, c-format
 msgid "%s: invalid reserve value for --heap"
 msgstr ""
 
-#: objcopy.c:3697
+#: objcopy.c:3698
 #, c-format
 msgid "%s: invalid commit value for --heap"
 msgstr ""
 
-#: objcopy.c:3722
+#: objcopy.c:3723
 #, c-format
 msgid "%s: invalid reserve value for --stack"
 msgstr ""
 
-#: objcopy.c:3728
+#: objcopy.c:3729
 #, c-format
 msgid "%s: invalid commit value for --stack"
 msgstr ""
 
-#: objcopy.c:3757
+#: objcopy.c:3758
 msgid "byte number must be less than interleave"
 msgstr ""
 
-#: objcopy.c:3784
+#: objcopy.c:3785
 #, c-format
 msgid "unknown input EFI target: %s"
 msgstr ""
 
-#: objcopy.c:3815
+#: objcopy.c:3816
 #, c-format
 msgid "unknown output EFI target: %s"
 msgstr ""
 
-#: objcopy.c:3840
+#: objcopy.c:3841
 #, c-format
 msgid "architecture %s unknown"
 msgstr ""
 
-#: objcopy.c:3844
+#: objcopy.c:3845
 msgid ""
 "Warning: input target 'binary' required for binary architecture parameter."
 msgstr ""
 
-#: objcopy.c:3845
+#: objcopy.c:3846
 #, c-format
 msgid " Argument %s ignored"
 msgstr ""
 
-#: objcopy.c:3851
+#: objcopy.c:3852
 #, c-format
 msgid "warning: could not locate '%s'.  System error message: %s"
 msgstr ""
 
-#: objcopy.c:3862
+#: objcopy.c:3863
 #, c-format
 msgid ""
 "warning: could not create temporary file whilst copying '%s', (error: %s)"
 msgstr ""
 
-#: objcopy.c:3890 objcopy.c:3904
+#: objcopy.c:3891 objcopy.c:3905
 #, c-format
 msgid "%s %s%c0x%s never used"
 msgstr ""
@@ -3363,136 +3363,136 @@
 msgid " (File Offset: 0x%lx)"
 msgstr ""
 
-#: objdump.c:1885
+#: objdump.c:1886
 #, c-format
 msgid ""
 "\n"
 "Disassembly of section %s:\n"
 msgstr ""
 
-#: objdump.c:2058
+#: objdump.c:2062
 #, c-format
 msgid "Can't use supplied machine %s"
 msgstr ""
 
-#: objdump.c:2077
+#: objdump.c:2081
 #, c-format
 msgid "Can't disassemble for architecture %s\n"
 msgstr ""
 
-#: objdump.c:2168
+#: objdump.c:2172
 #, c-format
 msgid ""
 "\n"
 "Can't get contents for section '%s'.\n"
 msgstr ""
 
-#: objdump.c:2179
+#: objdump.c:2183
 #, c-format
 msgid ""
 "\n"
 "Can't uncompress section '%s'.\n"
 msgstr ""
 
-#: objdump.c:2307
+#: objdump.c:2312
 #, c-format
 msgid ""
 "No %s section present\n"
 "\n"
 msgstr ""
 
-#: objdump.c:2316
+#: objdump.c:2321
 #, c-format
 msgid "Reading %s section of %s failed: %s"
 msgstr ""
 
-#: objdump.c:2360
+#: objdump.c:2365
 #, c-format
 msgid ""
 "Contents of %s section:\n"
 "\n"
 msgstr ""
 
-#: objdump.c:2491
+#: objdump.c:2496
 #, c-format
 msgid "architecture: %s, "
 msgstr ""
 
-#: objdump.c:2494
+#: objdump.c:2499
 #, c-format
 msgid "flags 0x%08x:\n"
 msgstr ""
 
-#: objdump.c:2508
+#: objdump.c:2513
 #, c-format
 msgid ""
 "\n"
 "start address 0x"
 msgstr ""
 
-#: objdump.c:2571
+#: objdump.c:2576
 #, c-format
 msgid "Contents of section %s:"
 msgstr ""
 
-#: objdump.c:2573
+#: objdump.c:2578
 #, c-format
 msgid "  (Starting at file offset: 0x%lx)"
 msgstr ""
 
-#: objdump.c:2680
+#: objdump.c:2685
 #, c-format
 msgid "no symbols\n"
 msgstr ""
 
-#: objdump.c:2687
+#: objdump.c:2692
 #, c-format
 msgid "no information for symbol number %ld\n"
 msgstr ""
 
-#: objdump.c:2690
+#: objdump.c:2695
 #, c-format
 msgid "could not determine the type of symbol number %ld\n"
 msgstr ""
 
-#: objdump.c:2970
+#: objdump.c:2975
 #, c-format
 msgid ""
 "\n"
 "%s:     file format %s\n"
 msgstr ""
 
-#: objdump.c:3028
+#: objdump.c:3033
 #, c-format
 msgid "%s: printing debugging information failed"
 msgstr ""
 
-#: objdump.c:3128
+#: objdump.c:3133
 #, c-format
 msgid "In archive %s:\n"
 msgstr ""
 
-#: objdump.c:3244
+#: objdump.c:3249
 msgid "error: the start address should be before the end address"
 msgstr ""
 
-#: objdump.c:3249
+#: objdump.c:3254
 msgid "error: the stop address should be after the start address"
 msgstr ""
 
-#: objdump.c:3261
+#: objdump.c:3266
 msgid "error: prefix strip must be non-negative"
 msgstr ""
 
-#: objdump.c:3266
+#: objdump.c:3271
 msgid "error: instruction width must be positive"
 msgstr ""
 
-#: objdump.c:3275
+#: objdump.c:3280
 msgid "unrecognized -E option"
 msgstr ""
 
-#: objdump.c:3286
+#: objdump.c:3291
 #, c-format
 msgid "unrecognized --endian type `%s'"
 msgstr ""
@@ -3551,173 +3551,173 @@
 msgid "Unable to read in 0x%lx bytes of %s\n"
 msgstr ""
 
-#: readelf.c:640
+#: readelf.c:645
 msgid "Don't know about relocations on this machine architecture\n"
 msgstr ""
 
-#: readelf.c:660 readelf.c:688 readelf.c:754 readelf.c:782
+#: readelf.c:666 readelf.c:696 readelf.c:764 readelf.c:793
 msgid "relocs"
 msgstr ""
 
-#: readelf.c:671 readelf.c:699 readelf.c:765 readelf.c:793
+#: readelf.c:678 readelf.c:708 readelf.c:775 readelf.c:804
 msgid "out of memory parsing relocs\n"
 msgstr ""
 
-#: readelf.c:898
+#: readelf.c:909
 #, c-format
 msgid ""
 " Offset     Info    Type                Sym. Value  Symbol's Name + Addend\n"
 msgstr ""
 
-#: readelf.c:900
+#: readelf.c:911
 #, c-format
 msgid " Offset     Info    Type            Sym.Value  Sym. Name + Addend\n"
 msgstr ""
 
-#: readelf.c:905
+#: readelf.c:916
 #, c-format
 msgid " Offset     Info    Type                Sym. Value  Symbol's Name\n"
 msgstr ""
 
-#: readelf.c:907
+#: readelf.c:918
 #, c-format
 msgid " Offset     Info    Type            Sym.Value  Sym. Name\n"
 msgstr ""
 
-#: readelf.c:915
+#: readelf.c:926
 #, c-format
 msgid ""
 "    Offset             Info             Type               Symbol's Value  "
 "Symbol's Name + Addend\n"
 msgstr ""
 
-#: readelf.c:917
+#: readelf.c:928
 #, c-format
 msgid ""
 "  Offset          Info           Type           Sym. Value    Sym. Name + "
 "Addend\n"
 msgstr ""
 
-#: readelf.c:922
+#: readelf.c:933
 #, c-format
 msgid ""
 "    Offset             Info             Type               Symbol's Value  "
 "Symbol's Name\n"
 msgstr ""
 
-#: readelf.c:924
+#: readelf.c:935
 #, c-format
 msgid ""
 "  Offset          Info           Type           Sym. Value    Sym. Name\n"
 msgstr ""
 
-#: readelf.c:1211 readelf.c:1370 readelf.c:1378
+#: readelf.c:1222 readelf.c:1381 readelf.c:1389
 #, c-format
 msgid "unrecognized: %-7lx"
 msgstr ""
 
-#: readelf.c:1236
+#: readelf.c:1247
 #, c-format
 msgid "<unknown addend: %lx>"
 msgstr ""
 
-#: readelf.c:1328
+#: readelf.c:1339
 #, c-format
 msgid "<string table index: %3ld>"
 msgstr ""
 
-#: readelf.c:1330
+#: readelf.c:1341
 #, c-format
 msgid "<corrupt string table index: %3ld>"
 msgstr ""
 
-#: readelf.c:1703
+#: readelf.c:1716
 #, c-format
 msgid "Processor Specific: %lx"
 msgstr ""
 
-#: readelf.c:1727
+#: readelf.c:1740
 #, c-format
 msgid "Operating System specific: %lx"
 msgstr ""
 
-#: readelf.c:1731 readelf.c:2613
+#: readelf.c:1744 readelf.c:2626
 #, c-format
 msgid "<unknown>: %lx"
 msgstr ""
 
-#: readelf.c:1744
+#: readelf.c:1757
 msgid "NONE (None)"
 msgstr ""
 
-#: readelf.c:1745
+#: readelf.c:1758
 msgid "REL (Relocatable file)"
 msgstr ""
 
-#: readelf.c:1746
+#: readelf.c:1759
 msgid "EXEC (Executable file)"
 msgstr ""
 
-#: readelf.c:1747
+#: readelf.c:1760
 msgid "DYN (Shared object file)"
 msgstr ""
 
-#: readelf.c:1748
+#: readelf.c:1761
 msgid "CORE (Core file)"
 msgstr ""
 
-#: readelf.c:1752
+#: readelf.c:1765
 #, c-format
 msgid "Processor Specific: (%x)"
 msgstr ""
 
-#: readelf.c:1754
+#: readelf.c:1767
 #, c-format
 msgid "OS Specific: (%x)"
 msgstr ""
 
-#: readelf.c:1756 readelf.c:2830
+#: readelf.c:1769 readelf.c:2843
 #, c-format
 msgid "<unknown>: %x"
 msgstr ""
 
-#: readelf.c:1768
+#: readelf.c:1781
 msgid "None"
 msgstr ""
 
-#: readelf.c:1879
+#: readelf.c:1892
 #, c-format
 msgid "<unknown>: 0x%x"
 msgstr ""
 
-#: readelf.c:2136
+#: readelf.c:2149
 msgid "unknown"
 msgstr ""
 
-#: readelf.c:2137
+#: readelf.c:2150
 msgid "unknown mac"
 msgstr ""
 
-#: readelf.c:2450
+#: readelf.c:2463
 msgid "Standalone App"
 msgstr ""
 
-#: readelf.c:2453 readelf.c:3159 readelf.c:3175
+#: readelf.c:2466 readelf.c:3174 readelf.c:3190
 #, c-format
 msgid "<unknown: %x>"
 msgstr ""
 
-#: readelf.c:2878
+#: readelf.c:2891
 #, c-format
 msgid "Usage: readelf <option(s)> elf-file(s)\n"
 msgstr ""
 
-#: readelf.c:2879
+#: readelf.c:2892
 #, c-format
 msgid " Display information about the contents of ELF format files\n"
 msgstr ""
 
-#: readelf.c:2880
+#: readelf.c:2893
 #, c-format
 msgid ""
 " Options are:\n"
@@ -3757,14 +3757,14 @@
 "                         Display the contents of DWARF2 debug sections\n"
 msgstr ""
 
-#: readelf.c:2910
+#: readelf.c:2923
 #, c-format
 msgid ""
 "  -i --instruction-dump=<number|name>\n"
 "                         Disassemble the contents of section <number|name>\n"
 msgstr ""
 
-#: readelf.c:2914
+#: readelf.c:2927
 #, c-format
 msgid ""
 "  -I --histogram         Display histogram of bucket list lengths\n"
@@ -3774,389 +3774,394 @@
 "  -v --version           Display the version number of readelf\n"
 msgstr ""
 
-#: readelf.c:2942 readelf.c:2970 readelf.c:2974 readelf.c:11443
+#: readelf.c:2956 readelf.c:2985 readelf.c:2989 readelf.c:11591
 msgid "Out of memory allocating dump request table.\n"
 msgstr ""
 
-#: readelf.c:3129
+#: readelf.c:3144
 #, c-format
 msgid "Invalid option '-%c'\n"
 msgstr ""
 
-#: readelf.c:3143
+#: readelf.c:3158
 msgid "Nothing to do.\n"
 msgstr ""
 
-#: readelf.c:3155 readelf.c:3171 readelf.c:6440
+#: readelf.c:3170 readelf.c:3186 readelf.c:6536
 msgid "none"
 msgstr ""
 
-#: readelf.c:3172
+#: readelf.c:3187
 msgid "2's complement, little endian"
 msgstr ""
 
-#: readelf.c:3173
+#: readelf.c:3188
 msgid "2's complement, big endian"
 msgstr ""
 
-#: readelf.c:3191
+#: readelf.c:3206
 msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
 msgstr ""
 
-#: readelf.c:3201
+#: readelf.c:3216
 #, c-format
 msgid "ELF Header:\n"
 msgstr ""
 
-#: readelf.c:3202
+#: readelf.c:3217
 #, c-format
 msgid "  Magic:   "
 msgstr ""
 
-#: readelf.c:3206
+#: readelf.c:3221
 #, c-format
 msgid "  Class:                             %s\n"
 msgstr ""
 
-#: readelf.c:3208
+#: readelf.c:3223
 #, c-format
 msgid "  Data:                              %s\n"
 msgstr ""
 
-#: readelf.c:3210
+#: readelf.c:3225
 #, c-format
 msgid "  Version:                           %d %s\n"
 msgstr ""
 
-#: readelf.c:3217
+#: readelf.c:3232
 #, c-format
 msgid "  OS/ABI:                            %s\n"
 msgstr ""
 
-#: readelf.c:3219
+#: readelf.c:3234
 #, c-format
 msgid "  ABI Version:                       %d\n"
 msgstr ""
 
-#: readelf.c:3221
+#: readelf.c:3236
 #, c-format
 msgid "  Type:                              %s\n"
 msgstr ""
 
-#: readelf.c:3223
+#: readelf.c:3238
 #, c-format
 msgid "  Machine:                           %s\n"
 msgstr ""
 
-#: readelf.c:3225
+#: readelf.c:3240
 #, c-format
 msgid "  Version:                           0x%lx\n"
 msgstr ""
 
-#: readelf.c:3228
+#: readelf.c:3243
 #, c-format
 msgid "  Entry point address:               "
 msgstr ""
 
-#: readelf.c:3230
+#: readelf.c:3245
 #, c-format
 msgid ""
 "\n"
 "  Start of program headers:          "
 msgstr ""
 
-#: readelf.c:3232
+#: readelf.c:3247
 #, c-format
 msgid ""
 " (bytes into file)\n"
 "  Start of section headers:          "
 msgstr ""
 
-#: readelf.c:3234
+#: readelf.c:3249
 #, c-format
 msgid " (bytes into file)\n"
 msgstr ""
 
-#: readelf.c:3236
+#: readelf.c:3251
 #, c-format
 msgid "  Flags:                             0x%lx%s\n"
 msgstr ""
 
-#: readelf.c:3239
+#: readelf.c:3254
 #, c-format
 msgid "  Size of this header:               %ld (bytes)\n"
 msgstr ""
 
-#: readelf.c:3241
+#: readelf.c:3256
 #, c-format
 msgid "  Size of program headers:           %ld (bytes)\n"
 msgstr ""
 
-#: readelf.c:3243
+#: readelf.c:3258
 #, c-format
 msgid "  Number of program headers:         %ld\n"
 msgstr ""
 
-#: readelf.c:3245
+#: readelf.c:3260
 #, c-format
 msgid "  Size of section headers:           %ld (bytes)\n"
 msgstr ""
 
-#: readelf.c:3247
+#: readelf.c:3262
 #, c-format
 msgid "  Number of section headers:         %ld"
 msgstr ""
 
-#: readelf.c:3252
+#: readelf.c:3267
 #, c-format
 msgid "  Section header string table index: %ld"
 msgstr ""
 
-#: readelf.c:3289 readelf.c:3322
+#: readelf.c:3305 readelf.c:3339
 msgid "program headers"
 msgstr ""
 
-#: readelf.c:3360 readelf.c:3658 readelf.c:3699 readelf.c:3758 readelf.c:3823
-#: readelf.c:4494 readelf.c:4518 readelf.c:5770 readelf.c:5815 readelf.c:6014
-#: readelf.c:7087 readelf.c:7101 readelf.c:7611 readelf.c:7627 readelf.c:7670
-#: readelf.c:7695 readelf.c:9642 readelf.c:9834 readelf.c:10362
-#: readelf.c:10736 readelf.c:10750 readelf.c:11109
+#: readelf.c:3378 readelf.c:3678 readelf.c:3721 readelf.c:3782 readelf.c:3849
+#: readelf.c:4575 readelf.c:4599 readelf.c:5863 readelf.c:5909 readelf.c:6110
+#: readelf.c:7186 readelf.c:7200 readelf.c:7711 readelf.c:7727 readelf.c:7770
+#: readelf.c:7795 readelf.c:9780 readelf.c:9972 readelf.c:10507
+#: readelf.c:10881 readelf.c:10895 readelf.c:11256
 msgid "Out of memory\n"
 msgstr ""
 
-#: readelf.c:3387
+#: readelf.c:3405
 #, c-format
 msgid ""
 "\n"
 "There are no program headers in this file.\n"
 msgstr ""
 
-#: readelf.c:3393
+#: readelf.c:3411
 #, c-format
 msgid ""
 "\n"
 "Elf file type is %s\n"
 msgstr ""
 
-#: readelf.c:3394
+#: readelf.c:3412
 #, c-format
 msgid "Entry point "
 msgstr ""
 
-#: readelf.c:3396
+#: readelf.c:3414
 #, c-format
 msgid ""
 "\n"
 "There are %d program headers, starting at offset "
 msgstr ""
 
-#: readelf.c:3408 readelf.c:3410
+#: readelf.c:3426 readelf.c:3428
 #, c-format
 msgid ""
 "\n"
 "Program Headers:\n"
 msgstr ""
 
-#: readelf.c:3414
+#: readelf.c:3432
 #, c-format
 msgid ""
 "  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align\n"
 msgstr ""
 
-#: readelf.c:3417
+#: readelf.c:3435
 #, c-format
 msgid ""
 "  Type           Offset   VirtAddr           PhysAddr           FileSiz  "
 "MemSiz   Flg Align\n"
 msgstr ""
 
-#: readelf.c:3421
+#: readelf.c:3439
 #, c-format
 msgid "  Type           Offset             VirtAddr           PhysAddr\n"
 msgstr ""
 
-#: readelf.c:3423
+#: readelf.c:3441
 #, c-format
 msgid "                 FileSiz            MemSiz              Flags  Align\n"
 msgstr ""
 
-#: readelf.c:3516
+#: readelf.c:3534
 msgid "more than one dynamic segment\n"
 msgstr ""
 
-#: readelf.c:3532
+#: readelf.c:3550
 msgid "no .dynamic section in the dynamic segment\n"
 msgstr ""
 
-#: readelf.c:3547
+#: readelf.c:3565
 msgid "the .dynamic section is not contained within the dynamic segment\n"
 msgstr ""
 
-#: readelf.c:3550
+#: readelf.c:3568
 msgid "the .dynamic section is not the first section in the dynamic segment.\n"
 msgstr ""
 
-#: readelf.c:3558
+#: readelf.c:3576
 msgid "Unable to find program interpreter name\n"
 msgstr ""
 
-#: readelf.c:3565
+#: readelf.c:3583
 msgid ""
 "Internal error: failed to create format string to display program "
 "interpreter\n"
 msgstr ""
 
-#: readelf.c:3569
+#: readelf.c:3587
 msgid "Unable to read program interpreter name\n"
 msgstr ""
 
-#: readelf.c:3572
+#: readelf.c:3590
 #, c-format
 msgid ""
 "\n"
 "      [Requesting program interpreter: %s]"
 msgstr ""
 
-#: readelf.c:3584
+#: readelf.c:3602
 #, c-format
 msgid ""
 "\n"
 " Section to Segment mapping:\n"
 msgstr ""
 
-#: readelf.c:3585
+#: readelf.c:3603
 #, c-format
 msgid "  Segment Sections...\n"
 msgstr ""
 
-#: readelf.c:3620
+#: readelf.c:3638
 msgid "Cannot interpret virtual addresses without program headers.\n"
 msgstr ""
 
-#: readelf.c:3636
+#: readelf.c:3654
 #, c-format
 msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
 msgstr ""
 
-#: readelf.c:3650 readelf.c:3691
+#: readelf.c:3669 readelf.c:3712
 msgid "section headers"
 msgstr ""
 
-#: readelf.c:3735 readelf.c:3800
+#: readelf.c:3757 readelf.c:3824
 msgid "symbols"
 msgstr ""
 
-#: readelf.c:3745 readelf.c:3810
+#: readelf.c:3769 readelf.c:3836
 msgid "symtab shndx"
 msgstr ""
 
-#: readelf.c:4070 readelf.c:4478
+#: readelf.c:4112 readelf.c:4559
 #, c-format
 msgid ""
 "\n"
 "There are no sections in this file.\n"
 msgstr ""
 
-#: readelf.c:4076
+#: readelf.c:4118
 #, c-format
 msgid "There are %d section headers, starting at offset 0x%lx:\n"
 msgstr ""
 
-#: readelf.c:4096 readelf.c:4595 readelf.c:4821 readelf.c:5116 readelf.c:5524
-#: readelf.c:7421
+#: readelf.c:4139 readelf.c:4676 readelf.c:4903 readelf.c:5203 readelf.c:5616
+#: readelf.c:7521
 msgid "string table"
 msgstr ""
 
-#: readelf.c:4163
+#: readelf.c:4206
 #, c-format
 msgid "Section %d has invalid sh_entsize %lx (expected %lx)\n"
 msgstr ""
 
-#: readelf.c:4183
+#: readelf.c:4226
 msgid "File contains multiple dynamic symbol tables\n"
 msgstr ""
 
-#: readelf.c:4196
+#: readelf.c:4239
 msgid "File contains multiple dynamic string tables\n"
 msgstr ""
 
-#: readelf.c:4201
+#: readelf.c:4245
 msgid "dynamic strings"
 msgstr ""
 
-#: readelf.c:4208
+#: readelf.c:4252
 msgid "File contains multiple symtab shndx tables\n"
 msgstr ""
 
-#: readelf.c:4259
+#: readelf.c:4303
 #, c-format
 msgid ""
 "\n"
 "Section Headers:\n"
 msgstr ""
 
-#: readelf.c:4261
+#: readelf.c:4305
 #, c-format
 msgid ""
 "\n"
 "Section Header:\n"
 msgstr ""
 
-#: readelf.c:4267 readelf.c:4278 readelf.c:4289
+#: readelf.c:4311 readelf.c:4322 readelf.c:4333
 #, c-format
 msgid "  [Nr] Name\n"
 msgstr ""
 
-#: readelf.c:4268
+#: readelf.c:4312
 #, c-format
 msgid "       Type            Addr     Off    Size   ES   Lk Inf Al\n"
 msgstr ""
 
-#: readelf.c:4272
+#: readelf.c:4316
 #, c-format
 msgid ""
 "  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk "
 "Inf Al\n"
 msgstr ""
 
-#: readelf.c:4279
+#: readelf.c:4323
 #, c-format
 msgid "       Type            Address          Off    Size   ES   Lk Inf Al\n"
 msgstr ""
 
-#: readelf.c:4283
+#: readelf.c:4327
 #, c-format
 msgid ""
 "  [Nr] Name              Type            Address          Off    Size   ES "
 "Flg Lk Inf Al\n"
 msgstr ""
 
-#: readelf.c:4290
+#: readelf.c:4334
 #, c-format
 msgid "       Type              Address          Offset            Link\n"
 msgstr ""
 
-#: readelf.c:4291
+#: readelf.c:4335
 #, c-format
 msgid "       Size              EntSize          Info              Align\n"
 msgstr ""
 
-#: readelf.c:4295
+#: readelf.c:4339
 #, c-format
 msgid "  [Nr] Name              Type             Address           Offset\n"
 msgstr ""
 
-#: readelf.c:4296
+#: readelf.c:4340
 #, c-format
 msgid "       Size              EntSize          Flags  Link  Info  Align\n"
 msgstr ""
 
-#: readelf.c:4301
+#: readelf.c:4345
 #, c-format
 msgid "       Flags\n"
 msgstr ""
 
-#: readelf.c:4435
+#: readelf.c:4420
+#, c-format
+msgid "section %u: sh_link value of %u is larger than the number of sections\n"
+msgstr ""
+
+#: readelf.c:4516
 #, c-format
 msgid ""
 "Key to Flags:\n"
@@ -4165,616 +4170,616 @@
 "  O (extra OS processing required) o (OS specific), p (processor specific)\n"
 msgstr ""
 
-#: readelf.c:4453
+#: readelf.c:4534
 #, c-format
 msgid "[<unknown>: 0x%x]"
 msgstr ""
 
-#: readelf.c:4485
+#: readelf.c:4566
 msgid "Section headers are not available!\n"
 msgstr ""
 
-#: readelf.c:4509
+#: readelf.c:4590
 #, c-format
 msgid ""
 "\n"
 "There are no section groups in this file.\n"
 msgstr ""
 
-#: readelf.c:4546
+#: readelf.c:4627
 #, c-format
 msgid "Bad sh_link in group section `%s'\n"
 msgstr ""
 
-#: readelf.c:4565
+#: readelf.c:4646
 #, c-format
 msgid "Bad sh_info in group section `%s'\n"
 msgstr ""
 
-#: readelf.c:4603
+#: readelf.c:4685
 msgid "section data"
 msgstr ""
 
-#: readelf.c:4615
+#: readelf.c:4697
 #, c-format
 msgid "   [Index]    Name\n"
 msgstr ""
 
-#: readelf.c:4629
+#: readelf.c:4711
 #, c-format
 msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
 msgstr ""
 
-#: readelf.c:4638
+#: readelf.c:4720
 #, c-format
 msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
 msgstr ""
 
-#: readelf.c:4651
+#: readelf.c:4733
 #, c-format
 msgid "section 0 in group section [%5u]\n"
 msgstr ""
 
-#: readelf.c:4746
+#: readelf.c:4828
 #, c-format
 msgid ""
 "\n"
 "'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
 msgstr ""
 
-#: readelf.c:4758
+#: readelf.c:4840
 #, c-format
 msgid ""
 "\n"
 "There are no dynamic relocations in this file.\n"
 msgstr ""
 
-#: readelf.c:4782
+#: readelf.c:4864
 #, c-format
 msgid ""
 "\n"
 "Relocation section "
 msgstr ""
 
-#: readelf.c:4787 readelf.c:5192 readelf.c:5206 readelf.c:5539
+#: readelf.c:4869 readelf.c:5279 readelf.c:5294 readelf.c:5631
 #, c-format
 msgid "'%s'"
 msgstr ""
 
-#: readelf.c:4789 readelf.c:5208 readelf.c:5541
+#: readelf.c:4871 readelf.c:5296 readelf.c:5633
 #, c-format
 msgid " at offset 0x%lx contains %lu entries:\n"
 msgstr ""
 
-#: readelf.c:4840
+#: readelf.c:4922
 #, c-format
 msgid ""
 "\n"
 "There are no relocations in this file.\n"
 msgstr ""
 
-#: readelf.c:5022 readelf.c:5390
+#: readelf.c:5107 readelf.c:5480
 msgid "unwind table"
 msgstr ""
 
-#: readelf.c:5063 readelf.c:5471
+#: readelf.c:5149 readelf.c:5562
 #, c-format
 msgid "Skipping unexpected relocation type %s\n"
 msgstr ""
 
-#: readelf.c:5124 readelf.c:5532 readelf.c:5585
+#: readelf.c:5211 readelf.c:5624 readelf.c:5677
 #, c-format
 msgid ""
 "\n"
 "There are no unwind sections in this file.\n"
 msgstr ""
 
-#: readelf.c:5187
+#: readelf.c:5274
 #, c-format
 msgid ""
 "\n"
 "Could not find unwind info section for "
 msgstr ""
 
-#: readelf.c:5199
+#: readelf.c:5287
 msgid "unwind info"
 msgstr ""
 
-#: readelf.c:5201 readelf.c:5538
+#: readelf.c:5289 readelf.c:5630
 #, c-format
 msgid ""
 "\n"
 "Unwind section "
 msgstr ""
 
-#: readelf.c:5751 readelf.c:5796
+#: readelf.c:5843 readelf.c:5889
 msgid "dynamic section"
 msgstr ""
 
-#: readelf.c:5873
+#: readelf.c:5967
 #, c-format
 msgid ""
 "\n"
 "There is no dynamic section in this file.\n"
 msgstr ""
 
-#: readelf.c:5911
+#: readelf.c:6005
 msgid "Unable to seek to end of file!\n"
 msgstr ""
 
-#: readelf.c:5924
+#: readelf.c:6018
 msgid "Unable to determine the number of symbols to load\n"
 msgstr ""
 
-#: readelf.c:5959
+#: readelf.c:6053
 msgid "Unable to seek to end of file\n"
 msgstr ""
 
-#: readelf.c:5966
+#: readelf.c:6060
 msgid "Unable to determine the length of the dynamic string table\n"
 msgstr ""
 
-#: readelf.c:5971
+#: readelf.c:6066
 msgid "dynamic string table"
 msgstr ""
 
-#: readelf.c:6007
+#: readelf.c:6103
 msgid "symbol information"
 msgstr ""
 
-#: readelf.c:6032
+#: readelf.c:6128
 #, c-format
 msgid ""
 "\n"
 "Dynamic section at offset 0x%lx contains %u entries:\n"
 msgstr ""
 
-#: readelf.c:6035
+#: readelf.c:6131
 #, c-format
 msgid "  Tag        Type                         Name/Value\n"
 msgstr ""
 
-#: readelf.c:6071
+#: readelf.c:6167
 #, c-format
 msgid "Auxiliary library"
 msgstr ""
 
-#: readelf.c:6075
+#: readelf.c:6171
 #, c-format
 msgid "Filter library"
 msgstr ""
 
-#: readelf.c:6079
+#: readelf.c:6175
 #, c-format
 msgid "Configuration file"
 msgstr ""
 
-#: readelf.c:6083
+#: readelf.c:6179
 #, c-format
 msgid "Dependency audit library"
 msgstr ""
 
-#: readelf.c:6087
+#: readelf.c:6183
 #, c-format
 msgid "Audit library"
 msgstr ""
 
-#: readelf.c:6105 readelf.c:6133 readelf.c:6161
+#: readelf.c:6201 readelf.c:6229 readelf.c:6257
 #, c-format
 msgid "Flags:"
 msgstr ""
 
-#: readelf.c:6108 readelf.c:6136 readelf.c:6163
+#: readelf.c:6204 readelf.c:6232 readelf.c:6259
 #, c-format
 msgid " None\n"
 msgstr ""
 
-#: readelf.c:6284
+#: readelf.c:6380
 #, c-format
 msgid "Shared library: [%s]"
 msgstr ""
 
-#: readelf.c:6287
+#: readelf.c:6383
 #, c-format
 msgid " program interpreter"
 msgstr ""
 
-#: readelf.c:6291
+#: readelf.c:6387
 #, c-format
 msgid "Library soname: [%s]"
 msgstr ""
 
-#: readelf.c:6295
+#: readelf.c:6391
 #, c-format
 msgid "Library rpath: [%s]"
 msgstr ""
 
-#: readelf.c:6299
+#: readelf.c:6395
 #, c-format
 msgid "Library runpath: [%s]"
 msgstr ""
 
-#: readelf.c:6362
+#: readelf.c:6458
 #, c-format
 msgid "Not needed object: [%s]\n"
 msgstr ""
 
-#: readelf.c:6487
+#: readelf.c:6583
 #, c-format
 msgid ""
 "\n"
 "Version definition section '%s' contains %u entries:\n"
 msgstr ""
 
-#: readelf.c:6490
+#: readelf.c:6586
 #, c-format
 msgid "  Addr: 0x"
 msgstr ""
 
-#: readelf.c:6492 readelf.c:6594 readelf.c:6715
+#: readelf.c:6588 readelf.c:6690 readelf.c:6813
 #, c-format
 msgid "  Offset: %#08lx  Link: %u (%s)\n"
 msgstr ""
 
-#: readelf.c:6500
+#: readelf.c:6596
 msgid "version definition section"
 msgstr ""
 
-#: readelf.c:6529
+#: readelf.c:6625
 #, c-format
 msgid "  %#06x: Rev: %d  Flags: %s"
 msgstr ""
 
-#: readelf.c:6532
+#: readelf.c:6628
 #, c-format
 msgid "  Index: %d  Cnt: %d  "
 msgstr ""
 
-#: readelf.c:6543
+#: readelf.c:6639
 #, c-format
 msgid "Name: %s\n"
 msgstr ""
 
-#: readelf.c:6545
+#: readelf.c:6641
 #, c-format
 msgid "Name index: %ld\n"
 msgstr ""
 
-#: readelf.c:6562
+#: readelf.c:6658
 #, c-format
 msgid "  %#06x: Parent %d: %s\n"
 msgstr ""
 
-#: readelf.c:6565
+#: readelf.c:6661
 #, c-format
 msgid "  %#06x: Parent %d, name index: %ld\n"
 msgstr ""
 
-#: readelf.c:6569
+#: readelf.c:6665
 #, c-format
 msgid "  Version def aux past end of section\n"
 msgstr ""
 
-#: readelf.c:6574
+#: readelf.c:6670
 #, c-format
 msgid "  Version definition past end of section\n"
 msgstr ""
 
-#: readelf.c:6589
+#: readelf.c:6685
 #, c-format
 msgid ""
 "\n"
 "Version needs section '%s' contains %u entries:\n"
 msgstr ""
 
-#: readelf.c:6592
+#: readelf.c:6688
 #, c-format
 msgid " Addr: 0x"
 msgstr ""
 
-#: readelf.c:6602
+#: readelf.c:6699
 msgid "version need section"
 msgstr ""
 
-#: readelf.c:6627
+#: readelf.c:6724
 #, c-format
 msgid "  %#06x: Version: %d"
 msgstr ""
 
-#: readelf.c:6630
+#: readelf.c:6727
 #, c-format
 msgid "  File: %s"
 msgstr ""
 
-#: readelf.c:6632
+#: readelf.c:6729
 #, c-format
 msgid "  File: %lx"
 msgstr ""
 
-#: readelf.c:6634
+#: readelf.c:6731
 #, c-format
 msgid "  Cnt: %d\n"
 msgstr ""
 
-#: readelf.c:6654
+#: readelf.c:6751
 #, c-format
 msgid "  %#06x:   Name: %s"
 msgstr ""
 
-#: readelf.c:6657
+#: readelf.c:6754
 #, c-format
 msgid "  %#06x:   Name index: %lx"
 msgstr ""
 
-#: readelf.c:6660
+#: readelf.c:6757
 #, c-format
 msgid "  Flags: %s  Version: %d\n"
 msgstr ""
 
-#: readelf.c:6667
+#: readelf.c:6764
 #, c-format
 msgid "  Version need aux past end of section\n"
 msgstr ""
 
-#: readelf.c:6672
+#: readelf.c:6769
 #, c-format
 msgid "  Version need past end of section\n"
 msgstr ""
 
-#: readelf.c:6706
+#: readelf.c:6804
 msgid "version string table"
 msgstr ""
 
-#: readelf.c:6710
+#: readelf.c:6808
 #, c-format
 msgid ""
 "\n"
 "Version symbols section '%s' contains %d entries:\n"
 msgstr ""
 
-#: readelf.c:6713
+#: readelf.c:6811
 #, c-format
 msgid " Addr: "
 msgstr ""
 
-#: readelf.c:6723
+#: readelf.c:6822
 msgid "version symbol data"
 msgstr ""
 
-#: readelf.c:6750
+#: readelf.c:6849
 msgid "   0 (*local*)    "
 msgstr ""
 
-#: readelf.c:6754
+#: readelf.c:6853
 msgid "   1 (*global*)   "
 msgstr ""
 
-#: readelf.c:6791 readelf.c:7488
+#: readelf.c:6890 readelf.c:7588
 msgid "version need"
 msgstr ""
 
-#: readelf.c:6801
+#: readelf.c:6900
 msgid "version need aux (2)"
 msgstr ""
 
-#: readelf.c:6816 readelf.c:6871
+#: readelf.c:6915 readelf.c:6970
 msgid "*invalid*"
 msgstr ""
 
-#: readelf.c:6846 readelf.c:7553
+#: readelf.c:6945 readelf.c:7653
 msgid "version def"
 msgstr ""
 
-#: readelf.c:6866 readelf.c:7568
+#: readelf.c:6965 readelf.c:7668
 msgid "version def aux"
 msgstr ""
 
-#: readelf.c:6900
+#: readelf.c:6999
 #, c-format
 msgid ""
 "\n"
 "No version information found in this file.\n"
 msgstr ""
 
-#: readelf.c:7034
+#: readelf.c:7133
 #, c-format
 msgid "<other>: %x"
 msgstr ""
 
-#: readelf.c:7093
+#: readelf.c:7192
 msgid "Unable to read in dynamic data\n"
 msgstr ""
 
-#: readelf.c:7184 readelf.c:7234 readelf.c:7258 readelf.c:7288 readelf.c:7312
+#: readelf.c:7283 readelf.c:7333 readelf.c:7357 readelf.c:7387 readelf.c:7411
 msgid "Unable to seek to start of dynamic information\n"
 msgstr ""
 
-#: readelf.c:7190 readelf.c:7240
+#: readelf.c:7289 readelf.c:7339
 msgid "Failed to read in number of buckets\n"
 msgstr ""
 
-#: readelf.c:7196
+#: readelf.c:7295
 msgid "Failed to read in number of chains\n"
 msgstr ""
 
-#: readelf.c:7296
+#: readelf.c:7395
 msgid "Failed to determine last chain length\n"
 msgstr ""
 
-#: readelf.c:7340
+#: readelf.c:7439
 #, c-format
 msgid ""
 "\n"
 "Symbol table for image:\n"
 msgstr ""
 
-#: readelf.c:7342 readelf.c:7360
+#: readelf.c:7441 readelf.c:7459
 #, c-format
 msgid "  Num Buc:    Value  Size   Type   Bind Vis      Ndx Name\n"
 msgstr ""
 
-#: readelf.c:7344 readelf.c:7362
+#: readelf.c:7443 readelf.c:7461
 #, c-format
 msgid "  Num Buc:    Value          Size   Type   Bind Vis      Ndx Name\n"
 msgstr ""
 
-#: readelf.c:7358
+#: readelf.c:7457
 #, c-format
 msgid ""
 "\n"
 "Symbol table of `.gnu.hash' for image:\n"
 msgstr ""
 
-#: readelf.c:7397
+#: readelf.c:7496
 #, c-format
 msgid ""
 "\n"
 "Symbol table '%s' contains %lu entries:\n"
 msgstr ""
 
-#: readelf.c:7401
+#: readelf.c:7500
 #, c-format
 msgid "   Num:    Value  Size Type    Bind   Vis      Ndx Name\n"
 msgstr ""
 
-#: readelf.c:7403
+#: readelf.c:7502
 #, c-format
 msgid "   Num:    Value          Size Type    Bind   Vis      Ndx Name\n"
 msgstr ""
 
-#: readelf.c:7459
+#: readelf.c:7559
 msgid "version data"
 msgstr ""
 
-#: readelf.c:7501
+#: readelf.c:7601
 msgid "version need aux (3)"
 msgstr ""
 
-#: readelf.c:7528
+#: readelf.c:7628
 msgid "bad dynamic symbol\n"
 msgstr ""
 
-#: readelf.c:7592
+#: readelf.c:7692
 #, c-format
 msgid ""
 "\n"
 "Dynamic symbol information is not available for displaying symbols.\n"
 msgstr ""
 
-#: readelf.c:7604
+#: readelf.c:7704
 #, c-format
 msgid ""
 "\n"
 "Histogram for bucket list length (total of %lu buckets):\n"
 msgstr ""
 
-#: readelf.c:7606 readelf.c:7676
+#: readelf.c:7706 readelf.c:7776
 #, c-format
 msgid " Length  Number     %% of total  Coverage\n"
 msgstr ""
 
-#: readelf.c:7674
+#: readelf.c:7774
 #, c-format
 msgid ""
 "\n"
 "Histogram for `.gnu.hash' bucket list length (total of %lu buckets):\n"
 msgstr ""
 
-#: readelf.c:7740
+#: readelf.c:7840
 #, c-format
 msgid ""
 "\n"
 "Dynamic info segment at offset 0x%lx contains %d entries:\n"
 msgstr ""
 
-#: readelf.c:7743
+#: readelf.c:7843
 #, c-format
 msgid " Num: Name                           BoundTo     Flags\n"
 msgstr ""
 
-#: readelf.c:7834
+#: readelf.c:7934
 msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc"
 msgstr ""
 
-#: readelf.c:7982
+#: readelf.c:8082
 #, c-format
 msgid ""
 "Missing knowledge of 32-bit reloc types used in DWARF sections of machine "
 "number %d\n"
 msgstr ""
 
-#: readelf.c:8251
+#: readelf.c:8375
 #, c-format
 msgid "unable to apply unsupported reloc type %d to section %s\n"
 msgstr ""
 
-#: readelf.c:8259
+#: readelf.c:8383
 #, c-format
 msgid "skipping invalid relocation offset 0x%lx in section %s\n"
 msgstr ""
 
-#: readelf.c:8283
+#: readelf.c:8407
 #, c-format
 msgid "skipping unexpected symbol type %s in %ld'th relocation in section %s\n"
 msgstr ""
 
-#: readelf.c:8315
+#: readelf.c:8449
 #, c-format
 msgid ""
 "\n"
 "Assembly dump of section %s\n"
 msgstr ""
 
-#: readelf.c:8336
+#: readelf.c:8470
 #, c-format
 msgid ""
 "\n"
 "Section '%s' has no data to dump.\n"
 msgstr ""
 
-#: readelf.c:8342
+#: readelf.c:8476
 msgid "section contents"
 msgstr ""
 
-#: readelf.c:8362
+#: readelf.c:8496
 #, c-format
 msgid ""
 "\n"
 "String dump of section '%s':\n"
 msgstr ""
 
-#: readelf.c:8380
+#: readelf.c:8514
 #, c-format
 msgid ""
 "  Note: This section has relocations against it, but these have NOT been "
 "applied to this dump.\n"
 msgstr ""
 
-#: readelf.c:8409
+#: readelf.c:8543
 #, c-format
 msgid "  No strings found in this section."
 msgstr ""
 
-#: readelf.c:8431
+#: readelf.c:8565
 #, c-format
 msgid ""
 "\n"
 "Hex dump of section '%s':\n"
 msgstr ""
 
-#: readelf.c:8455
+#: readelf.c:8589
 #, c-format
 msgid ""
 " NOTE: This section has relocations against it, but these have NOT been "
 "applied to this dump.\n"
 msgstr ""
 
-#: readelf.c:8593
+#: readelf.c:8727
 #, c-format
 msgid "%s section data"
 msgstr ""
 
-#: readelf.c:8658
+#: readelf.c:8793
 #, c-format
 msgid ""
 "\n"
@@ -4785,130 +4790,130 @@
 #. which has the NOBITS type - the bits in the file will be random.
 #. This can happen when a file containing a .eh_frame section is
 #. stripped with the --only-keep-debug command line option.
-#: readelf.c:8667
+#: readelf.c:8802
 #, c-format
 msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
 msgstr ""
 
-#: readelf.c:8702
+#: readelf.c:8838
 #, c-format
 msgid "Unrecognized debug section: %s\n"
 msgstr ""
 
-#: readelf.c:8730
+#: readelf.c:8866
 #, c-format
 msgid "Section '%s' was not dumped because it does not exist!\n"
 msgstr ""
 
-#: readelf.c:8771
+#: readelf.c:8907
 #, c-format
 msgid "Section %d was not dumped because it does not exist!\n"
 msgstr ""
 
-#: readelf.c:9285
+#: readelf.c:9421
 msgid "attributes"
 msgstr ""
 
-#: readelf.c:9306
+#: readelf.c:9442
 #, c-format
 msgid "ERROR: Bad section length (%d > %d)\n"
 msgstr ""
 
-#: readelf.c:9337
+#: readelf.c:9473
 #, c-format
 msgid "ERROR: Bad subsection length (%d > %d)\n"
 msgstr ""
 
-#: readelf.c:9396
+#: readelf.c:9532
 #, c-format
 msgid "Unknown format '%c'\n"
 msgstr ""
 
-#: readelf.c:9549 readelf.c:10065
+#: readelf.c:9686 readelf.c:10208
 msgid "liblist"
 msgstr ""
 
-#: readelf.c:9636
+#: readelf.c:9773
 msgid "options"
 msgstr ""
 
-#: readelf.c:9666
+#: readelf.c:9804
 #, c-format
 msgid ""
 "\n"
 "Section '%s' contains %d entries:\n"
 msgstr ""
 
-#: readelf.c:9827
+#: readelf.c:9965
 msgid "conflict list found without a dynamic symbol table\n"
 msgstr ""
 
-#: readelf.c:9843 readelf.c:9857
+#: readelf.c:9982 readelf.c:9997
 msgid "conflict"
 msgstr ""
 
-#: readelf.c:9867
+#: readelf.c:10007
 #, c-format
 msgid ""
 "\n"
 "Section '.conflict' contains %lu entries:\n"
 msgstr ""
 
-#: readelf.c:9869
+#: readelf.c:10009
 msgid "  Num:    Index       Value  Name"
 msgstr ""
 
-#: readelf.c:9901
+#: readelf.c:10042
 msgid "GOT"
 msgstr ""
 
-#: readelf.c:9902
+#: readelf.c:10043
 #, c-format
 msgid ""
 "\n"
 "Primary GOT:\n"
 msgstr ""
 
-#: readelf.c:9903
+#: readelf.c:10044
 #, c-format
 msgid " Canonical gp value: "
 msgstr ""
 
-#: readelf.c:9907 readelf.c:9998
+#: readelf.c:10048 readelf.c:10140
 #, c-format
 msgid " Reserved entries:\n"
 msgstr ""
 
-#: readelf.c:9908
+#: readelf.c:10049
 #, c-format
 msgid "  %*s %10s %*s Purpose\n"
 msgstr ""
 
-#: readelf.c:9924
+#: readelf.c:10065
 #, c-format
 msgid " Local entries:\n"
 msgstr ""
 
-#: readelf.c:9925
+#: readelf.c:10066
 #, c-format
 msgid "  %*s %10s %*s\n"
 msgstr ""
 
-#: readelf.c:9940
+#: readelf.c:10081
 #, c-format
 msgid " Global entries:\n"
 msgstr ""
 
-#: readelf.c:9941
+#: readelf.c:10082
 #, c-format
 msgid "  %*s %10s %*s %*s %-7s %3s %s\n"
 msgstr ""
 
-#: readelf.c:9996
+#: readelf.c:10138
 msgid "PLT GOT"
 msgstr ""
 
-#: readelf.c:9997
+#: readelf.c:10139
 #, c-format
 msgid ""
 "\n"
@@ -4916,340 +4921,340 @@
 "\n"
 msgstr ""
 
-#: readelf.c:9999
+#: readelf.c:10141
 #, c-format
 msgid "  %*s %*s Purpose\n"
 msgstr ""
 
-#: readelf.c:10007
+#: readelf.c:10149
 #, c-format
 msgid " Entries:\n"
 msgstr ""
 
-#: readelf.c:10008
+#: readelf.c:10150
 #, c-format
 msgid "  %*s %*s %*s %-7s %3s %s\n"
 msgstr ""
 
-#: readelf.c:10072
+#: readelf.c:10216
 msgid "liblist string table"
 msgstr ""
 
-#: readelf.c:10082
+#: readelf.c:10226
 #, c-format
 msgid ""
 "\n"
 "Library list section '%s' contains %lu entries:\n"
 msgstr ""
 
-#: readelf.c:10135
+#: readelf.c:10279
 msgid "NT_AUXV (auxiliary vector)"
 msgstr ""
 
-#: readelf.c:10137
+#: readelf.c:10281
 msgid "NT_PRSTATUS (prstatus structure)"
 msgstr ""
 
-#: readelf.c:10139
+#: readelf.c:10283
 msgid "NT_FPREGSET (floating point registers)"
 msgstr ""
 
-#: readelf.c:10141
+#: readelf.c:10285
 msgid "NT_PRPSINFO (prpsinfo structure)"
 msgstr ""
 
-#: readelf.c:10143
+#: readelf.c:10287
 msgid "NT_TASKSTRUCT (task structure)"
 msgstr ""
 
-#: readelf.c:10145
+#: readelf.c:10289
 msgid "NT_PRXFPREG (user_xfpregs structure)"
 msgstr ""
 
-#: readelf.c:10147
+#: readelf.c:10291
 msgid "NT_PPC_VMX (ppc Altivec registers)"
 msgstr ""
 
-#: readelf.c:10149
+#: readelf.c:10293
 msgid "NT_PPC_VSX (ppc VSX registers)"
 msgstr ""
 
-#: readelf.c:10151
+#: readelf.c:10295
 msgid "NT_PSTATUS (pstatus structure)"
 msgstr ""
 
-#: readelf.c:10153
+#: readelf.c:10297
 msgid "NT_FPREGS (floating point registers)"
 msgstr ""
 
-#: readelf.c:10155
+#: readelf.c:10299
 msgid "NT_PSINFO (psinfo structure)"
 msgstr ""
 
-#: readelf.c:10157
+#: readelf.c:10301
 msgid "NT_LWPSTATUS (lwpstatus_t structure)"
 msgstr ""
 
-#: readelf.c:10159
+#: readelf.c:10303
 msgid "NT_LWPSINFO (lwpsinfo_t structure)"
 msgstr ""
 
-#: readelf.c:10161
+#: readelf.c:10305
 msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
 msgstr ""
 
-#: readelf.c:10169
+#: readelf.c:10313
 msgid "NT_VERSION (version)"
 msgstr ""
 
-#: readelf.c:10171
+#: readelf.c:10315
 msgid "NT_ARCH (architecture)"
 msgstr ""
 
-#: readelf.c:10176 readelf.c:10199 readelf.c:10221
+#: readelf.c:10320 readelf.c:10343 readelf.c:10365
 #, c-format
 msgid "Unknown note type: (0x%08x)"
 msgstr ""
 
-#: readelf.c:10188
+#: readelf.c:10332
 msgid "NT_GNU_ABI_TAG (ABI version tag)"
 msgstr ""
 
-#: readelf.c:10190
+#: readelf.c:10334
 msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
 msgstr ""
 
-#: readelf.c:10192
+#: readelf.c:10336
 msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
 msgstr ""
 
-#: readelf.c:10194
+#: readelf.c:10338
 msgid "NT_GNU_GOLD_VERSION (gold version)"
 msgstr ""
 
 #. NetBSD core "procinfo" structure.
-#: readelf.c:10211
+#: readelf.c:10355
 msgid "NetBSD procinfo structure"
 msgstr ""
 
-#: readelf.c:10238 readelf.c:10252
+#: readelf.c:10382 readelf.c:10396
 msgid "PT_GETREGS (reg structure)"
 msgstr ""
 
-#: readelf.c:10240 readelf.c:10254
+#: readelf.c:10384 readelf.c:10398
 msgid "PT_GETFPREGS (fpreg structure)"
 msgstr ""
 
-#: readelf.c:10260
+#: readelf.c:10404
 #, c-format
 msgid "PT_FIRSTMACH+%d"
 msgstr ""
 
-#: readelf.c:10316
+#: readelf.c:10461
 msgid "notes"
 msgstr ""
 
-#: readelf.c:10322
+#: readelf.c:10467
 #, c-format
 msgid ""
 "\n"
 "Notes at offset 0x%08lx with length 0x%08lx:\n"
 msgstr ""
 
-#: readelf.c:10324
+#: readelf.c:10469
 #, c-format
 msgid "  Owner\t\tData size\tDescription\n"
 msgstr ""
 
-#: readelf.c:10343
+#: readelf.c:10488
 #, c-format
 msgid "corrupt note found at offset %lx into core notes\n"
 msgstr ""
 
-#: readelf.c:10345
+#: readelf.c:10490
 #, c-format
 msgid " type: %lx, namesize: %08lx, descsize: %08lx\n"
 msgstr ""
 
-#: readelf.c:10443
+#: readelf.c:10588
 #, c-format
 msgid "No note segments present in the core file.\n"
 msgstr ""
 
-#: readelf.c:10527
+#: readelf.c:10672
 msgid ""
 "This instance of readelf has been built without support for a\n"
 "64 bit data type and so it cannot read 64 bit ELF files.\n"
 msgstr ""
 
-#: readelf.c:10574
+#: readelf.c:10719
 #, c-format
 msgid "%s: Failed to read file header\n"
 msgstr ""
 
-#: readelf.c:10587
+#: readelf.c:10732
 #, c-format
 msgid ""
 "\n"
 "File: %s\n"
 msgstr ""
 
-#: readelf.c:10802
+#: readelf.c:10947
 #, c-format
 msgid "%s: failed to seek to first archive header\n"
 msgstr ""
 
-#: readelf.c:10811 readelf.c:11076 readelf.c:11246
+#: readelf.c:10956 readelf.c:11223 readelf.c:11393
 #, c-format
 msgid "%s: failed to read archive header\n"
 msgstr ""
 
-#: readelf.c:10836
+#: readelf.c:10981
 #, c-format
 msgid "%s: the archive index is empty\n"
 msgstr ""
 
-#: readelf.c:10844 readelf.c:10867
+#: readelf.c:10989 readelf.c:11013
 #, c-format
 msgid "%s: failed to read archive index\n"
 msgstr ""
 
-#: readelf.c:10853
+#: readelf.c:10998
 #, c-format
 msgid ""
 "%s: the archive index is supposed to have %ld entries, but the size in the "
 "header is too small\n"
 msgstr ""
 
-#: readelf.c:10860
+#: readelf.c:11006
 msgid "Out of memory whilst trying to read archive symbol index\n"
 msgstr ""
 
-#: readelf.c:10877
+#: readelf.c:11024
 msgid "Out of memory whilst trying to convert the archive symbol index\n"
 msgstr ""
 
-#: readelf.c:10889
+#: readelf.c:11036
 #, c-format
 msgid "%s: the archive has an index but no symbols\n"
 msgstr ""
 
-#: readelf.c:10896
+#: readelf.c:11043
 msgid "Out of memory whilst trying to read archive index symbol table\n"
 msgstr ""
 
-#: readelf.c:10902
+#: readelf.c:11049
 #, c-format
 msgid "%s: failed to read archive index symbol table\n"
 msgstr ""
 
-#: readelf.c:10910
+#: readelf.c:11057
 #, c-format
 msgid "%s: failed to skip archive symbol table\n"
 msgstr ""
 
-#: readelf.c:10921
+#: readelf.c:11068
 #, c-format
 msgid "%s: failed to read archive header following archive index\n"
 msgstr ""
 
-#: readelf.c:10926
+#: readelf.c:11073
 #, c-format
 msgid "%s has no archive index\n"
 msgstr ""
 
-#: readelf.c:10937
+#: readelf.c:11084
 msgid "Out of memory reading long symbol names in archive\n"
 msgstr ""
 
-#: readelf.c:10945
+#: readelf.c:11092
 #, c-format
 msgid "%s: failed to read long symbol name string table\n"
 msgstr ""
 
-#: readelf.c:11070
+#: readelf.c:11217
 #, c-format
 msgid "%s: failed to seek to next file name\n"
 msgstr ""
 
-#: readelf.c:11081 readelf.c:11252
+#: readelf.c:11228 readelf.c:11399
 #, c-format
 msgid "%s: did not find a valid archive header\n"
 msgstr ""
 
-#: readelf.c:11162
+#: readelf.c:11309
 #, c-format
 msgid "%s: unable to dump the index as none was found\n"
 msgstr ""
 
-#: readelf.c:11168
+#: readelf.c:11315
 #, c-format
 msgid "Index of archive %s: (%ld entries, 0x%lx bytes in the symbol table)\n"
 msgstr ""
 
-#: readelf.c:11186
+#: readelf.c:11333
 #, c-format
 msgid "Binary %s contains:\n"
 msgstr ""
 
-#: readelf.c:11194
+#: readelf.c:11341
 #, c-format
 msgid "%s: end of the symbol table reached before the end of the index\n"
 msgstr ""
 
-#: readelf.c:11205
+#: readelf.c:11352
 #, c-format
 msgid ""
 "%s: symbols remain in the index symbol table, but without corresponding "
 "entries in the index table\n"
 msgstr ""
 
-#: readelf.c:11210
+#: readelf.c:11357
 #, c-format
 msgid "%s: failed to seek back to start of object files in the archive\n"
 msgstr ""
 
-#: readelf.c:11238
+#: readelf.c:11385
 #, c-format
 msgid "%s: failed to seek to next archive header\n"
 msgstr ""
 
-#: readelf.c:11266 readelf.c:11275
+#: readelf.c:11413 readelf.c:11422
 #, c-format
 msgid "%s: bad archive file name\n"
 msgstr ""
 
-#: readelf.c:11294 readelf.c:11370
+#: readelf.c:11441 readelf.c:11517
 #, c-format
 msgid "Input file '%s' is not readable.\n"
 msgstr ""
 
-#: readelf.c:11316
+#: readelf.c:11463
 #, c-format
 msgid "%s: failed to seek to archive member.\n"
 msgstr ""
 
-#: readelf.c:11354
+#: readelf.c:11501
 #, c-format
 msgid "'%s': No such file\n"
 msgstr ""
 
-#: readelf.c:11356
+#: readelf.c:11503
 #, c-format
 msgid "Could not locate '%s'.  System error message: %s\n"
 msgstr ""
 
-#: readelf.c:11363
+#: readelf.c:11510
 #, c-format
 msgid "'%s' is not an ordinary file\n"
 msgstr ""
 
-#: readelf.c:11376
+#: readelf.c:11523
 #, c-format
 msgid "%s: Failed to read file's magic number\n"
 msgstr ""
 
-#: readelf.c:11388
+#: readelf.c:11535
 #, c-format
 msgid "File %s is not an archive so its index cannot be displayed.\n"
 msgstr ""
diff --git a/binutils/binutils/prdbg.c b/binutils/binutils/prdbg.c
index d6988dc..a11f043 100644
--- a/binutils/binutils/prdbg.c
+++ b/binutils/binutils/prdbg.c
@@ -2088,8 +2088,7 @@
 static bfd_boolean
 tg_end_struct_type (void *p ATTRIBUTE_UNUSED)
 {
-  struct pr_handle *info = (struct pr_handle *) p;
-  assert (info->stack != NULL);
+  assert (((struct pr_handle *) p)->stack != NULL);
 
   return TRUE;
 }
diff --git a/binutils/binutils/readelf.c b/binutils/binutils/readelf.c
index 2bfb3f6..e329d45 100644
--- a/binutils/binutils/readelf.c
+++ b/binutils/binutils/readelf.c
@@ -165,7 +165,7 @@
 static unsigned long dynamic_syminfo_offset;
 static unsigned int dynamic_syminfo_nent;
 static char program_interpreter[PATH_MAX];
-static bfd_vma dynamic_info[DT_JMPREL + 1];
+static bfd_vma dynamic_info[DT_ENCODING];
 static bfd_vma dynamic_info_DT_GNU_HASH;
 static bfd_vma version_info[16];
 static Elf_Internal_Ehdr elf_header;
diff --git a/binutils/gas/ChangeLog b/binutils/gas/ChangeLog
index eb6cd26..8e80aaf 100644
--- a/binutils/gas/ChangeLog
+++ b/binutils/gas/ChangeLog
@@ -1,3 +1,95 @@
+2010-03-01  Tristan Gingold  <gingold@adacore.com>
+
+	* config/tc-score7.c (s7_frag_check): Add ATTRIBUTE_UNUSED.
+
+2010-02-08  Christophe Lyon  <christophe.lyon@st.com>
+
+	* config/tc-arm.c (md_pcrel_from_section): Keep base to zero for
+	non-local branches (BFD_RELOC_THUMB_PCREL_BRANCH23,
+	BFD_RELOC_THUMB_PCREL_BLX, BFD_RELOC_ARM_PCREL_BLX,
+	BFD_RELOC_ARM_PCREL_CALL)
+
+2010-02-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* config/tc-ppc.c (md_show_usage): Add -mpwr4, -mpwr5, -mpwr5x,
+	-mpwr6 and -mpwr7.
+
+2010-01-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* write.h (fix_at_start): Declare.
+	* write.c (fix_new_internal): Add at_beginning parameter.
+	Use it instead of REVERSE_SORT_RELOCS.  Fix the handling of
+	seg_fix_tailP for the at_beginning/REVERSE_SORT_RELOCS case.
+	(fix_new, fix_new_exp): Update accordingly.
+	(fix_at_start): New function.
+	* config/tc-ppc.c (md_pseudo_table): Add .ref to the OBJ_XCOFF section.
+	(ppc_ref): New function, for OBJ_XCOFF.
+	(md_apply_fix): Handle BFD_RELOC_NONE for OBJ_XCOFF.
+	* config/te-i386aix.h (REVERSE_SORT_RELOCS): Remove #undef.
+
+2010-01-27  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	Backport from trunk:
+	* NEWS: Mention new feature.
+	* config/obj-coff.c (obj_coff_section): Accept digits and use
+	to override default section alignment power if specified.
+	* doc/as.texinfo (.section directive): Update documentation.
+
+2010-01-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	* config/te-solaris.h (DWARF2_EH_FRAME_READ_ONLY): Make read-only
+	on 64-bit Solaris/x86.
+	Include obj-format.h earlier.
+
+2010-01-12  Alan Modra  <amodra@gmail.com>
+
+	PR 11122
+	* listing.c (print_source): Add one to line number.
+
+2009-12-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+
+        Backport from trunk:
+	2009-12-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
+	            Richard Earnshaw  <richard.earnshaw@arm.com>
+
+        * config/tc-arm.c (encode_thumb2_b_bl_offset): New. Refactored
+        from md_apply_fix.
+        (md_apply_fix): Fixup range checks for Thumb2 version
+        of unconditional calls. Call encode_thumb2_b_bl_offset for
+        unconditional branches / function calls.
+
+2009-12-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from trunk:
+	2009-12-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR gas/11037
+	* expr.c (resolve_expression): Call symbol_same_p to check
+	if 2 symbols are the same.
+
+	* symbols.c (symbol_same_p): New.
+	* symbols.h (symbol_same_p): Likewise.
+
+2009-12-03  Nick Clifton  <nickc@redhat.com>
+
+	PR gas/11011
+	Import this patch from the mainline:
+	2009-10-18  Alan Modra  <amodra@bigpond.net.au>
+
+	* as.h (know): Don't define as empty.
+
+2009-10-28  Alan Modra  <amodra@bigpond.net.au>
+
+	PR gas/10856
+	* expr.c (resolve_expression): Only add "left" value to O_symbol
+	expression when the symbol is undefined and different from the
+	original symbol.  Simplify negative logic.
+
+2009-10-18  Matthias Klose  <doko@ubuntu.com>
+
+	* config/tc-arm.c (make_mapping_symbol): Add braces to avoid empty body
+	in release builds.
+
 2009-10-13  Alan Modra  <amodra@bigpond.net.au>
 	    H.J. Lu  <hongjiu.lu@intel.com>
 
diff --git a/binutils/gas/Makefile.in b/binutils/gas/Makefile.in
index e313686..0b11739 100644
--- a/binutils/gas/Makefile.in
+++ b/binutils/gas/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -2172,7 +2172,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -2197,7 +2197,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
diff --git a/binutils/gas/NEWS b/binutils/gas/NEWS
index 3fa3809..27929c0 100644
--- a/binutils/gas/NEWS
+++ b/binutils/gas/NEWS
@@ -1,5 +1,10 @@
 -*- text -*-
 
+Changes in 2.20.1:
+
+* GAS now understands an extended syntax in the .section directive flags
+  for COFF targets that allows the section's alignment to be specified.
+
 Changes in 2.20:
 
 * GNU/Linux targets now supports "gnu_unique_object" as a value in the .type
diff --git a/binutils/gas/aclocal.m4 b/binutils/gas/aclocal.m4
index 874683e..c02bd11 100644
--- a/binutils/gas/aclocal.m4
+++ b/binutils/gas/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/gas/as.h b/binutils/gas/as.h
index 7366121..1d1d97e 100644
--- a/binutils/gas/as.h
+++ b/binutils/gas/as.h
@@ -238,7 +238,7 @@
 #define know(p) gas_assert(p)	/* Verify our assumptions!  */
 #endif /* not yet defined */
 #else
-#define know(p)			/* know() checks are no-op.ed  */
+#define know(p)	do {} while (0)	/* know() checks are no-op.ed  */
 #endif
 
 /* input_scrub.c */
diff --git a/binutils/gas/config/obj-coff.c b/binutils/gas/config/obj-coff.c
index 271b01e..8e22279 100644
--- a/binutils/gas/config/obj-coff.c
+++ b/binutils/gas/config/obj-coff.c
@@ -23,6 +23,7 @@
 #define OBJ_HEADER "obj-coff.h"
 
 #include "as.h"
+#include "safe-ctype.h"
 #include "obstack.h"
 #include "subsegs.h"
 
@@ -1543,6 +1544,7 @@
   						 'r' for read-only data
   						 's' for shared data (PE)
 						 'y' for noread
+					   '0' - '9' for power-of-two alignment (GNU extension).
    But if the argument is not a quoted string, treat it as a
    subsegment number.
 
@@ -1555,6 +1557,7 @@
   /* Strip out the section name.  */
   char *section_name;
   char c;
+  int alignment = -1;
   char *name;
   unsigned int exp;
   flagword flags, oldflags;
@@ -1597,6 +1600,11 @@
 		 attr != '"'
 		 && ! is_end_of_line[attr])
 	    {
+	      if (ISDIGIT (attr))
+		{
+		  alignment = attr - '0';
+		  continue;
+		}
 	      switch (attr)
 		{
 		case 'b':
@@ -1673,6 +1681,8 @@
     }
 
   sec = subseg_new (name, (subsegT) exp);
+  if (alignment >= 0)
+    sec->alignment_power = alignment;
 
   oldflags = bfd_get_section_flags (stdoutput, sec);
   if (oldflags == SEC_NO_FLAGS)
diff --git a/binutils/gas/config/tc-arm.c b/binutils/gas/config/tc-arm.c
index 5f67171..69b0f92 100644
--- a/binutils/gas/config/tc-arm.c
+++ b/binutils/gas/config/tc-arm.c
@@ -2486,7 +2486,9 @@
       frag->tc_frag_data.first_map = symbolP;
     }
   if (frag->tc_frag_data.last_map != NULL)
-    know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));
+    {
+      know (S_GET_VALUE (frag->tc_frag_data.last_map) < S_GET_VALUE (symbolP));
+    }
   frag->tc_frag_data.last_map = symbolP;
 }
 
@@ -19039,6 +19041,8 @@
 
     case BFD_RELOC_THUMB_PCREL_BRANCH23:
        if (fixP->fx_addsy
+	  && (S_GET_SEGMENT (fixP->fx_addsy) == seg)
+	  && (!S_IS_EXTERNAL (fixP->fx_addsy))
 	  && ARM_IS_FUNC (fixP->fx_addsy)
  	  && ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v5t))
  	base = fixP->fx_where + fixP->fx_frag->fr_address;
@@ -19048,6 +19052,8 @@
 	 zero.  */
      case BFD_RELOC_THUMB_PCREL_BLX:
        if (fixP->fx_addsy
+	  && (S_GET_SEGMENT (fixP->fx_addsy) == seg)
+	  && (!S_IS_EXTERNAL (fixP->fx_addsy))
  	  && THUMB_IS_FUNC (fixP->fx_addsy)
  	  && ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v5t))
  	base = fixP->fx_where + fixP->fx_frag->fr_address;
@@ -19057,6 +19063,8 @@
 	 loader expects the relocation not to take this into account.  */
     case BFD_RELOC_ARM_PCREL_BLX:
        if (fixP->fx_addsy
+	  && (S_GET_SEGMENT (fixP->fx_addsy) == seg)
+	  && (!S_IS_EXTERNAL (fixP->fx_addsy))
  	  && ARM_IS_FUNC (fixP->fx_addsy)
  	  && ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v5t))
  	base = fixP->fx_where + fixP->fx_frag->fr_address;
@@ -19064,6 +19072,8 @@
 
       case BFD_RELOC_ARM_PCREL_CALL:
        if (fixP->fx_addsy
+	  && (S_GET_SEGMENT (fixP->fx_addsy) == seg)
+	  && (!S_IS_EXTERNAL (fixP->fx_addsy))
  	  && THUMB_IS_FUNC (fixP->fx_addsy)
  	  && ARM_CPU_HAS_FEATURE (selected_cpu, arm_ext_v5t))
  	base = fixP->fx_where + fixP->fx_frag->fr_address;
@@ -19381,6 +19391,31 @@
   return FALSE;
 }
 
+/* Encode Thumb2 unconditional branches and calls. The encoding
+   for the 2 are identical for the immediate values.  */
+
+static void
+encode_thumb2_b_bl_offset (char * buf, offsetT value)
+{
+#define T2I1I2MASK  ((1 << 13) | (1 << 11))
+  offsetT newval;
+  offsetT newval2;
+  addressT S, I1, I2, lo, hi;
+
+  S = (value >> 24) & 0x01;
+  I1 = (value >> 23) & 0x01;
+  I2 = (value >> 22) & 0x01;
+  hi = (value >> 12) & 0x3ff;
+  lo = (value >> 1) & 0x7ff; 
+  newval   = md_chars_to_number (buf, THUMB_SIZE);
+  newval2  = md_chars_to_number (buf + THUMB_SIZE, THUMB_SIZE);
+  newval  |= (S << 10) | hi;
+  newval2 &=  ~T2I1I2MASK;
+  newval2 |= (((I1 ^ S) << 13) | ((I2 ^ S) << 11) | lo) ^ T2I1I2MASK;
+  md_number_to_chars (buf, newval, THUMB_SIZE);
+  md_number_to_chars (buf + THUMB_SIZE, newval2, THUMB_SIZE);
+}
+
 void
 md_apply_fix (fixS *	fixP,
 	       valueT * valP,
@@ -20073,10 +20108,6 @@
 	 fixP->fx_r_type = BFD_RELOC_THUMB_PCREL_BRANCH23;
 #endif
 
-      if ((value & ~0x3fffff) && ((value & ~0x3fffff) != ~0x3fffff))
-	as_bad_where (fixP->fx_file, fixP->fx_line,
-		      _("branch out of range"));
-
       if (fixP->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX)
 	/* For a BLX instruction, make sure that the relocation is rounded up
 	   to a word boundary.  This follows the semantics of the instruction
@@ -20084,6 +20115,24 @@
 	   1 of the base address.  */
 	value = (value + 1) & ~ 1;
 
+       if ((value & ~0x3fffff) && ((value & ~0x3fffff) != ~0x3fffff))
+	 {
+	   if (!(ARM_CPU_HAS_FEATURE (cpu_variant, arm_arch_t2)))
+	     {
+	       as_bad_where (fixP->fx_file, fixP->fx_line,
+			     _("branch out of range"));
+	     }
+	   else  if ((value & ~0x1ffffff)
+		     && ((value & ~0x1ffffff) != ~0x1ffffff))
+	       {
+		 as_bad_where (fixP->fx_file, fixP->fx_line,
+			     _("Thumb2 branch out of range"));
+	       }
+	 }
+
+       if (fixP->fx_done || !seg->use_rela_p)
+	 encode_thumb2_b_bl_offset (buf, value);
+
       if (fixP->fx_done || !seg->use_rela_p)
 	{
 	  offsetT newval2;
@@ -20104,24 +20153,7 @@
 
       if (fixP->fx_done || !seg->use_rela_p)
 	{
-	  offsetT newval2;
-	  addressT S, I1, I2, lo, hi;
-
-	  S  = (value & 0x01000000) >> 24;
-	  I1 = (value & 0x00800000) >> 23;
-	  I2 = (value & 0x00400000) >> 22;
-	  hi = (value & 0x003ff000) >> 12;
-	  lo = (value & 0x00000ffe) >> 1;
-
-	  I1 = !(I1 ^ S);
-	  I2 = !(I2 ^ S);
-
-	  newval   = md_chars_to_number (buf, THUMB_SIZE);
-	  newval2  = md_chars_to_number (buf + THUMB_SIZE, THUMB_SIZE);
-	  newval  |= (S << 10) | hi;
-	  newval2 |= (I1 << 13) | (I2 << 11) | lo;
-	  md_number_to_chars (buf, newval, THUMB_SIZE);
-	  md_number_to_chars (buf + THUMB_SIZE, newval2, THUMB_SIZE);
+	  encode_thumb2_b_bl_offset (buf, value);
 	}
       break;
 
diff --git a/binutils/gas/config/tc-ppc.c b/binutils/gas/config/tc-ppc.c
index 493bfe5..7713439 100644
--- a/binutils/gas/config/tc-ppc.c
+++ b/binutils/gas/config/tc-ppc.c
@@ -108,6 +108,7 @@
 static void ppc_function (int);
 static void ppc_extern (int);
 static void ppc_lglobl (int);
+static void ppc_ref (int);
 static void ppc_section (int);
 static void ppc_named_section (int);
 static void ppc_stabx (int);
@@ -212,6 +213,7 @@
   { "extern",	ppc_extern,	0 },
   { "function",	ppc_function,	0 },
   { "lglobl",	ppc_lglobl,	0 },
+  { "ref",	ppc_ref,	0 },
   { "rename",	ppc_rename,	0 },
   { "section",	ppc_named_section, 0 },
   { "stabx",	ppc_stabx,	0 },
@@ -1197,10 +1199,11 @@
 -mppc64bridge		generate code for PowerPC 64, including bridge insns\n\
 -mbooke			generate code for 32-bit PowerPC BookE\n\
 -ma2			generate code for A2 architecture\n\
--mpower4		generate code for Power4 architecture\n\
--mpower5		generate code for Power5 architecture\n\
--mpower6		generate code for Power6 architecture\n\
--mpower7		generate code for Power7 architecture\n\
+-mpower4, -mpwr4	generate code for Power4 architecture\n\
+-mpower5, -mpwr5, -mpwr5x\n\
+			generate code for Power5 architecture\n\
+-mpower6, -mpwr6	generate code for Power6 architecture\n\
+-mpower7, -mpwr7	generate code for Power7 architecture\n\
 -mcell			generate code for Cell Broadband Engine architecture\n\
 -mcom			generate code Power/PowerPC common instructions\n\
 -many			generate code for any architecture (PWR/PWRX/PPC)\n"));
@@ -3552,6 +3555,58 @@
   demand_empty_rest_of_line ();
 }
 
+/* The .ref pseudo-op.  It takes a list of symbol names and inserts R_REF
+   relocations at the beginning of the current csect.
+
+   (In principle, there's no reason why the relocations _have_ to be at
+   the beginning.  Anywhere in the csect would do.  However, inserting
+   at the beginning is what the native assmebler does, and it helps to
+   deal with cases where the .ref statements follow the section contents.)
+
+   ??? .refs don't work for empty .csects.  However, the native assembler
+   doesn't report an error in this case, and neither yet do we.  */
+
+static void
+ppc_ref (int ignore ATTRIBUTE_UNUSED)
+{
+  char *name;
+  char c;
+
+  if (ppc_current_csect == NULL)
+    {
+      as_bad (_(".ref outside .csect"));
+      ignore_rest_of_line ();
+      return;
+    }
+
+  do
+    {
+      name = input_line_pointer;
+      c = get_symbol_end ();
+
+      fix_at_start (symbol_get_frag (ppc_current_csect), 0,
+		    symbol_find_or_make (name), 0, FALSE, BFD_RELOC_NONE);
+
+      *input_line_pointer = c;
+      SKIP_WHITESPACE ();
+      c = *input_line_pointer;
+      if (c == ',')
+	{
+	  input_line_pointer++;
+	  SKIP_WHITESPACE ();
+	  if (is_end_of_line[(unsigned char) *input_line_pointer])
+	    {
+	      as_bad (_("missing symbol name"));
+	      ignore_rest_of_line ();
+	      return;
+	    }
+	}
+    }
+  while (c == ',');
+
+  demand_empty_rest_of_line ();
+}
+
 /* The .rename pseudo-op.  The RS/6000 assembler can rename symbols,
    although I don't know why it bothers.  */
 
@@ -6025,6 +6080,11 @@
 			      PPC_HA (value), 2);
 	  break;
 
+#ifdef OBJ_XCOFF
+	case BFD_RELOC_NONE:
+	  break;
+#endif
+
 #ifdef OBJ_ELF
 	case BFD_RELOC_PPC64_HIGHER:
 	  if (fixP->fx_pcrel)
diff --git a/binutils/gas/config/tc-score7.c b/binutils/gas/config/tc-score7.c
index c931102..ebab249 100644
--- a/binutils/gas/config/tc-score7.c
+++ b/binutils/gas/config/tc-score7.c
@@ -6281,7 +6281,7 @@
    Called after md_convert_frag().  */
 
 static void
-s7_frag_check (fragS * fragp)
+s7_frag_check (fragS * fragp ATTRIBUTE_UNUSED)
 {
   know (fragp->insn_addr <= s7_RELAX_PAD_BYTE);
 }
diff --git a/binutils/gas/config/te-i386aix.h b/binutils/gas/config/te-i386aix.h
index 04ce464..2b174a9 100644
--- a/binutils/gas/config/te-i386aix.h
+++ b/binutils/gas/config/te-i386aix.h
@@ -24,10 +24,6 @@
 
 #include "obj-format.h"
 
-/* Undefine REVERSE_SORT_RELOCS to keep the relocation entries sorted
-   in ascending vaddr.  */
-#undef REVERSE_SORT_RELOCS
-
 /* Define KEEP_RELOC_INFO so that the strip reloc info flag F_RELFLG is
    not used in the filehdr for COFF output.  */
 #define KEEP_RELOC_INFO
diff --git a/binutils/gas/config/te-solaris.h b/binutils/gas/config/te-solaris.h
index a3c2cea..9c628c2 100644
--- a/binutils/gas/config/te-solaris.h
+++ b/binutils/gas/config/te-solaris.h
@@ -1,4 +1,4 @@
-/* Copyright 2008 Free Software Foundation, Inc.
+/* Copyright 2008, 2010 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -22,9 +22,19 @@
 #define LOCAL_LABELS_DOLLAR 1
 #define LOCAL_LABELS_FB 1
 
-/* The Sun linker doesn't merge read-only and read-write sections into
-   a single read-write section so we must force all EH frame sections
-   to be read-write.  */
-#define DWARF2_EH_FRAME_READ_ONLY 0
-
 #include "obj-format.h"
+
+/* The Sun linker doesn't merge read-only and read-write sections into
+   a single section so we must force all EH frame sections to use the
+   same flags.  For SPARC and 32-bit i386 this is read-write, whilst
+   for x86_64 this is read-only, matching GCC behavior.
+
+   See the definition of EH_TABLES_CAN_BE_READ_ONLY in
+   gcc/config/i386/sol2.h in the GCC sources and the thread starting at
+   http://sourceware.org/ml/binutils/2010-01/msg00401.html.  */
+#ifdef TC_SPARC
+#define DWARF2_EH_FRAME_READ_ONLY SEC_NO_FLAGS
+#else
+#define DWARF2_EH_FRAME_READ_ONLY \
+  (bfd_get_arch_size (stdoutput) == 64 ? SEC_READONLY : SEC_NO_FLAGS)
+#endif
diff --git a/binutils/gas/doc/Makefile.in b/binutils/gas/doc/Makefile.in
index 74e3c91..22dadb5 100644
--- a/binutils/gas/doc/Makefile.in
+++ b/binutils/gas/doc/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/binutils/gas/doc/as.1 b/binutils/gas/doc/as.1
index fa94049..47a1666 100644
--- a/binutils/gas/doc/as.1
+++ b/binutils/gas/doc/as.1
@@ -132,7 +132,7 @@
 .\" ========================================================================
 .\"
 .IX Title "AS 1"
-.TH AS 1 "2009-10-16" "binutils-2.20" "GNU Development Tools"
+.TH AS 1 "2010-03-01" "binutils-2.20.1" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff --git a/binutils/gas/doc/as.info b/binutils/gas/doc/as.info
index a8d3810..4f4af95 100644
--- a/binutils/gas/doc/as.info
+++ b/binutils/gas/doc/as.info
Binary files differ
diff --git a/binutils/gas/doc/as.texinfo b/binutils/gas/doc/as.texinfo
index 43fee5f..dde2fdb 100644
--- a/binutils/gas/doc/as.texinfo
+++ b/binutils/gas/doc/as.texinfo
@@ -5752,6 +5752,8 @@
 ignored.  (For compatibility with the ELF version)
 @item y
 section is not readable (meaningful for PE targets)
+@item 0-9
+single-digit power-of-two section alignment (GNU extension)
 @end table
 
 If no flags are specified, the default flags depend upon the section name.  If
diff --git a/binutils/gas/expr.c b/binutils/gas/expr.c
index b9ce574..fbfdffc 100644
--- a/binutils/gas/expr.c
+++ b/binutils/gas/expr.c
@@ -1997,6 +1997,7 @@
   /* Help out with CSE.  */
   valueT final_val = expressionP->X_add_number;
   symbolS *add_symbol = expressionP->X_add_symbol;
+  symbolS *orig_add_symbol = add_symbol;
   symbolS *op_symbol = expressionP->X_op_symbol;
   operatorT op = expressionP->X_op;
   valueT left, right;
@@ -2078,6 +2079,7 @@
 	      left = right;
 	      seg_left = seg_right;
 	      add_symbol = op_symbol;
+	      orig_add_symbol = expressionP->X_op_symbol;
 	      op = O_symbol;
 	      break;
 	    }
@@ -2122,18 +2124,19 @@
 	    {
 	      if (op == O_bit_exclusive_or || op == O_bit_inclusive_or)
 		{
-		  if (seg_right != absolute_section || right != 0)
+		  if (!(seg_right == absolute_section && right == 0))
 		    {
 		      seg_left = seg_right;
 		      left = right;
 		      add_symbol = op_symbol;
+		      orig_add_symbol = expressionP->X_op_symbol;
 		    }
 		  op = O_symbol;
 		  break;
 		}
 	      else if (op == O_left_shift || op == O_right_shift)
 		{
-		  if (seg_left != absolute_section || left != 0)
+		  if (!(seg_left == absolute_section && left == 0))
 		    {
 		      op = O_symbol;
 		      break;
@@ -2149,6 +2152,7 @@
 	      seg_left = seg_right;
 	      left = right;
 	      add_symbol = op_symbol;
+	      orig_add_symbol = expressionP->X_op_symbol;
 	      op = O_symbol;
 	      break;
 	    }
@@ -2158,11 +2162,11 @@
 	      op = O_symbol;
 	      break;
 	    }
-	  else if (left != right
-		   || ((seg_left != reg_section || seg_right != reg_section)
-		       && (seg_left != undefined_section
-			   || seg_right != undefined_section
-			   || add_symbol != op_symbol)))
+	  else if (!(left == right
+		     && ((seg_left == reg_section && seg_right == reg_section)
+			 || (seg_left == undefined_section
+			     && seg_right == undefined_section
+			     && add_symbol == op_symbol))))
 	    return 0;
 	  else if (op == O_bit_and || op == O_bit_inclusive_or)
 	    {
@@ -2233,7 +2237,7 @@
 	op = O_constant;
       else if (seg_left == reg_section && final_val == 0)
 	op = O_register;
-      else if (add_symbol != expressionP->X_add_symbol)
+      else if (!symbol_same_p (add_symbol, orig_add_symbol))
 	final_val += left;
       expressionP->X_add_symbol = add_symbol;
     }
diff --git a/binutils/gas/listing.c b/binutils/gas/listing.c
index c8b6d63..43dbae0 100644
--- a/binutils/gas/listing.c
+++ b/binutils/gas/listing.c
@@ -1,6 +1,6 @@
 /* listing.c - maintain assembly listings
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009
+   2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -1047,7 +1047,7 @@
 	  char *p;
 
 	  cache->file = current_file;
-	  cache->line = current_file->linenum;
+	  cache->line = current_file->linenum + 1;
 	  cache->buffer[0] = 0;
 	  p = buffer_line (current_file, cache->buffer, width);
 
diff --git a/binutils/gas/po/gas.pot b/binutils/gas/po/gas.pot
index a091ff3..01125e1 100644
--- a/binutils/gas/po/gas.pot
+++ b/binutils/gas/po/gas.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:09+0200\n"
+"POT-Creation-Date: 2010-03-03 14:58+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -328,23 +328,23 @@
 msgid "Report bugs to %s\n"
 msgstr ""
 
-#: as.c:564
+#: as.c:565
 #, c-format
 msgid "unrecognized option -%c%s"
 msgstr ""
 
 #. This output is intended to follow the GNU standards document.
-#: as.c:602
+#: as.c:603
 #, c-format
 msgid "GNU assembler %s\n"
 msgstr ""
 
-#: as.c:603
+#: as.c:604
 #, c-format
 msgid "Copyright 2009 Free Software Foundation, Inc.\n"
 msgstr ""
 
-#: as.c:604
+#: as.c:605
 #, c-format
 msgid ""
 "This program is free software; you may redistribute it under the terms of\n"
@@ -352,77 +352,77 @@
 "This program has absolutely no warranty.\n"
 msgstr ""
 
-#: as.c:608
+#: as.c:609
 #, c-format
 msgid "This assembler was configured for a target of `%s'.\n"
 msgstr ""
 
-#: as.c:615
+#: as.c:616
 msgid "multiple emulation names specified"
 msgstr ""
 
-#: as.c:617
+#: as.c:618
 msgid "emulations not handled in this configuration"
 msgstr ""
 
-#: as.c:622
-#, c-format
-msgid "alias = %s\n"
-msgstr ""
-
 #: as.c:623
 #, c-format
-msgid "canonical = %s\n"
+msgid "alias = %s\n"
 msgstr ""
 
 #: as.c:624
 #, c-format
+msgid "canonical = %s\n"
+msgstr ""
+
+#: as.c:625
+#, c-format
 msgid "cpu-type = %s\n"
 msgstr ""
 
-#: as.c:626
+#: as.c:627
 #, c-format
 msgid "format = %s\n"
 msgstr ""
 
-#: as.c:629
+#: as.c:630
 #, c-format
 msgid "bfd-target = %s\n"
 msgstr ""
 
-#: as.c:646
+#: as.c:647
 msgid "bad defsym; format is --defsym name=value"
 msgstr ""
 
-#: as.c:666
+#: as.c:667
 msgid "no file name following -t option"
 msgstr ""
 
-#: as.c:681
+#: as.c:682
 #, c-format
 msgid "failed to read instruction table %s\n"
 msgstr ""
 
-#: as.c:852
+#: as.c:853
 #, c-format
 msgid "invalid listing option `%c'"
 msgstr ""
 
-#: as.c:905
+#: as.c:906
 msgid "--hash-size needs a numeric argument"
 msgstr ""
 
-#: as.c:930
+#: as.c:931
 #, c-format
 msgid "%s: total time in assembly: %ld.%06ld\n"
 msgstr ""
 
-#: as.c:933
+#: as.c:934
 #, c-format
 msgid "%s: data size %ld\n"
 msgstr ""
 
-#: as.c:1241
+#: as.c:1242
 #, c-format
 msgid "%d warnings, treating warnings as errors"
 msgstr ""
@@ -441,26 +441,26 @@
 msgstr ""
 
 #: cgen.c:113 config/tc-alpha.c:2083 config/tc-alpha.c:2107
-#: config/tc-arc.c:1681 config/tc-d10v.c:550 config/tc-d30v.c:538
-#: config/tc-mn10200.c:1100 config/tc-mn10300.c:1749 config/tc-ppc.c:2562
-#: config/tc-ppc.c:2713 config/tc-ppc.c:2834 config/tc-ppc.c:2845
+#: config/tc-arc.c:1681 config/tc-d10v.c:552 config/tc-d30v.c:539
+#: config/tc-mn10200.c:1100 config/tc-mn10300.c:1749 config/tc-ppc.c:2567
+#: config/tc-ppc.c:2718 config/tc-ppc.c:2839 config/tc-ppc.c:2850
 #: config/tc-s390.c:1218 config/tc-s390.c:1318 config/tc-s390.c:1447
 #: config/tc-v850.c:1730 config/tc-v850.c:1753 config/tc-v850.c:1956
 msgid "too many fixups"
 msgstr ""
 
-#: cgen.c:400 cgen.c:420 config/tc-arc.c:1662 config/tc-d10v.c:461
-#: config/tc-d30v.c:453 config/tc-i370.c:2129 config/tc-mn10200.c:1042
-#: config/tc-mn10300.c:1674 config/tc-ppc.c:2601 config/tc-s390.c:1189
+#: cgen.c:400 cgen.c:420 config/tc-arc.c:1662 config/tc-d10v.c:463
+#: config/tc-d30v.c:454 config/tc-i370.c:2129 config/tc-mn10200.c:1042
+#: config/tc-mn10300.c:1674 config/tc-ppc.c:2606 config/tc-s390.c:1189
 #: config/tc-v850.c:1932 config/tc-z80.c:422
 msgid "illegal operand"
 msgstr ""
 
-#: cgen.c:424 config/tc-arc.c:1664 config/tc-avr.c:569 config/tc-d10v.c:463
-#: config/tc-d30v.c:455 config/tc-h8300.c:450 config/tc-i370.c:2131
+#: cgen.c:424 config/tc-arc.c:1664 config/tc-avr.c:569 config/tc-d10v.c:465
+#: config/tc-d30v.c:456 config/tc-h8300.c:450 config/tc-i370.c:2131
 #: config/tc-mcore.c:662 config/tc-microblaze.c:583 config/tc-mmix.c:488
 #: config/tc-mn10200.c:1045 config/tc-mn10300.c:1677 config/tc-msp430.c:452
-#: config/tc-or32.c:307 config/tc-ppc.c:2603 config/tc-s390.c:1207
+#: config/tc-or32.c:307 config/tc-ppc.c:2608 config/tc-s390.c:1207
 #: config/tc-sh.c:1359 config/tc-sh64.c:2213 config/tc-v850.c:1935
 #: config/tc-z80.c:575 config/tc-z8k.c:350
 msgid "missing operand"
@@ -475,19 +475,19 @@
 msgstr ""
 
 #. We can't actually support subtracting a symbol.
-#: cgen.c:885 config/tc-arc.c:1247 config/tc-arm.c:1612 config/tc-arm.c:8617
-#: config/tc-arm.c:8668 config/tc-arm.c:8914 config/tc-arm.c:9704
-#: config/tc-arm.c:10703 config/tc-arm.c:10743 config/tc-arm.c:11051
-#: config/tc-arm.c:11080 config/tc-avr.c:1087 config/tc-cris.c:4044
-#: config/tc-d10v.c:1502 config/tc-d30v.c:1903 config/tc-mips.c:4394
-#: config/tc-mips.c:5518 config/tc-mips.c:6493 config/tc-mips.c:7069
-#: config/tc-msp430.c:1937 config/tc-ppc.c:5769 config/tc-spu.c:959
+#: cgen.c:885 config/tc-arc.c:1247 config/tc-arm.c:1612 config/tc-arm.c:8619
+#: config/tc-arm.c:8670 config/tc-arm.c:8916 config/tc-arm.c:9706
+#: config/tc-arm.c:10705 config/tc-arm.c:10745 config/tc-arm.c:11053
+#: config/tc-arm.c:11082 config/tc-avr.c:1087 config/tc-cris.c:4044
+#: config/tc-d10v.c:1507 config/tc-d30v.c:1910 config/tc-mips.c:4398
+#: config/tc-mips.c:5522 config/tc-mips.c:6497 config/tc-mips.c:7073
+#: config/tc-msp430.c:1937 config/tc-ppc.c:5826 config/tc-spu.c:959
 #: config/tc-spu.c:983 config/tc-v850.c:2271 config/tc-xstormy16.c:484
 #: config/tc-xtensa.c:5821 config/tc-xtensa.c:11839
 msgid "expression too complex"
 msgstr ""
 
-#: cgen.c:979 config/tc-arc.c:1308 config/tc-ppc.c:5894 config/tc-s390.c:2023
+#: cgen.c:979 config/tc-arc.c:1308 config/tc-ppc.c:5951 config/tc-s390.c:2023
 #: config/tc-v850.c:2311 config/tc-xstormy16.c:538
 msgid "unresolved expression that must be resolved"
 msgstr ""
@@ -578,7 +578,7 @@
 msgstr ""
 
 #: config/atof-ieee.c:784 config/atof-vax.c:450 config/tc-arm.c:1007
-#: config/tc-ia64.c:11332 config/tc-tic30.c:1261 config/tc-tic4x.c:2599
+#: config/tc-ia64.c:11366 config/tc-tic30.c:1261 config/tc-tic4x.c:2599
 msgid "Unrecognized or unsupported floating point constant"
 msgstr ""
 
@@ -592,104 +592,104 @@
 msgid "Attempt to put an undefined symbol into set %s"
 msgstr ""
 
-#: config/obj-aout.c:116 config/obj-coff.c:1406
+#: config/obj-aout.c:116 config/obj-coff.c:1407
 #, c-format
 msgid "Symbol `%s' can not be both weak and common"
 msgstr ""
 
-#: config/obj-coff.c:135
+#: config/obj-coff.c:136
 #, c-format
 msgid "Inserting \"%s\" into structure table failed: %s"
 msgstr ""
 
-#: config/obj-coff.c:214 config/obj-coff.c:1694 config/tc-ppc.c:4859
+#: config/obj-coff.c:215 config/obj-coff.c:1704 config/tc-ppc.c:4916
 #: config/tc-tic54x.c:4011 read.c:2796
 #, c-format
 msgid "error setting flags for \"%s\": %s"
 msgstr ""
 
 #. Zero is used as an end marker in the file.
-#: config/obj-coff.c:433
+#: config/obj-coff.c:434
 msgid "Line numbers must be positive integers\n"
 msgstr ""
 
-#: config/obj-coff.c:465
+#: config/obj-coff.c:466
 msgid ".ln pseudo-op inside .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:507 ecoff.c:3240
+#: config/obj-coff.c:508 ecoff.c:3240
 msgid ".loc outside of .text"
 msgstr ""
 
-#: config/obj-coff.c:514
+#: config/obj-coff.c:515
 msgid ".loc pseudo-op inside .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:595
+#: config/obj-coff.c:596
 msgid ".def pseudo-op used inside of .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:634
+#: config/obj-coff.c:635
 msgid ".endef pseudo-op used outside of .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:673
+#: config/obj-coff.c:674
 #, c-format
 msgid "`%s' symbol without preceding function"
 msgstr ""
 
-#: config/obj-coff.c:760
+#: config/obj-coff.c:761
 #, c-format
 msgid "unexpected storage class %d"
 msgstr ""
 
-#: config/obj-coff.c:868
+#: config/obj-coff.c:869
 msgid ".dim pseudo-op used outside of .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:888
+#: config/obj-coff.c:889
 msgid "badly formed .dim directive ignored"
 msgstr ""
 
-#: config/obj-coff.c:937
+#: config/obj-coff.c:938
 msgid ".size pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:952
+#: config/obj-coff.c:953
 msgid ".scl pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:969
+#: config/obj-coff.c:970
 msgid ".tag pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:987
+#: config/obj-coff.c:988
 #, c-format
 msgid "tag not found for .tag %s"
 msgstr ""
 
-#: config/obj-coff.c:1000
+#: config/obj-coff.c:1001
 msgid ".type pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:1019
+#: config/obj-coff.c:1020
 msgid ".val pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:1186
+#: config/obj-coff.c:1187
 msgid "badly formed .weak directive ignored"
 msgstr ""
 
-#: config/obj-coff.c:1364
+#: config/obj-coff.c:1365
 msgid "mismatched .eb"
 msgstr ""
 
-#: config/obj-coff.c:1385
+#: config/obj-coff.c:1386
 #, c-format
 msgid "C_EFCN symbol for %s out of scope"
 msgstr ""
 
-#: config/obj-coff.c:1439
+#: config/obj-coff.c:1440
 #, c-format
 msgid "Warning: internal error: forgetting to set endndx of %s"
 msgstr ""
@@ -697,22 +697,22 @@
 #. STYP_INFO
 #. STYP_LIB
 #. STYP_OVER
-#: config/obj-coff.c:1662
+#: config/obj-coff.c:1670
 #, c-format
 msgid "unsupported section attribute '%c'"
 msgstr ""
 
-#: config/obj-coff.c:1666 config/tc-ppc.c:4841
+#: config/obj-coff.c:1674 config/tc-ppc.c:4898
 #, c-format
 msgid "unknown section attribute '%c'"
 msgstr ""
 
-#: config/obj-coff.c:1706
+#: config/obj-coff.c:1716
 #, c-format
 msgid "Ignoring changed section attributes for %s"
 msgstr ""
 
-#: config/obj-coff.c:1836
+#: config/obj-coff.c:1846
 #, c-format
 msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
 msgstr ""
@@ -840,57 +840,57 @@
 msgid "missing expression in .size directive"
 msgstr ""
 
-#: config/obj-elf.c:1670
+#: config/obj-elf.c:1671
 #, c-format
 msgid "symbol '%s' is already defined"
 msgstr ""
 
-#: config/obj-elf.c:1690 config/obj-elf.c:1702
+#: config/obj-elf.c:1691 config/obj-elf.c:1703
 #, c-format
 msgid "symbol type \"%s\" is supported only by GNU targets"
 msgstr ""
 
-#: config/obj-elf.c:1713
+#: config/obj-elf.c:1714
 #, c-format
 msgid "unrecognized symbol type \"%s\""
 msgstr ""
 
-#: config/obj-elf.c:1889
+#: config/obj-elf.c:1890
 msgid ".size expression too complicated to fix up"
 msgstr ""
 
-#: config/obj-elf.c:1921
+#: config/obj-elf.c:1922
 #, c-format
 msgid ""
 "invalid attempt to declare external version name as default in symbol `%s'"
 msgstr ""
 
-#: config/obj-elf.c:1982 ecoff.c:3598
+#: config/obj-elf.c:1983 ecoff.c:3598
 #, c-format
 msgid "symbol `%s' can not be both weak and common"
 msgstr ""
 
-#: config/obj-elf.c:2089
+#: config/obj-elf.c:2091
 #, c-format
 msgid "assuming all members of group `%s' are COMDAT"
 msgstr ""
 
-#: config/obj-elf.c:2111
+#: config/obj-elf.c:2113
 #, c-format
 msgid "can't create group: %s"
 msgstr ""
 
-#: config/obj-elf.c:2221
+#: config/obj-elf.c:2223
 #, c-format
 msgid "failed to set up debugging information: %s"
 msgstr ""
 
-#: config/obj-elf.c:2241
+#: config/obj-elf.c:2243
 #, c-format
 msgid "can't start writing .mdebug section: %s"
 msgstr ""
 
-#: config/obj-elf.c:2249
+#: config/obj-elf.c:2251
 #, c-format
 msgid "could not write .mdebug section: %s"
 msgstr ""
@@ -1085,7 +1085,7 @@
 msgstr ""
 
 #: config/tc-alpha.c:1980 config/tc-arc.c:292 config/tc-mn10200.c:856
-#: config/tc-mn10300.c:1146 config/tc-ppc.c:1676 config/tc-s390.c:604
+#: config/tc-mn10300.c:1146 config/tc-ppc.c:1681 config/tc-s390.c:604
 #: config/tc-v850.c:1556
 msgid "operand"
 msgstr ""
@@ -1103,7 +1103,7 @@
 msgstr ""
 
 #: config/tc-alpha.c:3503 config/tc-i370.c:1058 config/tc-microblaze.c:187
-#: config/tc-ppc.c:2000 config/tc-ppc.c:4604
+#: config/tc-ppc.c:2005 config/tc-ppc.c:4661
 #, c-format
 msgid ".COMMon length (%ld.) <0! Ignored."
 msgstr ""
@@ -1112,7 +1112,7 @@
 msgid "Ignoring attempt to re-define symbol"
 msgstr ""
 
-#: config/tc-alpha.c:3606 config/tc-ppc.c:4641 config/tc-sparc.c:3828
+#: config/tc-alpha.c:3606 config/tc-ppc.c:4698 config/tc-sparc.c:3828
 #, c-format
 msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
@@ -1153,7 +1153,7 @@
 msgid "bad .mask directive"
 msgstr ""
 
-#: config/tc-alpha.c:3864 config/tc-mips.c:15074 config/tc-score.c:5744
+#: config/tc-alpha.c:3864 config/tc-mips.c:15082 config/tc-score.c:5744
 #: ecoff.c:3168
 msgid ".frame outside of .ent"
 msgstr ""
@@ -1282,7 +1282,7 @@
 msgid "Alignment too large: %d. assumed"
 msgstr ""
 
-#: config/tc-alpha.c:5030 config/tc-d30v.c:2048
+#: config/tc-alpha.c:5030 config/tc-d30v.c:2055
 msgid "Alignment negative: 0 assumed"
 msgstr ""
 
@@ -1310,7 +1310,7 @@
 msgid "internal error: can't hash macro `%s': %s"
 msgstr ""
 
-#: config/tc-alpha.c:5539 config/tc-arm.c:6439 config/tc-arm.c:6451
+#: config/tc-alpha.c:5539 config/tc-arm.c:6441 config/tc-arm.c:6453
 #: config/tc-i960.c:708 config/tc-xtensa.c:5294 config/tc-xtensa.c:5372
 #: config/tc-xtensa.c:5490 config/tc-z80.c:1893
 msgid "syntax error"
@@ -1384,7 +1384,7 @@
 msgid "could not set architecture and machine"
 msgstr ""
 
-#: config/tc-arc.c:212 config/tc-arm.c:21296 config/tc-score.c:6304
+#: config/tc-arc.c:212 config/tc-arm.c:21328 config/tc-score.c:6304
 #: config/tc-score.c:6533 config/tc-score.c:6538
 msgid "virtual memory exhausted"
 msgstr ""
@@ -1512,7 +1512,7 @@
 msgid "invalid identifier for \".option\""
 msgstr ""
 
-#: config/tc-arc.c:1036 config/tc-i860.c:1034 config/tc-ip2k.c:249
+#: config/tc-arc.c:1036 config/tc-i860.c:1035 config/tc-ip2k.c:249
 msgid "relaxation not supported\n"
 msgstr ""
 
@@ -1525,7 +1525,7 @@
 msgid "missing ')' in %%-op"
 msgstr ""
 
-#: config/tc-arc.c:1362 config/tc-dlx.c:1201 config/tc-i960.c:2641
+#: config/tc-arc.c:1362 config/tc-dlx.c:1203 config/tc-i960.c:2641
 #: config/tc-m32r.c:2281 config/tc-sparc.c:3508
 #, c-format
 msgid "internal error: can't export reloc type %d (`%s')"
@@ -1545,7 +1545,7 @@
 msgstr ""
 
 #: config/tc-arc.c:1756 config/tc-i370.c:2211 config/tc-mn10200.c:1141
-#: config/tc-mn10300.c:1820 config/tc-ppc.c:2891 config/tc-s390.c:1460
+#: config/tc-mn10300.c:1820 config/tc-ppc.c:2896 config/tc-s390.c:1460
 #: config/tc-v850.c:2009
 #, c-format
 msgid "junk at end of line: `%s'"
@@ -1564,7 +1564,7 @@
 msgid "conditional branch follows set of flags"
 msgstr ""
 
-#: config/tc-arc.c:1890 config/tc-arm.c:15434
+#: config/tc-arc.c:1890 config/tc-arm.c:15436
 #, c-format
 msgid "bad instruction `%s'"
 msgstr ""
@@ -1641,7 +1641,7 @@
 msgid "iWMMXt data register expected"
 msgstr ""
 
-#: config/tc-arm.c:534 config/tc-arm.c:6248
+#: config/tc-arm.c:534 config/tc-arm.c:6250
 msgid "iWMMXt control register expected"
 msgstr ""
 
@@ -1726,11 +1726,11 @@
 msgid "bad expression"
 msgstr ""
 
-#: config/tc-arm.c:929 config/tc-i860.c:1003 config/tc-sparc.c:2880
+#: config/tc-arm.c:929 config/tc-i860.c:1004 config/tc-sparc.c:2880
 msgid "bad segment"
 msgstr ""
 
-#: config/tc-arm.c:946 config/tc-arm.c:4744 config/tc-i960.c:1300
+#: config/tc-arm.c:946 config/tc-arm.c:4746 config/tc-i960.c:1300
 #: config/tc-score.c:1211
 msgid "invalid constant"
 msgstr ""
@@ -1769,7 +1769,7 @@
 msgid "can't change index for operand"
 msgstr ""
 
-#: config/tc-arm.c:1415 config/tc-arm.c:3274 config/tc-arm.c:4345
+#: config/tc-arm.c:1415 config/tc-arm.c:3276 config/tc-arm.c:4347
 msgid "constant expression required"
 msgstr ""
 
@@ -1781,8 +1781,8 @@
 msgid "scalar must have an index"
 msgstr ""
 
-#: config/tc-arm.c:1496 config/tc-arm.c:14062 config/tc-arm.c:14110
-#: config/tc-arm.c:14512
+#: config/tc-arm.c:1496 config/tc-arm.c:14064 config/tc-arm.c:14112
+#: config/tc-arm.c:14514
 msgid "scalar index out of range"
 msgstr ""
 
@@ -1816,11 +1816,11 @@
 msgstr ""
 
 #: config/tc-arm.c:1744 config/tc-arm.c:1789 config/tc-h8300.c:990
-#: config/tc-mips.c:10561 config/tc-mips.c:10583
+#: config/tc-mips.c:10565 config/tc-mips.c:10587
 msgid "invalid register list"
 msgstr ""
 
-#: config/tc-arm.c:1750 config/tc-arm.c:3788 config/tc-arm.c:3921
+#: config/tc-arm.c:1750 config/tc-arm.c:3790 config/tc-arm.c:3923
 msgid "register list not in ascending order"
 msgstr ""
 
@@ -1925,413 +1925,413 @@
 msgid "ignoring attempt to undefine built-in register '%s'"
 msgstr ""
 
-#: config/tc-arm.c:2610
+#: config/tc-arm.c:2612
 #, c-format
 msgid "Failed to find real start of function: %s\n"
 msgstr ""
 
-#: config/tc-arm.c:2627
+#: config/tc-arm.c:2629
 msgid "selected processor does not support THUMB opcodes"
 msgstr ""
 
-#: config/tc-arm.c:2640
+#: config/tc-arm.c:2642
 msgid "selected processor does not support ARM opcodes"
 msgstr ""
 
-#: config/tc-arm.c:2652
+#: config/tc-arm.c:2654
 #, c-format
 msgid "invalid instruction size selected (%d)"
 msgstr ""
 
-#: config/tc-arm.c:2684
+#: config/tc-arm.c:2686
 #, c-format
 msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
 msgstr ""
 
-#: config/tc-arm.c:2740
+#: config/tc-arm.c:2742
 #, c-format
 msgid "expected comma after name \"%s\""
 msgstr ""
 
-#: config/tc-arm.c:2790 config/tc-m32r.c:588
+#: config/tc-arm.c:2792 config/tc-m32r.c:588
 #, c-format
 msgid "symbol `%s' already defined"
 msgstr ""
 
-#: config/tc-arm.c:2824
+#: config/tc-arm.c:2826
 #, c-format
 msgid "unrecognized syntax mode \"%s\""
 msgstr ""
 
-#: config/tc-arm.c:2845
+#: config/tc-arm.c:2847
 #, c-format
 msgid "alignment too large: %d assumed"
 msgstr ""
 
-#: config/tc-arm.c:2848
+#: config/tc-arm.c:2850
 msgid "alignment negative. 0 assumed."
 msgstr ""
 
-#: config/tc-arm.c:2998
+#: config/tc-arm.c:3000
 msgid "literal pool overflow"
 msgstr ""
 
-#: config/tc-arm.c:3154 config/tc-arm.c:6183
+#: config/tc-arm.c:3156 config/tc-arm.c:6185
 msgid "unrecognized relocation suffix"
 msgstr ""
 
-#: config/tc-arm.c:3167
+#: config/tc-arm.c:3169
 msgid "(plt) is only valid on branch targets"
 msgstr ""
 
-#: config/tc-arm.c:3173 config/tc-s390.c:1100 config/tc-s390.c:1725
+#: config/tc-arm.c:3175 config/tc-s390.c:1100 config/tc-s390.c:1725
 #: config/tc-xtensa.c:1591
 #, c-format
 msgid "%s relocations do not fit in %d bytes"
 msgstr ""
 
-#: config/tc-arm.c:3250
+#: config/tc-arm.c:3252
 msgid ".inst.n operand too big. Use .inst.w instead"
 msgstr ""
 
-#: config/tc-arm.c:3270
+#: config/tc-arm.c:3272
 msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead"
 msgstr ""
 
-#: config/tc-arm.c:3300
+#: config/tc-arm.c:3302
 msgid "width suffixes are invalid in ARM mode"
 msgstr ""
 
-#: config/tc-arm.c:3342 dwarf2dbg.c:701
+#: config/tc-arm.c:3344 dwarf2dbg.c:701
 msgid "expected 0 or 1"
 msgstr ""
 
-#: config/tc-arm.c:3346
+#: config/tc-arm.c:3348
 msgid "missing comma"
 msgstr ""
 
-#: config/tc-arm.c:3379
+#: config/tc-arm.c:3381
 msgid "duplicate .fnstart directive"
 msgstr ""
 
-#: config/tc-arm.c:3410
+#: config/tc-arm.c:3412
 msgid "duplicate .handlerdata directive"
 msgstr ""
 
-#: config/tc-arm.c:3429
+#: config/tc-arm.c:3431
 msgid ".fnend directive without .fnstart"
 msgstr ""
 
-#: config/tc-arm.c:3495
+#: config/tc-arm.c:3497
 msgid "personality routine specified for cantunwind frame"
 msgstr ""
 
-#: config/tc-arm.c:3512
+#: config/tc-arm.c:3514
 msgid "duplicate .personalityindex directive"
 msgstr ""
 
-#: config/tc-arm.c:3519
+#: config/tc-arm.c:3521
 msgid "bad personality routine number"
 msgstr ""
 
-#: config/tc-arm.c:3541
+#: config/tc-arm.c:3543
 msgid "duplicate .personality directive"
 msgstr ""
 
-#: config/tc-arm.c:3564 config/tc-arm.c:3692 config/tc-arm.c:3740
+#: config/tc-arm.c:3566 config/tc-arm.c:3694 config/tc-arm.c:3742
 msgid "expected register list"
 msgstr ""
 
-#: config/tc-arm.c:3646
+#: config/tc-arm.c:3648
 msgid "expected , <constant>"
 msgstr ""
 
-#: config/tc-arm.c:3655
+#: config/tc-arm.c:3657
 msgid "number of registers must be in the range [1:4]"
 msgstr ""
 
-#: config/tc-arm.c:3802 config/tc-arm.c:3935
+#: config/tc-arm.c:3804 config/tc-arm.c:3937
 msgid "bad register range"
 msgstr ""
 
-#: config/tc-arm.c:3992
+#: config/tc-arm.c:3994
 msgid "register expected"
 msgstr ""
 
-#: config/tc-arm.c:4002
+#: config/tc-arm.c:4004
 msgid "FPA .unwind_save does not take a register list"
 msgstr ""
 
-#: config/tc-arm.c:4021
+#: config/tc-arm.c:4023
 msgid ".unwind_save does not support this kind of register"
 msgstr ""
 
-#: config/tc-arm.c:4060
+#: config/tc-arm.c:4062
 msgid "SP and PC not permitted in .unwind_movsp directive"
 msgstr ""
 
-#: config/tc-arm.c:4065
+#: config/tc-arm.c:4067
 msgid "unexpected .unwind_movsp directive"
 msgstr ""
 
-#: config/tc-arm.c:4092
+#: config/tc-arm.c:4094
 msgid "stack increment must be multiple of 4"
 msgstr ""
 
-#: config/tc-arm.c:4124
+#: config/tc-arm.c:4126
 msgid "expected <reg>, <reg>"
 msgstr ""
 
-#: config/tc-arm.c:4142
+#: config/tc-arm.c:4144
 msgid "register must be either sp or set by a previousunwind_movsp directive"
 msgstr ""
 
-#: config/tc-arm.c:4181
+#: config/tc-arm.c:4183
 msgid "expected <offset>, <opcode>"
 msgstr ""
 
-#: config/tc-arm.c:4193
+#: config/tc-arm.c:4195
 msgid "unwind opcode too long"
 msgstr ""
 
-#: config/tc-arm.c:4198
+#: config/tc-arm.c:4200
 msgid "invalid unwind opcode"
 msgstr ""
 
-#: config/tc-arm.c:4351 config/tc-arm.c:5213 config/tc-arm.c:8917
-#: config/tc-arm.c:9440 config/tc-arm.c:12568 config/tc-arm.c:20329
-#: config/tc-arm.c:20354 config/tc-arm.c:20362 config/tc-z8k.c:1144
+#: config/tc-arm.c:4353 config/tc-arm.c:5215 config/tc-arm.c:8919
+#: config/tc-arm.c:9442 config/tc-arm.c:12570 config/tc-arm.c:20361
+#: config/tc-arm.c:20386 config/tc-arm.c:20394 config/tc-z8k.c:1144
 #: config/tc-z8k.c:1154
 msgid "immediate value out of range"
 msgstr ""
 
-#: config/tc-arm.c:4498
+#: config/tc-arm.c:4500
 msgid "invalid FPA immediate expression"
 msgstr ""
 
-#: config/tc-arm.c:4622 config/tc-arm.c:4630
+#: config/tc-arm.c:4624 config/tc-arm.c:4632
 msgid "shift expression expected"
 msgstr ""
 
-#: config/tc-arm.c:4644
+#: config/tc-arm.c:4646
 msgid "'LSL' or 'ASR' required"
 msgstr ""
 
-#: config/tc-arm.c:4652
+#: config/tc-arm.c:4654
 msgid "'LSL' required"
 msgstr ""
 
-#: config/tc-arm.c:4660
+#: config/tc-arm.c:4662
 msgid "'ASR' required"
 msgstr ""
 
-#: config/tc-arm.c:4732 config/tc-arm.c:5207 config/tc-arm.c:6832
+#: config/tc-arm.c:4734 config/tc-arm.c:5209 config/tc-arm.c:6834
 #: config/tc-v850.c:1827 config/tc-v850.c:1848
 msgid "constant expression expected"
 msgstr ""
 
-#: config/tc-arm.c:4739
+#: config/tc-arm.c:4741
 msgid "invalid rotation"
 msgstr ""
 
-#: config/tc-arm.c:4899 config/tc-arm.c:5043
+#: config/tc-arm.c:4901 config/tc-arm.c:5045
 msgid "unknown group relocation"
 msgstr ""
 
-#: config/tc-arm.c:5012
+#: config/tc-arm.c:5014
 msgid "alignment must be constant"
 msgstr ""
 
-#: config/tc-arm.c:5074
+#: config/tc-arm.c:5076
 msgid "this group relocation is not allowed on this instruction"
 msgstr ""
 
-#: config/tc-arm.c:5086 config/tc-arm.c:5486
+#: config/tc-arm.c:5088 config/tc-arm.c:5488
 msgid "']' expected"
 msgstr ""
 
-#: config/tc-arm.c:5104
+#: config/tc-arm.c:5106
 msgid "'}' expected at end of 'option' field"
 msgstr ""
 
-#: config/tc-arm.c:5109
+#: config/tc-arm.c:5111
 msgid "cannot combine index with option"
 msgstr ""
 
-#: config/tc-arm.c:5122
+#: config/tc-arm.c:5124
 msgid "cannot combine pre- and post-indexing"
 msgstr ""
 
-#: config/tc-arm.c:5283
+#: config/tc-arm.c:5285
 msgid "flag for {c}psr instruction expected"
 msgstr ""
 
-#: config/tc-arm.c:5308
+#: config/tc-arm.c:5310
 msgid "unrecognized CPS flag"
 msgstr ""
 
-#: config/tc-arm.c:5315
+#: config/tc-arm.c:5317
 msgid "missing CPS flags"
 msgstr ""
 
-#: config/tc-arm.c:5338 config/tc-arm.c:5344
+#: config/tc-arm.c:5340 config/tc-arm.c:5346
 msgid "valid endian specifiers are be or le"
 msgstr ""
 
-#: config/tc-arm.c:5366
+#: config/tc-arm.c:5368
 msgid "missing rotation field after comma"
 msgstr ""
 
-#: config/tc-arm.c:5381
+#: config/tc-arm.c:5383
 msgid "rotation can only be 0, 8, 16, or 24"
 msgstr ""
 
-#: config/tc-arm.c:5410
+#: config/tc-arm.c:5412
 msgid "condition required"
 msgstr ""
 
-#: config/tc-arm.c:5448 config/tc-arm.c:7385
+#: config/tc-arm.c:5450 config/tc-arm.c:7387
 msgid "'[' expected"
 msgstr ""
 
-#: config/tc-arm.c:5461
+#: config/tc-arm.c:5463
 msgid "',' expected"
 msgstr ""
 
-#: config/tc-arm.c:5478
+#: config/tc-arm.c:5480
 msgid "invalid shift"
 msgstr ""
 
-#: config/tc-arm.c:5551
+#: config/tc-arm.c:5553
 msgid "can't use Neon quad register here"
 msgstr ""
 
-#: config/tc-arm.c:5617
+#: config/tc-arm.c:5619
 msgid "expected <Rm> or <Dm> or <Qm> operand"
 msgstr ""
 
-#: config/tc-arm.c:5697
+#: config/tc-arm.c:5699
 msgid "parse error"
 msgstr ""
 
-#: config/tc-arm.c:5707 read.c:2135
+#: config/tc-arm.c:5709 read.c:2135
 msgid "expected comma"
 msgstr ""
 
-#: config/tc-arm.c:6018 config/tc-arm.c:6088
+#: config/tc-arm.c:6020 config/tc-arm.c:6090
 msgid "immediate value is out of range"
 msgstr ""
 
-#: config/tc-arm.c:6233
+#: config/tc-arm.c:6235
 msgid "iWMMXt data or control register expected"
 msgstr ""
 
-#: config/tc-arm.c:6386
+#: config/tc-arm.c:6388
 #, c-format
 msgid "unhandled operand code %d"
 msgstr ""
 
-#: config/tc-arm.c:6465 config/tc-score.c:264
+#: config/tc-arm.c:6467 config/tc-score.c:264
 msgid "garbage following instruction"
 msgstr ""
 
 #. If REG is R13 (the stack pointer), warn that its use is
 #. deprecated.
-#: config/tc-arm.c:6505
+#: config/tc-arm.c:6507
 msgid "use of r13 is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:6575
+#: config/tc-arm.c:6577
 msgid "D register out of range for selected VFP version"
 msgstr ""
 
-#: config/tc-arm.c:6654
+#: config/tc-arm.c:6656
 msgid "instruction does not accept preindexed addressing"
 msgstr ""
 
 #. unindexed - only for coprocessor
-#: config/tc-arm.c:6670 config/tc-arm.c:8710
+#: config/tc-arm.c:6672 config/tc-arm.c:8712
 msgid "instruction does not accept unindexed addressing"
 msgstr ""
 
-#: config/tc-arm.c:6678
+#: config/tc-arm.c:6680
 msgid "destination register same as write-back base"
 msgstr ""
 
-#: config/tc-arm.c:6679
+#: config/tc-arm.c:6681
 msgid "source register same as write-back base"
 msgstr ""
 
-#: config/tc-arm.c:6725
+#: config/tc-arm.c:6727
 msgid "instruction does not accept scaled register index"
 msgstr ""
 
-#: config/tc-arm.c:6765
+#: config/tc-arm.c:6767
 msgid "instruction does not support unindexed addressing"
 msgstr ""
 
-#: config/tc-arm.c:6780
+#: config/tc-arm.c:6782
 msgid "pc may not be used with write-back"
 msgstr ""
 
-#: config/tc-arm.c:6785
+#: config/tc-arm.c:6787
 msgid "instruction does not support writeback"
 msgstr ""
 
-#: config/tc-arm.c:6827
+#: config/tc-arm.c:6829
 msgid "invalid pseudo operation"
 msgstr ""
 
-#: config/tc-arm.c:6873
+#: config/tc-arm.c:6875
 msgid "literal pool insertion failed"
 msgstr ""
 
-#: config/tc-arm.c:6931
+#: config/tc-arm.c:6933
 msgid "Rn must not overlap other operands"
 msgstr ""
 
-#: config/tc-arm.c:7020 config/tc-arm.c:9276
+#: config/tc-arm.c:7022 config/tc-arm.c:9278
 msgid "bad barrier type"
 msgstr ""
 
-#: config/tc-arm.c:7031 config/tc-arm.c:7050 config/tc-arm.c:7063
-#: config/tc-arm.c:9288 config/tc-arm.c:9319 config/tc-arm.c:9341
+#: config/tc-arm.c:7033 config/tc-arm.c:7052 config/tc-arm.c:7065
+#: config/tc-arm.c:9290 config/tc-arm.c:9321 config/tc-arm.c:9343
 msgid "bit-field extends past end of register"
 msgstr ""
 
-#: config/tc-arm.c:7092
+#: config/tc-arm.c:7094
 msgid "the only suffix valid here is '(plt)'"
 msgstr ""
 
-#: config/tc-arm.c:7145
+#: config/tc-arm.c:7147
 msgid "use of r15 in blx in ARM mode is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:7167
+#: config/tc-arm.c:7169
 msgid "use of r15 in bx in ARM mode is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:7192
+#: config/tc-arm.c:7194
 msgid "use of r15 in bxj is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:7352 config/tc-arm.c:7361
+#: config/tc-arm.c:7354 config/tc-arm.c:7363
 msgid "writeback of base register is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:7355
+#: config/tc-arm.c:7357
 msgid "writeback of base register when in register list is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:7365
+#: config/tc-arm.c:7367
 msgid "if writeback register is in list, it must be the lowest reg in the list"
 msgstr ""
 
-#: config/tc-arm.c:7380
+#: config/tc-arm.c:7382
 msgid "first destination register must be even"
 msgstr ""
 
-#: config/tc-arm.c:7383 config/tc-arm.c:7450
+#: config/tc-arm.c:7385 config/tc-arm.c:7452
 msgid "can only load two consecutive registers"
 msgstr ""
 
@@ -2339,1073 +2339,1077 @@
 #. have been called in the first place.
 #. If op 2 were present and equal to PC, this function wouldn't
 #. have been called in the first place.
-#: config/tc-arm.c:7384 config/tc-arm.c:7453 config/tc-arm.c:7982
-#: config/tc-arm.c:9988
+#: config/tc-arm.c:7386 config/tc-arm.c:7455 config/tc-arm.c:7984
+#: config/tc-arm.c:9990
 msgid "r14 not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:7398
+#: config/tc-arm.c:7400
 msgid "base register written back, and overlaps second destination register"
 msgstr ""
 
-#: config/tc-arm.c:7406
+#: config/tc-arm.c:7408
 msgid "index register overlaps destination register"
 msgstr ""
 
-#: config/tc-arm.c:7436 config/tc-arm.c:7964
+#: config/tc-arm.c:7438 config/tc-arm.c:7966
 msgid "offset must be zero in ARM encoding"
 msgstr ""
 
-#: config/tc-arm.c:7447 config/tc-arm.c:7976
+#: config/tc-arm.c:7449 config/tc-arm.c:7978
 msgid "even register required"
 msgstr ""
 
-#: config/tc-arm.c:7478 config/tc-arm.c:7509
+#: config/tc-arm.c:7480 config/tc-arm.c:7511
 msgid "this instruction requires a post-indexed address"
 msgstr ""
 
-#: config/tc-arm.c:7536
+#: config/tc-arm.c:7538
 msgid "Rd and Rm should be different in mla"
 msgstr ""
 
-#: config/tc-arm.c:7560 config/tc-arm.c:10317
+#: config/tc-arm.c:7562 config/tc-arm.c:10319
 msgid ":lower16: not allowed this instruction"
 msgstr ""
 
-#: config/tc-arm.c:7562
+#: config/tc-arm.c:7564
 msgid ":upper16: not allowed instruction"
 msgstr ""
 
-#: config/tc-arm.c:7581
+#: config/tc-arm.c:7583
 msgid "operand 1 must be FPSCR"
 msgstr ""
 
-#: config/tc-arm.c:7614 config/tc-arm.c:10442
+#: config/tc-arm.c:7616 config/tc-arm.c:10444
 msgid "'CPSR' or 'SPSR' expected"
 msgstr ""
 
-#: config/tc-arm.c:7651
+#: config/tc-arm.c:7653
 msgid "Rd and Rm should be different in mul"
 msgstr ""
 
-#: config/tc-arm.c:7670 config/tc-arm.c:7909 config/tc-arm.c:10572
+#: config/tc-arm.c:7672 config/tc-arm.c:7911 config/tc-arm.c:10574
 msgid "rdhi and rdlo must be different"
 msgstr ""
 
-#: config/tc-arm.c:7676
+#: config/tc-arm.c:7678
 msgid "rdhi, rdlo and rm must all be different"
 msgstr ""
 
-#: config/tc-arm.c:7741
+#: config/tc-arm.c:7743
 msgid "'[' expected after PLD mnemonic"
 msgstr ""
 
-#: config/tc-arm.c:7743 config/tc-arm.c:7758
+#: config/tc-arm.c:7745 config/tc-arm.c:7760
 msgid "post-indexed expression used in preload instruction"
 msgstr ""
 
-#: config/tc-arm.c:7745 config/tc-arm.c:7760
+#: config/tc-arm.c:7747 config/tc-arm.c:7762
 msgid "writeback used in preload instruction"
 msgstr ""
 
-#: config/tc-arm.c:7747 config/tc-arm.c:7762
+#: config/tc-arm.c:7749 config/tc-arm.c:7764
 msgid "unindexed addressing used in preload instruction"
 msgstr ""
 
-#: config/tc-arm.c:7756
+#: config/tc-arm.c:7758
 msgid "'[' expected after PLI mnemonic"
 msgstr ""
 
-#: config/tc-arm.c:7935
+#: config/tc-arm.c:7937
 msgid "SRS base register must be r13"
 msgstr ""
 
-#: config/tc-arm.c:7979
+#: config/tc-arm.c:7981
 msgid "can only store two consecutive registers"
 msgstr ""
 
-#: config/tc-arm.c:8074 config/tc-arm.c:8091
+#: config/tc-arm.c:8076 config/tc-arm.c:8093
 msgid "only two consecutive VFP SP registers allowed here"
 msgstr ""
 
-#: config/tc-arm.c:8119 config/tc-arm.c:8134
+#: config/tc-arm.c:8121 config/tc-arm.c:8136
 msgid "this addressing mode requires base-register writeback"
 msgstr ""
 
-#: config/tc-arm.c:8308
+#: config/tc-arm.c:8310
 msgid "this instruction does not support indexing"
 msgstr ""
 
-#: config/tc-arm.c:8331
+#: config/tc-arm.c:8333
 msgid "only r15 allowed here"
 msgstr ""
 
-#: config/tc-arm.c:8466
+#: config/tc-arm.c:8468
 msgid "immediate operand requires iWMMXt2"
 msgstr ""
 
-#: config/tc-arm.c:8610
+#: config/tc-arm.c:8612
 msgid "shift by register not allowed in thumb mode"
 msgstr ""
 
-#: config/tc-arm.c:8622 config/tc-arm.c:11085 config/tc-arm.c:19719
+#: config/tc-arm.c:8624 config/tc-arm.c:11087 config/tc-arm.c:19754
 msgid "shift expression is too large"
 msgstr ""
 
-#: config/tc-arm.c:8648
+#: config/tc-arm.c:8650
 msgid "Instruction does not support =N addresses"
 msgstr ""
 
-#: config/tc-arm.c:8653
+#: config/tc-arm.c:8655
 msgid "cannot use register index with PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:8654
+#: config/tc-arm.c:8656
 msgid "cannot use register index with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:8656
+#: config/tc-arm.c:8658
 msgid "Thumb does not support negative register indexing"
 msgstr ""
 
-#: config/tc-arm.c:8658
+#: config/tc-arm.c:8660
 msgid "Thumb does not support register post-indexing"
 msgstr ""
 
-#: config/tc-arm.c:8660
+#: config/tc-arm.c:8662
 msgid "Thumb does not support register indexing with writeback"
 msgstr ""
 
-#: config/tc-arm.c:8662
+#: config/tc-arm.c:8664
 msgid "Thumb supports only LSL in shifted register indexing"
 msgstr ""
 
-#: config/tc-arm.c:8671 config/tc-arm.c:13865
+#: config/tc-arm.c:8673 config/tc-arm.c:13867
 msgid "shift out of range"
 msgstr ""
 
-#: config/tc-arm.c:8679
+#: config/tc-arm.c:8681
 msgid "cannot use writeback with PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:8681
+#: config/tc-arm.c:8683
 msgid "cannot use writeback with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:8700
+#: config/tc-arm.c:8702
 msgid "cannot use post-indexing with PC-relative addressing"
 msgstr ""
 
-#: config/tc-arm.c:8701
+#: config/tc-arm.c:8703
 msgid "cannot use post-indexing with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:8912
+#: config/tc-arm.c:8914
 msgid "only SUBS PC, LR, #const allowed"
 msgstr ""
 
-#: config/tc-arm.c:8991 config/tc-arm.c:9142 config/tc-arm.c:9239
-#: config/tc-arm.c:10396 config/tc-arm.c:10678
+#: config/tc-arm.c:8993 config/tc-arm.c:9144 config/tc-arm.c:9241
+#: config/tc-arm.c:10398 config/tc-arm.c:10680
 msgid "shift must be constant"
 msgstr ""
 
-#: config/tc-arm.c:9018 config/tc-arm.c:9157 config/tc-arm.c:9254
-#: config/tc-arm.c:10409
+#: config/tc-arm.c:9020 config/tc-arm.c:9159 config/tc-arm.c:9256
+#: config/tc-arm.c:10411
 msgid "unshifted register required"
 msgstr ""
 
-#: config/tc-arm.c:9033 config/tc-arm.c:9265 config/tc-arm.c:10533
+#: config/tc-arm.c:9035 config/tc-arm.c:9267 config/tc-arm.c:10535
 msgid "dest must overlap one source register"
 msgstr ""
 
-#: config/tc-arm.c:9160
+#: config/tc-arm.c:9162
 msgid "dest and source1 must be the same register"
 msgstr ""
 
-#: config/tc-arm.c:9436
+#: config/tc-arm.c:9438
 msgid "instruction is always unconditional"
 msgstr ""
 
-#: config/tc-arm.c:9531
+#: config/tc-arm.c:9533
 msgid "selected processor does not support 'A' form of this instruction"
 msgstr ""
 
-#: config/tc-arm.c:9534
+#: config/tc-arm.c:9536
 msgid "Thumb does not support the 2-argument form of this instruction"
 msgstr ""
 
-#: config/tc-arm.c:9642
+#: config/tc-arm.c:9644
 msgid "SP not allowed in register list"
 msgstr ""
 
-#: config/tc-arm.c:9648
+#: config/tc-arm.c:9650
 msgid "LR and PC should not both be in register list"
 msgstr ""
 
-#: config/tc-arm.c:9655
+#: config/tc-arm.c:9657
 msgid "base register should not be in register list when written back"
 msgstr ""
 
-#: config/tc-arm.c:9661
+#: config/tc-arm.c:9663
 msgid "PC not allowed in register list"
 msgstr ""
 
-#: config/tc-arm.c:9664 config/tc-arm.c:9730 config/tc-arm.c:9770
+#: config/tc-arm.c:9666 config/tc-arm.c:9732 config/tc-arm.c:9772
 #, c-format
 msgid "value stored for r%d is UNPREDICTABLE"
 msgstr ""
 
-#: config/tc-arm.c:9706
+#: config/tc-arm.c:9708
 msgid "Thumb load/store multiple does not support {reglist}^"
 msgstr ""
 
-#: config/tc-arm.c:9763
+#: config/tc-arm.c:9765
 msgid "Thumb-2 instruction only valid in unified syntax"
 msgstr ""
 
-#: config/tc-arm.c:9767 config/tc-arm.c:9777
+#: config/tc-arm.c:9769 config/tc-arm.c:9779
 msgid "this instruction will write back the base register"
 msgstr ""
 
-#: config/tc-arm.c:9780
+#: config/tc-arm.c:9782
 msgid "this instruction will not write back the base register"
 msgstr ""
 
-#: config/tc-arm.c:9809
+#: config/tc-arm.c:9811
 msgid "r14 not allowed as first register when second register is omitted"
 msgstr ""
 
-#: config/tc-arm.c:9911 config/tc-arm.c:9924 config/tc-arm.c:9960
+#: config/tc-arm.c:9913 config/tc-arm.c:9926 config/tc-arm.c:9962
 msgid "Thumb does not support this addressing mode"
 msgstr ""
 
-#: config/tc-arm.c:9928
+#: config/tc-arm.c:9930
 msgid "byte or halfword not valid for base register"
 msgstr ""
 
-#: config/tc-arm.c:9931
+#: config/tc-arm.c:9933
 msgid "r15 based store not allowed"
 msgstr ""
 
-#: config/tc-arm.c:9933
+#: config/tc-arm.c:9935
 msgid "invalid base register for register offset"
 msgstr ""
 
-#: config/tc-arm.c:10273
+#: config/tc-arm.c:10275
 msgid "shifts in CMP/MOV instructions are only supported in unified syntax"
 msgstr ""
 
-#: config/tc-arm.c:10301
+#: config/tc-arm.c:10303
 msgid "only lo regs allowed with immediate"
 msgstr ""
 
-#: config/tc-arm.c:10322
+#: config/tc-arm.c:10324
 msgid ":upper16: not allowed this instruction"
 msgstr ""
 
-#: config/tc-arm.c:10432 config/tc-arm.c:10438 config/tc-arm.c:10468
-#: config/tc-arm.c:10474
+#: config/tc-arm.c:10434 config/tc-arm.c:10440 config/tc-arm.c:10470
+#: config/tc-arm.c:10476
 msgid "selected processor does not support requested special purpose register"
 msgstr ""
 
-#: config/tc-arm.c:10463
+#: config/tc-arm.c:10465
 msgid "Thumb encoding does not support an immediate here"
 msgstr ""
 
-#: config/tc-arm.c:10538
+#: config/tc-arm.c:10540
 msgid "Thumb-2 MUL must not set flags"
 msgstr ""
 
-#: config/tc-arm.c:10603
+#: config/tc-arm.c:10605
 msgid "Thumb does not support NOP with hints"
 msgstr ""
 
-#: config/tc-arm.c:10741
+#: config/tc-arm.c:10743
 msgid "push/pop do not support {reglist}^"
 msgstr ""
 
-#: config/tc-arm.c:10764
+#: config/tc-arm.c:10766
 msgid "invalid register list to push/pop instruction"
 msgstr ""
 
-#: config/tc-arm.c:10997
+#: config/tc-arm.c:10999
 msgid "source1 and dest must be same register"
 msgstr ""
 
-#: config/tc-arm.c:11018
+#: config/tc-arm.c:11020
 msgid "ror #imm not supported"
 msgstr ""
 
-#: config/tc-arm.c:11201
+#: config/tc-arm.c:11203
 msgid "Thumb encoding does not support rotation"
 msgstr ""
 
-#: config/tc-arm.c:11221
+#: config/tc-arm.c:11223
 msgid "instruction requires register index"
 msgstr ""
 
-#: config/tc-arm.c:11230
+#: config/tc-arm.c:11232
 msgid "instruction does not allow shifted index"
 msgstr ""
 
-#: config/tc-arm.c:11640
+#: config/tc-arm.c:11642
 msgid "invalid instruction shape"
 msgstr ""
 
-#: config/tc-arm.c:11883
+#: config/tc-arm.c:11885
 msgid "types specified in both the mnemonic and operands"
 msgstr ""
 
-#: config/tc-arm.c:11920
+#: config/tc-arm.c:11922
 msgid "operand types can't be inferred"
 msgstr ""
 
-#: config/tc-arm.c:11926
+#: config/tc-arm.c:11928
 msgid "type specifier has the wrong number of parts"
 msgstr ""
 
-#: config/tc-arm.c:11981 config/tc-arm.c:13618 config/tc-arm.c:13625
+#: config/tc-arm.c:11983 config/tc-arm.c:13620 config/tc-arm.c:13627
 msgid "operand size must match register width"
 msgstr ""
 
-#: config/tc-arm.c:11992
+#: config/tc-arm.c:11994
 msgid "bad type in Neon instruction"
 msgstr ""
 
-#: config/tc-arm.c:12003
+#: config/tc-arm.c:12005
 msgid "inconsistent types in Neon instruction"
 msgstr ""
 
-#: config/tc-arm.c:13052
+#: config/tc-arm.c:13054
 msgid "scalar out of range for multiply instruction"
 msgstr ""
 
-#: config/tc-arm.c:13216 config/tc-arm.c:13228
+#: config/tc-arm.c:13218 config/tc-arm.c:13230
 msgid "immediate out of range for insert"
 msgstr ""
 
-#: config/tc-arm.c:13240 config/tc-arm.c:14210
+#: config/tc-arm.c:13242 config/tc-arm.c:14212
 msgid "immediate out of range for shift"
 msgstr ""
 
-#: config/tc-arm.c:13297 config/tc-arm.c:13324 config/tc-arm.c:13711
-#: config/tc-arm.c:14156
+#: config/tc-arm.c:13299 config/tc-arm.c:13326 config/tc-arm.c:13713
+#: config/tc-arm.c:14158
 msgid "immediate out of range"
 msgstr ""
 
-#: config/tc-arm.c:13361
+#: config/tc-arm.c:13363
 msgid "immediate out of range for narrowing operation"
 msgstr ""
 
-#: config/tc-arm.c:13486
+#: config/tc-arm.c:13488
 msgid "operands 0 and 1 must be the same register"
 msgstr ""
 
-#: config/tc-arm.c:13685
+#: config/tc-arm.c:13687
 msgid "operand size must be specified for immediate VMOV"
 msgstr ""
 
-#: config/tc-arm.c:13695
+#: config/tc-arm.c:13697
 msgid "immediate has bits set outside the operand size"
 msgstr ""
 
-#: config/tc-arm.c:13891
+#: config/tc-arm.c:13893
 msgid "elements must be smaller than reversal region"
 msgstr ""
 
-#: config/tc-arm.c:14061 config/tc-arm.c:14109
+#: config/tc-arm.c:14063 config/tc-arm.c:14111
 msgid "bad type for scalar"
 msgstr ""
 
-#: config/tc-arm.c:14173 config/tc-arm.c:14181
+#: config/tc-arm.c:14175 config/tc-arm.c:14183
 msgid "VFP registers must be adjacent"
 msgstr ""
 
-#: config/tc-arm.c:14322
+#: config/tc-arm.c:14324
 msgid "bad list length for table lookup"
 msgstr ""
 
-#: config/tc-arm.c:14352
+#: config/tc-arm.c:14354
 msgid "writeback (!) must be used for VLDMDB and VSTMDB"
 msgstr ""
 
-#: config/tc-arm.c:14355
+#: config/tc-arm.c:14357
 msgid "register list must contain at least 1 and at most 16 registers"
 msgstr ""
 
-#: config/tc-arm.c:14432
+#: config/tc-arm.c:14434
 msgid "bad alignment"
 msgstr ""
 
-#: config/tc-arm.c:14449
+#: config/tc-arm.c:14451
 msgid "bad list type for instruction"
 msgstr ""
 
-#: config/tc-arm.c:14491
+#: config/tc-arm.c:14493
 msgid "unsupported alignment for instruction"
 msgstr ""
 
-#: config/tc-arm.c:14510 config/tc-arm.c:14604 config/tc-arm.c:14615
-#: config/tc-arm.c:14625 config/tc-arm.c:14639
+#: config/tc-arm.c:14512 config/tc-arm.c:14606 config/tc-arm.c:14617
+#: config/tc-arm.c:14627 config/tc-arm.c:14641
 msgid "bad list length"
 msgstr ""
 
-#: config/tc-arm.c:14515
+#: config/tc-arm.c:14517
 msgid "stride of 2 unavailable when element size is 8"
 msgstr ""
 
-#: config/tc-arm.c:14548 config/tc-arm.c:14623
+#: config/tc-arm.c:14550 config/tc-arm.c:14625
 msgid "can't use alignment with this instruction"
 msgstr ""
 
-#: config/tc-arm.c:14687
+#: config/tc-arm.c:14689
 msgid "post-index must be a register"
 msgstr ""
 
-#: config/tc-arm.c:14689
+#: config/tc-arm.c:14691
 msgid "bad register for post-index"
 msgstr ""
 
-#: config/tc-arm.c:15003 config/tc-arm.c:15087
+#: config/tc-arm.c:15005 config/tc-arm.c:15089
 msgid "conditional infixes are deprecated in unified syntax"
 msgstr ""
 
-#: config/tc-arm.c:15235
+#: config/tc-arm.c:15237
 msgid "Warning: conditional outside an IT block for Thumb."
 msgstr ""
 
-#: config/tc-arm.c:15440
+#: config/tc-arm.c:15442
 msgid "s suffix on comparison instruction is deprecated"
 msgstr ""
 
-#: config/tc-arm.c:15459 config/tc-arm.c:15484 config/tc-arm.c:15548
+#: config/tc-arm.c:15461 config/tc-arm.c:15486 config/tc-arm.c:15550
 #, c-format
 msgid "selected processor does not support `%s'"
 msgstr ""
 
-#: config/tc-arm.c:15465
+#: config/tc-arm.c:15467
 msgid "Thumb does not support conditional execution"
 msgstr ""
 
-#: config/tc-arm.c:15509
+#: config/tc-arm.c:15511
 #, c-format
 msgid "cannot honor width suffix -- `%s'"
 msgstr ""
 
-#: config/tc-arm.c:15553
+#: config/tc-arm.c:15555
 #, c-format
 msgid "width suffixes are invalid in ARM mode -- `%s'"
 msgstr ""
 
-#: config/tc-arm.c:15583
+#: config/tc-arm.c:15585
 #, c-format
 msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'"
 msgstr ""
 
-#: config/tc-arm.c:15600
+#: config/tc-arm.c:15602
 #, c-format
 msgid "section '%s' finished with an open IT block."
 msgstr ""
 
-#: config/tc-arm.c:15605
+#: config/tc-arm.c:15607
 msgid "file finished with an open IT block."
 msgstr ""
 
-#: config/tc-arm.c:18509
+#: config/tc-arm.c:18511
 #, c-format
 msgid "alignments greater than %d bytes not supported in .text sections."
 msgstr ""
 
-#: config/tc-arm.c:18777 config/tc-ia64.c:3458
+#: config/tc-arm.c:18779 config/tc-ia64.c:3458
 #, c-format
 msgid "Group section `%s' has no group signature"
 msgstr ""
 
-#: config/tc-arm.c:18822
+#: config/tc-arm.c:18824
 msgid "handlerdata in cantunwind frame"
 msgstr ""
 
-#: config/tc-arm.c:18839
+#: config/tc-arm.c:18841
 msgid "too many unwind opcodes for personality routine 0"
 msgstr ""
 
-#: config/tc-arm.c:18871
+#: config/tc-arm.c:18873
 msgid "too many unwind opcodes"
 msgstr ""
 
-#: config/tc-arm.c:19123
+#: config/tc-arm.c:19133
 msgid "GOT already in the symbol table"
 msgstr ""
 
-#: config/tc-arm.c:19435 config/tc-arm.c:19476 config/tc-arm.c:19746
+#: config/tc-arm.c:19470 config/tc-arm.c:19511 config/tc-arm.c:19781
 #, c-format
 msgid "undefined symbol %s used as an immediate value"
 msgstr ""
 
-#: config/tc-arm.c:19444 config/tc-arm.c:19485
+#: config/tc-arm.c:19479 config/tc-arm.c:19520
 #, c-format
 msgid "symbol %s is in a different section"
 msgstr ""
 
-#: config/tc-arm.c:19458 config/tc-arm.c:19785
+#: config/tc-arm.c:19493 config/tc-arm.c:19820
 #, c-format
 msgid "invalid constant (%lx) after fixup"
 msgstr ""
 
-#: config/tc-arm.c:19513
+#: config/tc-arm.c:19548
 #, c-format
 msgid "unable to compute ADRL instructions for PC offset of 0x%lx"
 msgstr ""
 
-#: config/tc-arm.c:19548 config/tc-arm.c:19573
+#: config/tc-arm.c:19583 config/tc-arm.c:19608
 msgid "invalid literal constant: pool needs to be closer"
 msgstr ""
 
-#: config/tc-arm.c:19551 config/tc-arm.c:19589
+#: config/tc-arm.c:19586 config/tc-arm.c:19624
 #, c-format
 msgid "bad immediate value for offset (%ld)"
 msgstr ""
 
-#: config/tc-arm.c:19575
+#: config/tc-arm.c:19610
 #, c-format
 msgid "bad immediate value for 8-bit offset (%ld)"
 msgstr ""
 
-#: config/tc-arm.c:19630
+#: config/tc-arm.c:19665
 msgid "offset not a multiple of 4"
 msgstr ""
 
-#: config/tc-arm.c:19637 config/tc-arm.c:19652 config/tc-arm.c:19667
-#: config/tc-arm.c:19678 config/tc-arm.c:19701 config/tc-arm.c:20413
-#: config/tc-moxie.c:664 config/tc-pj.c:449 config/tc-sh.c:4190
+#: config/tc-arm.c:19672 config/tc-arm.c:19687 config/tc-arm.c:19702
+#: config/tc-arm.c:19713 config/tc-arm.c:19736 config/tc-arm.c:20445
+#: config/tc-moxie.c:664 config/tc-pj.c:450 config/tc-sh.c:4190
 msgid "offset out of range"
 msgstr ""
 
-#: config/tc-arm.c:19801
+#: config/tc-arm.c:19836
 msgid "invalid smc expression"
 msgstr ""
 
-#: config/tc-arm.c:19812 config/tc-arm.c:19821
+#: config/tc-arm.c:19847 config/tc-arm.c:19856
 msgid "invalid swi expression"
 msgstr ""
 
-#: config/tc-arm.c:19831
+#: config/tc-arm.c:19866
 msgid "invalid expression in load/store multiple"
 msgstr ""
 
-#: config/tc-arm.c:19892
+#: config/tc-arm.c:19927
 #, c-format
 msgid "blx to '%s' an ARM ISA state function changed to bl"
 msgstr ""
 
-#: config/tc-arm.c:19911
+#: config/tc-arm.c:19946
 msgid "misaligned branch destination"
 msgstr ""
 
-#: config/tc-arm.c:19915 config/tc-arm.c:19952 config/tc-arm.c:19966
-#: config/tc-arm.c:19979 config/tc-arm.c:20078 config/tc-arm.c:20103
+#: config/tc-arm.c:19950 config/tc-arm.c:19987 config/tc-arm.c:20001
+#: config/tc-arm.c:20014 config/tc-arm.c:20123 config/tc-arm.c:20152
 msgid "branch out of range"
 msgstr ""
 
-#: config/tc-arm.c:20002
+#: config/tc-arm.c:20037
 msgid "conditional branch out of range"
 msgstr ""
 
-#: config/tc-arm.c:20038
+#: config/tc-arm.c:20073
 #, c-format
 msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl"
 msgstr ""
 
-#: config/tc-arm.c:20187
+#: config/tc-arm.c:20129
+msgid "Thumb2 branch out of range"
+msgstr ""
+
+#: config/tc-arm.c:20219
 msgid "rel31 relocation overflow"
 msgstr ""
 
-#: config/tc-arm.c:20199 config/tc-arm.c:20222
+#: config/tc-arm.c:20231 config/tc-arm.c:20254
 msgid "co-processor offset out of range"
 msgstr ""
 
-#: config/tc-arm.c:20239
+#: config/tc-arm.c:20271
 #, c-format
 msgid "invalid offset, target not word aligned (0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:20246 config/tc-arm.c:20255 config/tc-arm.c:20263
-#: config/tc-arm.c:20271 config/tc-arm.c:20279
+#: config/tc-arm.c:20278 config/tc-arm.c:20287 config/tc-arm.c:20295
+#: config/tc-arm.c:20303 config/tc-arm.c:20311
 #, c-format
 msgid "invalid offset, value too big (0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:20320
+#: config/tc-arm.c:20352
 msgid "invalid Hi register with immediate"
 msgstr ""
 
-#: config/tc-arm.c:20336
+#: config/tc-arm.c:20368
 msgid "invalid immediate for stack address calculation"
 msgstr ""
 
-#: config/tc-arm.c:20344
+#: config/tc-arm.c:20376
 #, c-format
 msgid "invalid immediate for address calculation (value = 0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:20374
+#: config/tc-arm.c:20406
 #, c-format
 msgid "invalid immediate: %ld is out of range"
 msgstr ""
 
-#: config/tc-arm.c:20386
+#: config/tc-arm.c:20418
 #, c-format
 msgid "invalid shift value: %ld"
 msgstr ""
 
-#: config/tc-arm.c:20465
+#: config/tc-arm.c:20497
 #, c-format
 msgid "the offset 0x%08lX is not representable"
 msgstr ""
 
-#: config/tc-arm.c:20505
+#: config/tc-arm.c:20537
 #, c-format
 msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)"
 msgstr ""
 
-#: config/tc-arm.c:20544
+#: config/tc-arm.c:20576
 #, c-format
 msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)"
 msgstr ""
 
-#: config/tc-arm.c:20584
+#: config/tc-arm.c:20616
 #, c-format
 msgid "bad offset 0x%08lX (must be word-aligned)"
 msgstr ""
 
-#: config/tc-arm.c:20589
+#: config/tc-arm.c:20621
 #, c-format
 msgid "bad offset 0x%08lX (must be an 8-bit number of words)"
 msgstr ""
 
-#: config/tc-arm.c:20620 config/tc-score.c:7398
+#: config/tc-arm.c:20652 config/tc-score.c:7398
 #, c-format
 msgid "bad relocation fixup type (%d)"
 msgstr ""
 
-#: config/tc-arm.c:20731
+#: config/tc-arm.c:20763
 msgid "literal referenced across section boundary"
 msgstr ""
 
-#: config/tc-arm.c:20792
+#: config/tc-arm.c:20824
 msgid "internal relocation (type: IMMEDIATE) not fixed up"
 msgstr ""
 
-#: config/tc-arm.c:20797
+#: config/tc-arm.c:20829
 msgid "ADRL used for a symbol not defined in the same file"
 msgstr ""
 
-#: config/tc-arm.c:20812
+#: config/tc-arm.c:20844
 #, c-format
 msgid "undefined local label `%s'"
 msgstr ""
 
-#: config/tc-arm.c:20818
+#: config/tc-arm.c:20850
 msgid "internal_relocation (type: OFFSET_IMM) not fixed up"
 msgstr ""
 
-#: config/tc-arm.c:20839 config/tc-cris.c:3985 config/tc-mcore.c:1926
-#: config/tc-microblaze.c:1834 config/tc-mmix.c:2862 config/tc-moxie.c:759
+#: config/tc-arm.c:20871 config/tc-cris.c:3985 config/tc-mcore.c:1926
+#: config/tc-microblaze.c:1834 config/tc-mmix.c:2867 config/tc-moxie.c:759
 #: config/tc-ns32k.c:2248 config/tc-score.c:7491
 msgid "<unknown>"
 msgstr ""
 
-#: config/tc-arm.c:20842 config/tc-arm.c:20863 config/tc-score.c:7493
+#: config/tc-arm.c:20874 config/tc-arm.c:20895 config/tc-score.c:7493
 #, c-format
 msgid "cannot represent %s relocation in this object file format"
 msgstr ""
 
-#: config/tc-arm.c:21203
+#: config/tc-arm.c:21235
 #, c-format
 msgid "%s: unexpected function type: %d"
 msgstr ""
 
-#: config/tc-arm.c:21330
+#: config/tc-arm.c:21362
 msgid "use of old and new-style options to set CPU type"
 msgstr ""
 
-#: config/tc-arm.c:21340
+#: config/tc-arm.c:21372
 msgid "use of old and new-style options to set FPU type"
 msgstr ""
 
-#: config/tc-arm.c:21416
+#: config/tc-arm.c:21448
 msgid "hard-float conflicts with specified fpu"
 msgstr ""
 
-#: config/tc-arm.c:21603
+#: config/tc-arm.c:21635
 msgid "generate PIC code"
 msgstr ""
 
-#: config/tc-arm.c:21604
+#: config/tc-arm.c:21636
 msgid "assemble Thumb code"
 msgstr ""
 
-#: config/tc-arm.c:21605
+#: config/tc-arm.c:21637
 msgid "support ARM/Thumb interworking"
 msgstr ""
 
-#: config/tc-arm.c:21607
+#: config/tc-arm.c:21639
 msgid "code uses 32-bit program counter"
 msgstr ""
 
-#: config/tc-arm.c:21608
+#: config/tc-arm.c:21640
 msgid "code uses 26-bit program counter"
 msgstr ""
 
-#: config/tc-arm.c:21609
+#: config/tc-arm.c:21641
 msgid "floating point args are in fp regs"
 msgstr ""
 
-#: config/tc-arm.c:21611
+#: config/tc-arm.c:21643
 msgid "re-entrant code"
 msgstr ""
 
-#: config/tc-arm.c:21612
+#: config/tc-arm.c:21644
 msgid "code is ATPCS conformant"
 msgstr ""
 
-#: config/tc-arm.c:21613
+#: config/tc-arm.c:21645
 msgid "assemble for big-endian"
 msgstr ""
 
-#: config/tc-arm.c:21614
+#: config/tc-arm.c:21646
 msgid "assemble for little-endian"
 msgstr ""
 
 #. These are recognized by the assembler, but have no affect on code.
-#: config/tc-arm.c:21618
+#: config/tc-arm.c:21650
 msgid "use frame pointer"
 msgstr ""
 
-#: config/tc-arm.c:21619
+#: config/tc-arm.c:21651
 msgid "use stack size checking"
 msgstr ""
 
-#: config/tc-arm.c:21622
+#: config/tc-arm.c:21654
 msgid "do not warn on use of deprecated feature"
 msgstr ""
 
 #. DON'T add any new processors to this list -- we want the whole list
 #. to go away...  Add them to the processors table instead.
-#: config/tc-arm.c:21639 config/tc-arm.c:21640
+#: config/tc-arm.c:21671 config/tc-arm.c:21672
 msgid "use -mcpu=arm1"
 msgstr ""
 
-#: config/tc-arm.c:21641 config/tc-arm.c:21642
+#: config/tc-arm.c:21673 config/tc-arm.c:21674
 msgid "use -mcpu=arm2"
 msgstr ""
 
-#: config/tc-arm.c:21643 config/tc-arm.c:21644
+#: config/tc-arm.c:21675 config/tc-arm.c:21676
 msgid "use -mcpu=arm250"
 msgstr ""
 
-#: config/tc-arm.c:21645 config/tc-arm.c:21646
+#: config/tc-arm.c:21677 config/tc-arm.c:21678
 msgid "use -mcpu=arm3"
 msgstr ""
 
-#: config/tc-arm.c:21647 config/tc-arm.c:21648
+#: config/tc-arm.c:21679 config/tc-arm.c:21680
 msgid "use -mcpu=arm6"
 msgstr ""
 
-#: config/tc-arm.c:21649 config/tc-arm.c:21650
+#: config/tc-arm.c:21681 config/tc-arm.c:21682
 msgid "use -mcpu=arm600"
 msgstr ""
 
-#: config/tc-arm.c:21651 config/tc-arm.c:21652
+#: config/tc-arm.c:21683 config/tc-arm.c:21684
 msgid "use -mcpu=arm610"
 msgstr ""
 
-#: config/tc-arm.c:21653 config/tc-arm.c:21654
+#: config/tc-arm.c:21685 config/tc-arm.c:21686
 msgid "use -mcpu=arm620"
 msgstr ""
 
-#: config/tc-arm.c:21655 config/tc-arm.c:21656
+#: config/tc-arm.c:21687 config/tc-arm.c:21688
 msgid "use -mcpu=arm7"
 msgstr ""
 
-#: config/tc-arm.c:21657 config/tc-arm.c:21658
+#: config/tc-arm.c:21689 config/tc-arm.c:21690
 msgid "use -mcpu=arm70"
 msgstr ""
 
-#: config/tc-arm.c:21659 config/tc-arm.c:21660
+#: config/tc-arm.c:21691 config/tc-arm.c:21692
 msgid "use -mcpu=arm700"
 msgstr ""
 
-#: config/tc-arm.c:21661 config/tc-arm.c:21662
+#: config/tc-arm.c:21693 config/tc-arm.c:21694
 msgid "use -mcpu=arm700i"
 msgstr ""
 
-#: config/tc-arm.c:21663 config/tc-arm.c:21664
+#: config/tc-arm.c:21695 config/tc-arm.c:21696
 msgid "use -mcpu=arm710"
 msgstr ""
 
-#: config/tc-arm.c:21665 config/tc-arm.c:21666
+#: config/tc-arm.c:21697 config/tc-arm.c:21698
 msgid "use -mcpu=arm710c"
 msgstr ""
 
-#: config/tc-arm.c:21667 config/tc-arm.c:21668
+#: config/tc-arm.c:21699 config/tc-arm.c:21700
 msgid "use -mcpu=arm720"
 msgstr ""
 
-#: config/tc-arm.c:21669 config/tc-arm.c:21670
+#: config/tc-arm.c:21701 config/tc-arm.c:21702
 msgid "use -mcpu=arm7d"
 msgstr ""
 
-#: config/tc-arm.c:21671 config/tc-arm.c:21672
+#: config/tc-arm.c:21703 config/tc-arm.c:21704
 msgid "use -mcpu=arm7di"
 msgstr ""
 
-#: config/tc-arm.c:21673 config/tc-arm.c:21674
+#: config/tc-arm.c:21705 config/tc-arm.c:21706
 msgid "use -mcpu=arm7m"
 msgstr ""
 
-#: config/tc-arm.c:21675 config/tc-arm.c:21676
+#: config/tc-arm.c:21707 config/tc-arm.c:21708
 msgid "use -mcpu=arm7dm"
 msgstr ""
 
-#: config/tc-arm.c:21677 config/tc-arm.c:21678
+#: config/tc-arm.c:21709 config/tc-arm.c:21710
 msgid "use -mcpu=arm7dmi"
 msgstr ""
 
-#: config/tc-arm.c:21679 config/tc-arm.c:21680
+#: config/tc-arm.c:21711 config/tc-arm.c:21712
 msgid "use -mcpu=arm7100"
 msgstr ""
 
-#: config/tc-arm.c:21681 config/tc-arm.c:21682
+#: config/tc-arm.c:21713 config/tc-arm.c:21714
 msgid "use -mcpu=arm7500"
 msgstr ""
 
-#: config/tc-arm.c:21683 config/tc-arm.c:21684
+#: config/tc-arm.c:21715 config/tc-arm.c:21716
 msgid "use -mcpu=arm7500fe"
 msgstr ""
 
-#: config/tc-arm.c:21685 config/tc-arm.c:21686 config/tc-arm.c:21687
-#: config/tc-arm.c:21688
+#: config/tc-arm.c:21717 config/tc-arm.c:21718 config/tc-arm.c:21719
+#: config/tc-arm.c:21720
 msgid "use -mcpu=arm7tdmi"
 msgstr ""
 
-#: config/tc-arm.c:21689 config/tc-arm.c:21690
+#: config/tc-arm.c:21721 config/tc-arm.c:21722
 msgid "use -mcpu=arm710t"
 msgstr ""
 
-#: config/tc-arm.c:21691 config/tc-arm.c:21692
+#: config/tc-arm.c:21723 config/tc-arm.c:21724
 msgid "use -mcpu=arm720t"
 msgstr ""
 
-#: config/tc-arm.c:21693 config/tc-arm.c:21694
+#: config/tc-arm.c:21725 config/tc-arm.c:21726
 msgid "use -mcpu=arm740t"
 msgstr ""
 
-#: config/tc-arm.c:21695 config/tc-arm.c:21696
+#: config/tc-arm.c:21727 config/tc-arm.c:21728
 msgid "use -mcpu=arm8"
 msgstr ""
 
-#: config/tc-arm.c:21697 config/tc-arm.c:21698
+#: config/tc-arm.c:21729 config/tc-arm.c:21730
 msgid "use -mcpu=arm810"
 msgstr ""
 
-#: config/tc-arm.c:21699 config/tc-arm.c:21700
+#: config/tc-arm.c:21731 config/tc-arm.c:21732
 msgid "use -mcpu=arm9"
 msgstr ""
 
-#: config/tc-arm.c:21701 config/tc-arm.c:21702
+#: config/tc-arm.c:21733 config/tc-arm.c:21734
 msgid "use -mcpu=arm9tdmi"
 msgstr ""
 
-#: config/tc-arm.c:21703 config/tc-arm.c:21704
+#: config/tc-arm.c:21735 config/tc-arm.c:21736
 msgid "use -mcpu=arm920"
 msgstr ""
 
-#: config/tc-arm.c:21705 config/tc-arm.c:21706
+#: config/tc-arm.c:21737 config/tc-arm.c:21738
 msgid "use -mcpu=arm940"
 msgstr ""
 
-#: config/tc-arm.c:21707
+#: config/tc-arm.c:21739
 msgid "use -mcpu=strongarm"
 msgstr ""
 
-#: config/tc-arm.c:21709
+#: config/tc-arm.c:21741
 msgid "use -mcpu=strongarm110"
 msgstr ""
 
-#: config/tc-arm.c:21711
+#: config/tc-arm.c:21743
 msgid "use -mcpu=strongarm1100"
 msgstr ""
 
-#: config/tc-arm.c:21713
+#: config/tc-arm.c:21745
 msgid "use -mcpu=strongarm1110"
 msgstr ""
 
-#: config/tc-arm.c:21714
+#: config/tc-arm.c:21746
 msgid "use -mcpu=xscale"
 msgstr ""
 
-#: config/tc-arm.c:21715
+#: config/tc-arm.c:21747
 msgid "use -mcpu=iwmmxt"
 msgstr ""
 
-#: config/tc-arm.c:21716
+#: config/tc-arm.c:21748
 msgid "use -mcpu=all"
 msgstr ""
 
 #. Architecture variants -- don't add any more to this list either.
-#: config/tc-arm.c:21719 config/tc-arm.c:21720
+#: config/tc-arm.c:21751 config/tc-arm.c:21752
 msgid "use -march=armv2"
 msgstr ""
 
-#: config/tc-arm.c:21721 config/tc-arm.c:21722
+#: config/tc-arm.c:21753 config/tc-arm.c:21754
 msgid "use -march=armv2a"
 msgstr ""
 
-#: config/tc-arm.c:21723 config/tc-arm.c:21724
+#: config/tc-arm.c:21755 config/tc-arm.c:21756
 msgid "use -march=armv3"
 msgstr ""
 
-#: config/tc-arm.c:21725 config/tc-arm.c:21726
+#: config/tc-arm.c:21757 config/tc-arm.c:21758
 msgid "use -march=armv3m"
 msgstr ""
 
-#: config/tc-arm.c:21727 config/tc-arm.c:21728
+#: config/tc-arm.c:21759 config/tc-arm.c:21760
 msgid "use -march=armv4"
 msgstr ""
 
-#: config/tc-arm.c:21729 config/tc-arm.c:21730
+#: config/tc-arm.c:21761 config/tc-arm.c:21762
 msgid "use -march=armv4t"
 msgstr ""
 
-#: config/tc-arm.c:21731 config/tc-arm.c:21732
+#: config/tc-arm.c:21763 config/tc-arm.c:21764
 msgid "use -march=armv5"
 msgstr ""
 
-#: config/tc-arm.c:21733 config/tc-arm.c:21734
+#: config/tc-arm.c:21765 config/tc-arm.c:21766
 msgid "use -march=armv5t"
 msgstr ""
 
-#: config/tc-arm.c:21735 config/tc-arm.c:21736
+#: config/tc-arm.c:21767 config/tc-arm.c:21768
 msgid "use -march=armv5te"
 msgstr ""
 
 #. Floating point variants -- don't add any more to this list either.
-#: config/tc-arm.c:21739
+#: config/tc-arm.c:21771
 msgid "use -mfpu=fpe"
 msgstr ""
 
-#: config/tc-arm.c:21740
+#: config/tc-arm.c:21772
 msgid "use -mfpu=fpa10"
 msgstr ""
 
-#: config/tc-arm.c:21741
+#: config/tc-arm.c:21773
 msgid "use -mfpu=fpa11"
 msgstr ""
 
-#: config/tc-arm.c:21743
+#: config/tc-arm.c:21775
 msgid "use either -mfpu=softfpa or -mfpu=softvfp"
 msgstr ""
 
-#: config/tc-arm.c:22018
+#: config/tc-arm.c:22050
 msgid "invalid architectural extension"
 msgstr ""
 
-#: config/tc-arm.c:22032
+#: config/tc-arm.c:22064
 msgid "missing architectural extension"
 msgstr ""
 
-#: config/tc-arm.c:22045
+#: config/tc-arm.c:22077
 #, c-format
 msgid "unknown architectural extension `%s'"
 msgstr ""
 
-#: config/tc-arm.c:22069
+#: config/tc-arm.c:22101
 #, c-format
 msgid "missing cpu name `%s'"
 msgstr ""
 
-#: config/tc-arm.c:22095 config/tc-arm.c:22530
+#: config/tc-arm.c:22127 config/tc-arm.c:22562
 #, c-format
 msgid "unknown cpu `%s'"
 msgstr ""
 
-#: config/tc-arm.c:22113
+#: config/tc-arm.c:22145
 #, c-format
 msgid "missing architecture name `%s'"
 msgstr ""
 
-#: config/tc-arm.c:22130 config/tc-arm.c:22564 config/tc-arm.c:22595
+#: config/tc-arm.c:22162 config/tc-arm.c:22596 config/tc-arm.c:22627
 #: config/tc-score.c:7728
 #, c-format
 msgid "unknown architecture `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:22146 config/tc-arm.c:22625
+#: config/tc-arm.c:22178 config/tc-arm.c:22657
 #, c-format
 msgid "unknown floating point format `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:22162
+#: config/tc-arm.c:22194
 #, c-format
 msgid "unknown floating point abi `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:22178
+#: config/tc-arm.c:22210
 #, c-format
 msgid "unknown EABI `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:22198
+#: config/tc-arm.c:22230
 #, c-format
 msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never."
 msgstr ""
 
-#: config/tc-arm.c:22208
+#: config/tc-arm.c:22240
 msgid "<cpu name>\t  assemble for CPU <cpu name>"
 msgstr ""
 
-#: config/tc-arm.c:22210
+#: config/tc-arm.c:22242
 msgid "<arch name>\t  assemble for architecture <arch name>"
 msgstr ""
 
-#: config/tc-arm.c:22212
+#: config/tc-arm.c:22244
 msgid "<fpu name>\t  assemble for FPU architecture <fpu name>"
 msgstr ""
 
-#: config/tc-arm.c:22214
+#: config/tc-arm.c:22246
 msgid "<abi>\t  assemble for floating point ABI <abi>"
 msgstr ""
 
-#: config/tc-arm.c:22217
+#: config/tc-arm.c:22249
 msgid "<ver>\t\t  assemble for eabi version <ver>"
 msgstr ""
 
-#: config/tc-arm.c:22220
+#: config/tc-arm.c:22252
 msgid "<mode>\t  controls implicit insertion of IT instructions"
 msgstr ""
 
-#: config/tc-arm.c:22264 config/tc-arm.c:22282 config/tc-arm.c:22302
+#: config/tc-arm.c:22296 config/tc-arm.c:22314 config/tc-arm.c:22334
 #, c-format
 msgid "option `-%c%s' is deprecated: %s"
 msgstr ""
 
-#: config/tc-arm.c:22322
+#: config/tc-arm.c:22354
 #, c-format
 msgid " ARM-specific assembler options:\n"
 msgstr ""
 
-#: config/tc-arm.c:22333
+#: config/tc-arm.c:22365
 #, c-format
 msgid "  -EB                     assemble code for a big-endian cpu\n"
 msgstr ""
 
-#: config/tc-arm.c:22338
+#: config/tc-arm.c:22370
 #, c-format
 msgid "  -EL                     assemble code for a little-endian cpu\n"
 msgstr ""
 
-#: config/tc-arm.c:22342
+#: config/tc-arm.c:22374
 #, c-format
 msgid "  --fix-v4bx              Allow BX in ARMv4 code\n"
 msgstr ""
@@ -3474,7 +3478,7 @@
 msgid "illegal expression"
 msgstr ""
 
-#: config/tc-avr.c:654 config/tc-avr.c:1421
+#: config/tc-avr.c:654 config/tc-avr.c:1423
 msgid "`)' required"
 msgstr ""
 
@@ -3550,14 +3554,14 @@
 msgstr ""
 
 #: config/tc-avr.c:1122 config/tc-avr.c:1141 config/tc-avr.c:1163
-#: config/tc-avr.c:1170 config/tc-avr.c:1177 config/tc-d10v.c:503
-#: config/tc-d30v.c:554 config/tc-msp430.c:1978 config/tc-msp430.c:1993
+#: config/tc-avr.c:1170 config/tc-avr.c:1177 config/tc-d10v.c:505
+#: config/tc-d30v.c:555 config/tc-msp430.c:1978 config/tc-msp430.c:1993
 #: config/tc-msp430.c:2003
 #, c-format
 msgid "operand out of range: %ld"
 msgstr ""
 
-#: config/tc-avr.c:1253 config/tc-d10v.c:1585 config/tc-d30v.c:2025
+#: config/tc-avr.c:1253 config/tc-d10v.c:1590 config/tc-d30v.c:2032
 #: config/tc-msp430.c:2021
 #, c-format
 msgid "line %d: unknown relocation type: 0x%x"
@@ -3568,9 +3572,9 @@
 msgstr ""
 
 #. xgettext:c-format.
-#: config/tc-avr.c:1327 config/tc-bfin.c:811 config/tc-d10v.c:1457
-#: config/tc-d30v.c:1769 config/tc-mn10200.c:781 config/tc-mn10300.c:2171
-#: config/tc-msp430.c:2056 config/tc-or32.c:959 config/tc-ppc.c:6273
+#: config/tc-avr.c:1327 config/tc-bfin.c:811 config/tc-d10v.c:1462
+#: config/tc-d30v.c:1774 config/tc-mn10200.c:781 config/tc-mn10300.c:2171
+#: config/tc-msp430.c:2056 config/tc-or32.c:959 config/tc-ppc.c:6335
 #: config/tc-spu.c:881 config/tc-spu.c:1092 config/tc-v850.c:2187
 #: config/tc-z80.c:2017
 #, c-format
@@ -3588,16 +3592,16 @@
 msgid "illegal opcode %s for mcu %s"
 msgstr ""
 
-#: config/tc-avr.c:1376
+#: config/tc-avr.c:1378
 msgid "garbage at end of line"
 msgstr ""
 
-#: config/tc-avr.c:1448 config/tc-avr.c:1455
+#: config/tc-avr.c:1450 config/tc-avr.c:1457
 #, c-format
 msgid "illegal %srelocation size: %d"
 msgstr ""
 
-#: config/tc-bfin.c:96 config/tc-frv.c:1606 config/tc-frv.c:1616
+#: config/tc-bfin.c:96 config/tc-frv.c:1607 config/tc-frv.c:1617
 msgid "missing ')'"
 msgstr ""
 
@@ -3642,21 +3646,21 @@
 msgid "rel too far BFD_RELOC_16"
 msgstr ""
 
-#: config/tc-cr16.c:164 read.c:4346
+#: config/tc-cr16.c:164 read.c:4349
 msgid "using a bit field width of zero"
 msgstr ""
 
-#: config/tc-cr16.c:172 read.c:4354
+#: config/tc-cr16.c:172 read.c:4357
 #, c-format
 msgid "field width \"%s\" too complex for a bitfield"
 msgstr ""
 
-#: config/tc-cr16.c:181 read.c:4362
+#: config/tc-cr16.c:181 read.c:4365
 #, c-format
 msgid "field width %lu too big to fit in %d bytes: truncated to %d bits"
 msgstr ""
 
-#: config/tc-cr16.c:203 read.c:4384
+#: config/tc-cr16.c:203 read.c:4387
 #, c-format
 msgid "field value \"%s\" too complex for a bitfield"
 msgstr ""
@@ -3667,7 +3671,7 @@
 msgstr ""
 
 #: config/tc-cr16.c:570 config/tc-crx.c:344 config/tc-mn10200.c:768
-#: write.c:976
+#: write.c:985
 #, c-format
 msgid "can't resolve `%s' {%s section} - `%s' {%s section}"
 msgstr ""
@@ -3677,7 +3681,7 @@
 msgid "internal error: reloc %d (`%s') not supported by object file format"
 msgstr ""
 
-#: config/tc-cr16.c:695 config/tc-i386.c:8187 config/tc-s390.c:1799
+#: config/tc-cr16.c:695 config/tc-i386.c:8188 config/tc-s390.c:1799
 msgid "GOT already in symbol table"
 msgstr ""
 
@@ -3878,8 +3882,8 @@
 
 #: config/tc-cr16.c:2562 config/tc-cris.c:1538 config/tc-cris.c:1546
 #: config/tc-crx.c:1988 config/tc-dlx.c:686 config/tc-hppa.c:3243
-#: config/tc-hppa.c:3250 config/tc-i860.c:490 config/tc-i860.c:507
-#: config/tc-i860.c:987 config/tc-sparc.c:1410 config/tc-sparc.c:1418
+#: config/tc-hppa.c:3250 config/tc-i860.c:491 config/tc-i860.c:508
+#: config/tc-i860.c:988 config/tc-sparc.c:1410 config/tc-sparc.c:1418
 #, c-format
 msgid "Unknown opcode: `%s'"
 msgstr ""
@@ -4275,7 +4279,7 @@
 msgid "HI/LO registers should be specified without additional registers"
 msgstr ""
 
-#: config/tc-d10v.c:216
+#: config/tc-d10v.c:218
 #, c-format
 msgid ""
 "D10V options:\n"
@@ -4286,138 +4290,138 @@
 "                        instructions together.\n"
 msgstr ""
 
-#: config/tc-d10v.c:573
+#: config/tc-d10v.c:575
 msgid "operand is not an immediate"
 msgstr ""
 
-#: config/tc-d10v.c:591
+#: config/tc-d10v.c:593
 #, c-format
 msgid "operand out of range: %lu"
 msgstr ""
 
-#: config/tc-d10v.c:649
+#: config/tc-d10v.c:653
 msgid "Instruction must be executed in parallel with another instruction."
 msgstr ""
 
-#: config/tc-d10v.c:703 config/tc-d10v.c:711
+#: config/tc-d10v.c:707 config/tc-d10v.c:715
 #, c-format
 msgid "packing conflict: %s must dispatch sequentially"
 msgstr ""
 
-#: config/tc-d10v.c:810
+#: config/tc-d10v.c:814
 #, c-format
 msgid "resource conflict (R%d)"
 msgstr ""
 
-#: config/tc-d10v.c:813
+#: config/tc-d10v.c:817
 #, c-format
 msgid "resource conflict (A%d)"
 msgstr ""
 
-#: config/tc-d10v.c:815
+#: config/tc-d10v.c:819
 msgid "resource conflict (PSW)"
 msgstr ""
 
-#: config/tc-d10v.c:817
+#: config/tc-d10v.c:821
 msgid "resource conflict (C flag)"
 msgstr ""
 
-#: config/tc-d10v.c:819
+#: config/tc-d10v.c:823
 msgid "resource conflict (F flag)"
 msgstr ""
 
-#: config/tc-d10v.c:969
+#: config/tc-d10v.c:973
 msgid "Instruction must be executed in parallel"
 msgstr ""
 
-#: config/tc-d10v.c:972
+#: config/tc-d10v.c:976
 msgid "Long instructions may not be combined."
 msgstr ""
 
-#: config/tc-d10v.c:1005
+#: config/tc-d10v.c:1009
 msgid "One of these instructions may not be executed in parallel."
 msgstr ""
 
-#: config/tc-d10v.c:1009 config/tc-d30v.c:1036
+#: config/tc-d10v.c:1013 config/tc-d30v.c:1039
 msgid "Two IU instructions may not be executed in parallel"
 msgstr ""
 
-#: config/tc-d10v.c:1011 config/tc-d10v.c:1019 config/tc-d10v.c:1033
-#: config/tc-d10v.c:1048 config/tc-d30v.c:1037 config/tc-d30v.c:1046
+#: config/tc-d10v.c:1015 config/tc-d10v.c:1023 config/tc-d10v.c:1037
+#: config/tc-d10v.c:1052 config/tc-d30v.c:1040 config/tc-d30v.c:1049
 msgid "Swapping instruction order"
 msgstr ""
 
-#: config/tc-d10v.c:1017 config/tc-d30v.c:1043
+#: config/tc-d10v.c:1021 config/tc-d30v.c:1046
 msgid "Two MU instructions may not be executed in parallel"
 msgstr ""
 
-#: config/tc-d10v.c:1037 config/tc-d30v.c:1063
+#: config/tc-d10v.c:1041 config/tc-d30v.c:1066
 msgid "IU instruction may not be in the left container"
 msgstr ""
 
-#: config/tc-d10v.c:1039 config/tc-d10v.c:1054
+#: config/tc-d10v.c:1043 config/tc-d10v.c:1058
 msgid ""
 "Instruction in R container is squashed by flow control instruction in L "
 "container."
 msgstr ""
 
-#: config/tc-d10v.c:1052 config/tc-d30v.c:1074
+#: config/tc-d10v.c:1056 config/tc-d30v.c:1077
 msgid "MU instruction may not be in the right container"
 msgstr ""
 
-#: config/tc-d10v.c:1058 config/tc-d30v.c:1086
+#: config/tc-d10v.c:1062 config/tc-d30v.c:1089
 msgid "unknown execution type passed to write_2_short()"
 msgstr ""
 
-#: config/tc-d10v.c:1186 config/tc-d10v.c:1359
+#: config/tc-d10v.c:1191 config/tc-d10v.c:1364
 msgid "bad opcode or operands"
 msgstr ""
 
-#: config/tc-d10v.c:1261
+#: config/tc-d10v.c:1266
 msgid "value out of range"
 msgstr ""
 
-#: config/tc-d10v.c:1335
+#: config/tc-d10v.c:1340
 msgid "illegal operand - register name found where none expected"
 msgstr ""
 
-#: config/tc-d10v.c:1370
+#: config/tc-d10v.c:1375
 msgid "Register number must be EVEN"
 msgstr ""
 
-#: config/tc-d10v.c:1373
+#: config/tc-d10v.c:1378
 msgid "Unsupported use of sp"
 msgstr ""
 
-#: config/tc-d10v.c:1392
+#: config/tc-d10v.c:1397
 #, c-format
 msgid "cr%ld is a reserved control register"
 msgstr ""
 
-#: config/tc-d10v.c:1565
+#: config/tc-d10v.c:1570
 #, c-format
 msgid "line %d: rep or repi must include at least 4 instructions"
 msgstr ""
 
-#: config/tc-d10v.c:1745
+#: config/tc-d10v.c:1759
 msgid "can't find previous opcode "
 msgstr ""
 
-#: config/tc-d10v.c:1757
+#: config/tc-d10v.c:1771
 #, c-format
 msgid "could not assemble: %s"
 msgstr ""
 
-#: config/tc-d10v.c:1772 config/tc-d10v.c:1794 config/tc-d30v.c:1742
+#: config/tc-d10v.c:1786 config/tc-d10v.c:1808 config/tc-d30v.c:1747
 msgid "Unable to mix instructions as specified"
 msgstr ""
 
-#: config/tc-d30v.c:149
+#: config/tc-d30v.c:150
 #, c-format
 msgid "Register name %s conflicts with symbol of the same name"
 msgstr ""
 
-#: config/tc-d30v.c:239
+#: config/tc-d30v.c:240
 #, c-format
 msgid ""
 "\n"
@@ -4431,131 +4435,131 @@
 "-C                      Opposite of -C.  -c is the default.\n"
 msgstr ""
 
-#: config/tc-d30v.c:367
+#: config/tc-d30v.c:368
 msgid "unexpected 12-bit reloc type"
 msgstr ""
 
-#: config/tc-d30v.c:374
+#: config/tc-d30v.c:375
 msgid "unexpected 18-bit reloc type"
 msgstr ""
 
-#: config/tc-d30v.c:624
+#: config/tc-d30v.c:627
 #, c-format
 msgid "%s NOP inserted"
 msgstr ""
 
-#: config/tc-d30v.c:625
+#: config/tc-d30v.c:628
 msgid "sequential"
 msgstr ""
 
-#: config/tc-d30v.c:625
+#: config/tc-d30v.c:628
 msgid "parallel"
 msgstr ""
 
-#: config/tc-d30v.c:1032
+#: config/tc-d30v.c:1035
 msgid "Instructions may not be executed in parallel"
 msgstr ""
 
-#: config/tc-d30v.c:1045
+#: config/tc-d30v.c:1048
 #, c-format
 msgid "Executing %s in IU may not work"
 msgstr ""
 
-#: config/tc-d30v.c:1052
+#: config/tc-d30v.c:1055
 #, c-format
 msgid "Executing %s in IU may not work in parallel execution"
 msgstr ""
 
-#: config/tc-d30v.c:1065
+#: config/tc-d30v.c:1068
 #, c-format
 msgid "special left instruction `%s' kills instruction `%s' in right container"
 msgstr ""
 
-#: config/tc-d30v.c:1076
+#: config/tc-d30v.c:1079
 #, c-format
 msgid "Executing %s in reverse serial with %s may not work"
 msgstr ""
 
-#: config/tc-d30v.c:1079
+#: config/tc-d30v.c:1082
 #, c-format
 msgid "Executing %s in IU in reverse serial may not work"
 msgstr ""
 
-#: config/tc-d30v.c:1268
+#: config/tc-d30v.c:1272
 msgid "Odd numbered register used as target of multi-register instruction"
 msgstr ""
 
-#: config/tc-d30v.c:1332 config/tc-d30v.c:1367
+#: config/tc-d30v.c:1336 config/tc-d30v.c:1371
 #, c-format
 msgid "unknown condition code: %s"
 msgstr ""
 
-#: config/tc-d30v.c:1360
+#: config/tc-d30v.c:1364
 #, c-format
 msgid "cmpu doesn't support condition code %s"
 msgstr ""
 
-#: config/tc-d30v.c:1395
+#: config/tc-d30v.c:1399
 #, c-format
 msgid "unknown opcode: %s"
 msgstr ""
 
-#: config/tc-d30v.c:1406
+#: config/tc-d30v.c:1410
 #, c-format
 msgid "operands for opcode `%s' do not match any valid format"
 msgstr ""
 
-#: config/tc-d30v.c:1621 config/tc-d30v.c:1638
+#: config/tc-d30v.c:1625 config/tc-d30v.c:1642
 msgid "Cannot assemble instruction"
 msgstr ""
 
-#: config/tc-d30v.c:1623
+#: config/tc-d30v.c:1627
 msgid "First opcode is long.  Unable to mix instructions as specified."
 msgstr ""
 
-#: config/tc-d30v.c:1692
+#: config/tc-d30v.c:1697
 msgid "word of NOPs added between word multiply and load"
 msgstr ""
 
-#: config/tc-d30v.c:1694
+#: config/tc-d30v.c:1699
 msgid "word of NOPs added between word multiply and 16-bit multiply"
 msgstr ""
 
-#: config/tc-d30v.c:1726
+#: config/tc-d30v.c:1731
 msgid "Instruction uses long version, so it cannot be mixed as specified"
 msgstr ""
 
-#: config/tc-d30v.c:1853
+#: config/tc-d30v.c:1858
 #, c-format
 msgid "value too large to fit in %d bits"
 msgstr ""
 
-#: config/tc-d30v.c:1914
+#: config/tc-d30v.c:1921
 #, c-format
 msgid "line %d: unable to place address of symbol '%s' into a byte"
 msgstr ""
 
-#: config/tc-d30v.c:1917
+#: config/tc-d30v.c:1924
 #, c-format
 msgid "line %d: unable to place value %lx into a byte"
 msgstr ""
 
-#: config/tc-d30v.c:1925
+#: config/tc-d30v.c:1932
 #, c-format
 msgid "line %d: unable to place address of symbol '%s' into a short"
 msgstr ""
 
-#: config/tc-d30v.c:1928
+#: config/tc-d30v.c:1935
 #, c-format
 msgid "line %d: unable to place value %lx into a short"
 msgstr ""
 
-#: config/tc-d30v.c:1936
+#: config/tc-d30v.c:1943
 #, c-format
 msgid "line %d: unable to place address of symbol '%s' into a quad"
 msgstr ""
 
-#: config/tc-d30v.c:2044
+#: config/tc-d30v.c:2051
 #, c-format
 msgid "Alignment too large: %d assumed"
 msgstr ""
@@ -4568,14 +4572,14 @@
 msgid ".endfunc missing for previous .proc"
 msgstr ""
 
-#: config/tc-dlx.c:291 config/tc-i860.c:227 config/tc-mips.c:1903
+#: config/tc-dlx.c:291 config/tc-i860.c:227 config/tc-mips.c:1907
 #, c-format
 msgid "internal error: can't hash `%s': %s\n"
 msgstr ""
 
 #. Probably a memory allocation problem?  Give up now.
-#: config/tc-dlx.c:298 config/tc-hppa.c:8287 config/tc-mips.c:1906
-#: config/tc-mips.c:1958 config/tc-or32.c:211 config/tc-sparc.c:860
+#: config/tc-dlx.c:298 config/tc-hppa.c:8287 config/tc-mips.c:1910
+#: config/tc-mips.c:1962 config/tc-or32.c:211 config/tc-sparc.c:860
 msgid "Broken assembler.  No assembly attempted."
 msgstr ""
 
@@ -4636,12 +4640,12 @@
 msgid "Invalid operands"
 msgstr ""
 
-#: config/tc-dlx.c:1120 config/tc-or32.c:775
+#: config/tc-dlx.c:1122 config/tc-or32.c:775
 #, c-format
 msgid "label \"$%d\" redefined"
 msgstr ""
 
-#: config/tc-dlx.c:1158
+#: config/tc-dlx.c:1160
 msgid "Invalid expression after # number\n"
 msgstr ""
 
@@ -4655,147 +4659,147 @@
 msgid "Instruction %s not allowed in a delay slot."
 msgstr ""
 
-#: config/tc-frv.c:404
+#: config/tc-frv.c:405
 #, c-format
 msgid "Unknown cpu -mcpu=%s"
 msgstr ""
 
-#: config/tc-frv.c:457
+#: config/tc-frv.c:458
 #, c-format
 msgid "FRV specific command line options:\n"
 msgstr ""
 
-#: config/tc-frv.c:458
+#: config/tc-frv.c:459
 #, c-format
 msgid "-G n            Put data <= n bytes in the small data area\n"
 msgstr ""
 
-#: config/tc-frv.c:459
+#: config/tc-frv.c:460
 #, c-format
 msgid "-mgpr-32        Mark generated file as only using 32 GPRs\n"
 msgstr ""
 
-#: config/tc-frv.c:460
+#: config/tc-frv.c:461
 #, c-format
 msgid "-mgpr-64        Mark generated file as using all 64 GPRs\n"
 msgstr ""
 
-#: config/tc-frv.c:461
+#: config/tc-frv.c:462
 #, c-format
 msgid "-mfpr-32        Mark generated file as only using 32 FPRs\n"
 msgstr ""
 
-#: config/tc-frv.c:462
+#: config/tc-frv.c:463
 #, c-format
 msgid "-mfpr-64        Mark generated file as using all 64 FPRs\n"
 msgstr ""
 
-#: config/tc-frv.c:463
+#: config/tc-frv.c:464
 #, c-format
 msgid "-msoft-float    Mark generated file as using software FP\n"
 msgstr ""
 
-#: config/tc-frv.c:464
+#: config/tc-frv.c:465
 #, c-format
 msgid "-mdword         Mark generated file as using a 8-byte stack alignment\n"
 msgstr ""
 
-#: config/tc-frv.c:465
+#: config/tc-frv.c:466
 #, c-format
 msgid "-mno-dword      Mark generated file as using a 4-byte stack alignment\n"
 msgstr ""
 
-#: config/tc-frv.c:466
+#: config/tc-frv.c:467
 #, c-format
 msgid ""
 "-mdouble        Mark generated file as using double precision FP insns\n"
 msgstr ""
 
-#: config/tc-frv.c:467
+#: config/tc-frv.c:468
 #, c-format
 msgid "-mmedia         Mark generated file as using media insns\n"
 msgstr ""
 
-#: config/tc-frv.c:468
+#: config/tc-frv.c:469
 #, c-format
 msgid ""
 "-mmuladd        Mark generated file as using multiply add/subtract insns\n"
 msgstr ""
 
-#: config/tc-frv.c:469
+#: config/tc-frv.c:470
 #, c-format
 msgid "-mpack          Allow instructions to be packed\n"
 msgstr ""
 
-#: config/tc-frv.c:470
+#: config/tc-frv.c:471
 #, c-format
 msgid "-mno-pack       Do not allow instructions to be packed\n"
 msgstr ""
 
-#: config/tc-frv.c:471
+#: config/tc-frv.c:472
 #, c-format
 msgid ""
 "-mpic           Mark generated file as using small position independent "
 "code\n"
 msgstr ""
 
-#: config/tc-frv.c:472
+#: config/tc-frv.c:473
 #, c-format
 msgid ""
 "-mPIC           Mark generated file as using large position independent "
 "code\n"
 msgstr ""
 
-#: config/tc-frv.c:473
+#: config/tc-frv.c:474
 #, c-format
 msgid ""
 "-mlibrary-pic   Mark generated file as using position indepedent code for "
 "libraries\n"
 msgstr ""
 
-#: config/tc-frv.c:474
+#: config/tc-frv.c:475
 #, c-format
 msgid "-mfdpic         Assemble for the FDPIC ABI\n"
 msgstr ""
 
-#: config/tc-frv.c:475
+#: config/tc-frv.c:476
 #, c-format
 msgid "-mnopic         Disable -mpic, -mPIC, -mlibrary-pic and -mfdpic\n"
 msgstr ""
 
-#: config/tc-frv.c:476
+#: config/tc-frv.c:477
 #, c-format
 msgid "-mcpu={fr500|fr550|fr400|fr405|fr450|fr300|frv|simple|tomcat}\n"
 msgstr ""
 
-#: config/tc-frv.c:477
+#: config/tc-frv.c:478
 #, c-format
 msgid "                Record the cpu type\n"
 msgstr ""
 
-#: config/tc-frv.c:478
+#: config/tc-frv.c:479
 #, c-format
 msgid "-mtomcat-stats  Print out stats for tomcat workarounds\n"
 msgstr ""
 
-#: config/tc-frv.c:479
+#: config/tc-frv.c:480
 #, c-format
 msgid "-mtomcat-debug  Debug tomcat workarounds\n"
 msgstr ""
 
-#: config/tc-frv.c:1163
+#: config/tc-frv.c:1164
 msgid "VLIW packing used for -mno-pack"
 msgstr ""
 
-#: config/tc-frv.c:1173
+#: config/tc-frv.c:1174
 msgid "Instruction not supported by this architecture"
 msgstr ""
 
-#: config/tc-frv.c:1183
+#: config/tc-frv.c:1184
 msgid "VLIW packing constraint violation"
 msgstr ""
 
-#: config/tc-frv.c:1774
+#: config/tc-frv.c:1775
 #, c-format
 msgid "Relocation %s is not safe for %s"
 msgstr ""
@@ -4923,7 +4927,7 @@
 #. get here only if the trailing trash starts with a comma.
 #. Types or values of args don't match.
 #: config/tc-h8300.c:1770 config/tc-mmix.c:472 config/tc-mmix.c:484
-#: config/tc-mmix.c:2500 config/tc-mmix.c:2524 config/tc-mmix.c:2797
+#: config/tc-mmix.c:2505 config/tc-mmix.c:2529 config/tc-mmix.c:2802
 #: config/tc-or32.c:529
 msgid "invalid operands"
 msgstr ""
@@ -4932,7 +4936,7 @@
 msgid "operand/size mis-match"
 msgstr ""
 
-#: config/tc-h8300.c:1902 config/tc-mips.c:10156 config/tc-sh.c:2925
+#: config/tc-h8300.c:1902 config/tc-mips.c:10160 config/tc-sh.c:2925
 #: config/tc-sh64.c:2795 config/tc-z8k.c:1226
 msgid "unknown opcode"
 msgstr ""
@@ -4965,7 +4969,7 @@
 msgstr ""
 
 #: config/tc-h8300.c:2181 config/tc-mcore.c:2199 config/tc-microblaze.c:2295
-#: config/tc-pj.c:488 config/tc-sh.c:4377 config/tc-xc16x.c:308
+#: config/tc-pj.c:489 config/tc-sh.c:4377 config/tc-xc16x.c:308
 #, c-format
 msgid "Cannot represent relocation type %s"
 msgstr ""
@@ -5396,7 +5400,7 @@
 msgid "internal error: losing opcode: `%s' \"%s\"\n"
 msgstr ""
 
-#: config/tc-i370.c:419 config/tc-ppc.c:1141 config/tc-s390.c:404
+#: config/tc-i370.c:419 config/tc-ppc.c:1143 config/tc-s390.c:404
 #: config/tc-s390.c:411
 #, c-format
 msgid "invalid switch -m%s"
@@ -5412,11 +5416,11 @@
 msgid "Internal assembler error for macro %s"
 msgstr ""
 
-#: config/tc-i370.c:630 config/tc-ppc.c:1839
+#: config/tc-i370.c:630 config/tc-ppc.c:1844
 msgid "identifier+constant@got means identifier@got+constant"
 msgstr ""
 
-#: config/tc-i370.c:684 config/tc-m68k.c:8030 config/tc-ppc.c:1928
+#: config/tc-i370.c:684 config/tc-m68k.c:8030 config/tc-ppc.c:1933
 #, c-format
 msgid "%s relocations do not fit in %d bytes\n"
 msgstr ""
@@ -5439,28 +5443,28 @@
 msgstr ""
 
 #: config/tc-i370.c:1049 config/tc-m32r.c:1493 config/tc-microblaze.c:179
-#: config/tc-ppc.c:1992 config/tc-ppc.c:4596
+#: config/tc-ppc.c:1997 config/tc-ppc.c:4653
 msgid "Expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
 #: config/tc-i370.c:1072 config/tc-m32r.c:1517 config/tc-microblaze.c:201
-#: config/tc-ppc.c:2014 config/tc-ppc.c:3215 config/tc-ppc.c:4620
+#: config/tc-ppc.c:2019 config/tc-ppc.c:3220 config/tc-ppc.c:4677
 msgid "ignoring bad alignment"
 msgstr ""
 
 #: config/tc-i370.c:1083 config/tc-m32r.c:1544 config/tc-microblaze.c:212
-#: config/tc-ppc.c:2025 config/tc-ppc.c:4632
+#: config/tc-ppc.c:2030 config/tc-ppc.c:4689
 #, c-format
 msgid "Ignoring attempt to re-define symbol `%s'."
 msgstr ""
 
-#: config/tc-i370.c:1091 config/tc-microblaze.c:220 config/tc-ppc.c:2033
+#: config/tc-i370.c:1091 config/tc-microblaze.c:220 config/tc-ppc.c:2038
 #, c-format
 msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
 #: config/tc-i370.c:1110 config/tc-m32r.c:1529 config/tc-microblaze.c:238
-#: config/tc-ppc.c:2051 config/tc-v850.c:322
+#: config/tc-ppc.c:2056 config/tc-v850.c:322
 msgid "Common alignment not a power of 2"
 msgstr ""
 
@@ -5513,12 +5517,12 @@
 msgid "droping register %d in section %s previously used in section %s"
 msgstr ""
 
-#: config/tc-i370.c:1848 config/tc-ppc.c:3030
+#: config/tc-i370.c:1848 config/tc-ppc.c:3035
 msgid "wrong number of operands"
 msgstr ""
 
 #: config/tc-i370.c:1930 config/tc-mn10200.c:898 config/tc-mn10300.c:1249
-#: config/tc-ppc.c:2349 config/tc-s390.c:1544 config/tc-v850.c:1604
+#: config/tc-ppc.c:2354 config/tc-s390.c:1544 config/tc-v850.c:1604
 #, c-format
 msgid "Unrecognized opcode: `%s'"
 msgstr ""
@@ -6099,34 +6103,34 @@
 msgid "  -mold-gcc               support old (<= 2.8.1) versions of gcc\n"
 msgstr ""
 
-#: config/tc-i386.c:8113
+#: config/tc-i386.c:8114
 msgid "Intel L1OM is 64bit only"
 msgstr ""
 
-#: config/tc-i386.c:8336
+#: config/tc-i386.c:8337
 #, c-format
 msgid "can not do %d byte pc-relative relocation"
 msgstr ""
 
-#: config/tc-i386.c:8354 config/tc-maxq.c:247
+#: config/tc-i386.c:8355 config/tc-maxq.c:247
 #, c-format
 msgid "can not do %d byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:8437 config/tc-maxq.c:274 config/tc-s390.c:2234
+#: config/tc-i386.c:8438 config/tc-maxq.c:274 config/tc-s390.c:2234
 #, c-format
 msgid "cannot represent relocation type %s"
 msgstr ""
 
-#: config/tc-i386.c:8544
+#: config/tc-i386.c:8545
 msgid "Bad .section directive: want a,l,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-i386.c:8547
+#: config/tc-i386.c:8548
 msgid "Bad .section directive: want a,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-i386.c:8566
+#: config/tc-i386.c:8567
 msgid ".largecomm supported only in 64bit mode, producing .comm"
 msgstr ""
 
@@ -6150,7 +6154,7 @@
 msgid "Defective assembler.  No assembly attempted."
 msgstr ""
 
-#: config/tc-i860.c:393 config/tc-i860.c:938 config/tc-m68k.c:3871
+#: config/tc-i860.c:393 config/tc-i860.c:939 config/tc-m68k.c:3871
 #: config/tc-m68k.c:3903 config/tc-sparc.c:2697
 msgid "failed sanity check."
 msgstr ""
@@ -6170,30 +6174,30 @@
 msgid "An instruction was expanded (%s)"
 msgstr ""
 
-#: config/tc-i860.c:674
+#: config/tc-i860.c:675
 msgid "Pipelined instruction: fsrc1 = fdest"
 msgstr ""
 
-#: config/tc-i860.c:877 config/tc-i860.c:884 config/tc-i860.c:891
+#: config/tc-i860.c:878 config/tc-i860.c:885 config/tc-i860.c:892
 msgid "Assembler does not yet support PIC"
 msgstr ""
 
-#: config/tc-i860.c:955
+#: config/tc-i860.c:956
 #, c-format
 msgid "Illegal operands for %s"
 msgstr ""
 
-#: config/tc-i860.c:972
+#: config/tc-i860.c:973
 #, c-format
 msgid "'d.%s' must be 8-byte aligned"
 msgstr ""
 
-#: config/tc-i860.c:980
+#: config/tc-i860.c:981
 #, c-format
 msgid "Prefix 'd.' invalid for instruction `%s'"
 msgstr ""
 
-#: config/tc-i860.c:1133
+#: config/tc-i860.c:1134
 #, c-format
 msgid ""
 "  -EL\t\t\t  generate code for little endian mode (default)\n"
@@ -6204,42 +6208,42 @@
 msgstr ""
 
 #. SVR4 compatibility flags.
-#: config/tc-i860.c:1141
+#: config/tc-i860.c:1142
 #, c-format
 msgid ""
 "  -V\t\t\t  print assembler version number\n"
 "  -Qy, -Qn\t\t  ignored\n"
 msgstr ""
 
-#: config/tc-i860.c:1204
+#: config/tc-i860.c:1205
 msgid "This immediate requires 0 MOD 2 alignment"
 msgstr ""
 
-#: config/tc-i860.c:1207
+#: config/tc-i860.c:1208
 msgid "This immediate requires 0 MOD 4 alignment"
 msgstr ""
 
-#: config/tc-i860.c:1210
+#: config/tc-i860.c:1211
 msgid "This immediate requires 0 MOD 8 alignment"
 msgstr ""
 
-#: config/tc-i860.c:1213
+#: config/tc-i860.c:1214
 msgid "This immediate requires 0 MOD 16 alignment"
 msgstr ""
 
-#: config/tc-i860.c:1308
+#: config/tc-i860.c:1309
 msgid "5-bit immediate too large"
 msgstr ""
 
-#: config/tc-i860.c:1311
+#: config/tc-i860.c:1312
 msgid "5-bit field must be absolute"
 msgstr ""
 
-#: config/tc-i860.c:1356 config/tc-i860.c:1379
+#: config/tc-i860.c:1357 config/tc-i860.c:1380
 msgid "A branch offset requires 0 MOD 4 alignment"
 msgstr ""
 
-#: config/tc-i860.c:1400
+#: config/tc-i860.c:1401
 #, c-format
 msgid "Unrecognized fix-up (0x%08lx)"
 msgstr ""
@@ -6406,7 +6410,7 @@
 msgid "Unwind directive not followed by an instruction."
 msgstr ""
 
-#: config/tc-ia64.c:1006 config/tc-ia64.c:7396
+#: config/tc-ia64.c:1006 config/tc-ia64.c:7430
 msgid "qualifying predicate not followed by instruction"
 msgstr ""
 
@@ -6742,7 +6746,7 @@
 msgid "Expected '['"
 msgstr ""
 
-#: config/tc-ia64.c:4503 config/tc-ia64.c:7531
+#: config/tc-ia64.c:4503 config/tc-ia64.c:7565
 msgid "Expected ']'"
 msgstr ""
 
@@ -6809,7 +6813,7 @@
 msgid "Bad register range"
 msgstr ""
 
-#: config/tc-ia64.c:4990 config/tc-ia64.c:7476
+#: config/tc-ia64.c:4990 config/tc-ia64.c:7510
 msgid "Predicate register expected"
 msgstr ""
 
@@ -6850,132 +6854,132 @@
 msgid "lower 16 bits of mask ignored"
 msgstr ""
 
-#: config/tc-ia64.c:5903
+#: config/tc-ia64.c:5935
 msgid "Expected separator `='"
 msgstr ""
 
-#: config/tc-ia64.c:5936
+#: config/tc-ia64.c:5969
 msgid "Duplicate equal sign (=) in instruction"
 msgstr ""
 
-#: config/tc-ia64.c:5943
+#: config/tc-ia64.c:5976
 #, c-format
 msgid "Illegal operand separator `%c'"
 msgstr ""
 
-#: config/tc-ia64.c:6057
+#: config/tc-ia64.c:6091
 #, c-format
 msgid "Operand %u of `%s' should be %s"
 msgstr ""
 
-#: config/tc-ia64.c:6061
+#: config/tc-ia64.c:6095
 msgid "Wrong number of output operands"
 msgstr ""
 
-#: config/tc-ia64.c:6063
+#: config/tc-ia64.c:6097
 msgid "Wrong number of input operands"
 msgstr ""
 
-#: config/tc-ia64.c:6065
+#: config/tc-ia64.c:6099
 msgid "Operand mismatch"
 msgstr ""
 
-#: config/tc-ia64.c:6147
-#, c-format
-msgid "Invalid use of `%c%d' as output operand"
-msgstr ""
-
-#: config/tc-ia64.c:6150
-#, c-format
-msgid "Invalid use of `r%d' as base update address operand"
-msgstr ""
-
-#: config/tc-ia64.c:6174
-#, c-format
-msgid "Invalid duplicate use of `%c%d'"
-msgstr ""
-
 #: config/tc-ia64.c:6181
 #, c-format
+msgid "Invalid use of `%c%d' as output operand"
+msgstr ""
+
+#: config/tc-ia64.c:6184
+#, c-format
+msgid "Invalid use of `r%d' as base update address operand"
+msgstr ""
+
+#: config/tc-ia64.c:6208
+#, c-format
+msgid "Invalid duplicate use of `%c%d'"
+msgstr ""
+
+#: config/tc-ia64.c:6215
+#, c-format
 msgid "Invalid simultaneous use of `f%d' and `f%d'"
 msgstr ""
 
-#: config/tc-ia64.c:6187
+#: config/tc-ia64.c:6221
 #, c-format
 msgid "Dangerous simultaneous use of `f%d' and `f%d'"
 msgstr ""
 
-#: config/tc-ia64.c:6231
+#: config/tc-ia64.c:6265
 msgid "Value truncated to 62 bits"
 msgstr ""
 
-#: config/tc-ia64.c:6294
+#: config/tc-ia64.c:6328
 #, c-format
 msgid "Bad operand value: %s"
 msgstr ""
 
 #. Give an error if a frag containing code is not aligned to a 16 byte
 #. boundary.
-#: config/tc-ia64.c:6369 config/tc-ia64.h:174
+#: config/tc-ia64.c:6403 config/tc-ia64.h:174
 msgid "instruction address is not a multiple of 16"
 msgstr ""
 
-#: config/tc-ia64.c:6437
+#: config/tc-ia64.c:6471
 #, c-format
 msgid "`%s' must be last in bundle"
 msgstr ""
 
-#: config/tc-ia64.c:6469
+#: config/tc-ia64.c:6503
 #, c-format
 msgid "Internal error: don't know how to force %s to end of instruction group"
 msgstr ""
 
-#: config/tc-ia64.c:6482
+#: config/tc-ia64.c:6516
 #, c-format
 msgid "`%s' must be last in instruction group"
 msgstr ""
 
-#: config/tc-ia64.c:6512
+#: config/tc-ia64.c:6546
 msgid "Label must be first in a bundle"
 msgstr ""
 
-#: config/tc-ia64.c:6589
+#: config/tc-ia64.c:6623
 msgid "hint in B unit may be treated as nop"
 msgstr ""
 
-#: config/tc-ia64.c:6600
+#: config/tc-ia64.c:6634
 msgid "hint in B unit can't be used"
 msgstr ""
 
-#: config/tc-ia64.c:6614
+#: config/tc-ia64.c:6648
 msgid "emit_one_bundle: unexpected dynamic op"
 msgstr ""
 
-#: config/tc-ia64.c:6737
+#: config/tc-ia64.c:6771
 #, c-format
 msgid "`%s' does not fit into %s template"
 msgstr ""
 
-#: config/tc-ia64.c:6752
+#: config/tc-ia64.c:6786
 #, c-format
 msgid "`%s' does not fit into bundle"
 msgstr ""
 
-#: config/tc-ia64.c:6764
+#: config/tc-ia64.c:6798
 #, c-format
 msgid "`%s' can't go in %s of %s template"
 msgstr ""
 
-#: config/tc-ia64.c:6770
+#: config/tc-ia64.c:6804
 msgid "Missing '}' at end of file"
 msgstr ""
 
-#: config/tc-ia64.c:6917
+#: config/tc-ia64.c:6951
 #, c-format
 msgid "Unrecognized option '-x%s'"
 msgstr ""
 
-#: config/tc-ia64.c:6944
+#: config/tc-ia64.c:6978
 msgid ""
 "IA-64 options:\n"
 "  --mconstant-gp\t  mark output file as using the constant-GP model\n"
@@ -7001,230 +7005,230 @@
 "\t\t\t  dependency violation checking\n"
 msgstr ""
 
-#: config/tc-ia64.c:6974
+#: config/tc-ia64.c:7008
 msgid "--gstabs is not supported for ia64"
 msgstr ""
 
-#: config/tc-ia64.c:7206
+#: config/tc-ia64.c:7240
 #, c-format
 msgid "ia64.md_begin: can't hash `%s': %s"
 msgstr ""
 
-#: config/tc-ia64.c:7267
+#: config/tc-ia64.c:7301
 #, c-format
 msgid "Inserting \"%s\" into constant hash table failed: %s"
 msgstr ""
 
-#: config/tc-ia64.c:7279 config/tc-mips.c:1892
+#: config/tc-ia64.c:7313 config/tc-mips.c:1896
 msgid "Could not set architecture and machine"
 msgstr ""
 
-#: config/tc-ia64.c:7411
+#: config/tc-ia64.c:7445
 msgid "Explicit stops are ignored in auto mode"
 msgstr ""
 
-#: config/tc-ia64.c:7420
+#: config/tc-ia64.c:7454
 msgid "Found '{' when manual bundling is already turned on"
 msgstr ""
 
-#: config/tc-ia64.c:7433
+#: config/tc-ia64.c:7467
 msgid "Found '{' after explicit switch to automatic mode"
 msgstr ""
 
-#: config/tc-ia64.c:7439
+#: config/tc-ia64.c:7473
 msgid "Found '}' when manual bundling is off"
 msgstr ""
 
-#: config/tc-ia64.c:7466
+#: config/tc-ia64.c:7500
 msgid "Expected ')'"
 msgstr ""
 
-#: config/tc-ia64.c:7471
+#: config/tc-ia64.c:7505
 msgid "Qualifying predicate expected"
 msgstr ""
 
-#: config/tc-ia64.c:7490
+#: config/tc-ia64.c:7524
 msgid "Tag must come before qualifying predicate."
 msgstr ""
 
-#: config/tc-ia64.c:7520
+#: config/tc-ia64.c:7554
 msgid "Expected ':'"
 msgstr ""
 
-#: config/tc-ia64.c:7536
+#: config/tc-ia64.c:7570
 msgid "Tag name expected"
 msgstr ""
 
-#: config/tc-ia64.c:7638
+#: config/tc-ia64.c:7672
 msgid "Rotating register index must be a non-negative constant"
 msgstr ""
 
-#: config/tc-ia64.c:7643
+#: config/tc-ia64.c:7677
 #, c-format
 msgid "Index out of range 0..%u"
 msgstr ""
 
-#: config/tc-ia64.c:7655
+#: config/tc-ia64.c:7689
 msgid "Indirect register index must be a general register"
 msgstr ""
 
-#: config/tc-ia64.c:7664
+#: config/tc-ia64.c:7698
 msgid "Index can only be applied to rotating or indirect registers"
 msgstr ""
 
-#: config/tc-ia64.c:7700 config/tc-xstormy16.c:146
+#: config/tc-ia64.c:7734 config/tc-xstormy16.c:146
 msgid "Expected '('"
 msgstr ""
 
-#: config/tc-ia64.c:7708 config/tc-pdp11.c:448 config/tc-pdp11.c:514
+#: config/tc-ia64.c:7742 config/tc-pdp11.c:448 config/tc-pdp11.c:514
 #: config/tc-pdp11.c:553 config/tc-xstormy16.c:155
 msgid "Missing ')'"
 msgstr ""
 
-#: config/tc-ia64.c:7717 config/tc-xstormy16.c:162
+#: config/tc-ia64.c:7751 config/tc-xstormy16.c:162
 msgid "Not a symbolic expression"
 msgstr ""
 
-#: config/tc-ia64.c:7722 config/tc-ia64.c:7736
+#: config/tc-ia64.c:7756 config/tc-ia64.c:7770
 msgid "Illegal combination of relocation functions"
 msgstr ""
 
-#: config/tc-ia64.c:7825
+#: config/tc-ia64.c:7859
 msgid "No current frame"
 msgstr ""
 
-#: config/tc-ia64.c:7827
+#: config/tc-ia64.c:7861
 #, c-format
 msgid "Register number out of range 0..%u"
 msgstr ""
 
-#: config/tc-ia64.c:7865
+#: config/tc-ia64.c:7899
 msgid "Standalone `#' is illegal"
 msgstr ""
 
-#: config/tc-ia64.c:7868
+#: config/tc-ia64.c:7902
 msgid "Redundant `#' suffix operators"
 msgstr ""
 
-#: config/tc-ia64.c:8026
+#: config/tc-ia64.c:8060
 #, c-format
 msgid "Unhandled dependency %s for %s (%s), note %d"
 msgstr ""
 
-#: config/tc-ia64.c:9321
+#: config/tc-ia64.c:9355
 #, c-format
 msgid "Unrecognized dependency specifier %d\n"
 msgstr ""
 
-#: config/tc-ia64.c:10197
+#: config/tc-ia64.c:10231
 msgid "Only the first path encountering the conflict is reported"
 msgstr ""
 
-#: config/tc-ia64.c:10199
+#: config/tc-ia64.c:10233
 msgid "This is the location of the conflicting usage"
 msgstr ""
 
-#: config/tc-ia64.c:10460
+#: config/tc-ia64.c:10494
 #, c-format
 msgid "Unknown opcode `%s'"
 msgstr ""
 
-#: config/tc-ia64.c:10538
+#: config/tc-ia64.c:10572
 #, c-format
 msgid "AR %d can only be accessed by %c-unit"
 msgstr ""
 
-#: config/tc-ia64.c:10550
+#: config/tc-ia64.c:10584
 msgid "hint.b may be treated as nop"
 msgstr ""
 
-#: config/tc-ia64.c:10553
+#: config/tc-ia64.c:10587
 msgid "hint.b shouldn't be used"
 msgstr ""
 
-#: config/tc-ia64.c:10592
+#: config/tc-ia64.c:10626
 #, c-format
 msgid "`%s' cannot be predicated"
 msgstr ""
 
-#: config/tc-ia64.c:10664
+#: config/tc-ia64.c:10698
 msgid "Closing bracket missing"
 msgstr ""
 
-#: config/tc-ia64.c:10673
+#: config/tc-ia64.c:10707
 msgid "Index must be a general register"
 msgstr ""
 
-#: config/tc-ia64.c:10838
+#: config/tc-ia64.c:10872
 #, c-format
 msgid "Unsupported fixup size %d"
 msgstr ""
 
 #. This should be an error, but since previously there wasn't any
 #. diagnostic here, don't make it fail because of this for now.
-#: config/tc-ia64.c:11105
+#: config/tc-ia64.c:11139
 #, c-format
 msgid "Cannot express %s%d%s relocation"
 msgstr ""
 
-#: config/tc-ia64.c:11124
+#: config/tc-ia64.c:11158
 msgid "No addend allowed in @fptr() relocation"
 msgstr ""
 
-#: config/tc-ia64.c:11163
+#: config/tc-ia64.c:11197
 msgid "integer operand out of range"
 msgstr ""
 
-#: config/tc-ia64.c:11230
+#: config/tc-ia64.c:11264
 #, c-format
 msgid "%s must have a constant value"
 msgstr ""
 
-#: config/tc-ia64.c:11284 config/tc-z8k.c:1372
+#: config/tc-ia64.c:11318 config/tc-z8k.c:1372
 #, c-format
 msgid "Cannot represent %s relocation in object file"
 msgstr ""
 
-#: config/tc-ia64.c:11395
+#: config/tc-ia64.c:11429
 msgid "Can't add stop bit to mark end of instruction group"
 msgstr ""
 
-#: config/tc-ia64.c:11495 config/tc-score.c:6110 read.c:1448 read.c:2442
+#: config/tc-ia64.c:11529 config/tc-score.c:6110 read.c:1448 read.c:2442
 #: read.c:3088 read.c:3429 read.c:3473
 msgid "expected symbol name"
 msgstr ""
 
-#: config/tc-ia64.c:11505 read.c:2452 read.c:3098 read.c:3457 stabs.c:468
+#: config/tc-ia64.c:11539 read.c:2452 read.c:3098 read.c:3457 stabs.c:468
 #, c-format
 msgid "expected comma after \"%s\""
 msgstr ""
 
-#: config/tc-ia64.c:11547
+#: config/tc-ia64.c:11581
 #, c-format
 msgid "`%s' is already the alias of %s `%s'"
 msgstr ""
 
-#: config/tc-ia64.c:11557
+#: config/tc-ia64.c:11591
 #, c-format
 msgid "%s `%s' already has an alias `%s'"
 msgstr ""
 
-#: config/tc-ia64.c:11568
+#: config/tc-ia64.c:11602
 #, c-format
 msgid "inserting \"%s\" into %s alias hash table failed: %s"
 msgstr ""
 
-#: config/tc-ia64.c:11576
+#: config/tc-ia64.c:11610
 #, c-format
 msgid "inserting \"%s\" into %s name hash table failed: %s"
 msgstr ""
 
-#: config/tc-ia64.c:11602
+#: config/tc-ia64.c:11636
 #, c-format
 msgid "symbol `%s' aliased to `%s' is not used"
 msgstr ""
 
-#: config/tc-ia64.c:11625
+#: config/tc-ia64.c:11659
 #, c-format
 msgid "section `%s' aliased to `%s' is not used"
 msgstr ""
@@ -7268,19 +7272,19 @@
 msgid "Unmatched high relocation"
 msgstr ""
 
-#: config/tc-iq2000.c:829 config/tc-mips.c:14935 config/tc-score.c:5820
+#: config/tc-iq2000.c:829 config/tc-mips.c:14943 config/tc-score.c:5820
 msgid ".end not in text section"
 msgstr ""
 
-#: config/tc-iq2000.c:833 config/tc-mips.c:14939 config/tc-score.c:5823
+#: config/tc-iq2000.c:833 config/tc-mips.c:14947 config/tc-score.c:5823
 msgid ".end directive without a preceding .ent directive."
 msgstr ""
 
-#: config/tc-iq2000.c:842 config/tc-mips.c:14948 config/tc-score.c:5831
+#: config/tc-iq2000.c:842 config/tc-mips.c:14956 config/tc-score.c:5831
 msgid ".end symbol does not match .ent symbol."
 msgstr ""
 
-#: config/tc-iq2000.c:845 config/tc-mips.c:14955 config/tc-score.c:5836
+#: config/tc-iq2000.c:845 config/tc-mips.c:14963 config/tc-score.c:5836
 msgid ".end directive missing or unknown symbol"
 msgstr ""
 
@@ -7288,7 +7292,7 @@
 msgid "Expected simple number."
 msgstr ""
 
-#: config/tc-iq2000.c:892 config/tc-mips.c:14860 config/tc-score.c:5671
+#: config/tc-iq2000.c:892 config/tc-mips.c:14868 config/tc-score.c:5671
 #, c-format
 msgid " *input_line_pointer == '%c' 0x%02x\n"
 msgstr ""
@@ -7297,7 +7301,7 @@
 msgid "Invalid number"
 msgstr ""
 
-#: config/tc-iq2000.c:929 config/tc-mips.c:15030 config/tc-score.c:5709
+#: config/tc-iq2000.c:929 config/tc-mips.c:15038 config/tc-score.c:5709
 msgid ".ent or .aent not in text section."
 msgstr ""
 
@@ -7940,7 +7944,7 @@
 msgstr ""
 
 #: config/tc-m68k.c:2481 config/tc-m68k.c:2487 config/tc-m68k.c:2493
-#: config/tc-mmix.c:2462 config/tc-mmix.c:2486
+#: config/tc-mmix.c:2467 config/tc-mmix.c:2491
 msgid "operand out of range"
 msgstr ""
 
@@ -8999,56 +9003,56 @@
 msgstr ""
 
 #: config/tc-microblaze.c:2364 config/tc-mn10300.c:1065 config/tc-sh.c:776
-#: config/tc-z80.c:671 read.c:4275
+#: config/tc-z80.c:671 read.c:4278
 #, c-format
 msgid "unsupported BFD relocation size %u"
 msgstr ""
 
 #. Prototypes for static functions.
-#: config/tc-mips.c:1042
+#: config/tc-mips.c:1046
 #, c-format
 msgid "internal Error, line %d, %s"
 msgstr ""
 
-#: config/tc-mips.c:1795 config/tc-mips.c:12826
+#: config/tc-mips.c:1799 config/tc-mips.c:12830
 #, c-format
 msgid "Unrecognized register name `%s'"
 msgstr ""
 
-#: config/tc-mips.c:1887
+#: config/tc-mips.c:1891
 msgid "-G may not be used in position-independent code"
 msgstr ""
 
-#: config/tc-mips.c:1934
+#: config/tc-mips.c:1938
 #, c-format
 msgid "internal: can't hash `%s': %s"
 msgstr ""
 
-#: config/tc-mips.c:1942
+#: config/tc-mips.c:1946
 #, c-format
 msgid "internal error: bad mips16 opcode: %s %s\n"
 msgstr ""
 
-#: config/tc-mips.c:2114
+#: config/tc-mips.c:2118
 #, c-format
 msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
 msgstr ""
 
-#: config/tc-mips.c:2890 config/tc-mips.c:14521
+#: config/tc-mips.c:2894 config/tc-mips.c:14529
 msgid "extended instruction in delay slot"
 msgstr ""
 
-#: config/tc-mips.c:2954 config/tc-mips.c:2961
+#: config/tc-mips.c:2958 config/tc-mips.c:2965
 #, c-format
 msgid "jump to misaligned address (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:2971 config/tc-mips.c:3742
+#: config/tc-mips.c:2975 config/tc-mips.c:3746
 #, c-format
 msgid "branch to misaligned address (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:2976 config/tc-mips.c:3745
+#: config/tc-mips.c:2980 config/tc-mips.c:3749
 #, c-format
 msgid "branch address range overflow (0x%lx)"
 msgstr ""
@@ -9056,704 +9060,704 @@
 #. To reproduce this failure try assembling gas/testsuites/
 #. gas/mips/mips16-intermix.s with a mips-ecoff targeted
 #. assembler.
-#: config/tc-mips.c:3003
+#: config/tc-mips.c:3007
 #, c-format
 msgid "Unsupported MIPS relocation number %d"
 msgstr ""
 
-#: config/tc-mips.c:3475
+#: config/tc-mips.c:3479
 msgid ""
 "Macro instruction expanded into multiple instructions in a branch delay slot"
 msgstr ""
 
-#: config/tc-mips.c:3478
+#: config/tc-mips.c:3482
 msgid "Macro instruction expanded into multiple instructions"
 msgstr ""
 
-#: config/tc-mips.c:4014 config/tc-mips.c:8012 config/tc-mips.c:8036
-#: config/tc-mips.c:8109 config/tc-mips.c:8132
+#: config/tc-mips.c:4018 config/tc-mips.c:8016 config/tc-mips.c:8040
+#: config/tc-mips.c:8113 config/tc-mips.c:8136
 msgid "operand overflow"
 msgstr ""
 
-#: config/tc-mips.c:4033 config/tc-mips.c:4633 config/tc-mips.c:7383
-#: config/tc-mips.c:8199
+#: config/tc-mips.c:4037 config/tc-mips.c:4637 config/tc-mips.c:7387
+#: config/tc-mips.c:8203
 msgid "Macro used $at after \".set noat\""
 msgstr ""
 
-#: config/tc-mips.c:4062
+#: config/tc-mips.c:4066
 msgid "unsupported large constant"
 msgstr ""
 
-#: config/tc-mips.c:4064
+#: config/tc-mips.c:4068
 #, c-format
 msgid "Instruction %s requires absolute expression"
 msgstr ""
 
-#: config/tc-mips.c:4197 config/tc-mips.c:6503 config/tc-mips.c:7079
+#: config/tc-mips.c:4201 config/tc-mips.c:6507 config/tc-mips.c:7083
 #, c-format
 msgid "Number (0x%s) larger than 32 bits"
 msgstr ""
 
-#: config/tc-mips.c:4217
+#: config/tc-mips.c:4221
 msgid "Number larger than 64 bits"
 msgstr ""
 
-#: config/tc-mips.c:4511 config/tc-mips.c:4539 config/tc-mips.c:4577
-#: config/tc-mips.c:4622 config/tc-mips.c:6712 config/tc-mips.c:6751
-#: config/tc-mips.c:6790 config/tc-mips.c:7194 config/tc-mips.c:7246
+#: config/tc-mips.c:4515 config/tc-mips.c:4543 config/tc-mips.c:4581
+#: config/tc-mips.c:4626 config/tc-mips.c:6716 config/tc-mips.c:6755
+#: config/tc-mips.c:6794 config/tc-mips.c:7198 config/tc-mips.c:7250
 msgid "PIC code offset overflow (max 16 signed bits)"
 msgstr ""
 
-#: config/tc-mips.c:4944 config/tc-mips.c:5010 config/tc-mips.c:5098
-#: config/tc-mips.c:5145 config/tc-mips.c:5206 config/tc-mips.c:5254
-#: config/tc-mips.c:8293 config/tc-mips.c:8300 config/tc-mips.c:8307
-#: config/tc-mips.c:8414
+#: config/tc-mips.c:4948 config/tc-mips.c:5014 config/tc-mips.c:5102
+#: config/tc-mips.c:5149 config/tc-mips.c:5210 config/tc-mips.c:5258
+#: config/tc-mips.c:8297 config/tc-mips.c:8304 config/tc-mips.c:8311
+#: config/tc-mips.c:8418
 msgid "Unsupported large constant"
 msgstr ""
 
 #. result is always true
-#: config/tc-mips.c:4976
+#: config/tc-mips.c:4980
 #, c-format
 msgid "Branch %s is always true"
 msgstr ""
 
-#: config/tc-mips.c:5217 config/tc-mips.c:5265 config/tc-mips.c:9065
-#: config/tc-mips.c:9222
+#: config/tc-mips.c:5221 config/tc-mips.c:5269 config/tc-mips.c:9069
+#: config/tc-mips.c:9226
 #, c-format
 msgid "Improper position (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:5223 config/tc-mips.c:9132
+#: config/tc-mips.c:5227 config/tc-mips.c:9136
 #, c-format
 msgid "Improper extract size (%lu, position %lu)"
 msgstr ""
 
-#: config/tc-mips.c:5271 config/tc-mips.c:9096
+#: config/tc-mips.c:5275 config/tc-mips.c:9100
 #, c-format
 msgid "Improper insert size (%lu, position %lu)"
 msgstr ""
 
-#: config/tc-mips.c:5308 config/tc-mips.c:5405
+#: config/tc-mips.c:5312 config/tc-mips.c:5409
 msgid "Divide by zero."
 msgstr ""
 
-#: config/tc-mips.c:5491
+#: config/tc-mips.c:5495
 msgid "dla used to load 32-bit register"
 msgstr ""
 
-#: config/tc-mips.c:5494
+#: config/tc-mips.c:5498
 msgid "la used to load 64-bit address"
 msgstr ""
 
-#: config/tc-mips.c:5606 config/tc-z80.c:700
+#: config/tc-mips.c:5610 config/tc-z80.c:700
 msgid "offset too large"
 msgstr ""
 
-#: config/tc-mips.c:5780 config/tc-mips.c:6059
+#: config/tc-mips.c:5784 config/tc-mips.c:6063
 msgid "PIC code offset overflow (max 32 signed bits)"
 msgstr ""
 
-#: config/tc-mips.c:6142
+#: config/tc-mips.c:6146
 msgid "MIPS PIC call to register other than $25"
 msgstr ""
 
-#: config/tc-mips.c:6148 config/tc-mips.c:6159 config/tc-mips.c:6281
-#: config/tc-mips.c:6292
+#: config/tc-mips.c:6152 config/tc-mips.c:6163 config/tc-mips.c:6285
+#: config/tc-mips.c:6296
 msgid "No .cprestore pseudo-op used in PIC code"
 msgstr ""
 
-#: config/tc-mips.c:6153 config/tc-mips.c:6286
+#: config/tc-mips.c:6157 config/tc-mips.c:6290
 msgid "No .frame pseudo-op used in PIC code"
 msgstr ""
 
-#: config/tc-mips.c:6307
+#: config/tc-mips.c:6311
 msgid "Non-PIC jump used in PIC library"
 msgstr ""
 
-#: config/tc-mips.c:6470 config/tc-mips.c:7346
+#: config/tc-mips.c:6474 config/tc-mips.c:7350
 #, c-format
 msgid "opcode not supported on this processor: %s"
 msgstr ""
 
-#: config/tc-mips.c:7552 config/tc-mips.c:7583 config/tc-mips.c:7634
-#: config/tc-mips.c:7664
+#: config/tc-mips.c:7556 config/tc-mips.c:7587 config/tc-mips.c:7638
+#: config/tc-mips.c:7668
 msgid "Improper rotate count"
 msgstr ""
 
-#: config/tc-mips.c:7714
+#: config/tc-mips.c:7718
 #, c-format
 msgid "Instruction %s: result is always false"
 msgstr ""
 
-#: config/tc-mips.c:7875
+#: config/tc-mips.c:7879
 #, c-format
 msgid "Instruction %s: result is always true"
 msgstr ""
 
 #. FIXME: Check if this is one of the itbl macros, since they
 #. are added dynamically.
-#: config/tc-mips.c:8195
+#: config/tc-mips.c:8199
 #, c-format
 msgid "Macro %s not implemented yet"
 msgstr ""
 
-#: config/tc-mips.c:8445
+#: config/tc-mips.c:8449
 #, c-format
 msgid "internal: bad mips opcode (mask error): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:8485 config/tc-mips.c:9296
+#: config/tc-mips.c:8489 config/tc-mips.c:9300
 #, c-format
 msgid "internal: bad mips opcode (unknown extension operand type `+%c'): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:8564
+#: config/tc-mips.c:8568
 #, c-format
 msgid "internal: bad mips opcode (unknown operand type `%c'): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:8571
+#: config/tc-mips.c:8575
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%lx undefined): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:8694 config/tc-mips.c:8702 config/tc-mips.c:10165
+#: config/tc-mips.c:8698 config/tc-mips.c:8706 config/tc-mips.c:10169
 #: config/tc-score.c:2696 config/tc-score.c:2742
 msgid "unrecognized opcode"
 msgstr ""
 
-#: config/tc-mips.c:8729 config/tc-mips.c:10191
+#: config/tc-mips.c:8733 config/tc-mips.c:10195
 #, c-format
 msgid "opcode not supported on this processor: %s (%s)"
 msgstr ""
 
-#: config/tc-mips.c:8763
+#: config/tc-mips.c:8767
 #, c-format
 msgid "BALIGN immediate not 1 or 3 (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:8776 config/tc-mips.c:8789 config/tc-mips.c:8802
-#: config/tc-mips.c:8815 config/tc-mips.c:8841 config/tc-mips.c:8885
+#: config/tc-mips.c:8780 config/tc-mips.c:8793 config/tc-mips.c:8806
+#: config/tc-mips.c:8819 config/tc-mips.c:8845 config/tc-mips.c:8889
 #, c-format
 msgid "DSP immediate not in range 0..%d (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:8833 config/tc-mips.c:8860
+#: config/tc-mips.c:8837 config/tc-mips.c:8864
 msgid "Invalid dsp acc register"
 msgstr ""
 
-#: config/tc-mips.c:8871 config/tc-mips.c:8902 config/tc-mips.c:8919
+#: config/tc-mips.c:8875 config/tc-mips.c:8906 config/tc-mips.c:8923
 #, c-format
 msgid "DSP immediate not in range %ld..%ld (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:8932
+#: config/tc-mips.c:8936
 #, c-format
 msgid "MT usermode bit not 0 or 1 (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:8943
+#: config/tc-mips.c:8947
 #, c-format
 msgid "MT load high bit not 0 or 1 (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:8960 config/tc-mips.c:8973
+#: config/tc-mips.c:8964 config/tc-mips.c:8977
 msgid "Invalid dsp/smartmips acc register"
 msgstr ""
 
-#: config/tc-mips.c:9038
+#: config/tc-mips.c:9042
 #, c-format
 msgid "Illegal %s number (%lu, 0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:9151 config/tc-mips.c:9704
+#: config/tc-mips.c:9155 config/tc-mips.c:9708
 msgid "absolute expression required"
 msgstr ""
 
-#: config/tc-mips.c:9174
+#: config/tc-mips.c:9178
 #, c-format
 msgid "Invalid register number (%d)"
 msgstr ""
 
-#: config/tc-mips.c:9182
+#: config/tc-mips.c:9186
 msgid "Invalid coprocessor 0 register number"
 msgstr ""
 
-#: config/tc-mips.c:9192
+#: config/tc-mips.c:9196
 #, c-format
 msgid "Improper bit index (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9253 config/tc-mips.c:9270
+#: config/tc-mips.c:9257 config/tc-mips.c:9274
 #, c-format
 msgid "Improper size (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9286
+#: config/tc-mips.c:9290
 #, c-format
 msgid "Improper immediate (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:9313
+#: config/tc-mips.c:9317
 #, c-format
 msgid "Improper shift amount (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9337 config/tc-mips.c:10512 config/tc-mips.c:10765
+#: config/tc-mips.c:9341 config/tc-mips.c:10516 config/tc-mips.c:10769
 #, c-format
 msgid "Invalid value for `%s' (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9354
+#: config/tc-mips.c:9358
 #, c-format
 msgid "Code for %s not in range 0..1023 (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9366
+#: config/tc-mips.c:9370
 #, c-format
 msgid "Lower code for %s not in range 0..1023 (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9378
+#: config/tc-mips.c:9382
 #, c-format
 msgid "Code for %s not in range 0..1048575 (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9391
+#: config/tc-mips.c:9395
 #, c-format
 msgid "Coproccesor code > 25 bits (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9405
+#: config/tc-mips.c:9409
 #, c-format
 msgid "Illegal 19-bit code (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9418
+#: config/tc-mips.c:9422
 #, c-format
 msgid "Invalid performance register (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:9461 config/tc-mips.c:10372
+#: config/tc-mips.c:9465 config/tc-mips.c:10376
 msgid "used $at without \".set noat\""
 msgstr ""
 
-#: config/tc-mips.c:9463 config/tc-mips.c:10374
+#: config/tc-mips.c:9467 config/tc-mips.c:10378
 #, c-format
 msgid "used $%u with \".set at=$%u\""
 msgstr ""
 
-#: config/tc-mips.c:9489
+#: config/tc-mips.c:9493
 msgid "source and destination must be different"
 msgstr ""
 
-#: config/tc-mips.c:9494
+#: config/tc-mips.c:9498
 msgid "a destination register must be supplied"
 msgstr ""
 
-#: config/tc-mips.c:9563
+#: config/tc-mips.c:9567
 #, c-format
 msgid "Improper align amount (%ld), using low bits"
 msgstr ""
 
-#: config/tc-mips.c:9577
+#: config/tc-mips.c:9581
 #, c-format
 msgid "Invalid MDMX Immediate (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:9615
+#: config/tc-mips.c:9619
 #, c-format
 msgid "Float register should be even, was %d"
 msgstr ""
 
-#: config/tc-mips.c:9654
+#: config/tc-mips.c:9658
 #, c-format
 msgid "Bad element selector %ld"
 msgstr ""
 
-#: config/tc-mips.c:9662
+#: config/tc-mips.c:9666
 #, c-format
 msgid "Expecting ']' found '%s'"
 msgstr ""
 
-#: config/tc-mips.c:9768
+#: config/tc-mips.c:9772
 #, c-format
 msgid "Bad floating point constant: %s"
 msgstr ""
 
-#: config/tc-mips.c:9888
+#: config/tc-mips.c:9892
 msgid "Can't use floating point insn in this section"
 msgstr ""
 
-#: config/tc-mips.c:9949
+#: config/tc-mips.c:9953
 msgid "expression out of range"
 msgstr ""
 
-#: config/tc-mips.c:9989
+#: config/tc-mips.c:9993
 msgid "lui expression not in range 0..65535"
 msgstr ""
 
-#: config/tc-mips.c:10010
+#: config/tc-mips.c:10014
 #, c-format
 msgid "Condition code register should be even for %s, was %d"
 msgstr ""
 
-#: config/tc-mips.c:10015
+#: config/tc-mips.c:10019
 #, c-format
 msgid "Condition code register should be 0 or 4 for %s, was %d"
 msgstr ""
 
-#: config/tc-mips.c:10041
+#: config/tc-mips.c:10045
 msgid "invalid coprocessor sub-selection value (0-7)"
 msgstr ""
 
-#: config/tc-mips.c:10053 config/tc-mips.c:10070
+#: config/tc-mips.c:10057 config/tc-mips.c:10074
 #, c-format
 msgid "bad byte vector index (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:10081
+#: config/tc-mips.c:10085
 #, c-format
 msgid "bad char = '%c'\n"
 msgstr ""
 
-#: config/tc-mips.c:10092 config/tc-mips.c:10097 config/tc-mips.c:10790
+#: config/tc-mips.c:10096 config/tc-mips.c:10101 config/tc-mips.c:10794
 msgid "illegal operands"
 msgstr ""
 
-#: config/tc-mips.c:10548 config/tc-mips.c:10629 config/tc-mips.c:10644
+#: config/tc-mips.c:10552 config/tc-mips.c:10633 config/tc-mips.c:10648
 msgid "can't parse register list"
 msgstr ""
 
-#: config/tc-mips.c:10617
+#: config/tc-mips.c:10621
 msgid "more than one frame size in list"
 msgstr ""
 
-#: config/tc-mips.c:10672
+#: config/tc-mips.c:10676
 msgid "unexpected register in list"
 msgstr ""
 
-#: config/tc-mips.c:10682
+#: config/tc-mips.c:10686
 msgid "arg/static registers overlap"
 msgstr ""
 
-#: config/tc-mips.c:10700
+#: config/tc-mips.c:10704
 msgid "invalid arg register list"
 msgstr ""
 
-#: config/tc-mips.c:10709 config/tc-mips.c:10732
+#: config/tc-mips.c:10713 config/tc-mips.c:10736
 msgid "invalid static register list"
 msgstr ""
 
-#: config/tc-mips.c:10739
+#: config/tc-mips.c:10743
 msgid "missing frame size"
 msgstr ""
 
-#: config/tc-mips.c:10742
+#: config/tc-mips.c:10746
 msgid "invalid frame size"
 msgstr ""
 
-#: config/tc-mips.c:10908
+#: config/tc-mips.c:10912
 msgid "extended operand requested but not required"
 msgstr ""
 
-#: config/tc-mips.c:10910
+#: config/tc-mips.c:10914
 msgid "invalid unextended operand value"
 msgstr ""
 
-#: config/tc-mips.c:10938
+#: config/tc-mips.c:10942
 msgid "operand value out of range for instruction"
 msgstr ""
 
-#: config/tc-mips.c:11043
+#: config/tc-mips.c:11047
 #, c-format
 msgid "relocation %s isn't supported by the current ABI"
 msgstr ""
 
-#: config/tc-mips.c:11099
+#: config/tc-mips.c:11103
 msgid "unclosed '('"
 msgstr ""
 
-#: config/tc-mips.c:11374
+#: config/tc-mips.c:11378
 #, c-format
 msgid "A different %s was already specified, is now %s"
 msgstr ""
 
-#: config/tc-mips.c:11621
+#: config/tc-mips.c:11625
 msgid "-call_shared is supported only for ELF format"
 msgstr ""
 
-#: config/tc-mips.c:11631
+#: config/tc-mips.c:11635
 msgid "-call_nonpic is supported only for ELF format"
 msgstr ""
 
-#: config/tc-mips.c:11641
+#: config/tc-mips.c:11645
 msgid "-non_shared is supported only for ELF format"
 msgstr ""
 
-#: config/tc-mips.c:11674
+#: config/tc-mips.c:11678
 msgid "-n32 is supported for ELF format only"
 msgstr ""
 
-#: config/tc-mips.c:11683
+#: config/tc-mips.c:11687
 msgid "-64 is supported for ELF format only"
 msgstr ""
 
-#: config/tc-mips.c:11688 config/tc-mips.c:11741
+#: config/tc-mips.c:11692 config/tc-mips.c:11745
 msgid "No compiled in support for 64 bit object file format"
 msgstr ""
 
-#: config/tc-mips.c:11728
+#: config/tc-mips.c:11732
 msgid "-mabi is supported for ELF format only"
 msgstr ""
 
-#: config/tc-mips.c:11748
+#: config/tc-mips.c:11752
 #, c-format
 msgid "invalid abi -mabi=%s"
 msgstr ""
 
-#: config/tc-mips.c:11826
+#: config/tc-mips.c:11830
 msgid "-G not supported in this configuration."
 msgstr ""
 
-#: config/tc-mips.c:11852
+#: config/tc-mips.c:11856
 #, c-format
 msgid "-%s conflicts with the other architecture options, which imply -%s"
 msgstr ""
 
-#: config/tc-mips.c:11864
+#: config/tc-mips.c:11868
 #, c-format
 msgid "-march=%s is not compatible with the selected ABI"
 msgstr ""
 
-#: config/tc-mips.c:11883
+#: config/tc-mips.c:11887
 msgid "-mgp64 used with a 32-bit processor"
 msgstr ""
 
-#: config/tc-mips.c:11885
+#: config/tc-mips.c:11889
 msgid "-mgp32 used with a 64-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:11887
+#: config/tc-mips.c:11891
 msgid "-mgp64 used with a 32-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:11925
+#: config/tc-mips.c:11929
 msgid "-mfp64 used with a 32-bit fpu"
 msgstr ""
 
-#: config/tc-mips.c:11928
+#: config/tc-mips.c:11932
 msgid "-mfp64 used with a 32-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:11932
+#: config/tc-mips.c:11936
 msgid "-mfp32 used with a 64-bit ABI"
 msgstr ""
 
-#: config/tc-mips.c:11946
+#: config/tc-mips.c:11950
 msgid "trap exception not supported at ISA 1"
 msgstr ""
 
-#: config/tc-mips.c:11956
+#: config/tc-mips.c:11960
 msgid "-mfp32 used with -mips3d"
 msgstr ""
 
-#: config/tc-mips.c:11962
+#: config/tc-mips.c:11966
 msgid "-mfp32 used with -mdmx"
 msgstr ""
 
-#: config/tc-mips.c:11967
+#: config/tc-mips.c:11971
 #, c-format
 msgid "%s ISA does not support SmartMIPS"
 msgstr ""
 
-#: config/tc-mips.c:11973 config/tc-mips.c:12918
+#: config/tc-mips.c:11977 config/tc-mips.c:12922
 #, c-format
 msgid "%s ISA does not support DSP ASE"
 msgstr ""
 
-#: config/tc-mips.c:11982 config/tc-mips.c:12931
+#: config/tc-mips.c:11986 config/tc-mips.c:12935
 #, c-format
 msgid "%s ISA does not support DSP R2 ASE"
 msgstr ""
 
-#: config/tc-mips.c:11988 config/tc-mips.c:12944
+#: config/tc-mips.c:11992 config/tc-mips.c:12948
 #, c-format
 msgid "%s ISA does not support MT ASE"
 msgstr ""
 
-#: config/tc-mips.c:12037
+#: config/tc-mips.c:12041
 msgid "PC relative MIPS16 instruction references a different section"
 msgstr ""
 
-#: config/tc-mips.c:12335 config/tc-sparc.c:3184 config/tc-sparc.c:3191
+#: config/tc-mips.c:12339 config/tc-sparc.c:3184 config/tc-sparc.c:3191
 #: config/tc-sparc.c:3198 config/tc-sparc.c:3205 config/tc-sparc.c:3212
 #: config/tc-sparc.c:3221 config/tc-sparc.c:3232 config/tc-sparc.c:3254
-#: config/tc-sparc.c:3278 write.c:1122
+#: config/tc-sparc.c:3278 write.c:1131
 msgid "relocation overflow"
 msgstr ""
 
-#: config/tc-mips.c:12345
+#: config/tc-mips.c:12349
 #, c-format
 msgid "Branch to misaligned address (%lx)"
 msgstr ""
 
-#: config/tc-mips.c:12392
+#: config/tc-mips.c:12396
 msgid "Branch out of range"
 msgstr ""
 
-#: config/tc-mips.c:12474
+#: config/tc-mips.c:12478
 #, c-format
 msgid "Alignment too large: %d. assumed."
 msgstr ""
 
-#: config/tc-mips.c:12477
+#: config/tc-mips.c:12481
 msgid "Alignment negative: 0 assumed."
 msgstr ""
 
-#: config/tc-mips.c:12723
+#: config/tc-mips.c:12727
 #, c-format
 msgid "%s: no such section"
 msgstr ""
 
-#: config/tc-mips.c:12772
+#: config/tc-mips.c:12776
 #, c-format
 msgid ".option pic%d not supported"
 msgstr ""
 
-#: config/tc-mips.c:12777 config/tc-mips.c:13084
+#: config/tc-mips.c:12781 config/tc-mips.c:13088
 msgid "-G may not be used with SVR4 PIC code"
 msgstr ""
 
-#: config/tc-mips.c:12783
+#: config/tc-mips.c:12787
 #, c-format
 msgid "Unrecognized option \"%s\""
 msgstr ""
 
-#: config/tc-mips.c:12843
+#: config/tc-mips.c:12847
 msgid "`noreorder' must be set before `nomacro'"
 msgstr ""
 
-#: config/tc-mips.c:12869
+#: config/tc-mips.c:12873
 #, c-format
 msgid "%s isa does not support 64-bit registers"
 msgstr ""
 
-#: config/tc-mips.c:12880
+#: config/tc-mips.c:12884
 #, c-format
 msgid "%s isa does not support 64-bit floating point registers"
 msgstr ""
 
-#: config/tc-mips.c:12901
+#: config/tc-mips.c:12905
 #, c-format
 msgid "%s ISA does not support SmartMIPS ASE"
 msgstr ""
 
-#: config/tc-mips.c:12968
+#: config/tc-mips.c:12972
 #, c-format
 msgid "unknown architecture %s"
 msgstr ""
 
-#: config/tc-mips.c:12981 config/tc-mips.c:13011
+#: config/tc-mips.c:12985 config/tc-mips.c:13015
 #, c-format
 msgid "unknown ISA level %s"
 msgstr ""
 
-#: config/tc-mips.c:12989
+#: config/tc-mips.c:12993
 #, c-format
 msgid "unknown ISA or architecture %s"
 msgstr ""
 
-#: config/tc-mips.c:13039
+#: config/tc-mips.c:13043
 msgid ".set pop with no .set push"
 msgstr ""
 
-#: config/tc-mips.c:13068
+#: config/tc-mips.c:13072
 #, c-format
 msgid "Tried to set unrecognized symbol: %s\n"
 msgstr ""
 
-#: config/tc-mips.c:13126
+#: config/tc-mips.c:13130
 msgid ".cpload not in noreorder section"
 msgstr ""
 
-#: config/tc-mips.c:13194 config/tc-mips.c:13213
+#: config/tc-mips.c:13198 config/tc-mips.c:13217
 msgid "missing argument separator ',' for .cpsetup"
 msgstr ""
 
-#: config/tc-mips.c:13371
+#: config/tc-mips.c:13375
 #, c-format
 msgid "Unsupported use of %s"
 msgstr ""
 
-#: config/tc-mips.c:13453 config/tc-score.c:6036
+#: config/tc-mips.c:13457 config/tc-score.c:6036
 msgid "Unsupported use of .gpword"
 msgstr ""
 
-#: config/tc-mips.c:13493
+#: config/tc-mips.c:13497
 msgid "Unsupported use of .gpdword"
 msgstr ""
 
-#: config/tc-mips.c:13587
+#: config/tc-mips.c:13591
 #, c-format
 msgid "ignoring attempt to redefine symbol %s"
 msgstr ""
 
-#: config/tc-mips.c:13602 ecoff.c:3368
+#: config/tc-mips.c:13606 ecoff.c:3368
 msgid "bad .weakext directive"
 msgstr ""
 
-#: config/tc-mips.c:13838
+#: config/tc-mips.c:13842
 msgid "unsupported PC relative reference to different section"
 msgstr ""
 
-#: config/tc-mips.c:13951 config/tc-xtensa.c:1583 config/tc-xtensa.c:1858
+#: config/tc-mips.c:13955 config/tc-xtensa.c:1583 config/tc-xtensa.c:1858
 msgid "unsupported relocation"
 msgstr ""
 
-#: config/tc-mips.c:14200 config/tc-pdp11.c:1431
+#: config/tc-mips.c:14208 config/tc-pdp11.c:1431
 #, c-format
 msgid "Can not represent %s relocation in this object file format"
 msgstr ""
 
-#: config/tc-mips.c:14285
+#: config/tc-mips.c:14293
 msgid "relaxed out-of-range branch into a jump"
 msgstr ""
 
-#: config/tc-mips.c:14819
+#: config/tc-mips.c:14827
 msgid "missing .end at end of assembly"
 msgstr ""
 
-#: config/tc-mips.c:14834 config/tc-score.c:5645
+#: config/tc-mips.c:14842 config/tc-score.c:5645
 msgid "expected simple number"
 msgstr ""
 
-#: config/tc-mips.c:14862 config/tc-score.c:5672
+#: config/tc-mips.c:14870 config/tc-score.c:5672
 msgid "invalid number"
 msgstr ""
 
-#: config/tc-mips.c:15033 config/tc-score.c:5711
+#: config/tc-mips.c:15041 config/tc-score.c:5711
 msgid "missing .end"
 msgstr ""
 
-#: config/tc-mips.c:15085
+#: config/tc-mips.c:15093
 msgid "Bad .frame directive"
 msgstr ""
 
-#: config/tc-mips.c:15117
+#: config/tc-mips.c:15125
 msgid ".mask/.fmask outside of .ent"
 msgstr ""
 
-#: config/tc-mips.c:15124
+#: config/tc-mips.c:15132
 msgid "Bad .mask/.fmask directive"
 msgstr ""
 
-#: config/tc-mips.c:15399
+#: config/tc-mips.c:15407
 #, c-format
 msgid "Bad value (%s) for %s"
 msgstr ""
 
-#: config/tc-mips.c:15463
+#: config/tc-mips.c:15471
 #, c-format
 msgid ""
 "MIPS options:\n"
@@ -9764,7 +9768,7 @@
 "\t\t\timplicitly with the gp register [default 8]\n"
 msgstr ""
 
-#: config/tc-mips.c:15470
+#: config/tc-mips.c:15478
 #, c-format
 msgid ""
 "-mips1\t\t\tgenerate MIPS ISA I instructions\n"
@@ -9779,7 +9783,7 @@
 "-march=CPU/-mtune=CPU\tgenerate code/schedule for CPU, where CPU is one of:\n"
 msgstr ""
 
-#: config/tc-mips.c:15489
+#: config/tc-mips.c:15497
 #, c-format
 msgid ""
 "-mCPU\t\t\tequivalent to -march=CPU -mtune=CPU. Deprecated.\n"
@@ -9787,42 +9791,42 @@
 "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
 msgstr ""
 
-#: config/tc-mips.c:15502
+#: config/tc-mips.c:15510
 #, c-format
 msgid ""
 "-mips16\t\t\tgenerate mips16 instructions\n"
 "-no-mips16\t\tdo not generate mips16 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:15505
+#: config/tc-mips.c:15513
 #, c-format
 msgid ""
 "-msmartmips\t\tgenerate smartmips instructions\n"
 "-mno-smartmips\t\tdo not generate smartmips instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:15508
+#: config/tc-mips.c:15516
 #, c-format
 msgid ""
 "-mdsp\t\t\tgenerate DSP instructions\n"
 "-mno-dsp\t\tdo not generate DSP instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:15511
+#: config/tc-mips.c:15519
 #, c-format
 msgid ""
 "-mdspr2\t\t\tgenerate DSP R2 instructions\n"
 "-mno-dspr2\t\tdo not generate DSP R2 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:15514
+#: config/tc-mips.c:15522
 #, c-format
 msgid ""
 "-mmt\t\t\tgenerate MT instructions\n"
 "-mno-mt\t\t\tdo not generate MT instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:15517
+#: config/tc-mips.c:15525
 #, c-format
 msgid ""
 "-mfix-vr4120\t\twork around certain VR4120 errata\n"
@@ -9837,7 +9841,7 @@
 "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
 msgstr ""
 
-#: config/tc-mips.c:15528
+#: config/tc-mips.c:15536
 #, c-format
 msgid ""
 "-mhard-float\t\tallow floating-point instructions\n"
@@ -9847,7 +9851,7 @@
 "--[no-]construct-floats [dis]allow floating point values to be constructed\n"
 msgstr ""
 
-#: config/tc-mips.c:15536
+#: config/tc-mips.c:15544
 #, c-format
 msgid ""
 "-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
@@ -9861,7 +9865,7 @@
 "-mabi=ABI\t\tcreate ABI conformant object file for:\n"
 msgstr ""
 
-#: config/tc-mips.c:15557
+#: config/tc-mips.c:15565
 #, c-format
 msgid ""
 "-32\t\t\tcreate o32 ABI object file (default)\n"
@@ -9942,8 +9946,8 @@
 msgid "specified location wasn't TETRA-aligned"
 msgstr ""
 
-#: config/tc-mmix.c:964 config/tc-mmix.c:979 config/tc-mmix.c:4109
-#: config/tc-mmix.c:4125
+#: config/tc-mmix.c:964 config/tc-mmix.c:979 config/tc-mmix.c:4114
+#: config/tc-mmix.c:4130
 msgid "unaligned data at an absolute location is not supported"
 msgstr ""
 
@@ -9958,160 +9962,155 @@
 #: config/tc-mmix.c:1419 config/tc-mmix.c:1444 config/tc-mmix.c:1476
 #: config/tc-mmix.c:1508 config/tc-mmix.c:1538 config/tc-mmix.c:1591
 #: config/tc-mmix.c:1608 config/tc-mmix.c:1635 config/tc-mmix.c:1663
-#: config/tc-mmix.c:1690 config/tc-mmix.c:1716 config/tc-mmix.c:1732
-#: config/tc-mmix.c:1758 config/tc-mmix.c:1774 config/tc-mmix.c:1790
-#: config/tc-mmix.c:1853 config/tc-mmix.c:1869
+#: config/tc-mmix.c:1693 config/tc-mmix.c:1719 config/tc-mmix.c:1735
+#: config/tc-mmix.c:1761 config/tc-mmix.c:1777 config/tc-mmix.c:1793
+#: config/tc-mmix.c:1874
 #, c-format
 msgid "invalid operands to opcode %s: `%s'"
 msgstr ""
 
-#: config/tc-mmix.c:1846
-#, c-format
-msgid "unsupported operands to %s: `%s'"
-msgstr ""
-
-#: config/tc-mmix.c:1971
+#: config/tc-mmix.c:1976
 msgid "internal: mmix_prefix_name but empty prefix"
 msgstr ""
 
-#: config/tc-mmix.c:2015
+#: config/tc-mmix.c:2020
 #, c-format
 msgid "too many GREG registers allocated (max %d)"
 msgstr ""
 
-#: config/tc-mmix.c:2073
+#: config/tc-mmix.c:2078
 msgid "BSPEC already active.  Nesting is not supported."
 msgstr ""
 
-#: config/tc-mmix.c:2082
+#: config/tc-mmix.c:2087
 msgid "invalid BSPEC expression"
 msgstr ""
 
-#: config/tc-mmix.c:2098
-#, c-format
-msgid "can't create section %s"
-msgstr ""
-
 #: config/tc-mmix.c:2103
 #, c-format
+msgid "can't create section %s"
+msgstr ""
+
+#: config/tc-mmix.c:2108
+#, c-format
 msgid "can't set section flags for section %s"
 msgstr ""
 
-#: config/tc-mmix.c:2124
+#: config/tc-mmix.c:2129
 msgid "ESPEC without preceding BSPEC"
 msgstr ""
 
-#: config/tc-mmix.c:2153
+#: config/tc-mmix.c:2158
 msgid "missing local expression"
 msgstr ""
 
-#: config/tc-mmix.c:2363
+#: config/tc-mmix.c:2368
 msgid "operand out of range, instruction expanded"
 msgstr ""
 
 #. The BFD_RELOC_MMIX_LOCAL-specific message is supposed to be
 #. user-friendly, though a little bit non-substantial.
-#: config/tc-mmix.c:2614
+#: config/tc-mmix.c:2619
 msgid "directive LOCAL must be placed in code or data"
 msgstr ""
 
-#: config/tc-mmix.c:2615
+#: config/tc-mmix.c:2620
 msgid "internal confusion: relocation in a section without contents"
 msgstr ""
 
-#: config/tc-mmix.c:2729
+#: config/tc-mmix.c:2734
 msgid "internal: BFD_RELOC_MMIX_BASE_PLUS_OFFSET not resolved to section"
 msgstr ""
 
-#: config/tc-mmix.c:2777
+#: config/tc-mmix.c:2782
 msgid "no suitable GREG definition for operands"
 msgstr ""
 
-#: config/tc-mmix.c:2836
+#: config/tc-mmix.c:2841
 msgid "operands were not reducible at assembly-time"
 msgstr ""
 
-#: config/tc-mmix.c:2863
+#: config/tc-mmix.c:2868
 #, c-format
 msgid "cannot generate relocation type for symbol %s, code %s"
 msgstr ""
 
-#: config/tc-mmix.c:2883
+#: config/tc-mmix.c:2888
 #, c-format
 msgid "internal: unhandled label %s"
 msgstr ""
 
-#: config/tc-mmix.c:2913
+#: config/tc-mmix.c:2918
 msgid "[0-9]H labels may not appear alone on a line"
 msgstr ""
 
-#: config/tc-mmix.c:2922
+#: config/tc-mmix.c:2927
 msgid "[0-9]H labels do not mix with dot-pseudos"
 msgstr ""
 
-#: config/tc-mmix.c:3010
+#: config/tc-mmix.c:3015
 msgid "invalid characters in input"
 msgstr ""
 
-#: config/tc-mmix.c:3116
+#: config/tc-mmix.c:3121
 msgid "empty label field for IS"
 msgstr ""
 
-#: config/tc-mmix.c:3442
+#: config/tc-mmix.c:3447
 #, c-format
 msgid "internal: unexpected relax type %d:%d"
 msgstr ""
 
-#: config/tc-mmix.c:3465
+#: config/tc-mmix.c:3470
 msgid "BSPEC without ESPEC."
 msgstr ""
 
-#: config/tc-mmix.c:3670
+#: config/tc-mmix.c:3675
 msgid "GREG expression too complicated"
 msgstr ""
 
-#: config/tc-mmix.c:3685
+#: config/tc-mmix.c:3690
 msgid "internal: GREG expression not resolved to section"
 msgstr ""
 
-#: config/tc-mmix.c:3734
+#: config/tc-mmix.c:3739
 msgid "register section has contents\n"
 msgstr ""
 
-#: config/tc-mmix.c:3861
+#: config/tc-mmix.c:3866
 msgid "section change from within a BSPEC/ESPEC pair is not supported"
 msgstr ""
 
-#: config/tc-mmix.c:3882
+#: config/tc-mmix.c:3887
 msgid "directive LOC from within a BSPEC/ESPEC pair is not supported"
 msgstr ""
 
-#: config/tc-mmix.c:3893
+#: config/tc-mmix.c:3898
 msgid "invalid LOC expression"
 msgstr ""
 
-#: config/tc-mmix.c:3920 config/tc-mmix.c:3947
+#: config/tc-mmix.c:3925 config/tc-mmix.c:3952
 msgid "LOC expression stepping backwards is not supported"
 msgstr ""
 
 #. We will only get here in rare cases involving #NO_APP,
 #. where the unterminated string is not recognized by the
 #. preformatting pass.
-#: config/tc-mmix.c:4031 config/tc-mmix.c:4191 config/tc-z80.c:1691
+#: config/tc-mmix.c:4036 config/tc-mmix.c:4196 config/tc-z80.c:1691
 msgid "unterminated string"
 msgstr ""
 
-#: config/tc-mmix.c:4048
+#: config/tc-mmix.c:4053
 msgid "BYTE expression not a pure number"
 msgstr ""
 
 #. Note that mmixal does not allow negative numbers in
 #. BYTE sequences, so neither should we.
-#: config/tc-mmix.c:4057
+#: config/tc-mmix.c:4062
 msgid "BYTE expression not in the range 0..255"
 msgstr ""
 
-#: config/tc-mmix.c:4107 config/tc-mmix.c:4123
+#: config/tc-mmix.c:4112 config/tc-mmix.c:4128
 msgid "data item with alignment larger than location"
 msgstr ""
 
@@ -10169,7 +10168,7 @@
 #: config/tc-moxie.c:228 config/tc-moxie.c:288 config/tc-moxie.c:300
 #: config/tc-moxie.c:333 config/tc-moxie.c:365 config/tc-moxie.c:398
 #: config/tc-moxie.c:452 config/tc-moxie.c:506 config/tc-moxie.c:516
-#: config/tc-moxie.c:544 config/tc-pj.c:307
+#: config/tc-moxie.c:544 config/tc-pj.c:308
 msgid "extra stuff on line ignored"
 msgstr ""
 
@@ -10191,7 +10190,7 @@
 msgid "expecting indirect register `($rX)'"
 msgstr ""
 
-#: config/tc-moxie.c:547 config/tc-pj.c:312
+#: config/tc-moxie.c:547 config/tc-pj.c:313
 msgid "Something forgot to clean up\n"
 msgstr ""
 
@@ -10774,11 +10773,11 @@
 msgid "can't have relocation for ipush"
 msgstr ""
 
-#: config/tc-pj.c:288
+#: config/tc-pj.c:289
 msgid "expected expresssion"
 msgstr ""
 
-#: config/tc-pj.c:354
+#: config/tc-pj.c:355
 #, c-format
 msgid ""
 "PJ options:\n"
@@ -10786,7 +10785,7 @@
 "-big\t\t\tgenerate big endian code\n"
 msgstr ""
 
-#: config/tc-pj.c:381 config/tc-sh.c:4059 config/tc-sh.c:4066
+#: config/tc-pj.c:382 config/tc-sh.c:4059 config/tc-sh.c:4066
 #: config/tc-sh.c:4073 config/tc-sh.c:4080
 msgid "pcrel too far"
 msgstr ""
@@ -10799,12 +10798,12 @@
 msgid "estimate size\n"
 msgstr ""
 
-#: config/tc-ppc.c:1075
+#: config/tc-ppc.c:1077
 #, c-format
 msgid "%s unsupported"
 msgstr ""
 
-#: config/tc-ppc.c:1177
+#: config/tc-ppc.c:1179
 #, c-format
 msgid ""
 "PowerPC options:\n"
@@ -10820,27 +10819,30 @@
 "-m405\t\t\tgenerate code for PowerPC 405\n"
 "-m440\t\t\tgenerate code for PowerPC 440\n"
 "-m464\t\t\tgenerate code for PowerPC 464\n"
+"-m476\t\t\tgenerate code for PowerPC 476\n"
 "-m7400, -m7410, -m7450, -m7455\n"
 "\t\t\tgenerate code for PowerPC 7400/7410/7450/7455\n"
 "-m750cl\t\t\tgenerate code for PowerPC 750cl\n"
 msgstr ""
 
-#: config/tc-ppc.c:1194
+#: config/tc-ppc.c:1197
 #, c-format
 msgid ""
 "-mppc64, -m620\t\tgenerate code for PowerPC 620/625/630\n"
 "-mppc64bridge\t\tgenerate code for PowerPC 64, including bridge insns\n"
 "-mbooke\t\t\tgenerate code for 32-bit PowerPC BookE\n"
-"-mpower4\t\tgenerate code for Power4 architecture\n"
-"-mpower5\t\tgenerate code for Power5 architecture\n"
-"-mpower6\t\tgenerate code for Power6 architecture\n"
-"-mpower7\t\tgenerate code for Power7 architecture\n"
+"-ma2\t\t\tgenerate code for A2 architecture\n"
+"-mpower4, -mpwr4\tgenerate code for Power4 architecture\n"
+"-mpower5, -mpwr5, -mpwr5x\n"
+"\t\t\tgenerate code for Power5 architecture\n"
+"-mpower6, -mpwr6\tgenerate code for Power6 architecture\n"
+"-mpower7, -mpwr7\tgenerate code for Power7 architecture\n"
 "-mcell\t\t\tgenerate code for Cell Broadband Engine architecture\n"
 "-mcom\t\t\tgenerate code Power/PowerPC common instructions\n"
 "-many\t\t\tgenerate code for any architecture (PWR/PWRX/PPC)\n"
 msgstr ""
 
-#: config/tc-ppc.c:1205
+#: config/tc-ppc.c:1210
 #, c-format
 msgid ""
 "-maltivec\t\tgenerate code for AltiVec\n"
@@ -10853,7 +10855,7 @@
 "-mno-regnames\t\tDo not allow symbolic names for registers\n"
 msgstr ""
 
-#: config/tc-ppc.c:1215
+#: config/tc-ppc.c:1220
 #, c-format
 msgid ""
 "-mrelocatable\t\tsupport for GCC's -mrelocatble option\n"
@@ -10869,262 +10871,266 @@
 "-Qy, -Qn\t\tignored\n"
 msgstr ""
 
-#: config/tc-ppc.c:1252
+#: config/tc-ppc.c:1257
 #, c-format
 msgid "Unknown default cpu = %s, os = %s"
 msgstr ""
 
-#: config/tc-ppc.c:1278
+#: config/tc-ppc.c:1283
 msgid "Neither Power nor PowerPC opcodes were selected."
 msgstr ""
 
-#: config/tc-ppc.c:1357
+#: config/tc-ppc.c:1362
 #, c-format
 msgid "powerpc_operands[%d].bitm invalid"
 msgstr ""
 
-#: config/tc-ppc.c:1364
+#: config/tc-ppc.c:1369
 #, c-format
 msgid "powerpc_operands[%d] duplicates powerpc_operands[%d]"
 msgstr ""
 
-#: config/tc-ppc.c:1386
+#: config/tc-ppc.c:1391
 #, c-format
 msgid "major opcode is not sorted for %s"
 msgstr ""
 
-#: config/tc-ppc.c:1422
+#: config/tc-ppc.c:1427
 #, c-format
 msgid "%s (%08lx %08lx) after %s (%08lx %08lx)"
 msgstr ""
 
-#: config/tc-ppc.c:1431
+#: config/tc-ppc.c:1436
 #, c-format
 msgid "mask trims opcode bits for %s"
 msgstr ""
 
-#: config/tc-ppc.c:1440
+#: config/tc-ppc.c:1445
 #, c-format
 msgid "operand index error for %s"
 msgstr ""
 
-#: config/tc-ppc.c:1452
+#: config/tc-ppc.c:1457
 #, c-format
 msgid "operand %d overlap in %s"
 msgstr ""
 
-#: config/tc-ppc.c:1478
+#: config/tc-ppc.c:1483
 #, c-format
 msgid "duplicate instruction %s"
 msgstr ""
 
-#: config/tc-ppc.c:1502
+#: config/tc-ppc.c:1507
 #, c-format
 msgid "duplicate macro %s"
 msgstr ""
 
-#: config/tc-ppc.c:1859
+#: config/tc-ppc.c:1864
 msgid "symbol+offset not supported for got tls"
 msgstr ""
 
-#: config/tc-ppc.c:2113
+#: config/tc-ppc.c:2118
 msgid "Relocation cannot be done when using -mrelocatable"
 msgstr ""
 
-#: config/tc-ppc.c:2162
+#: config/tc-ppc.c:2167
 msgid "TOC section size exceeds 64k"
 msgstr ""
 
-#: config/tc-ppc.c:2243
+#: config/tc-ppc.c:2248
 #, c-format
 msgid "syntax error: invalid toc specifier `%s'"
 msgstr ""
 
-#: config/tc-ppc.c:2257
+#: config/tc-ppc.c:2262
 #, c-format
 msgid "syntax error: expected `]', found  `%c'"
 msgstr ""
 
-#: config/tc-ppc.c:2534
+#: config/tc-ppc.c:2539
 msgid "[tocv] symbol is not a toc symbol"
 msgstr ""
 
-#: config/tc-ppc.c:2545
+#: config/tc-ppc.c:2550
 msgid "Unimplemented toc32 expression modifier"
 msgstr ""
 
-#: config/tc-ppc.c:2550
+#: config/tc-ppc.c:2555
 msgid "Unimplemented toc64 expression modifier"
 msgstr ""
 
-#: config/tc-ppc.c:2554
+#: config/tc-ppc.c:2559
 #, c-format
 msgid "Unexpected return value [%d] from parse_toc_entry!\n"
 msgstr ""
 
-#: config/tc-ppc.c:2826
+#: config/tc-ppc.c:2831
 msgid "unsupported relocation for DS offset field"
 msgstr ""
 
-#: config/tc-ppc.c:2879
+#: config/tc-ppc.c:2884
 #, c-format
 msgid "syntax error; found `%c' but expected `%c'"
 msgstr ""
 
-#: config/tc-ppc.c:2919 config/tc-ppc.h:94
+#: config/tc-ppc.c:2924 config/tc-ppc.h:94
 msgid "instruction address is not a multiple of 4"
 msgstr ""
 
-#: config/tc-ppc.c:3084
+#: config/tc-ppc.c:3089
 msgid "Bad .section directive: want a,e,w,x,M,S,G,T in string"
 msgstr ""
 
-#: config/tc-ppc.c:3190
+#: config/tc-ppc.c:3195
 msgid "missing size"
 msgstr ""
 
-#: config/tc-ppc.c:3199
+#: config/tc-ppc.c:3204
 msgid "negative size"
 msgstr ""
 
-#: config/tc-ppc.c:3236
+#: config/tc-ppc.c:3241
 msgid "missing real symbol name"
 msgstr ""
 
-#: config/tc-ppc.c:3257
+#: config/tc-ppc.c:3262
 msgid "attempt to redefine symbol"
 msgstr ""
 
-#: config/tc-ppc.c:3499
+#: config/tc-ppc.c:3504
 msgid "The XCOFF file format does not support arbitrary sections"
 msgstr ""
 
-#: config/tc-ppc.c:3573
-msgid "missing rename string"
+#: config/tc-ppc.c:3577
+msgid ".ref outside .csect"
 msgstr ""
 
-#: config/tc-ppc.c:3603 config/tc-ppc.c:4145 read.c:3314
-msgid "missing value"
-msgstr ""
-
-#: config/tc-ppc.c:3621
-msgid "illegal .stabx expression; zero assumed"
-msgstr ""
-
-#: config/tc-ppc.c:3653
-msgid "missing class"
-msgstr ""
-
-#: config/tc-ppc.c:3662
-msgid "missing type"
-msgstr ""
-
-#: config/tc-ppc.c:3742
+#: config/tc-ppc.c:3599 config/tc-ppc.c:3799
 msgid "missing symbol name"
 msgstr ""
 
-#: config/tc-ppc.c:3932
+#: config/tc-ppc.c:3630
+msgid "missing rename string"
+msgstr ""
+
+#: config/tc-ppc.c:3660 config/tc-ppc.c:4202 read.c:3314
+msgid "missing value"
+msgstr ""
+
+#: config/tc-ppc.c:3678
+msgid "illegal .stabx expression; zero assumed"
+msgstr ""
+
+#: config/tc-ppc.c:3710
+msgid "missing class"
+msgstr ""
+
+#: config/tc-ppc.c:3719
+msgid "missing type"
+msgstr ""
+
+#: config/tc-ppc.c:3989
 msgid "nested .bs blocks"
 msgstr ""
 
-#: config/tc-ppc.c:3964
+#: config/tc-ppc.c:4021
 msgid ".es without preceding .bs"
 msgstr ""
 
-#: config/tc-ppc.c:4137
+#: config/tc-ppc.c:4194
 msgid "non-constant byte count"
 msgstr ""
 
-#: config/tc-ppc.c:4184
+#: config/tc-ppc.c:4241
 msgid ".tc not in .toc section"
 msgstr ""
 
-#: config/tc-ppc.c:4203
+#: config/tc-ppc.c:4260
 msgid ".tc with no label"
 msgstr ""
 
-#: config/tc-ppc.c:4296
+#: config/tc-ppc.c:4353
 msgid ".machine stack overflow"
 msgstr ""
 
-#: config/tc-ppc.c:4303
+#: config/tc-ppc.c:4360
 msgid ".machine stack underflow"
 msgstr ""
 
-#: config/tc-ppc.c:4310
+#: config/tc-ppc.c:4367
 #, c-format
 msgid "invalid machine `%s'"
 msgstr ""
 
-#: config/tc-ppc.c:4361
+#: config/tc-ppc.c:4418
 msgid "No previous section to return to. Directive ignored."
 msgstr ""
 
 #. Section Contents
 #. unknown
-#: config/tc-ppc.c:4771
+#: config/tc-ppc.c:4828
 msgid "Unsupported section attribute -- 'a'"
 msgstr ""
 
-#: config/tc-ppc.c:4955
+#: config/tc-ppc.c:5012
 msgid "bad symbol suffix"
 msgstr ""
 
-#: config/tc-ppc.c:5047
+#: config/tc-ppc.c:5104
 msgid "Unrecognized symbol suffix"
 msgstr ""
 
-#: config/tc-ppc.c:5135
+#: config/tc-ppc.c:5192
 msgid "two .function pseudo-ops with no intervening .ef"
 msgstr ""
 
-#: config/tc-ppc.c:5148
+#: config/tc-ppc.c:5205
 msgid ".ef with no preceding .function"
 msgstr ""
 
-#: config/tc-ppc.c:5277
+#: config/tc-ppc.c:5334
 #, c-format
 msgid "warning: symbol %s has no csect"
 msgstr ""
 
-#: config/tc-ppc.c:5522
+#: config/tc-ppc.c:5579
 msgid "symbol in .toc does not match any .tc"
 msgstr ""
 
-#: config/tc-ppc.c:5897
+#: config/tc-ppc.c:5954
 #, c-format
 msgid "unsupported relocation against %s"
 msgstr ""
 
-#: config/tc-ppc.c:5970
+#: config/tc-ppc.c:6027
 #, c-format
 msgid "cannot emit PC relative %s relocation against %s"
 msgstr ""
 
-#: config/tc-ppc.c:5975
+#: config/tc-ppc.c:6032
 #, c-format
 msgid "cannot emit PC relative %s relocation"
 msgstr ""
 
-#: config/tc-ppc.c:6159
+#: config/tc-ppc.c:6221
 #, c-format
 msgid "Unable to handle reference to symbol %s"
 msgstr ""
 
-#: config/tc-ppc.c:6162
+#: config/tc-ppc.c:6224
 msgid "Unable to resolve expression"
 msgstr ""
 
-#: config/tc-ppc.c:6189
+#: config/tc-ppc.c:6251
 msgid "must branch to an address a multiple of 4"
 msgstr ""
 
-#: config/tc-ppc.c:6193
+#: config/tc-ppc.c:6255
 #, c-format
 msgid "@local or @plt branch destination is too far away, %ld bytes"
 msgstr ""
 
-#: config/tc-ppc.c:6224
+#: config/tc-ppc.c:6286
 #, c-format
 msgid "Gas failure, reloc value %d\n"
 msgstr ""
@@ -11511,7 +11517,7 @@
 msgstr ""
 
 #: config/tc-score.c:6271 config/tc-z80.c:289 ecoff.c:3355 read.c:1484
-#: read.c:1597 read.c:2484 read.c:3048 read.c:3441 symbols.c:326 symbols.c:432
+#: read.c:1597 read.c:2484 read.c:3048 read.c:3441 symbols.c:337 symbols.c:433
 #, c-format
 msgid "symbol `%s' is already defined"
 msgstr ""
@@ -12507,18 +12513,18 @@
 msgid "Illegal operands: %%r_tls_dtpoff in %d-byte data field"
 msgstr ""
 
-#: config/tc-sparc.c:4366 config/tc-vax.c:3313
+#: config/tc-sparc.c:4366 config/tc-vax.c:3314
 #, c-format
 msgid "Illegal operands: Only %%r_%s%d allowed in %d-byte data fields"
 msgstr ""
 
 #: config/tc-sparc.c:4374 config/tc-sparc.c:4405 config/tc-sparc.c:4414
-#: config/tc-vax.c:3321 config/tc-vax.c:3352 config/tc-vax.c:3361
+#: config/tc-vax.c:3322 config/tc-vax.c:3353 config/tc-vax.c:3362
 #, c-format
 msgid "Illegal operands: %%r_%s%d requires arguments in ()"
 msgstr ""
 
-#: config/tc-sparc.c:4423 config/tc-vax.c:3370
+#: config/tc-sparc.c:4423 config/tc-vax.c:3371
 #, c-format
 msgid "Illegal operands: garbage after %%r_%s%d()"
 msgstr ""
@@ -13911,34 +13917,34 @@
 msgid "A bignum/flonum may not be a displacement: 0x%lx used"
 msgstr ""
 
-#: config/tc-vax.c:2995
+#: config/tc-vax.c:2996
 #, c-format
 msgid "Short literal overflow(%ld.), immediate mode assumed."
 msgstr ""
 
-#: config/tc-vax.c:3004
+#: config/tc-vax.c:3005
 #, c-format
 msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s"
 msgstr ""
 
-#: config/tc-vax.c:3069
+#: config/tc-vax.c:3070
 msgid "Length specification ignored. Address mode 9F used"
 msgstr ""
 
-#: config/tc-vax.c:3127
+#: config/tc-vax.c:3128
 msgid "Invalid operand:  immediate value used as base address."
 msgstr ""
 
-#: config/tc-vax.c:3129
+#: config/tc-vax.c:3130
 msgid "Invalid operand:  immediate value used as address."
 msgstr ""
 
-#: config/tc-vax.c:3154
+#: config/tc-vax.c:3155
 #, c-format
 msgid "Symbol %s used as immediate operand in PIC mode."
 msgstr ""
 
-#: config/tc-vax.c:3259
+#: config/tc-vax.c:3260
 #, c-format
 msgid "VIP_BEGIN error:%s"
 msgstr ""
@@ -14850,65 +14856,65 @@
 msgid "can't close `%s'"
 msgstr ""
 
-#: dw2gencfi.c:294
+#: dw2gencfi.c:303
 #, c-format
 msgid "register save offset not a multiple of %u"
 msgstr ""
 
-#: dw2gencfi.c:377
+#: dw2gencfi.c:386
 msgid "CFI state restore without previous remember"
 msgstr ""
 
-#: dw2gencfi.c:432
+#: dw2gencfi.c:443
 msgid "missing separator"
 msgstr ""
 
-#: dw2gencfi.c:482
+#: dw2gencfi.c:493
 msgid "bad register expression"
 msgstr ""
 
-#: dw2gencfi.c:503 dw2gencfi.c:626 dw2gencfi.c:664 dw2gencfi.c:734
-#: dw2gencfi.c:806
+#: dw2gencfi.c:514 dw2gencfi.c:637 dw2gencfi.c:675 dw2gencfi.c:745
+#: dw2gencfi.c:817
 msgid "CFI instruction used without previous .cfi_startproc"
 msgstr ""
 
-#: dw2gencfi.c:688
+#: dw2gencfi.c:699
 msgid "invalid or unsupported encoding in .cfi_personality"
 msgstr ""
 
-#: dw2gencfi.c:695
+#: dw2gencfi.c:706
 msgid ".cfi_personality requires encoding and symbol arguments"
 msgstr ""
 
-#: dw2gencfi.c:718
+#: dw2gencfi.c:729
 msgid "wrong second argument to .cfi_personality"
 msgstr ""
 
-#: dw2gencfi.c:758 dw2gencfi.c:834
+#: dw2gencfi.c:769 dw2gencfi.c:845
 msgid "invalid or unsupported encoding in .cfi_lsda"
 msgstr ""
 
-#: dw2gencfi.c:765
+#: dw2gencfi.c:776
 msgid ".cfi_lsda requires encoding and symbol arguments"
 msgstr ""
 
-#: dw2gencfi.c:790
+#: dw2gencfi.c:801
 msgid "wrong second argument to .cfi_lsda"
 msgstr ""
 
-#: dw2gencfi.c:855
+#: dw2gencfi.c:866
 msgid "wrong third argument to .cfi_val_encoded_addr"
 msgstr ""
 
-#: dw2gencfi.c:870
+#: dw2gencfi.c:931
 msgid "previous CFI entry not closed (missing .cfi_endproc)"
 msgstr ""
 
-#: dw2gencfi.c:905
+#: dw2gencfi.c:966
 msgid ".cfi_endproc without corresponding .cfi_startproc"
 msgstr ""
 
-#: dw2gencfi.c:1515
+#: dw2gencfi.c:1677 dw2gencfi.c:1715
 msgid "open CFI at the end of file; missing .cfi_endproc directive"
 msgstr ""
 
@@ -15137,7 +15143,7 @@
 msgid "bignum invalid"
 msgstr ""
 
-#: expr.c:90 read.c:3623 read.c:4091 read.c:4957
+#: expr.c:90 read.c:3623 read.c:4091 read.c:4960
 msgid "floating point number invalid"
 msgstr ""
 
@@ -15181,7 +15187,7 @@
 msgid "missing '%c'"
 msgstr ""
 
-#: expr.c:981 read.c:4437
+#: expr.c:981 read.c:4440
 msgid "EBCDIC constants are not supported"
 msgstr ""
 
@@ -15219,7 +15225,7 @@
 msgid "right operand is a float; integer 0 assumed"
 msgstr ""
 
-#: expr.c:1866 symbols.c:1356
+#: expr.c:1866 symbols.c:1358
 msgid "division by zero"
 msgstr ""
 
@@ -15256,7 +15262,7 @@
 #. line here (assuming of course that we actually have a line of
 #. input to read), so that it can be displayed in the listing
 #. that is produced at the end of the assembly.
-#: input-file.c:138 input-scrub.c:241 listing.c:334
+#: input-file.c:138 input-scrub.c:243 listing.c:337
 msgid "{standard input}"
 msgstr ""
 
@@ -15270,16 +15276,16 @@
 msgid "can't read from %s: %s"
 msgstr ""
 
-#: input-file.c:249 listing.c:1389 output-file.c:69
+#: input-file.c:249 listing.c:1392 output-file.c:69
 #, c-format
 msgid "can't close %s: %s"
 msgstr ""
 
-#: input-scrub.c:266
+#: input-scrub.c:268
 msgid "macros nested too deeply"
 msgstr ""
 
-#: input-scrub.c:375 input-scrub.c:399
+#: input-scrub.c:377 input-scrub.c:401
 msgid "partial line at end of file ignored"
 msgstr ""
 
@@ -15288,15 +15294,15 @@
 msgid "Unable to allocate memory for new instructions\n"
 msgstr ""
 
-#: listing.c:240
+#: listing.c:243
 msgid "Warning:"
 msgstr ""
 
-#: listing.c:246
+#: listing.c:249
 msgid "Error:"
 msgstr ""
 
-#: listing.c:1275
+#: listing.c:1278
 #, c-format
 msgid ""
 "\n"
@@ -15304,62 +15310,62 @@
 "\n"
 msgstr ""
 
-#: listing.c:1285
+#: listing.c:1288
 #, c-format
 msgid "%s "
 msgstr ""
 
-#: listing.c:1290
+#: listing.c:1293
 #, c-format
 msgid ""
 "\n"
 "\t%s "
 msgstr ""
 
-#: listing.c:1300
+#: listing.c:1303
 msgid ""
 "\n"
 " options passed\t: "
 msgstr ""
 
-#: listing.c:1339
+#: listing.c:1342
 #, c-format
 msgid ""
 " GNU assembler version %s (%s)\n"
 "\t using BFD version %s."
 msgstr ""
 
-#: listing.c:1342
+#: listing.c:1345
 #, c-format
 msgid ""
 "\n"
 " input file    \t: %s"
 msgstr ""
 
-#: listing.c:1343
+#: listing.c:1346
 #, c-format
 msgid ""
 "\n"
 " output file   \t: %s"
 msgstr ""
 
-#: listing.c:1344
+#: listing.c:1347
 #, c-format
 msgid ""
 "\n"
 " target        \t: %s"
 msgstr ""
 
-#: listing.c:1368
+#: listing.c:1371
 #, c-format
 msgid "can't open %s: %s"
 msgstr ""
 
-#: listing.c:1461
+#: listing.c:1464
 msgid "strange paper height, set to no form"
 msgstr ""
 
-#: listing.c:1525
+#: listing.c:1528
 msgid "new line in title"
 msgstr ""
 
@@ -15758,7 +15764,7 @@
 msgid "space allocation too complex in common section"
 msgstr ""
 
-#: read.c:3353 read.c:4683
+#: read.c:3353 read.c:4686
 #, c-format
 msgid "bad floating literal: %s"
 msgstr ""
@@ -15802,11 +15808,11 @@
 msgid "attempt to store value in absolute section"
 msgstr ""
 
-#: read.c:4085 read.c:4951
+#: read.c:4085 read.c:4954
 msgid "zero assumed for missing expression"
 msgstr ""
 
-#: read.c:4097 read.c:4963 write.c:268 write.c:973
+#: read.c:4097 read.c:4966 write.c:265 write.c:982
 msgid "register value used as expression"
 msgstr ""
 
@@ -15829,101 +15835,101 @@
 msgid "bignum truncated to %d bytes"
 msgstr ""
 
-#: read.c:4510 read.c:4705
+#: read.c:4513 read.c:4708
 msgid "unresolvable or nonpositive repeat count; using 1"
 msgstr ""
 
-#: read.c:4559
+#: read.c:4562
 #, c-format
 msgid "unknown floating type type '%c'"
 msgstr ""
 
-#: read.c:4581
+#: read.c:4584
 msgid "floating point constant too large"
 msgstr ""
 
-#: read.c:5117
+#: read.c:5120
 msgid "strings must be placed into a section"
 msgstr ""
 
-#: read.c:5165
+#: read.c:5168
 msgid "expected <nn>"
 msgstr ""
 
 #. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:5198 read.c:5284
+#: read.c:5201 read.c:5287
 msgid "unterminated string; newline inserted"
 msgstr ""
 
-#: read.c:5292
+#: read.c:5295
 msgid "bad escaped character in string"
 msgstr ""
 
-#: read.c:5317
+#: read.c:5320
 msgid "expected address expression"
 msgstr ""
 
-#: read.c:5336
+#: read.c:5339
 #, c-format
 msgid "symbol \"%s\" undefined; zero assumed"
 msgstr ""
 
-#: read.c:5339
+#: read.c:5342
 msgid "some symbol undefined; zero assumed"
 msgstr ""
 
-#: read.c:5375
+#: read.c:5378
 msgid "this string may not contain '\\0'"
 msgstr ""
 
-#: read.c:5411
+#: read.c:5414
 msgid "missing string"
 msgstr ""
 
-#: read.c:5502
+#: read.c:5505
 #, c-format
 msgid ".incbin count zero, ignoring `%s'"
 msgstr ""
 
-#: read.c:5528
+#: read.c:5531
 #, c-format
 msgid "file not found: %s"
 msgstr ""
 
-#: read.c:5542
+#: read.c:5545
 #, c-format
 msgid "seek to end of .incbin file failed `%s'"
 msgstr ""
 
-#: read.c:5553
+#: read.c:5556
 #, c-format
 msgid "skip (%ld) or count (%ld) invalid for file size (%ld)"
 msgstr ""
 
-#: read.c:5560
+#: read.c:5563
 #, c-format
 msgid "could not skip to %ld in file `%s'"
 msgstr ""
 
-#: read.c:5569
+#: read.c:5572
 #, c-format
 msgid "truncated file `%s', %ld of %ld bytes read"
 msgstr ""
 
-#: read.c:5727
+#: read.c:5731
 msgid "missing .func"
 msgstr ""
 
-#: read.c:5744
+#: read.c:5748
 msgid ".endfunc missing for previous .func"
 msgstr ""
 
-#: read.c:5881
+#: read.c:5885
 #, c-format
 msgid "missing closing `%c'"
 msgstr ""
 
-#: read.c:5883
+#: read.c:5887
 msgid "stray `\\'"
 msgstr ""
 
@@ -15949,210 +15955,210 @@
 msgid "comma missing in .xstabs"
 msgstr ""
 
-#: symbols.c:277
+#: symbols.c:288
 #, c-format
 msgid "cannot define symbol `%s' in absolute section"
 msgstr ""
 
-#: symbols.c:417
+#: symbols.c:418
 #, c-format
 msgid "symbol `%s' is already defined as \"%s\"/%s%ld"
 msgstr ""
 
-#: symbols.c:494 symbols.c:501
+#: symbols.c:496 symbols.c:503
 #, c-format
 msgid "inserting \"%s\" into symbol table failed: %s"
 msgstr ""
 
-#: symbols.c:964 symbols.c:968
+#: symbols.c:966 symbols.c:970
 #, c-format
 msgid "undefined symbol `%s' in operation"
 msgstr ""
 
-#: symbols.c:975
+#: symbols.c:977
 #, c-format
 msgid "invalid sections for operation on `%s' and `%s'"
 msgstr ""
 
-#: symbols.c:979
+#: symbols.c:981
 #, c-format
 msgid "invalid section for operation on `%s'"
 msgstr ""
 
-#: symbols.c:987 symbols.c:990
+#: symbols.c:989 symbols.c:992
 #, c-format
 msgid "undefined symbol `%s' in operation setting `%s'"
 msgstr ""
 
-#: symbols.c:996
+#: symbols.c:998
 #, c-format
 msgid "invalid sections for operation on `%s' and `%s' setting `%s'"
 msgstr ""
 
-#: symbols.c:999
+#: symbols.c:1001
 #, c-format
 msgid "invalid section for operation on `%s' setting `%s'"
 msgstr ""
 
-#: symbols.c:1049
+#: symbols.c:1051
 #, c-format
 msgid "symbol definition loop encountered at `%s'"
 msgstr ""
 
-#: symbols.c:1076
+#: symbols.c:1078
 #, c-format
 msgid "cannot convert expression symbol %s to complex relocation"
 msgstr ""
 
-#: symbols.c:1358
+#: symbols.c:1360
 #, c-format
 msgid "division by zero when setting `%s'"
 msgstr ""
 
-#: symbols.c:1439 write.c:1846
+#: symbols.c:1441 write.c:1855
 #, c-format
 msgid "can't resolve value for symbol `%s'"
 msgstr ""
 
-#: symbols.c:1889
+#: symbols.c:1888
 #, c-format
 msgid "\"%d\" (instance number %d of a %s label)"
 msgstr ""
 
-#: symbols.c:1918
+#: symbols.c:1917
 #, c-format
 msgid "attempt to get value of unresolved symbol `%s'"
 msgstr ""
 
-#: symbols.c:2193
+#: symbols.c:2192
 msgid "section symbols are already global"
 msgstr ""
 
-#: symbols.c:2306
+#: symbols.c:2305
 #, c-format
 msgid "Accessing function `%s' as thread-local object"
 msgstr ""
 
-#: symbols.c:2310
+#: symbols.c:2309
 #, c-format
 msgid "Accessing `%s' as thread-local object"
 msgstr ""
 
-#: write.c:167
+#: write.c:168
 #, c-format
 msgid "field fx_size too small to hold %d"
 msgstr ""
 
-#: write.c:444
+#: write.c:453
 #, c-format
 msgid "attempt to .org/.space backwards? (%ld)"
 msgstr ""
 
-#: write.c:675
+#: write.c:684
 msgid "invalid offset expression"
 msgstr ""
 
-#: write.c:697
+#: write.c:706
 msgid "invalid reloc expression"
 msgstr ""
 
-#: write.c:1056
+#: write.c:1065
 #, c-format
 msgid "value of %s too large for field of %d bytes at %s"
 msgstr ""
 
-#: write.c:1068
+#: write.c:1077
 #, c-format
 msgid "signed .word overflow; switch may be too large; %ld at 0x%lx"
 msgstr ""
 
-#: write.c:1112
+#: write.c:1121
 msgid "redefined symbol cannot be used on reloc"
 msgstr ""
 
-#: write.c:1125
+#: write.c:1134
 msgid "relocation out of range"
 msgstr ""
 
-#: write.c:1128
+#: write.c:1137
 #, c-format
 msgid "%s:%u: bad return from bfd_install_relocation: %x"
 msgstr ""
 
-#: write.c:1192
+#: write.c:1201
 msgid "internal error: fixup not contained within frag"
 msgstr ""
 
-#: write.c:1245
+#: write.c:1254
 msgid "reloc not within (fixed part of) section"
 msgstr ""
 
-#: write.c:1312 write.c:1333
+#: write.c:1321 write.c:1342
 #, c-format
 msgid "can't write %s: %s"
 msgstr ""
 
-#: write.c:1363
+#: write.c:1372
 msgid "cannot write to output file"
 msgstr ""
 
-#: write.c:1517
+#: write.c:1526
 #, c-format
 msgid "%d error%s, %d warning%s, generating bad object file"
 msgstr ""
 
-#: write.c:1524
+#: write.c:1533
 #, c-format
 msgid "%d error%s, %d warning%s, no object file generated"
 msgstr ""
 
-#: write.c:1763
+#: write.c:1772
 #, c-format
 msgid "%s: global symbols not supported in common sections"
 msgstr ""
 
-#: write.c:1777
+#: write.c:1786
 #, c-format
 msgid "local label `%s' is not defined"
 msgstr ""
 
-#: write.c:1797
+#: write.c:1806
 #, c-format
 msgid "Local symbol `%s' can't be equated to common symbol `%s'"
 msgstr ""
 
-#: write.c:1804
+#: write.c:1813
 #, c-format
 msgid "can't make global register symbol `%s'"
 msgstr ""
 
-#: write.c:2075
+#: write.c:2084
 #, c-format
 msgid "alignment padding (%lu bytes) not a multiple of %ld"
 msgstr ""
 
-#: write.c:2233
+#: write.c:2242
 #, c-format
 msgid ".word %s-%s+%s didn't fit"
 msgstr ""
 
-#: write.c:2328
+#: write.c:2337
 msgid "padding added"
 msgstr ""
 
-#: write.c:2378
+#: write.c:2387
 msgid "attempt to move .org backwards"
 msgstr ""
 
-#: write.c:2402
+#: write.c:2411
 msgid ".space specifies non-absolute value"
 msgstr ""
 
-#: write.c:2417
+#: write.c:2426
 msgid ".space or .fill with negative value, ignored"
 msgstr ""
 
-#: write.c:2488
+#: write.c:2497
 #, c-format
 msgid ""
 "Infinite loop encountered whilst attempting to compute the addresses of "
diff --git a/binutils/gas/symbols.c b/binutils/gas/symbols.c
index 4cfa85b..5eda2cb 100644
--- a/binutils/gas/symbols.c
+++ b/binutils/gas/symbols.c
@@ -2385,6 +2385,20 @@
   S_CLEAR_WEAKREFR (s);
 }
 
+/* Return whether 2 symbols are the same.  */
+
+int
+symbol_same_p (symbolS *s1, symbolS *s2)
+{
+  if (s1->bsym == NULL
+      && local_symbol_converted_p ((struct local_symbol *) s1))
+    s1 = local_symbol_get_real_symbol ((struct local_symbol *) s1);
+  if (s2->bsym == NULL
+      && local_symbol_converted_p ((struct local_symbol *) s2))
+    s2 = local_symbol_get_real_symbol ((struct local_symbol *) s2);
+  return s1 == s2;
+}
+
 /* Return a pointer to the X_add_number component of a symbol.  */
 
 offsetT *
diff --git a/binutils/gas/symbols.h b/binutils/gas/symbols.h
index 19f58c6..377a130 100644
--- a/binutils/gas/symbols.h
+++ b/binutils/gas/symbols.h
@@ -198,6 +198,7 @@
 extern int symbol_shadow_p (symbolS *);
 extern asymbol *symbol_get_bfdsym (symbolS *);
 extern void symbol_set_bfdsym (symbolS *, asymbol *);
+extern int symbol_same_p (symbolS *, symbolS *);
 
 #ifdef OBJ_SYMFIELD_TYPE
 OBJ_SYMFIELD_TYPE *symbol_get_obj (symbolS *);
diff --git a/binutils/gas/testsuite/ChangeLog b/binutils/gas/testsuite/ChangeLog
index 694128f..39f9e59 100644
--- a/binutils/gas/testsuite/ChangeLog
+++ b/binutils/gas/testsuite/ChangeLog
@@ -1,3 +1,54 @@
+2010-02-08  Christophe Lyon  <christophe.lyon@st.com>
+
+	* gas/arm/branch-reloc.s, gas/arm/branch-reloc.d,
+	gas/arm/branch-reloc.l: New tests and expected results with all
+	variants of call: ARM/Thumb, local/global, inter/intra-section,
+	using BL/BLX.
+
+2010-02-05  Christophe Lyon  <christophe.lyon@st.com>
+
+	* gas/arm/arm-it-auto.d, gas/arm/bl-local-v4t.d,
+	gas/arm/blx-local.d, gas/arm/thumb-w-good.d: Update expected
+	results.
+
+2010-01-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* gas/ppc/xcoff-ref-1.s, gas/ppc/xcoff-ref-1.l: New test.
+	* gas/ppc/aix.exp: Run it.
+
+2010-01-29  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	* gas/pe/section-align-1.d: Generalise to pass on more targets.
+	* gas/pe/section-align-2.d: Likewise.
+
+2010-01-27  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	Backport from trunk:
+	* gas/pe/section-align-1.s: New test source file.
+	* gas/pe/section-align-1.d: Likewise control script.
+	* gas/pe/section-align-2.s: Likewise ...
+	* gas/pe/section-align-2.d: ... and likewise.
+	* gas/pe/pe.exp: Invoke new testcases.
+
+2009-12-15  H.J. Lu  <hongjiu.lu@intel.com>
+
+	Backport from trunk:
+	2009-12-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR gas/11037
+	* gas/i386/intelpic.s: Add testcases.
+	* gas/i386/intelpic.d: Updated.
+
+	2009-10-28  Alan Modra  <amodra@bigpond.net.au>
+
+	* gas/i386/intelpic.d: Correct.
+
+	2009-10-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR gas/10704
+	* gas/i386/intelpic.s: Add 2 new tests.
+	* gas/i386/intelpic.d: Updated.
+
 2009-10-02  Peter Bergner  <bergner@vnet.ibm.com>
 
 	* gas/ppc/476.s: New test.
diff --git a/binutils/gas/testsuite/gas/arm/arm-it-auto.d b/binutils/gas/testsuite/gas/arm/arm-it-auto.d
index 68d5d4a..bfdd9d6 100644
--- a/binutils/gas/testsuite/gas/arm/arm-it-auto.d
+++ b/binutils/gas/testsuite/gas/arm/arm-it-auto.d
@@ -71,11 +71,11 @@
 0000008c <main\+0x8c> bf18      	it	ne
 0000008e <main\+0x8e> 200d      	movne	r0, #13
 00000090 <main\+0x90> f... f... 	bl	0000000. <f.*>
-00000094 <f\+0x94> bd10      	pop	{r4, pc}
-00000096 <f\+0x96> f... f... 	bl	0000000. <f.*>
-0000009a <f\+0x9a> bfb8      	it	lt
-0000009c <f\+0x9c> 2000      	movlt	r0, #0
-0000009e <f\+0x9e> 4348      	muls	r0, r1
-000000a0 <f\+0xa0> bfb8      	it	lt
-000000a2 <f\+0xa2> 2000      	movlt	r0, #0
-000000a4 <f\+0xa4> 4348      	muls	r0, r1
+00000094 <main\+0x94> bd10      	pop	{r4, pc}
+00000096 <main\+0x96> f... f... 	bl	0000000. <f.*>
+0000009a <main\+0x9a> bfb8      	it	lt
+0000009c <main\+0x9c> 2000      	movlt	r0, #0
+0000009e <main\+0x9e> 4348      	muls	r0, r1
+000000a0 <main\+0xa0> bfb8      	it	lt
+000000a2 <main\+0xa2> 2000      	movlt	r0, #0
+000000a4 <main\+0xa4> 4348      	muls	r0, r1
diff --git a/binutils/gas/testsuite/gas/arm/bl-local-v4t.d b/binutils/gas/testsuite/gas/arm/bl-local-v4t.d
index 767d9ce..959f6b2 100644
--- a/binutils/gas/testsuite/gas/arm/bl-local-v4t.d
+++ b/binutils/gas/testsuite/gas/arm/bl-local-v4t.d
@@ -7,13 +7,13 @@
 .*: +file format .*arm.*
 Disassembly of section .text:
 0+00 <[^>]*> f7ff fffe 	bl	00+18 <[^>]*>	0: R_ARM_THM_CALL	foo2
-0+1c <[^>]*> d004      	beq.n	00+28 <[^>]*>
-0+1e <[^>]*> e003      	b.n	00+28 <[^>]*>
-0+20 <[^>]*> f000 f808 	bl	00+34 <[^>]*>
-0+24 <[^>]*> f000 f802 	bl	00+2c <[^>]*>
-0+28 <[^>]*> 46c0      	nop			; \(mov r8, r8\)
-0+2a <[^>]*> 46c0      	nop			; \(mov r8, r8\)
-0+2c <[^>]*> 46c0      	nop			; \(mov r8, r8\)
+0+04 <[^>]*> d004      	beq.n	00+10 <[^>]*>
+0+06 <[^>]*> e003      	b.n	00+10 <[^>]*>
+0+08 <[^>]*> f000 f808 	bl	00+1c <[^>]*>
+0+0c <[^>]*> f000 f802 	bl	00+14 <[^>]*>
+0+10 <[^>]*> 46c0      	nop			; \(mov r8, r8\)
+0+12 <[^>]*> 46c0      	nop			; \(mov r8, r8\)
+0+14 <[^>]*> 46c0      	nop			; \(mov r8, r8\)
 	...
-0+30 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
-0+34 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
+0+18 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
+0+1c <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
diff --git a/binutils/gas/testsuite/gas/arm/blx-local.d b/binutils/gas/testsuite/gas/arm/blx-local.d
index 5aae7ba..2f9a90d 100644
--- a/binutils/gas/testsuite/gas/arm/blx-local.d
+++ b/binutils/gas/testsuite/gas/arm/blx-local.d
@@ -23,7 +23,7 @@
 0+2c <[^>]*> 0afffffc 	beq	00000024 <fooundefthumb>
 0+30 <[^>]*> eafffffb 	b	00000024 <fooundefthumb>
 0+34 <[^>]*> 0bfffffe 	bleq	00000020 <foo>	34: R_ARM_JUMP24	foo
-0+58 <[^>]*> 0afffffe 	beq	00000020 <foo>	38: R_ARM_JUMP24	foo
-0+5c <[^>]*> eafffffe 	b	00000020 <foo>	3c: R_ARM_JUMP24	foo
-0+60 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
-0+64 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
+0+38 <[^>]*> 0afffffe 	beq	00000020 <foo>	38: R_ARM_JUMP24	foo
+0+3c <[^>]*> eafffffe 	b	00000020 <foo>	3c: R_ARM_JUMP24	foo
+0+40 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
+0+44 <[^>]*> e1a00000 	nop			; \(mov r0, r0\)
diff --git a/binutils/gas/testsuite/gas/arm/branch-reloc.d b/binutils/gas/testsuite/gas/arm/branch-reloc.d
new file mode 100644
index 0000000..6ba322e
--- /dev/null
+++ b/binutils/gas/testsuite/gas/arm/branch-reloc.d
@@ -0,0 +1,89 @@
+#name: Inter-section branch relocations
+#This test is only valid on ELF based ports.
+#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+#as: -march=armv5t
+#objdump: -rd
+#stderr: branch-reloc.l
+
+# Test the generation of relocation for inter-section branches
+
+.*: +file format.*arm.*
+
+
+Disassembly of section .text:
+
+00000000 <arm_glob_sym1-0x4>:
+   0:	e1a00000 	nop			; \(mov r0, r0\)
+
+00000004 <arm_glob_sym1>:
+   4:	ebfffffe 	bl	46 <thumb_glob_sym1>
+			4: R_ARM_CALL	thumb_glob_sym1
+   8:	ebfffffe 	bl	100 <thumb_glob_sym2>
+			8: R_ARM_CALL	thumb_glob_sym2
+   c:	fa00000c 	blx	44 <thumb_sym1>
+  10:	ebfffffe 	bl	4 <arm_glob_sym1>
+			10: R_ARM_CALL	arm_glob_sym1
+  14:	ebfffffe 	bl	13c <arm_glob_sym2>
+			14: R_ARM_CALL	arm_glob_sym2
+  18:	eb000007 	bl	3c <arm_sym1>
+  1c:	fafffffe 	blx	46 <thumb_glob_sym1>
+			1c: R_ARM_CALL	thumb_glob_sym1
+  20:	fafffffe 	blx	100 <thumb_glob_sym2>
+			20: R_ARM_CALL	thumb_glob_sym2
+  24:	fa000006 	blx	44 <thumb_sym1>
+  28:	fafffffe 	blx	4 <arm_glob_sym1>
+			28: R_ARM_CALL	arm_glob_sym1
+  2c:	fafffffe 	blx	13c <arm_glob_sym2>
+			2c: R_ARM_CALL	arm_glob_sym2
+  30:	eb000001 	bl	3c <arm_sym1>
+  34:	e1a00000 	nop			; \(mov r0, r0\)
+  38:	e12fff1e 	bx	lr
+
+0000003c <arm_sym1>:
+  3c:	e1a00000 	nop			; \(mov r0, r0\)
+  40:	e12fff1e 	bx	lr
+
+00000044 <thumb_sym1>:
+  44:	4770      	bx	lr
+
+00000046 <thumb_glob_sym1>:
+  46:	4770      	bx	lr
+
+Disassembly of section foo:
+
+00000000 <thumb_glob_sym2-0x100>:
+	...
+
+00000100 <thumb_glob_sym2>:
+ 100:	f7ff fffe 	bl	4 <thumb_glob_sym2-0xfc>
+			100: R_ARM_THM_CALL	arm_glob_sym1
+ 104:	f7ff fffe 	bl	13c <arm_glob_sym2>
+			104: R_ARM_THM_CALL	arm_glob_sym2
+ 108:	f000 e816 	blx	138 <arm_sym2>
+ 10c:	f7ff fffe 	bl	46 <thumb_glob_sym2-0xba>
+			10c: R_ARM_THM_CALL	thumb_glob_sym1
+ 110:	f7ff fffe 	bl	100 <thumb_glob_sym2>
+			110: R_ARM_THM_CALL	thumb_glob_sym2
+ 114:	f000 f80e 	bl	134 <thumb_sym2>
+ 118:	f7ff effe 	blx	4 <thumb_glob_sym2-0xfc>
+			118: R_ARM_THM_CALL	arm_glob_sym1
+ 11c:	f7ff effe 	blx	13c <arm_glob_sym2>
+			11c: R_ARM_THM_CALL	arm_glob_sym2
+ 120:	f000 e80a 	blx	138 <arm_sym2>
+ 124:	f7ff effe 	blx	46 <thumb_glob_sym2-0xba>
+			124: R_ARM_THM_CALL	thumb_glob_sym1
+ 128:	f7ff effe 	blx	100 <thumb_glob_sym2>
+			128: R_ARM_THM_CALL	thumb_glob_sym2
+ 12c:	f000 f802 	bl	134 <thumb_sym2>
+ 130:	46c0      	nop			; \(mov r8, r8\)
+ 132:	4770      	bx	lr
+
+00000134 <thumb_sym2>:
+ 134:	46c0      	nop			; \(mov r8, r8\)
+ 136:	4770      	bx	lr
+
+00000138 <arm_sym2>:
+ 138:	e12fff1e 	bx	lr
+
+0000013c <arm_glob_sym2>:
+ 13c:	e12fff1e 	bx	lr
diff --git a/binutils/gas/testsuite/gas/arm/branch-reloc.l b/binutils/gas/testsuite/gas/arm/branch-reloc.l
new file mode 100644
index 0000000..293cfe0
--- /dev/null
+++ b/binutils/gas/testsuite/gas/arm/branch-reloc.l
@@ -0,0 +1,3 @@
+[^:]*: Assembler messages:
+[^:]*:[0-9]*: Warning: blx to 'arm_sym1' an ARM ISA state function changed to bl
+[^:]*:[0-9]*: Warning: blx to Thumb func 'thumb_sym2' from Thumb ISA state changed to bl
\ No newline at end of file
diff --git a/binutils/gas/testsuite/gas/arm/branch-reloc.s b/binutils/gas/testsuite/gas/arm/branch-reloc.s
new file mode 100644
index 0000000..b01146e
--- /dev/null
+++ b/binutils/gas/testsuite/gas/arm/branch-reloc.s
@@ -0,0 +1,87 @@
+@ Check that non-local branches with and without mode switching
+@ produce the right relocations with appropriate in-place addends.
+
+	.syntax unified
+
+	.text
+	.arm
+	.global arm_glob_sym1
+	.global arm_glob_sym2
+	.global thumb_glob_sym1
+	.global thumb_glob_sym2
+	nop
+	.type arm_glob_sym1, %function
+arm_glob_sym1:
+	bl thumb_glob_sym1
+	bl thumb_glob_sym2
+	bl thumb_sym1
+	bl arm_glob_sym1
+	bl arm_glob_sym2
+	bl arm_sym1
+	blx thumb_glob_sym1
+	blx thumb_glob_sym2
+	blx thumb_sym1
+	blx arm_glob_sym1
+	blx arm_glob_sym2
+	blx arm_sym1
+	nop
+	bx lr
+
+	.type arm_sym1, %function
+arm_sym1:
+	nop
+	bx lr
+
+	.thumb
+	.thumb_func
+	.type thumb_sym1, %function
+thumb_sym1:
+	bx lr
+
+	.type thumb_glob_sym1, %function
+	.thumb_func
+	.thumb
+thumb_glob_sym1:
+	bx lr
+
+	.section foo,"ax"
+
+@ Add some space to avoid confusing objdump output: as we are
+@ producing a relocatable file, objdump may match an address to
+@ the wrong symbol (as symbols in different sections may have the same
+@ address in the object file).
+	.space 0x100
+
+	.type thumb_glob_sym2, %function
+	.thumb_func
+	.thumb
+thumb_glob_sym2:
+	bl arm_glob_sym1
+	bl arm_glob_sym2
+	bl arm_sym2
+	bl thumb_glob_sym1
+	bl thumb_glob_sym2
+	bl thumb_sym2
+	blx arm_glob_sym1
+	blx arm_glob_sym2
+	blx arm_sym2
+	blx thumb_glob_sym1
+	blx thumb_glob_sym2
+	blx thumb_sym2
+	nop
+	bx lr
+
+	.type thumb_sym2, %function
+thumb_sym2:
+	nop
+	bx lr
+
+	.arm
+	.type arm_sym2, %function
+arm_sym2:
+	bx lr
+
+	.global arm_glob_sym2
+	.type arm_glob_sym2, %function
+arm_glob_sym2:
+	bx lr
diff --git a/binutils/gas/testsuite/gas/arm/thumb-w-good.d b/binutils/gas/testsuite/gas/arm/thumb-w-good.d
index 645a951..d41493f 100644
--- a/binutils/gas/testsuite/gas/arm/thumb-w-good.d
+++ b/binutils/gas/testsuite/gas/arm/thumb-w-good.d
@@ -6,4 +6,4 @@
 
 Disassembly of section .text:
 00000000 <.text> f7ff fffe 	bl	00000000 <foo>
-00000004 <foo\+0x4> f3ef 8000 	mrs	r0, CPSR
+00000004 <.text\+0x4> f3ef 8000 	mrs	r0, CPSR
diff --git a/binutils/gas/testsuite/gas/i386/intelpic.d b/binutils/gas/testsuite/gas/i386/intelpic.d
index 4a689ec..d78894a 100644
--- a/binutils/gas/testsuite/gas/i386/intelpic.d
+++ b/binutils/gas/testsuite/gas/i386/intelpic.d
@@ -6,11 +6,22 @@
 
 Disassembly of section .text:
 
-0+000 <gs_foo>:
-   0:	c3 [ 	]*ret    
+0+ <gs_foo>:
+[ 	]*[a-f0-9]+:	c3                   	ret    
 
-0+001 <bar>:
-   1:	8d 83 00 00 00 00 [ 	]*lea    0x0\(%ebx\),%eax
-   7:	8b 83 00 00 00 00 [ 	]*mov    0x0\(%ebx\),%eax
-   d:	90 [ 	]*nop
-[ 	]*...
+0+1 <bar>:
+[ 	]*[a-f0-9]+:	8d 83 14 00 00 00    	lea    0x14\(%ebx\),%eax
+[ 	]*[a-f0-9]+:	8b 83 00 00 00 00    	mov    0x0\(%ebx\),%eax
+[ 	]*[a-f0-9]+:	ff 24 85 0d 00 00 00 	jmp    \*0xd\(,%eax,4\)
+[ 	]*[a-f0-9]+:	8d 83 14 00 00 00    	lea    0x14\(%ebx\),%eax
+[ 	]*[a-f0-9]+:	ff 24 85 0d 10 00 00 	jmp    \*0x100d\(,%eax,4\)
+[ 	]*[a-f0-9]+:	ff 24 85 28 10 00 00 	jmp    \*0x1028\(,%eax,4\)
+[ 	]*[a-f0-9]+:	90                   	nop
+
+0+29 <L11>:
+[ 	]*[a-f0-9]+:	ff 24 85 29 10 00 00 	jmp    \*0x1029\(,%eax,4\)
+[ 	]*[a-f0-9]+:	ff 24 85 37 10 00 00 	jmp    \*0x1037\(,%eax,4\)
+
+0+37 <L12>:
+[ 	]*[a-f0-9]+:	90                   	nop
+#pass
diff --git a/binutils/gas/testsuite/gas/i386/intelpic.s b/binutils/gas/testsuite/gas/i386/intelpic.s
index 2e75864..b8db43d 100644
--- a/binutils/gas/testsuite/gas/i386/intelpic.s
+++ b/binutils/gas/testsuite/gas/i386/intelpic.s
@@ -7,5 +7,17 @@
 bar:
  lea	eax, .LC0@GOTOFF[ebx]
  mov	eax, DWORD PTR gs_foo@GOT[ebx]
- nop
-.p2align 4,0
+
+.L11:
+        jmp     DWORD PTR[ .L11  + eax * 4 ]
+.LC0:
+        lea     eax, DWORD PTR[ .LC0@GOTOFF + ebx ]
+        jmp     DWORD PTR[ .L11  + eax * 4 + 0x1000 ]
+        jmp     DWORD PTR[ .L12  + eax * 4 + 0x1000 ]
+.L12:
+	nop
+L11:
+        jmp     DWORD PTR[ L11  + eax * 4 + 0x1000 ]
+        jmp     DWORD PTR[ L12  + eax * 4 + 0x1000 ]
+L12:
+	nop
diff --git a/binutils/gas/testsuite/gas/pe/pe.exp b/binutils/gas/testsuite/gas/pe/pe.exp
index 87e2a3e..aadf972 100755
--- a/binutils/gas/testsuite/gas/pe/pe.exp
+++ b/binutils/gas/testsuite/gas/pe/pe.exp
@@ -32,3 +32,6 @@
 run_dump_test "aligncomm-b"
 run_dump_test "aligncomm-c"
 run_dump_test "aligncomm-d"
+
+run_dump_test "section-align-1"
+run_dump_test "section-align-3"
diff --git a/binutils/gas/testsuite/gas/pe/section-align-1.d b/binutils/gas/testsuite/gas/pe/section-align-1.d
new file mode 100644
index 0000000..908bc37
--- /dev/null
+++ b/binutils/gas/testsuite/gas/pe/section-align-1.d
@@ -0,0 +1,29 @@
+#objdump: -h
+#name: section alignment
+
+# Test that alignment works in .section directives.
+
+.*: .*
+
+Sections:
+Idx Name          *Size      *VMA       *LMA       *File off  *Algn
+  0 \.text         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*[24]
+.*
+  1 \.data         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*[24]
+.*
+  2 \.bss          0*0000000  0*0000000  0*0000000  0*0000000  2\*\*[24]
+.*
+  3 \.none         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*0
+.*
+  4 \.zero         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*0
+.*
+  5 \.one          0*0000001  0*0000000  0*0000000  0*00001a4  2\*\*0
+.*
+  6 \.two          0*0000002  0*0000000  0*0000000  0*00001a5  2\*\*0
+.*
+  7 \.three        0*0000003  0*0000000  0*0000000  0*00001a7  2\*\*0
+.*
+  8 \.four         0*0000004  0*0000000  0*0000000  0*00001aa  2\*\*0
+.*
+  9 \.five         0*0000005  0*0000000  0*0000000  0*00001ae  2\*\*0
+.*
diff --git a/binutils/gas/testsuite/gas/pe/section-align-1.s b/binutils/gas/testsuite/gas/pe/section-align-1.s
new file mode 100644
index 0000000..de1f9b5
--- /dev/null
+++ b/binutils/gas/testsuite/gas/pe/section-align-1.s
@@ -0,0 +1,15 @@
+
+	.section	.none,"dr0"
+	.section	.zero,"dr0"
+	.ascii	""
+	.section	.one,"dr0"
+	.ascii	"1"
+	.section	.two,"dr0"
+	.ascii	"12"
+	.section	.three,"dr0"
+	.ascii	"123"
+	.section	.four,"dr0"
+	.ascii	"1234"
+	.section	.five,"dr0"
+	.ascii	"12345"
+	.end
diff --git a/binutils/gas/testsuite/gas/pe/section-align-3.d b/binutils/gas/testsuite/gas/pe/section-align-3.d
new file mode 100644
index 0000000..5a8c2ad
--- /dev/null
+++ b/binutils/gas/testsuite/gas/pe/section-align-3.d
@@ -0,0 +1,39 @@
+#objdump: -h
+#name: section alignment
+
+# Test that alignment works in .section directives.
+
+.*: .*
+
+Sections:
+Idx Name          *Size      *VMA       *LMA       *File off  *Algn
+  0 \.text         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*[24]
+.*
+  1 \.data         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*[24]
+.*
+  2 \.bss          0*0000000  0*0000000  0*0000000  0*0000000  2\*\*[24]
+.*
+  3 \.none         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*3
+.*
+  4 \.zero         0*0000000  0*0000000  0*0000000  0*0000000  2\*\*3
+.*
+  5 \.one          0*0000008  0*0000000  0*0000000  0*000026c  2\*\*3
+.*
+  6 \.two          0*0000008  0*0000000  0*0000000  0*0000274  2\*\*3
+.*
+  7 \.three        0*0000008  0*0000000  0*0000000  0*000027c  2\*\*3
+.*
+  8 \.four         0*0000008  0*0000000  0*0000000  0*0000284  2\*\*3
+.*
+  9 \.five         0*0000008  0*0000000  0*0000000  0*000028c  2\*\*3
+.*
+ 10 \.six          0*0000008  0*0000000  0*0000000  0*0000294  2\*\*3
+.*
+ 11 \.seven        0*0000008  0*0000000  0*0000000  0*000029c  2\*\*3
+.*
+ 12 \.eight        0*0000008  0*0000000  0*0000000  0*00002a4  2\*\*3
+.*
+ 13 \.nine         0*0000010  0*0000000  0*0000000  0*00002ac  2\*\*3
+.*
+ 14 \.ten          0*0000010  0*0000000  0*0000000  0*00002bc  2\*\*3
+.*
diff --git a/binutils/gas/testsuite/gas/pe/section-align-3.s b/binutils/gas/testsuite/gas/pe/section-align-3.s
new file mode 100644
index 0000000..fc7b9ea
--- /dev/null
+++ b/binutils/gas/testsuite/gas/pe/section-align-3.s
@@ -0,0 +1,25 @@
+
+	.section	.none,"dr3"
+	.section	.zero,"dr3"
+	.ascii	""
+	.section	.one,"dr3"
+	.ascii	"1"
+	.section	.two,"dr3"
+	.ascii	"12"
+	.section	.three,"dr3"
+	.ascii	"123"
+	.section	.four,"dr3"
+	.ascii	"1234"
+	.section	.five,"dr3"
+	.ascii	"12345"
+	.section	.six,"dr3"
+	.ascii	"123456"
+	.section	.seven,"dr3"
+	.ascii	"1234567"
+	.section	.eight,"dr3"
+	.ascii	"12345678"
+	.section	.nine,"dr3"
+	.ascii	"123456789"
+	.section	.ten,"dr3"
+	.ascii	"1234567890"
+	.end
diff --git a/binutils/gas/testsuite/gas/ppc/aix.exp b/binutils/gas/testsuite/gas/ppc/aix.exp
index bed4237..917f0d9 100644
--- a/binutils/gas/testsuite/gas/ppc/aix.exp
+++ b/binutils/gas/testsuite/gas/ppc/aix.exp
@@ -65,4 +65,6 @@
     run_dump_test "textalign-xcoff-002"
     run_dump_test "xcoff-branch-1-32"
     run_dump_test "xcoff-branch-1-64"
+
+    run_list_test "xcoff-ref-1"
 }
diff --git a/binutils/gas/testsuite/gas/ppc/xcoff-ref-1.l b/binutils/gas/testsuite/gas/ppc/xcoff-ref-1.l
new file mode 100644
index 0000000..2120a20
--- /dev/null
+++ b/binutils/gas/testsuite/gas/ppc/xcoff-ref-1.l
@@ -0,0 +1,5 @@
+.*: Assembler messages:
+.*:1: Error: .ref outside .csect
+.*:3: Error: junk at end of line, first unrecognized character is `1'
+.*:4: Error: missing symbol name
+.*:5: Error: missing symbol name
diff --git a/binutils/gas/testsuite/gas/ppc/xcoff-ref-1.s b/binutils/gas/testsuite/gas/ppc/xcoff-ref-1.s
new file mode 100644
index 0000000..74e264f
--- /dev/null
+++ b/binutils/gas/testsuite/gas/ppc/xcoff-ref-1.s
@@ -0,0 +1,6 @@
+	.ref	foo
+	.csect	bar[rw]
+	.ref	1234
+	.ref	a,
+	.ref	,
+	.ref
diff --git a/binutils/gas/write.c b/binutils/gas/write.c
index 8adb87b..4c63a26 100644
--- a/binutils/gas/write.c
+++ b/binutils/gas/write.c
@@ -150,7 +150,8 @@
 		  symbolS *sub_symbol,	/* X_op_symbol.  */
 		  offsetT offset,	/* X_add_number.  */
 		  int pcrel,		/* TRUE if PC-relative relocation.  */
-		  RELOC_ENUM r_type ATTRIBUTE_UNUSED /* Relocation type.  */)
+		  RELOC_ENUM r_type ATTRIBUTE_UNUSED /* Relocation type.  */,
+		  int at_beginning)	/* Add to the start of the list?  */
 {
   fixS *fixP;
 
@@ -194,10 +195,6 @@
 
   as_where (&fixP->fx_file, &fixP->fx_line);
 
-  /* Usually, we want relocs sorted numerically, but while
-     comparing to older versions of gas that have relocs
-     reverse sorted, it is convenient to have this compile
-     time option.  xoxorich.  */
   {
 
     fixS **seg_fix_rootP = (frags_chained
@@ -207,22 +204,22 @@
 			    ? &seg_info (now_seg)->fix_tail
 			    : &frchain_now->fix_tail);
 
-#ifdef REVERSE_SORT_RELOCS
-
-    fixP->fx_next = *seg_fix_rootP;
-    *seg_fix_rootP = fixP;
-
-#else /* REVERSE_SORT_RELOCS  */
-
-    fixP->fx_next = NULL;
-
-    if (*seg_fix_tailP)
-      (*seg_fix_tailP)->fx_next = fixP;
+    if (at_beginning)
+      {
+	fixP->fx_next = *seg_fix_rootP;
+	*seg_fix_rootP = fixP;
+	if (fixP->fx_next == NULL)
+	  *seg_fix_tailP = fixP;
+      }
     else
-      *seg_fix_rootP = fixP;
-    *seg_fix_tailP = fixP;
-
-#endif /* REVERSE_SORT_RELOCS  */
+      {
+	fixP->fx_next = NULL;
+	if (*seg_fix_tailP)
+	  (*seg_fix_tailP)->fx_next = fixP;
+	else
+	  *seg_fix_rootP = fixP;
+	*seg_fix_tailP = fixP;
+      }
   }
 
   return fixP;
@@ -240,7 +237,7 @@
 	 RELOC_ENUM r_type		/* Relocation type.  */)
 {
   return fix_new_internal (frag, where, size, add_symbol,
-			   (symbolS *) NULL, offset, pcrel, r_type);
+			   (symbolS *) NULL, offset, pcrel, r_type, FALSE);
 }
 
 /* Create a fixup for an expression.  Currently we only support fixups
@@ -308,7 +305,19 @@
       break;
     }
 
-  return fix_new_internal (frag, where, size, add, sub, off, pcrel, r_type);
+  return fix_new_internal (frag, where, size, add, sub, off, pcrel,
+			   r_type, FALSE);
+}
+
+/* Create a fixup at the beginning of FRAG.  The arguments are the same
+   as for fix_new, except that WHERE is implicitly 0.  */
+
+fixS *
+fix_at_start (fragS *frag, int size, symbolS *add_symbol,
+	      offsetT offset, int pcrel, RELOC_ENUM r_type)
+{
+  return fix_new_internal (frag, 0, size, add_symbol,
+			   (symbolS *) NULL, offset, pcrel, r_type, TRUE);
 }
 
 /* Generic function to determine whether a fixup requires a relocation.  */
diff --git a/binutils/gas/write.h b/binutils/gas/write.h
index d5fe679..8303f1b 100644
--- a/binutils/gas/write.h
+++ b/binutils/gas/write.h
@@ -176,6 +176,9 @@
 extern fixS *fix_new
   (fragS * frag, int where, int size, symbolS * add_symbol,
    offsetT offset, int pcrel, bfd_reloc_code_real_type r_type);
+extern fixS *fix_at_start
+  (fragS * frag, int size, symbolS * add_symbol,
+   offsetT offset, int pcrel, bfd_reloc_code_real_type r_type);
 extern fixS *fix_new_exp
   (fragS * frag, int where, int size, expressionS *exp, int pcrel,
    bfd_reloc_code_real_type r_type);
diff --git a/binutils/gold/ChangeLog b/binutils/gold/ChangeLog
index cb32549..a6d5041 100644
--- a/binutils/gold/ChangeLog
+++ b/binutils/gold/ChangeLog
@@ -1,3 +1,128 @@
+2010-01-13  Ian Lance Taylor  <iant@google.com>
+
+	Bring over from mainline:
+	2010-01-04  Ian Lance Taylor  <iant@google.com>
+
+	PR 10980
+	* options.h (class General_options): Add --add-needed and
+	--copy-dt-needed-entries.  Tweak --as-needed help entry.
+	* object.cc (Input_objects::check_dynamic_dependencies): Give an
+	error if --copy-dt-needed-entries aka --add-needed is used and
+	would cause a change in behaviour.
+
+2010-01-13  Ian Lance Taylor  <iant@google.com>
+
+	Bring over from mainline:
+	2010-01-07  Ian Lance Taylor  <iant@google.com>
+
+	PR 11042
+	* copy-relocs.cc (Copy_relocs::emit_copy_reloc): Mark the dynamic
+	object as needed.
+
+2010-01-13  Ian Lance Taylor  <iant@google.com>
+
+	Bring over from mainline:
+	2010-01-08  Ian Lance Taylor  <iant@google.com>
+
+	PR 11072
+	* layout.cc (Layout::include_section): Remove .gnu_debuglink
+	sections.
+
+2009-11-06  Ian Lance Taylor  <iant@google.com>
+
+	Bring over from mainline:
+	2009-10-16  Doug Kwan  <dougkwan@google.com>
+
+	* dynobj.cc (Versions::Versions): Initialize version_script_.
+	Only insert base version symbol definition for a shared object
+	if version script defines any version versions.
+	(Versions::define_base_version): New method definition.
+	(Versions::add_def): Check that base version is not needed.
+	(Versions::add_need): Define base version lazily.
+	* dynobj.h (Versions::define_base_version): New method declaration.
+	(Versions::needs_base_version_): New data member declaration.
+
+2009-11-06  Ian Lance Taylor  <iant@google.com>
+
+	PR 10876
+	* defstd.cc (in_segment): Set only_if_ref true for "end".
+
+2009-11-05  Ian Lance Taylor  <iant@google.com>
+
+	PR 10910
+	* output.cc (Output_segment::add_output_section): Add missing
+	return statement.
+
+2009-11-04  Ian Lance Taylor  <iant@google.com>
+
+	PR 10880
+	* object.h (class Object): Add is_needed and set_is_needed
+	methods.  Add is_needed_ field.  Make bool fields into bitfields.
+	* symtab.cc (Symbol_table::set_dynsym_indexes): If a symbol is
+	defined in a dynamic object and referenced by a regular object,
+	set is_needed for the dynamic object.
+	* layout.cc (Layout::finish_dynamic_section): Don't add DT_NEEDED
+	if the file is marked with as_needed and it is not needed.
+
+2009-11-04  Ian Lance Taylor  <iant@google.com>
+
+	PR 10887
+	* arm.cc (Target_arm::do_finalize_sections): Don't add dynamic
+	tags if data is discarded by linker script.
+	* i386.cc (Target_i386::do_finalize_sections): Likewise.
+	* powerpc.cc (Target_powerpc::do_finalize_sections): Likewise.
+	* sparc.cc (Target_sparc::do_finalize_sections): Likewise.
+	* x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
+
+2009-11-04  Ian Lance Taylor  <iant@google.com>
+
+	* layout.cc (Layout::get_output_section): Add is_interp and
+	is_dynamic_linker_section parameters.  Change all callers.
+	(Layout::choose_output_section): Likewise.
+	(Layout::make_output_section): Likewise.
+	(Layout::add_output_section_data): Add is_dynamic_linker_section
+	parameter.  Change all callers.
+	* layout.h (class Layout): Update declarations.
+	* output.h (class Output_section): Add is_interp, set_is_interp,
+	is_dynamic_linker_section, set_is_dynamic_linker_section methods.
+	Add is_interp_, is_dynamic_linker_section_ fields.  Change
+	generate_code_fills_at_write_ to a bitfield.
+	* output.cc (Output_section::Output_sections): Initialize new
+	fields.
+	(Output_segment::add_output_section): Add do_sort parameter.
+	Change all callers.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+	PR 10860
+	* options.h (class General_options): Add --warn-common.
+	* resolve.cc (Symbol_table::resolve): Handle --warn-common when
+	merging two common symbols.
+	(Symbol_table::should_override): Handle --warn-common when merging
+	a common symbol with a defined symbol.  Use report_resolve_problem
+	for multiple definitions.
+	(Symbol_table::report_resolve_problem): New function.
+	* symtab.h (class Symbol_table): Declare report_resolve_problem.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+	PR 10893
+	* defstd.cc (in_section): Add entries for __rel_iplt_start,
+	__rel_iplt_end, __rela_iplt_start, __rela_iplt_end, and __stack.
+
+2009-11-03  Ian Lance Taylor  <iant@google.com>
+
+	PR 10895
+	* po/Make-in ($(srcdir)/$(PACKAGE).pot): Pass -C and
+	--msgid-bugs-address.
+	(install-pdf): New target.
+	(install-data_yes): Look up one directory to find mkinstalldirs.
+
+2009-10-16  Doug Kwan  <dougkwan@google.com>
+
+	* output.cc (Output_segment::set_section_list_address): Cast
+	expressions to unsigned long long type to avoid format warnings.
+
 2009-10-15  Ian Lance Taylor  <iant@google.com>
 
 	* script.cc (Script_options::add_symbol_assignment): Always add a
diff --git a/binutils/gold/Makefile.in b/binutils/gold/Makefile.in
index d4c689b..cd3729b 100644
--- a/binutils/gold/Makefile.in
+++ b/binutils/gold/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -665,7 +665,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -690,7 +690,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -946,7 +946,8 @@
 	  fi; \
 	done
 	-test -n "$(am__skip_mode_fix)" \
-	|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
@@ -990,17 +991,17 @@
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
-	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
-	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+	  lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
 	*.tar.xz*) \
 	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
diff --git a/binutils/gold/aclocal.m4 b/binutils/gold/aclocal.m4
index db48652..ded4d60 100644
--- a/binutils/gold/aclocal.m4
+++ b/binutils/gold/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/gold/arm.cc b/binutils/gold/arm.cc
index dd5f67d..c1615f0 100644
--- a/binutils/gold/arm.cc
+++ b/binutils/gold/arm.cc
@@ -1075,7 +1075,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_);
+					   this->got_, false);
       os->set_is_relro();
 
       // The old GNU linker creates a .got.plt section.  We just
@@ -1086,7 +1086,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_plt_);
+					   this->got_plt_, false);
       os->set_is_relro();
 
       // The first three entries are reserved.
@@ -1114,7 +1114,7 @@
       gold_assert(layout != NULL);
       this->rel_dyn_ = new Reloc_section(parameters->options().combreloc());
       layout->add_output_section_data(".rel.dyn", elfcpp::SHT_REL,
-				      elfcpp::SHF_ALLOC, this->rel_dyn_);
+				      elfcpp::SHF_ALLOC, this->rel_dyn_, true);
     }
   return this->rel_dyn_;
 }
@@ -1186,7 +1186,7 @@
 {
   this->rel_ = new Reloc_section(false);
   layout->add_output_section_data(".rel.plt", elfcpp::SHT_REL,
-				  elfcpp::SHF_ALLOC, this->rel_);
+				  elfcpp::SHF_ALLOC, this->rel_, true);
 }
 
 template<bool big_endian>
@@ -1348,7 +1348,7 @@
       layout->add_output_section_data(".plt", elfcpp::SHT_PROGBITS,
 				      (elfcpp::SHF_ALLOC
 				       | elfcpp::SHF_EXECINSTR),
-				      this->plt_);
+				      this->plt_, false);
     }
   this->plt_->add_entry(gsym);
 }
@@ -1831,10 +1831,12 @@
   Output_data_dynamic* const odyn = layout->dynamic_data();
   if (odyn != NULL)
     {
-      if (this->got_plt_ != NULL)
+      if (this->got_plt_ != NULL
+	  && this->got_plt_->output_section() != NULL)
 	odyn->add_section_address(elfcpp::DT_PLTGOT, this->got_plt_);
 
-      if (this->plt_ != NULL)
+      if (this->plt_ != NULL
+	  && this->plt_->output_section() != NULL)
 	{
 	  const Output_data* od = this->plt_->rel_plt();
 	  odyn->add_section_size(elfcpp::DT_PLTRELSZ, od);
@@ -1842,7 +1844,8 @@
 	  odyn->add_constant(elfcpp::DT_PLTREL, elfcpp::DT_REL);
 	}
 
-      if (this->rel_dyn_ != NULL)
+      if (this->rel_dyn_ != NULL
+	  && this->rel_dyn_->output_section() != NULL)
 	{
 	  const Output_data* od = this->rel_dyn_;
 	  odyn->add_section_address(elfcpp::DT_REL, od);
@@ -1879,7 +1882,8 @@
 		      == NULL);
 	  Output_segment*  exidx_segment =
 	    layout->make_output_segment(elfcpp::PT_ARM_EXIDX, elfcpp::PF_R);
-	  exidx_segment->add_output_section(exidx_section, elfcpp::PF_R);
+	  exidx_segment->add_output_section(exidx_section, elfcpp::PF_R,
+					    false);
 	}
     }
 }
diff --git a/binutils/gold/common.cc b/binutils/gold/common.cc
index f90ae40..4bc6a51 100644
--- a/binutils/gold/common.cc
+++ b/binutils/gold/common.cc
@@ -239,7 +239,7 @@
   Output_data_space *poc = new Output_data_space(addralign, ds_name);
   Output_section *os = layout->add_output_section_data(name,
 						       elfcpp::SHT_NOBITS,
-						       flags, poc);
+						       flags, poc, false);
   if (os != NULL)
     {
       if (commons_section_type == COMMONS_SMALL)
diff --git a/binutils/gold/copy-relocs.cc b/binutils/gold/copy-relocs.cc
index 6ef72d3..919b03f 100644
--- a/binutils/gold/copy-relocs.cc
+++ b/binutils/gold/copy-relocs.cc
@@ -1,6 +1,6 @@
 // copy-relocs.cc -- handle COPY relocations for gold.
 
-// Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -132,13 +132,16 @@
   while ((value & (addralign - 1)) != 0)
     addralign >>= 1;
 
+  // Mark the dynamic object as needed for the --as-needed option.
+  sym->object()->set_is_needed();
+
   if (this->dynbss_ == NULL)
     {
       this->dynbss_ = new Output_data_space(addralign, "** dynbss");
       layout->add_output_section_data(".bss",
 				      elfcpp::SHT_NOBITS,
 				      elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE,
-				      this->dynbss_);
+				      this->dynbss_, false);
     }
 
   Output_data_space* dynbss = this->dynbss_;
diff --git a/binutils/gold/defstd.cc b/binutils/gold/defstd.cc
index 984f3e1..e09d814 100644
--- a/binutils/gold/defstd.cc
+++ b/binutils/gold/defstd.cc
@@ -107,7 +107,67 @@
     0,				// nonvis
     true,			// offset_is_from_end
     true			// only_if_ref
-  }
+  },
+  {
+    "__rel_iplt_start",		// name
+    ".rel.iplt",		// output_section
+    0,				// value
+    0,				// size
+    elfcpp::STT_NOTYPE,		// type
+    elfcpp::STB_GLOBAL,		// binding
+    elfcpp::STV_HIDDEN,		// visibility
+    0,				// nonvis
+    false,			// offset_is_from_end
+    true			// only_if_ref
+  },
+  {
+    "__rel_iplt_end",		// name
+    ".rel.iplt",		// output_section
+    0,				// value
+    0,				// size
+    elfcpp::STT_NOTYPE,		// type
+    elfcpp::STB_GLOBAL,		// binding
+    elfcpp::STV_HIDDEN,		// visibility
+    0,				// nonvis
+    true,			// offset_is_from_end
+    true			// only_if_ref
+  },
+  {
+    "__rela_iplt_start",	// name
+    ".rela.iplt",		// output_section
+    0,				// value
+    0,				// size
+    elfcpp::STT_NOTYPE,		// type
+    elfcpp::STB_GLOBAL,		// binding
+    elfcpp::STV_HIDDEN,		// visibility
+    0,				// nonvis
+    false,			// offset_is_from_end
+    true			// only_if_ref
+  },
+  {
+    "__rela_iplt_end",		// name
+    ".rela.iplt",		// output_section
+    0,				// value
+    0,				// size
+    elfcpp::STT_NOTYPE,		// type
+    elfcpp::STB_GLOBAL,		// binding
+    elfcpp::STV_HIDDEN,		// visibility
+    0,				// nonvis
+    true,			// offset_is_from_end
+    true			// only_if_ref
+  },
+  {
+    "__stack",			// name
+    ".stack",			// output_section
+    0,				// value
+    0,				// size
+    elfcpp::STT_NOTYPE,		// type
+    elfcpp::STB_GLOBAL,		// binding
+    elfcpp::STV_DEFAULT,	// visibility
+    0,				// nonvis
+    false,			// offset_is_from_end
+    true			// only_if_ref
+  },
 };
 
 const int in_section_count = sizeof in_section / sizeof in_section[0];
@@ -238,7 +298,7 @@
     elfcpp::STV_DEFAULT,	// visibility
     0,				// nonvis
     Symbol::SEGMENT_END,	// offset_from_base
-    false			// only_if_ref
+    true			// only_if_ref
   }
 };
 
diff --git a/binutils/gold/dynobj.cc b/binutils/gold/dynobj.cc
index b14d06d..dec6f3d 100644
--- a/binutils/gold/dynobj.cc
+++ b/binutils/gold/dynobj.cc
@@ -1300,27 +1300,18 @@
 Versions::Versions(const Version_script_info& version_script,
                    Stringpool* dynpool)
   : defs_(), needs_(), version_table_(),
-    is_finalized_(false), version_script_(version_script)
+    is_finalized_(false), version_script_(version_script),
+    needs_base_version_(parameters->options().shared())
 {
-  // We always need a base version, so define that first.  Nothing
-  // explicitly declares itself as part of base, so it doesn't need to
-  // be in version_table_.
-  if (parameters->options().shared())
-    {
-      const char* name = parameters->options().soname();
-      if (name == NULL)
-	name = parameters->options().output_file_name();
-      name = dynpool->add(name, false, NULL);
-      Verdef* vdbase = new Verdef(name, std::vector<std::string>(),
-                                  true, false, true);
-      this->defs_.push_back(vdbase);
-    }
-
   if (!this->version_script_.empty())
     {
       // Parse the version script, and insert each declared version into
       // defs_ and version_table_.
       std::vector<std::string> versions = this->version_script_.get_versions();
+
+      if (this->needs_base_version_ && !versions.empty())
+	this->define_base_version(dynpool);
+
       for (size_t k = 0; k < versions.size(); ++k)
         {
           Stringpool::Key version_key;
@@ -1350,6 +1341,28 @@
     delete *p;
 }
 
+// Define the base version of a shared library.  The base version definition
+// must be the first entry in defs_.  We insert it lazily so that defs_ is
+// empty if no symbol versioning is used.  Then layout can just drop the
+// version sections.
+
+void
+Versions::define_base_version(Stringpool* dynpool)
+{
+  // If we do any versioning at all,  we always need a base version, so
+  // define that first.  Nothing explicitly declares itself as part of base,
+  // so it doesn't need to be in version_table_.
+  gold_assert(this->defs_.empty());
+  const char* name = parameters->options().soname();
+  if (name == NULL)
+    name = parameters->options().output_file_name();
+  name = dynpool->add(name, false, NULL);
+  Verdef* vdbase = new Verdef(name, std::vector<std::string>(),
+                              true, false, true);
+  this->defs_.push_back(vdbase);
+  this->needs_base_version_ = false;
+}
+
 // Return the dynamic object which a symbol refers to.
 
 Dynobj*
@@ -1421,7 +1434,10 @@
       if (parameters->options().shared())
 	gold_error(_("symbol %s has undefined version %s"),
 		   sym->demangled_name().c_str(), version);
-
+      else
+	// We only insert a base version for shared library.
+	gold_assert(!this->needs_base_version_);
+	
       // When creating a regular executable, automatically define
       // a new version.
       Verdef* vd = new Verdef(version, std::vector<std::string>(),
@@ -1468,6 +1484,10 @@
 
   if (vn == NULL)
     {
+      // Create base version definition lazily for shared library.
+      if (this->needs_base_version_)
+	this->define_base_version(dynpool);
+
       // We have a new filename.
       vn = new Verneed(filename);
       this->needs_.push_back(vn);
diff --git a/binutils/gold/dynobj.h b/binutils/gold/dynobj.h
index 2768c83..66d2bff 100644
--- a/binutils/gold/dynobj.h
+++ b/binutils/gold/dynobj.h
@@ -584,6 +584,10 @@
   version_index(const Symbol_table*, const Stringpool*,
 		const Symbol* sym) const;
 
+  // Define the base version of a shared library.
+  void
+  define_base_version(Stringpool* dynpool);
+
   // We keep a hash table mapping canonicalized name/version pairs to
   // a version base.
   typedef std::pair<Stringpool::Key, Stringpool::Key> Key;
@@ -616,6 +620,9 @@
   bool is_finalized_;
   // Contents of --version-script, if passed, or NULL.
   const Version_script_info& version_script_;
+  // Whether we need to insert a base version.  This is only used for
+  // shared libaries and is cleared when the base version is defined.
+  bool needs_base_version_;
 };
 
 } // End namespace gold.
diff --git a/binutils/gold/i386.cc b/binutils/gold/i386.cc
index 445a7ac..f21cf74 100644
--- a/binutils/gold/i386.cc
+++ b/binutils/gold/i386.cc
@@ -464,7 +464,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_);
+					   this->got_, false);
       os->set_is_relro();
 
       // The old GNU linker creates a .got.plt section.  We just
@@ -475,7 +475,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_plt_);
+					   this->got_plt_, false);
       os->set_is_relro();
 
       // The first three entries are reserved.
@@ -503,7 +503,7 @@
       gold_assert(layout != NULL);
       this->rel_dyn_ = new Reloc_section(parameters->options().combreloc());
       layout->add_output_section_data(".rel.dyn", elfcpp::SHT_REL,
-				      elfcpp::SHF_ALLOC, this->rel_dyn_);
+				      elfcpp::SHF_ALLOC, this->rel_dyn_, true);
     }
   return this->rel_dyn_;
 }
@@ -578,7 +578,7 @@
 {
   this->rel_ = new Reloc_section(false);
   layout->add_output_section_data(".rel.plt", elfcpp::SHT_REL,
-				  elfcpp::SHF_ALLOC, this->rel_);
+				  elfcpp::SHF_ALLOC, this->rel_, true);
 }
 
 void
@@ -763,7 +763,7 @@
       layout->add_output_section_data(".plt", elfcpp::SHT_PROGBITS,
 				      (elfcpp::SHF_ALLOC
 				       | elfcpp::SHF_EXECINSTR),
-				      this->plt_);
+				      this->plt_, false);
     }
 
   this->plt_->add_entry(gsym);
@@ -1569,10 +1569,12 @@
   Output_data_dynamic* const odyn = layout->dynamic_data();
   if (odyn != NULL)
     {
-      if (this->got_plt_ != NULL)
+      if (this->got_plt_ != NULL
+	  && this->got_plt_->output_section() != NULL)
 	odyn->add_section_address(elfcpp::DT_PLTGOT, this->got_plt_);
 
-      if (this->plt_ != NULL)
+      if (this->plt_ != NULL
+	  && this->plt_->output_section() != NULL)
 	{
 	  const Output_data* od = this->plt_->rel_plt();
 	  odyn->add_section_size(elfcpp::DT_PLTRELSZ, od);
@@ -1580,7 +1582,8 @@
 	  odyn->add_constant(elfcpp::DT_PLTREL, elfcpp::DT_REL);
 	}
 
-      if (this->rel_dyn_ != NULL)
+      if (this->rel_dyn_ != NULL
+	  && this->rel_dyn_->output_section() != NULL)
 	{
 	  const Output_data* od = this->rel_dyn_;
 	  odyn->add_section_address(elfcpp::DT_REL, od);
diff --git a/binutils/gold/layout.cc b/binutils/gold/layout.cc
index 028703a..f9f378e 100644
--- a/binutils/gold/layout.cc
+++ b/binutils/gold/layout.cc
@@ -1,6 +1,6 @@
 // layout.cc -- lay out output file sections for gold
 
-// Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -349,6 +349,11 @@
           if (is_prefix_of(".gnu.lto_", name))
             return false;
         }
+      // The GNU linker strips .gnu_debuglink sections, so we do too.
+      // This is a feature used to keep debugging information in
+      // separate files.
+      if (strcmp(name, ".gnu_debuglink") == 0)
+	return false;
       return true;
 
     default:
@@ -388,11 +393,14 @@
 
 // Return the output section to use for section NAME with type TYPE
 // and section flags FLAGS.  NAME must be canonicalized in the string
-// pool, and NAME_KEY is the key.
+// pool, and NAME_KEY is the key.  IS_INTERP is true if this is the
+// .interp section.  IS_DYNAMIC_LINKER_SECTION is true if this section
+// is used by the dynamic linker.
 
 Output_section*
 Layout::get_output_section(const char* name, Stringpool::Key name_key,
-			   elfcpp::Elf_Word type, elfcpp::Elf_Xword flags)
+			   elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
+			   bool is_interp, bool is_dynamic_linker_section)
 {
   elfcpp::Elf_Xword lookup_flags = flags;
 
@@ -441,7 +449,8 @@
 	}
 
       if (os == NULL)
-	os = this->make_output_section(name, type, flags);
+	os = this->make_output_section(name, type, flags, is_interp,
+				       is_dynamic_linker_section);
       ins.first->second = os;
       return os;
     }
@@ -451,13 +460,16 @@
 // RELOBJ, with type TYPE and flags FLAGS.  RELOBJ may be NULL for a
 // linker created section.  IS_INPUT_SECTION is true if we are
 // choosing an output section for an input section found in a input
-// file.  This will return NULL if the input section should be
-// discarded.
+// file.  IS_INTERP is true if this is the .interp section.
+// IS_DYNAMIC_LINKER_SECTION is true if this section is used by the
+// dynamic linker.  This will return NULL if the input section should
+// be discarded.
 
 Output_section*
 Layout::choose_output_section(const Relobj* relobj, const char* name,
 			      elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
-			      bool is_input_section)
+			      bool is_input_section, bool is_interp,
+			      bool is_dynamic_linker_section)
 {
   // We should not see any input sections after we have attached
   // sections to segments.
@@ -505,7 +517,9 @@
 
 	  name = this->namepool_.add(name, false, NULL);
 
-	  Output_section* os = this->make_output_section(name, type, flags);
+	  Output_section* os =
+	    this->make_output_section(name, type, flags, is_interp,
+				      is_dynamic_linker_section);
 	  os->set_found_in_sections_clause();
 	  *output_section_slot = os;
 	  return os;
@@ -528,7 +542,8 @@
 
   // Find or make the output section.  The output section is selected
   // based on the section name, type, and flags.
-  return this->get_output_section(name, name_key, type, flags);
+  return this->get_output_section(name, name_key, type, flags, is_interp,
+				  is_dynamic_linker_section);
 }
 
 // Return the output section to use for input section SHNDX, with name
@@ -561,12 +576,13 @@
     {
       name = this->namepool_.add(name, true, NULL);
       os = this->make_output_section(name, shdr.get_sh_type(),
-				     shdr.get_sh_flags());
+				     shdr.get_sh_flags(), false, false);
     }
   else
     {
       os = this->choose_output_section(object, name, shdr.get_sh_type(),
-				       shdr.get_sh_flags(), true);
+				       shdr.get_sh_flags(), true, false,
+				       false);
       if (os == NULL)
 	return NULL;
     }
@@ -617,7 +633,7 @@
   Output_section* os = this->choose_output_section(object, name.c_str(),
 						   sh_type,
 						   shdr.get_sh_flags(),
-						   false);
+						   false, false, false);
 
   os->set_should_link_to_symtab();
   os->set_info_section(data_section);
@@ -664,7 +680,8 @@
   group_section_name = this->namepool_.add(group_section_name, true, NULL);
   Output_section* os = this->make_output_section(group_section_name,
 						 elfcpp::SHT_GROUP,
-						 shdr.get_sh_flags());
+						 shdr.get_sh_flags(),
+						 false, false);
 
   // We need to find a symbol with the signature in the symbol table.
   // If we don't find one now, we need to look again later.
@@ -718,7 +735,7 @@
 						   name,
 						   elfcpp::SHT_PROGBITS,
 						   elfcpp::SHF_ALLOC,
-						   false);
+						   false, false, false);
   if (os == NULL)
     return NULL;
 
@@ -734,7 +751,7 @@
 					".eh_frame_hdr",
 					elfcpp::SHT_PROGBITS,
 					elfcpp::SHF_ALLOC,
-					false);
+					false, false, false);
 
 	  if (hdr_os != NULL)
 	    {
@@ -749,7 +766,7 @@
 		  Output_segment* hdr_oseg;
 		  hdr_oseg = this->make_output_segment(elfcpp::PT_GNU_EH_FRAME,
 						       elfcpp::PF_R);
-		  hdr_oseg->add_output_section(hdr_os, elfcpp::PF_R);
+		  hdr_oseg->add_output_section(hdr_os, elfcpp::PF_R, false);
 		}
 
 	      this->eh_frame_data_->set_eh_frame_hdr(hdr_posd);
@@ -800,10 +817,12 @@
 Output_section*
 Layout::add_output_section_data(const char* name, elfcpp::Elf_Word type,
 				elfcpp::Elf_Xword flags,
-				Output_section_data* posd)
+				Output_section_data* posd,
+				bool is_dynamic_linker_section)
 {
   Output_section* os = this->choose_output_section(NULL, name, type, flags,
-						   false);
+						   false, false,
+						   is_dynamic_linker_section);
   if (os != NULL)
     os->add_output_section_data(posd);
   return os;
@@ -838,11 +857,14 @@
 }
 
 // Make a new Output_section, and attach it to segments as
-// appropriate.
+// appropriate.  IS_INTERP is true if this is the .interp section.
+// IS_DYNAMIC_LINKER_SECTION is true if this section is used by the
+// dynamic linker.
 
 Output_section*
 Layout::make_output_section(const char* name, elfcpp::Elf_Word type,
-			    elfcpp::Elf_Xword flags)
+			    elfcpp::Elf_Xword flags, bool is_interp,
+			    bool is_dynamic_linker_section)
 {
   Output_section* os;
   if ((flags & elfcpp::SHF_ALLOC) == 0
@@ -850,7 +872,6 @@
       && is_compressible_debug_section(name))
     os = new Output_compressed_section(&parameters->options(), name, type,
 				       flags);
-
   else if ((flags & elfcpp::SHF_ALLOC) == 0
            && parameters->options().strip_debug_non_line()
            && strcmp(".debug_abbrev", name) == 0)
@@ -876,6 +897,11 @@
       os = target->make_output_section(name, type, flags);
     }
 
+  if (is_interp)
+    os->set_is_interp();
+  if (is_dynamic_linker_section)
+    os->set_is_dynamic_linker_section();
+
   parameters->target().new_output_section(os);
 
   this->section_list_.push_back(os);
@@ -971,6 +997,8 @@
 
   elfcpp::Elf_Word seg_flags = Layout::section_flags_to_segment(flags);
 
+  bool sort_sections = !this->script_options_->saw_sections_clause();
+
   // In general the only thing we really care about for PT_LOAD
   // segments is whether or not they are writable, so that is how we
   // search for them.  Large data sections also go into their own
@@ -998,7 +1026,7 @@
       if (os->is_large_data_section() && !(*p)->is_large_data_segment())
 	continue;
 
-      (*p)->add_output_section(os, seg_flags);
+      (*p)->add_output_section(os, seg_flags, sort_sections);
       break;
     }
 
@@ -1008,7 +1036,7 @@
                                                        seg_flags);
       if (os->is_large_data_section())
 	oseg->set_is_large_data_segment();
-      oseg->add_output_section(os, seg_flags);
+      oseg->add_output_section(os, seg_flags, sort_sections);
     }
 
   // If we see a loadable SHT_NOTE section, we create a PT_NOTE
@@ -1024,7 +1052,7 @@
               && (((*p)->flags() & elfcpp::PF_W)
                   == (seg_flags & elfcpp::PF_W)))
             {
-              (*p)->add_output_section(os, seg_flags);
+              (*p)->add_output_section(os, seg_flags, false);
               break;
             }
         }
@@ -1033,7 +1061,7 @@
         {
           Output_segment* oseg = this->make_output_segment(elfcpp::PT_NOTE,
                                                            seg_flags);
-          oseg->add_output_section(os, seg_flags);
+          oseg->add_output_section(os, seg_flags, false);
         }
     }
 
@@ -1043,7 +1071,7 @@
     {
       if (this->tls_segment_ == NULL)
 	this->make_output_segment(elfcpp::PT_TLS, seg_flags);
-      this->tls_segment_->add_output_section(os, seg_flags);
+      this->tls_segment_->add_output_section(os, seg_flags, false);
     }
 
   // If -z relro is in effect, and we see a relro section, we create a
@@ -1053,7 +1081,7 @@
       gold_assert(seg_flags == (elfcpp::PF_R | elfcpp::PF_W));
       if (this->relro_segment_ == NULL)
 	this->make_output_segment(elfcpp::PT_GNU_RELRO, seg_flags);
-      this->relro_segment_->add_output_section(os, seg_flags);
+      this->relro_segment_->add_output_section(os, seg_flags, false);
     }
 }
 
@@ -1064,7 +1092,8 @@
 {
   name = this->namepool_.add(name, false, NULL);
   Output_section* os = this->make_output_section(name, elfcpp::SHT_PROGBITS,
-						 elfcpp::SHF_ALLOC);
+						 elfcpp::SHF_ALLOC, false,
+						 false);
   os->set_found_in_sections_clause();
   return os;
 }
@@ -1134,7 +1163,7 @@
 						       elfcpp::SHT_DYNAMIC,
 						       (elfcpp::SHF_ALLOC
 							| elfcpp::SHF_WRITE),
-						       false);
+						       false, false, true);
   this->dynamic_section_->set_is_relro();
 
   symtab->define_in_output_data("_DYNAMIC", NULL, this->dynamic_section_, 0, 0,
@@ -1732,7 +1761,8 @@
     flags = elfcpp::SHF_ALLOC;
   Output_section* os = this->choose_output_section(NULL, section_name,
 						   elfcpp::SHT_NOTE,
-						   flags, false);
+						   flags, false, false,
+						   false);
   if (os == NULL)
     return NULL;
 
@@ -1811,7 +1841,8 @@
       elfcpp::Elf_Xword flags = 0;
       if (is_stack_executable)
 	flags |= elfcpp::SHF_EXECINSTR;
-      this->make_output_section(name, elfcpp::SHT_PROGBITS, flags);
+      this->make_output_section(name, elfcpp::SHT_PROGBITS, flags, false,
+				false);
     }
   else
     {
@@ -1971,7 +2002,8 @@
     this->namepool_.add(".gnu_incremental_inputs", false, NULL);
   Output_section* inputs_os =
     this->make_output_section(incremental_inputs_name,
-			      elfcpp::SHT_GNU_INCREMENTAL_INPUTS, 0);
+			      elfcpp::SHT_GNU_INCREMENTAL_INPUTS, 0,
+			      false, false);
   Output_section_data* posd =
       this->incremental_inputs_->create_incremental_inputs_section_data();
   inputs_os->add_output_section_data(posd);
@@ -1981,7 +2013,7 @@
     this->namepool_.add(".gnu_incremental_strtab", false, NULL);
   Output_section* strtab_os = this->make_output_section(incremental_strtab_name,
                                                         elfcpp::SHT_STRTAB,
-                                                        0);
+                                                        0, false, false);
   Output_data_strtab* strtab_data =
     new Output_data_strtab(this->incremental_inputs_->get_stringpool());
   strtab_os->add_output_section_data(strtab_data);
@@ -2593,7 +2625,7 @@
       const char* symtab_name = this->namepool_.add(".symtab", false, NULL);
       Output_section* osymtab = this->make_output_section(symtab_name,
 							  elfcpp::SHT_SYMTAB,
-							  0);
+							  0, false, false);
       this->symtab_section_ = osymtab;
 
       Output_section_data* pos = new Output_data_fixed_space(off - startoff,
@@ -2614,7 +2646,8 @@
 							       false, NULL);
 	  Output_section* osymtab_xindex =
 	    this->make_output_section(symtab_xindex_name,
-				      elfcpp::SHT_SYMTAB_SHNDX, 0);
+				      elfcpp::SHT_SYMTAB_SHNDX, 0, false,
+				      false);
 
 	  size_t symcount = (off - startoff) / symsize;
 	  this->symtab_xindex_ = new Output_symtab_xindex(symcount);
@@ -2636,7 +2669,7 @@
       const char* strtab_name = this->namepool_.add(".strtab", false, NULL);
       Output_section* ostrtab = this->make_output_section(strtab_name,
 							  elfcpp::SHT_STRTAB,
-							  0);
+							  0, false, false);
 
       Output_section_data* pstr = new Output_data_strtab(&this->sympool_);
       ostrtab->add_output_section_data(pstr);
@@ -2663,7 +2696,8 @@
 
   const char* name = this->namepool_.add(".shstrtab", false, NULL);
 
-  Output_section* os = this->make_output_section(name, elfcpp::SHT_STRTAB, 0);
+  Output_section* os = this->make_output_section(name, elfcpp::SHT_STRTAB, 0,
+						 false, false);
 
   // We can't write out this section until we've set all the section
   // names, and we don't set the names of compressed output sections
@@ -2776,7 +2810,7 @@
   Output_section* dynsym = this->choose_output_section(NULL, ".dynsym",
 						       elfcpp::SHT_DYNSYM,
 						       elfcpp::SHF_ALLOC,
-						       false);
+						       false, false, true);
 
   Output_section_data* odata = new Output_data_fixed_space(index * symsize,
 							   align,
@@ -2806,7 +2840,7 @@
 	this->choose_output_section(NULL, ".dynsym_shndx",
 				    elfcpp::SHT_SYMTAB_SHNDX,
 				    elfcpp::SHF_ALLOC,
-				    false);
+				    false, false, true);
 
       this->dynsym_xindex_ = new Output_symtab_xindex(index);
 
@@ -2829,7 +2863,7 @@
   Output_section* dynstr = this->choose_output_section(NULL, ".dynstr",
 						       elfcpp::SHT_STRTAB,
 						       elfcpp::SHF_ALLOC,
-						       false);
+						       false, false, true);
 
   Output_section_data* strdata = new Output_data_strtab(&this->dynpool_);
   dynstr->add_output_section_data(strdata);
@@ -2855,7 +2889,7 @@
       Output_section* hashsec = this->choose_output_section(NULL, ".hash",
 							    elfcpp::SHT_HASH,
 							    elfcpp::SHF_ALLOC,
-							    false);
+							    false, false, true);
 
       Output_section_data* hashdata = new Output_data_const_buffer(phash,
 								   hashlen,
@@ -2880,7 +2914,7 @@
       Output_section* hashsec = this->choose_output_section(NULL, ".gnu.hash",
 							    elfcpp::SHT_GNU_HASH,
 							    elfcpp::SHF_ALLOC,
-							    false);
+							    false, false, true);
 
       Output_section_data* hashdata = new Output_data_const_buffer(phash,
 								   hashlen,
@@ -2978,7 +3012,7 @@
   Output_section* vsec = this->choose_output_section(NULL, ".gnu.version",
 						     elfcpp::SHT_GNU_versym,
 						     elfcpp::SHF_ALLOC,
-						     false);
+						     false, false, true);
 
   unsigned char* vbuf;
   unsigned int vsize;
@@ -3003,7 +3037,7 @@
       vdsec= this->choose_output_section(NULL, ".gnu.version_d",
 					 elfcpp::SHT_GNU_verdef,
 					 elfcpp::SHF_ALLOC,
-					 false);
+					 false, false, true);
 
       unsigned char* vdbuf;
       unsigned int vdsize;
@@ -3028,7 +3062,7 @@
       vnsec = this->choose_output_section(NULL, ".gnu.version_r",
 					  elfcpp::SHT_GNU_verneed,
 					  elfcpp::SHF_ALLOC,
-					  false);
+					  false, false, true);
 
       unsigned char* vnbuf;
       unsigned int vnsize;
@@ -3068,14 +3102,14 @@
   Output_section* osec = this->choose_output_section(NULL, ".interp",
 						     elfcpp::SHT_PROGBITS,
 						     elfcpp::SHF_ALLOC,
-						     false);
+						     false, true, true);
   osec->add_output_section_data(odata);
 
   if (!this->script_options_->saw_phdrs_clause())
     {
       Output_segment* oseg = this->make_output_segment(elfcpp::PT_INTERP,
 						       elfcpp::PF_R);
-      oseg->add_output_section(osec, elfcpp::PF_R);
+      oseg->add_output_section(osec, elfcpp::PF_R, false);
     }
 }
 
@@ -3091,7 +3125,8 @@
 						       (elfcpp::PF_R
 							| elfcpp::PF_W));
       oseg->add_output_section(this->dynamic_section_,
-			       elfcpp::PF_R | elfcpp::PF_W);
+			       elfcpp::PF_R | elfcpp::PF_W,
+			       false);
     }
 
   Output_data_dynamic* const odyn = this->dynamic_data_;
@@ -3100,7 +3135,14 @@
        p != input_objects->dynobj_end();
        ++p)
     {
-      // FIXME: Handle --as-needed.
+      if (!(*p)->is_needed()
+	  && (*p)->input_file()->options().as_needed())
+	{
+	  // This dynamic object was linked with --as-needed, but it
+	  // is not needed.
+	  continue;
+	}
+
       odyn->add_string(elfcpp::DT_NEEDED, (*p)->soname());
     }
 
diff --git a/binutils/gold/layout.h b/binutils/gold/layout.h
index 675c658..71afa96 100644
--- a/binutils/gold/layout.h
+++ b/binutils/gold/layout.h
@@ -360,11 +360,13 @@
   layout_gnu_stack(bool seen_gnu_stack, uint64_t gnu_stack_flags);
 
   // Add an Output_section_data to the layout.  This is used for
-  // special sections like the GOT section.
+  // special sections like the GOT section.  IS_DYNAMIC_LINKER_SECTION
+  // is true for sections which are used by the dynamic linker, such
+  // as dynamic reloc sections.
   Output_section*
   add_output_section_data(const char* name, elfcpp::Elf_Word type,
 			  elfcpp::Elf_Xword flags,
-			  Output_section_data*);
+			  Output_section_data*, bool is_dynamic_linker_section);
 
   // Create dynamic sections if necessary.
   void
@@ -745,18 +747,21 @@
   // Return the output section for NAME, TYPE and FLAGS.
   Output_section*
   get_output_section(const char* name, Stringpool::Key name_key,
-		     elfcpp::Elf_Word type, elfcpp::Elf_Xword flags);
+		     elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
+		     bool is_interp, bool is_dynamic_linker_section);
 
   // Choose the output section for NAME in RELOBJ.
   Output_section*
   choose_output_section(const Relobj* relobj, const char* name,
 			elfcpp::Elf_Word type, elfcpp::Elf_Xword flags,
-			bool is_input_section);
+			bool is_input_section, bool is_interp,
+			bool is_dynamic_linker_section);
 
   // Create a new Output_section.
   Output_section*
   make_output_section(const char* name, elfcpp::Elf_Word type,
-		      elfcpp::Elf_Xword flags);
+		      elfcpp::Elf_Xword flags, bool is_interp,
+		      bool is_dynamic_linker_section);
 
   // Attach a section to a segment.
   void
diff --git a/binutils/gold/object.cc b/binutils/gold/object.cc
index e9826b0..a824c76 100644
--- a/binutils/gold/object.cc
+++ b/binutils/gold/object.cc
@@ -1,6 +1,6 @@
 // object.cc -- support for an object file for linking in gold
 
-// Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -2134,15 +2134,15 @@
 void
 Input_objects::check_dynamic_dependencies() const
 {
+  bool issued_copy_dt_needed_error = false;
   for (Dynobj_list::const_iterator p = this->dynobj_list_.begin();
        p != this->dynobj_list_.end();
        ++p)
     {
       const Dynobj::Needed& needed((*p)->needed());
       bool found_all = true;
-      for (Dynobj::Needed::const_iterator pneeded = needed.begin();
-	   pneeded != needed.end();
-	   ++pneeded)
+      Dynobj::Needed::const_iterator pneeded;
+      for (pneeded = needed.begin(); pneeded != needed.end(); ++pneeded)
 	{
 	  if (this->sonames_.find(*pneeded) == this->sonames_.end())
 	    {
@@ -2151,6 +2151,25 @@
 	    }
 	}
       (*p)->set_has_unknown_needed_entries(!found_all);
+
+      // --copy-dt-needed-entries aka --add-needed is a GNU ld option
+      // --that gold does not support.  However, they cause no trouble
+      // --unless there is a DT_NEEDED entry that we don't know about;
+      // --warn only in that case.
+      if (!found_all
+	  && !issued_copy_dt_needed_error
+	  && (parameters->options().copy_dt_needed_entries()
+	      || parameters->options().add_needed()))
+	{
+	  const char* optname;
+	  if (parameters->options().copy_dt_needed_entries())
+	    optname = "--copy-dt-needed-entries";
+	  else
+	    optname = "--add-needed";
+	  gold_error(_("%s is not supported but is required for %s in %s"),
+		     optname, (*pneeded).c_str(), (*p)->name().c_str());
+	  issued_copy_dt_needed_error = true;
+	}
     }
 }
 
diff --git a/binutils/gold/object.h b/binutils/gold/object.h
index ff96682..4e18190 100644
--- a/binutils/gold/object.h
+++ b/binutils/gold/object.h
@@ -195,8 +195,8 @@
   Object(const std::string& name, Input_file* input_file, bool is_dynamic,
 	 off_t offset = 0)
     : name_(name), input_file_(input_file), offset_(offset), shnum_(-1U),
-      is_dynamic_(is_dynamic), uses_split_stack_(false),
-      has_no_split_stack_(false), xindex_(NULL), no_export_(false)
+      is_dynamic_(is_dynamic), is_needed_(false), uses_split_stack_(false),
+      has_no_split_stack_(false), no_export_(false), xindex_(NULL)
   { input_file->file().add_object(); }
 
   virtual ~Object()
@@ -217,6 +217,19 @@
   is_dynamic() const
   { return this->is_dynamic_; }
 
+  // Return whether this object is needed--true if it is a dynamic
+  // object which defines some symbol referenced by a regular object.
+  // We keep the flag here rather than in Dynobj for convenience when
+  // setting it.
+  bool
+  is_needed() const
+  { return this->is_needed_; }
+
+  // Record that this object is needed.
+  void
+  set_is_needed()
+  { this->is_needed_ = true; }
+
   // Return whether this object was compiled with -fsplit-stack.
   bool
   uses_split_stack() const
@@ -589,17 +602,21 @@
   // Number of input sections.
   unsigned int shnum_;
   // Whether this is a dynamic object.
-  bool is_dynamic_;
+  bool is_dynamic_ : 1;
+  // Whether this object is needed.  This is only set for dynamic
+  // objects, and means that the object defined a symbol which was
+  // used by a reference from a regular object.
+  bool is_needed_ : 1;
   // Whether this object was compiled with -fsplit-stack.
-  bool uses_split_stack_;
+  bool uses_split_stack_ : 1;
   // Whether this object contains any functions compiled with the
   // no_split_stack attribute.
-  bool has_no_split_stack_;
-  // Many sections for objects with more than SHN_LORESERVE sections.
-  Xindex* xindex_;
+  bool has_no_split_stack_ : 1;
   // True if exclude this object from automatic symbol export.
   // This is used only for archive objects.
-  bool no_export_;
+  bool no_export_ : 1;
+  // Many sections for objects with more than SHN_LORESERVE sections.
+  Xindex* xindex_;
 };
 
 // A regular object (ET_REL).  This is an abstract base class itself.
diff --git a/binutils/gold/options.h b/binutils/gold/options.h
index cbb45b5..1bf0069 100644
--- a/binutils/gold/options.h
+++ b/binutils/gold/options.h
@@ -1,6 +1,6 @@
 // options.h -- handle command line options for gold  -*- C++ -*-
 
-// Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+// Copyright 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.
 
 // This file is part of gold.
@@ -580,13 +580,17 @@
   // alphabetical order).  For both, lowercase sorts before uppercase.
   // The -z options come last.
 
+  DEFINE_bool(add_needed, options::TWO_DASHES, '\0', false,
+	      N_("Not supported"),
+	      N_("Do not copy DT_NEEDED tags from shared libraries"));
+
   DEFINE_bool(allow_shlib_undefined, options::TWO_DASHES, '\0', false,
               N_("Allow unresolved references in shared libraries"),
               N_("Do not allow unresolved references in shared libraries"));
 
   DEFINE_bool(as_needed, options::TWO_DASHES, '\0', false,
-              N_("Only set DT_NEEDED for dynamic libs if used"),
-              N_("Always DT_NEEDED for dynamic libs"));
+              N_("Only set DT_NEEDED for shared libraries if used"),
+              N_("Always DT_NEEDED for shared libraries"));
 
   // This should really be an "enum", but it's too easy for folks to
   // forget to update the list as they add new targets.  So we just
@@ -627,6 +631,10 @@
               {"none"});
 #endif
 
+  DEFINE_bool(copy_dt_needed_entries, options::TWO_DASHES, '\0', false,
+	      N_("Not supported"),
+	      N_("Do not copy DT_NEEDED tags from shared libraries"));
+
   DEFINE_bool(define_common, options::TWO_DASHES, 'd', false,
               N_("Define common symbols"),
               N_("Do not define common symbols"));
@@ -912,6 +920,10 @@
   DEFINE_special(version_script, options::TWO_DASHES, '\0',
                  N_("Read version script"), N_("FILE"));
 
+  DEFINE_bool(warn_common, options::TWO_DASHES, '\0', false,
+	      N_("Warn about duplicate common symbols"),
+	      N_("Do not warn about duplicate common symbols (default)"));
+
   DEFINE_bool(warn_search_mismatch, options::TWO_DASHES, '\0', true,
 	      N_("Warn when skipping an incompatible library"),
 	      N_("Don't warn when skipping an incompatible library"));
diff --git a/binutils/gold/output.cc b/binutils/gold/output.cc
index e2d7585..84f59ae 100644
--- a/binutils/gold/output.cc
+++ b/binutils/gold/output.cc
@@ -1800,13 +1800,15 @@
     is_relro_local_(false),
     is_small_section_(false),
     is_large_section_(false),
+    is_interp_(false),
+    is_dynamic_linker_section_(false),
+    generate_code_fills_at_write_(false),
     tls_offset_(0),
     checkpoint_(NULL),
     merge_section_map_(),
     merge_section_by_properties_map_(),
     relaxed_input_section_map_(),
-    is_relaxed_input_section_map_valid_(true),
-    generate_code_fills_at_write_(false)
+    is_relaxed_input_section_map_valid_(true)
 {
   // An unallocated section has no address.  Forcing this means that
   // we don't need special treatment for symbols defined in debug
@@ -3045,11 +3047,13 @@
 
 void
 Output_segment::add_output_section(Output_section* os,
-				   elfcpp::Elf_Word seg_flags)
+				   elfcpp::Elf_Word seg_flags,
+				   bool do_sort)
 {
   gold_assert((os->flags() & elfcpp::SHF_ALLOC) != 0);
   gold_assert(!this->is_max_align_known_);
   gold_assert(os->is_large_data_section() == this->is_large_data_segment());
+  gold_assert(this->type() == elfcpp::PT_LOAD || !do_sort);
 
   // Update the segment flags.
   this->flags_ |= seg_flags;
@@ -3060,19 +3064,12 @@
   else
     pdl = &this->output_data_;
 
-  // So that PT_NOTE segments will work correctly, we need to ensure
-  // that all SHT_NOTE sections are adjacent.  This will normally
-  // happen automatically, because all the SHT_NOTE input sections
-  // will wind up in the same output section.  However, it is possible
-  // for multiple SHT_NOTE input sections to have different section
-  // flags, and thus be in different output sections, but for the
-  // different section flags to map into the same segment flags and
-  // thus the same output segment.
-
   // Note that while there may be many input sections in an output
   // section, there are normally only a few output sections in an
-  // output segment.  This loop is expected to be fast.
+  // output segment.  The loops below are expected to be fast.
 
+  // So that PT_NOTE segments will work correctly, we need to ensure
+  // that all SHT_NOTE sections are adjacent.
   if (os->type() == elfcpp::SHT_NOTE && !pdl->empty())
     {
       Output_segment::Output_data_list::iterator p = pdl->end();
@@ -3094,8 +3091,8 @@
   // case: we group the SHF_TLS/SHT_NOBITS sections right after the
   // SHF_TLS/SHT_PROGBITS sections.  This lets us set up PT_TLS
   // correctly.  SHF_TLS sections get added to both a PT_LOAD segment
-  // and the PT_TLS segment -- we do this grouping only for the
-  // PT_LOAD segment.
+  // and the PT_TLS segment; we do this grouping only for the PT_LOAD
+  // segment.
   if (this->type_ != elfcpp::PT_TLS
       && (os->flags() & elfcpp::SHF_TLS) != 0)
     {
@@ -3225,6 +3222,68 @@
       gold_unreachable();
     }
 
+  // We do some further output section sorting in order to make the
+  // generated program run more efficiently.  We should only do this
+  // when not using a linker script, so it is controled by the DO_SORT
+  // parameter.
+  if (do_sort)
+    {
+      // FreeBSD requires the .interp section to be in the first page
+      // of the executable.  That is a more efficient location anyhow
+      // for any OS, since it means that the kernel will have the data
+      // handy after it reads the program headers.
+      if (os->is_interp() && !pdl->empty())
+	{
+	  pdl->insert(pdl->begin(), os);
+	  return;
+	}
+
+      // Put loadable non-writable notes immediately after the .interp
+      // sections, so that the PT_NOTE segment is on the first page of
+      // the executable.
+      if (os->type() == elfcpp::SHT_NOTE
+	  && (os->flags() & elfcpp::SHF_WRITE) == 0
+	  && !pdl->empty())
+	{
+	  Output_segment::Output_data_list::iterator p = pdl->begin();
+	  if ((*p)->is_section() && (*p)->output_section()->is_interp())
+	    ++p;
+	  pdl->insert(p, os);
+	  return;
+	}
+
+      // If this section is used by the dynamic linker, and it is not
+      // writable, then put it first, after the .interp section and
+      // any loadable notes.  This makes it more likely that the
+      // dynamic linker will have to read less data from the disk.
+      if (os->is_dynamic_linker_section()
+	  && !pdl->empty()
+	  && (os->flags() & elfcpp::SHF_WRITE) == 0)
+	{
+	  bool is_reloc = (os->type() == elfcpp::SHT_REL
+			   || os->type() == elfcpp::SHT_RELA);
+	  Output_segment::Output_data_list::iterator p = pdl->begin();
+	  while (p != pdl->end()
+		 && (*p)->is_section()
+		 && ((*p)->output_section()->is_dynamic_linker_section()
+		     || (*p)->output_section()->type() == elfcpp::SHT_NOTE))
+	    {
+	      // Put reloc sections after the other ones.  Putting the
+	      // dynamic reloc sections first confuses BFD, notably
+	      // objcopy and strip.
+	      if (!is_reloc
+		  && ((*p)->output_section()->type() == elfcpp::SHT_REL
+		      || (*p)->output_section()->type() == elfcpp::SHT_RELA))
+		break;
+	      ++p;
+	    }
+	  pdl->insert(p, os);
+	  return;
+	}
+    }
+
+  // If there were no constraints on the output section, just add it
+  // to the end of the list.
   pdl->push_back(os);
 }
 
@@ -3503,15 +3562,20 @@
 	      else
 		{
 		  Output_section* os = (*p)->output_section();
+
+		  // Cast to unsigned long long to avoid format warnings.
+		  unsigned long long previous_dot =
+		    static_cast<unsigned long long>(addr + (off - startoff));
+		  unsigned long long dot =
+		    static_cast<unsigned long long>((*p)->address());
+
 		  if (os == NULL)
 		    gold_error(_("dot moves backward in linker script "
-				 "from 0x%llx to 0x%llx"),
-			       addr + (off - startoff), (*p)->address());
+				 "from 0x%llx to 0x%llx"), previous_dot, dot);
 		  else
 		    gold_error(_("address of section '%s' moves backward "
 				 "from 0x%llx to 0x%llx"),
-			       os->name(), addr + (off - startoff),
-			       (*p)->address());
+			       os->name(), previous_dot, dot);
 		}
 	    }
 	  (*p)->set_file_offset(off);
diff --git a/binutils/gold/output.h b/binutils/gold/output.h
index bc10950..fa37433 100644
--- a/binutils/gold/output.h
+++ b/binutils/gold/output.h
@@ -2387,6 +2387,27 @@
   is_large_data_section()
   { return this->is_large_section_ && this->type_ != elfcpp::SHT_NOBITS; }
 
+  // True if this is the .interp section which goes into the PT_INTERP
+  // segment.
+  bool
+  is_interp() const
+  { return this->is_interp_; }
+
+  // Record that this is the interp section.
+  void
+  set_is_interp()
+  { this->is_interp_ = true; }
+
+  // True if this is a section used by the dynamic linker.
+  bool
+  is_dynamic_linker_section() const
+  { return this->is_dynamic_linker_section_; }
+
+  // Record that this is a section used by the dynamic linker.
+  void
+  set_is_dynamic_linker_section()
+  { this->is_dynamic_linker_section_ = true; }
+
   // Return whether this section should be written after all the input
   // sections are complete.
   bool
@@ -3327,6 +3348,13 @@
   bool is_small_section_ : 1;
   // True if this is a large section.
   bool is_large_section_ : 1;
+  // True if this is the .interp section going into the PT_INTERP
+  // segment.
+  bool is_interp_ : 1;
+  // True if this is section is read by the dynamic linker.
+  bool is_dynamic_linker_section_ : 1;
+  // Whether code-fills are generated at write.
+  bool generate_code_fills_at_write_ : 1;
   // For SHT_TLS sections, the offset of this section relative to the base
   // of the TLS segment.
   uint64_t tls_offset_;
@@ -3337,13 +3365,11 @@
   // Map from merge section properties to merge_sections;
   Merge_section_by_properties_map merge_section_by_properties_map_;
   // Map from input sections to relaxed input sections.  This is mutable
-  // beacause it is udpated lazily.  We may need to update it in a
+  // because it is updated lazily.  We may need to update it in a
   // const qualified method.
   mutable Output_section_data_by_input_section_map relaxed_input_section_map_;
   // Whether relaxed_input_section_map_ is valid.
   mutable bool is_relaxed_input_section_map_valid_;
-  // Whether code-fills are generated at write.
-  bool generate_code_fills_at_write_;
 };
 
 // An output segment.  PT_LOAD segments are built from collections of
@@ -3412,9 +3438,12 @@
   uint64_t
   maximum_alignment();
 
-  // Add an Output_section to this segment.
+  // Add the Output_section OS to this segment.  SEG_FLAGS is the
+  // segment flags to use.  DO_SORT is true if we should sort the
+  // placement of the input section for more efficient generated code.
   void
-  add_output_section(Output_section* os, elfcpp::Elf_Word seg_flags);
+  add_output_section(Output_section* os, elfcpp::Elf_Word seg_flags,
+		     bool do_sort);
 
   // Remove an Output_section from this segment.  It is an error if it
   // is not present.
diff --git a/binutils/gold/po/Make-in b/binutils/gold/po/Make-in
index 88ce78f..d81fb4f 100644
--- a/binutils/gold/po/Make-in
+++ b/binutils/gold/po/Make-in
@@ -1,6 +1,6 @@
 # Makefile for program source directory in GNU NLS utilities package.
 # Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-# Copyright 2003, 2006 Free Software Foundation, Inc.
+# Copyright 2003, 2006, 2007, 2009 Free Software Foundation, Inc.
 #
 # This file may be copied and used freely without restrictions.  It can
 # be used in projects which are not available under the GNU Public License
@@ -88,7 +88,8 @@
 
 $(srcdir)/$(PACKAGE).pot: $(POTFILES)
 	$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
-	  --add-comments --keyword=_ --keyword=N_ \
+	  --add-comments -C --keyword=_ --keyword=N_ \
+	  --msgid-bugs-address=bug-binutils@gnu.org \
 	  --files-from=$(srcdir)/POTFILES.in
 	rm -f $(srcdir)/$(PACKAGE).pot
 	mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
@@ -112,13 +113,14 @@
 install-exec:
 install-info:
 install-html:
+install-pdf:
 install-data: install-data-@USE_NLS@
 install-data-no: all
 install-data-yes: all
 	if test -r $(MKINSTALLDIRS); then \
 	  $(MKINSTALLDIRS) $(DESTDIR)$(datadir); \
 	else \
-	  $(top_srcdir)/mkinstalldirs $(DESTDIR)$(datadir); \
+	  $(top_srcdir)/../mkinstalldirs $(DESTDIR)$(datadir); \
 	fi
 	@catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
diff --git a/binutils/gold/po/POTFILES.in b/binutils/gold/po/POTFILES.in
index 4d6122c..651a01f 100644
--- a/binutils/gold/po/POTFILES.in
+++ b/binutils/gold/po/POTFILES.in
@@ -1,5 +1,6 @@
 archive.cc
 archive.h
+arm.cc
 binary.cc
 binary.h
 common.cc
@@ -27,11 +28,17 @@
 expression.cc
 fileread.cc
 fileread.h
+freebsd.h
+gc.cc
+gc.h
 gold-threads.cc
 gold-threads.h
 gold.cc
 gold.h
 i386.cc
+icf.cc
+icf.h
+incremental.cc
 layout.cc
 layout.h
 mapfile.cc
@@ -46,6 +53,8 @@
 output.h
 parameters.cc
 parameters.h
+plugin.cc
+plugin.h
 powerpc.cc
 readsyms.cc
 readsyms.h
@@ -68,6 +77,7 @@
 target-reloc.h
 target-select.cc
 target-select.h
+target.cc
 target.h
 tls.h
 token.h
diff --git a/binutils/gold/po/gold.pot b/binutils/gold/po/gold.pot
index 4ae7747..d58054a 100644
--- a/binutils/gold/po/gold.pot
+++ b/binutils/gold/po/gold.pot
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-09 17:16+0930\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2010-03-03 15:08+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,66 +16,160 @@
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: archive.cc:107
+#: archive.cc:119
 #, c-format
 msgid "%s: no archive symbol table (run ranlib)"
 msgstr ""
 
-#: archive.cc:189
+#: archive.cc:204
 #, c-format
 msgid "%s: bad archive symbol table names"
 msgstr ""
 
-#: archive.cc:221
+#: archive.cc:236
 #, c-format
 msgid "%s: malformed archive header at %zu"
 msgstr ""
 
-#: archive.cc:241
+#: archive.cc:256
 #, c-format
 msgid "%s: malformed archive header size at %zu"
 msgstr ""
 
-#: archive.cc:252
+#: archive.cc:267
 #, c-format
 msgid "%s: malformed archive header name at %zu"
 msgstr ""
 
-#: archive.cc:282
+#: archive.cc:297
 #, c-format
 msgid "%s: bad extended name index at %zu"
 msgstr ""
 
-#: archive.cc:292
+#: archive.cc:307
 #, c-format
 msgid "%s: bad extended name entry at header %zu"
 msgstr ""
 
-#: archive.cc:389
+#: archive.cc:404
 #, c-format
 msgid "%s: short archive header at %zu"
 msgstr ""
 
-#: archive.cc:530 archive.cc:545
+#: archive.cc:560
 #, c-format
 msgid "%s: member at %zu is not an ELF object"
 msgstr ""
 
-#: archive.cc:775
+#: archive.cc:879
 #, c-format
 msgid "%s: archive libraries: %u\n"
 msgstr ""
 
-#: archive.cc:777
+#: archive.cc:881
 #, c-format
 msgid "%s: total archive members: %u\n"
 msgstr ""
 
-#: archive.cc:779
+#: archive.cc:883
 #, c-format
 msgid "%s: loaded archive members: %u\n"
 msgstr ""
 
+#: arm.cc:1149 i386.cc:536 sparc.cc:1087 x86_64.cc:565
+msgid "** PLT"
+msgstr ""
+
+#: arm.cc:1364 i386.cc:880 powerpc.cc:1014 sparc.cc:1502 x86_64.cc:955
+#: x86_64.cc:1265
+#, c-format
+msgid "%s: unsupported reloc %u against local symbol"
+msgstr ""
+
+#: arm.cc:1404 powerpc.cc:1105 sparc.cc:1592 x86_64.cc:992
+msgid "requires unsupported dynamic reloc; recompile with -fPIC"
+msgstr ""
+
+#. These are relocations which should only be seen by the
+#. dynamic linker, and should never be seen here.
+#: arm.cc:1519 arm.cc:1739 arm.cc:2354 i386.cc:1002 i386.cc:1334
+#: powerpc.cc:1223 powerpc.cc:1432 sparc.cc:1877 sparc.cc:2238 x86_64.cc:1145
+#: x86_64.cc:1453
+#, c-format
+msgid "%s: unexpected reloc %u in object file"
+msgstr ""
+
+#: arm.cc:1538 i386.cc:1171 powerpc.cc:1242 sparc.cc:1896 x86_64.cc:1279
+#: x86_64.cc:1571
+#, c-format
+msgid "%s: unsupported reloc %u against global symbol %s"
+msgstr ""
+
+#: arm.cc:1804 i386.cc:1542
+#, c-format
+msgid "%s: unsupported RELA reloc section"
+msgstr ""
+
+#: arm.cc:2047
+msgid ""
+"relocation R_ARM_MOVW_ABS_NC cannot be used when makinga shared object; "
+"recompile with -fPIC"
+msgstr ""
+
+#: arm.cc:2056
+msgid ""
+"relocation R_ARM_MOVT_ABS cannot be used when makinga shared object; "
+"recompile with -fPIC"
+msgstr ""
+
+#: arm.cc:2067
+msgid ""
+"relocation R_ARM_THM_MOVW_ABS_NC cannot be used whenmaking a shared object; "
+"recompile with -fPIC"
+msgstr ""
+
+#: arm.cc:2077
+msgid ""
+"relocation R_ARM_THM_MOVT_ABS cannot be used whenmaking a shared object; "
+"recompile with -fPIC"
+msgstr ""
+
+#: arm.cc:2141
+msgid "cannot find origin of R_ARM_BASE_PREL"
+msgstr ""
+
+#: arm.cc:2169
+msgid "cannot find origin of R_ARM_BASE_ABS"
+msgstr ""
+
+#: arm.cc:2230 i386.cc:1820 i386.cc:2521 powerpc.cc:1798 sparc.cc:2711
+#: x86_64.cc:1935 x86_64.cc:2518
+#, c-format
+msgid "unexpected reloc %u in object file"
+msgstr ""
+
+#: arm.cc:2236 i386.cc:1852 i386.cc:1931 i386.cc:1983 i386.cc:2014
+#: i386.cc:2076 powerpc.cc:1804 sparc.cc:2717 sparc.cc:2900 sparc.cc:2961
+#: sparc.cc:3068 x86_64.cc:1956 x86_64.cc:2039 x86_64.cc:2094 x86_64.cc:2119
+#, c-format
+msgid "unsupported reloc %u"
+msgstr ""
+
+#: arm.cc:2248
+#, c-format
+msgid "relocation overflow in relocation %u"
+msgstr ""
+
+#: arm.cc:2256
+#, c-format
+msgid "unexpected opcode while processing relocation %u"
+msgstr ""
+
+#: arm.cc:2359 i386.cc:2535
+#, c-format
+msgid "unsupported reloc %u in object file"
+msgstr ""
+
 #: binary.cc:129
 #, c-format
 msgid "cannot open %s: %s:"
@@ -90,16 +184,16 @@
 msgid "cannot open symbol count file %s: %s"
 msgstr ""
 
-#: descriptors.cc:94
+#: descriptors.cc:116
 #, c-format
 msgid "file %s was removed during the link"
 msgstr ""
 
-#: descriptors.cc:133
+#: descriptors.cc:169
 msgid "out of file descriptors and couldn't close any"
 msgstr ""
 
-#: descriptors.cc:154 descriptors.cc:189
+#: descriptors.cc:190 descriptors.cc:226
 #, c-format
 msgid "while closing %s: %s"
 msgstr ""
@@ -113,115 +207,115 @@
 msgid "Unusually large LEB128 decoded, debug information may be corrupted"
 msgstr ""
 
-#: dynobj.cc:169
+#: dynobj.cc:164
 #, c-format
 msgid "unexpected duplicate type %u section: %u, %u"
 msgstr ""
 
-#: dynobj.cc:205
+#: dynobj.cc:200
 #, c-format
 msgid "unexpected link in section %u header: %u != %u"
 msgstr ""
 
-#: dynobj.cc:241
+#: dynobj.cc:236
 #, c-format
 msgid "DYNAMIC section %u link out of range: %u"
 msgstr ""
 
-#: dynobj.cc:249
+#: dynobj.cc:244
 #, c-format
 msgid "DYNAMIC section %u link %u is not a strtab"
 msgstr ""
 
-#: dynobj.cc:278
+#: dynobj.cc:273
 #, c-format
 msgid "DT_SONAME value out of range: %lld >= %lld"
 msgstr ""
 
-#: dynobj.cc:290
+#: dynobj.cc:285
 #, c-format
 msgid "DT_NEEDED value out of range: %lld >= %lld"
 msgstr ""
 
-#: dynobj.cc:303
+#: dynobj.cc:298
 msgid "missing DT_NULL in dynamic segment"
 msgstr ""
 
-#: dynobj.cc:349
+#: dynobj.cc:344
 #, c-format
 msgid "invalid dynamic symbol table name index: %u"
 msgstr ""
 
-#: dynobj.cc:356
+#: dynobj.cc:351
 #, c-format
 msgid "dynamic symbol table name section has wrong type: %u"
 msgstr ""
 
-#: dynobj.cc:443 object.cc:376 object.cc:884
+#: dynobj.cc:438 object.cc:463 object.cc:1106
 #, c-format
 msgid "bad section name offset for section %u: %lu"
 msgstr ""
 
-#: dynobj.cc:472
+#: dynobj.cc:468
 #, c-format
 msgid "duplicate definition for version %u"
 msgstr ""
 
-#: dynobj.cc:501
+#: dynobj.cc:497
 #, c-format
 msgid "unexpected verdef version %u"
 msgstr ""
 
-#: dynobj.cc:517
+#: dynobj.cc:513
 #, c-format
 msgid "verdef vd_cnt field too small: %u"
 msgstr ""
 
-#: dynobj.cc:525
+#: dynobj.cc:521
 #, c-format
 msgid "verdef vd_aux field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:536
+#: dynobj.cc:532
 #, c-format
 msgid "verdaux vda_name field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:546
+#: dynobj.cc:542
 #, c-format
 msgid "verdef vd_next field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:580
+#: dynobj.cc:576
 #, c-format
 msgid "unexpected verneed version %u"
 msgstr ""
 
-#: dynobj.cc:589
+#: dynobj.cc:585
 #, c-format
 msgid "verneed vn_aux field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:603
+#: dynobj.cc:599
 #, c-format
 msgid "vernaux vna_name field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:614
+#: dynobj.cc:610
 #, c-format
 msgid "verneed vna_next field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:625
+#: dynobj.cc:621
 #, c-format
 msgid "verneed vn_next field out of range: %u"
 msgstr ""
 
-#: dynobj.cc:673
+#: dynobj.cc:670
 msgid "size of dynamic symbols is not multiple of symbol size"
 msgstr ""
 
-#: dynobj.cc:1425
+#: dynobj.cc:1435
 #, c-format
 msgid "symbol %s has undefined version %s"
 msgstr ""
@@ -234,27 +328,42 @@
 msgid "** eh_frame"
 msgstr ""
 
-#: errors.cc:106
+#: errors.cc:81
+#, c-format
+msgid "%s: fatal error: "
+msgstr ""
+
+#: errors.cc:92
+#, c-format
+msgid "%s: error: "
+msgstr ""
+
+#: errors.cc:104
 #, c-format
 msgid "%s: warning: "
 msgstr ""
 
-#: errors.cc:146
+#: errors.cc:128
+#, c-format
+msgid "%s: %s: error: "
+msgstr ""
+
+#: errors.cc:144
 #, c-format
 msgid "%s: %s: warning: "
 msgstr ""
 
+#: errors.cc:167
+#, c-format
+msgid "%s: %s: error: undefined reference to '%s'\n"
+msgstr ""
+
 #: errors.cc:172
 #, c-format
-msgid "%s: %s: undefined reference to '%s'\n"
+msgid "%s: %s: error: undefined reference to '%s', version '%s'\n"
 msgstr ""
 
-#: errors.cc:176
-#, c-format
-msgid "%s: %s: undefined reference to '%s', version '%s'\n"
-msgstr ""
-
-#: errors.cc:186
+#: errors.cc:182
 #, c-format
 msgid "%s: "
 msgstr ""
@@ -274,10 +383,6 @@
 msgid "unary "
 msgstr ""
 
-#: expression.cc:278 expression.cc:400
-msgid " applied to section relative value"
-msgstr ""
-
 #. Handle binary operators.  We use a preprocessor macro as a hack to
 #. capture the C operator.  KEEP_LEFT means that if the left operand
 #. is section relative and the right operand is not, the result uses
@@ -323,72 +428,84 @@
 msgid "LENGTH not implemented"
 msgstr ""
 
-#: fileread.cc:55
+#: fileread.cc:65
 #, c-format
 msgid "munmap failed: %s"
 msgstr ""
 
-#: fileread.cc:119
+#: fileread.cc:129
 #, c-format
 msgid "%s: fstat failed: %s"
 msgstr ""
 
-#: fileread.cc:159
+#: fileread.cc:169
 #, c-format
 msgid "could not reopen file %s"
 msgstr ""
 
-#: fileread.cc:292
+#: fileread.cc:302
 #, c-format
 msgid "%s: pread failed: %s"
 msgstr ""
 
-#: fileread.cc:298
+#: fileread.cc:308
 #, c-format
 msgid "%s: file too short: read only %lld of %lld bytes at %lld"
 msgstr ""
 
-#: fileread.cc:382
+#: fileread.cc:372
+#, c-format
+msgid ""
+"%s: attempt to map %lld bytes at offset %lld exceeds size of file; the file "
+"may be corrupt"
+msgstr ""
+
+#: fileread.cc:402
 #, c-format
 msgid "%s: mmap offset %lld size %lld failed: %s"
 msgstr ""
 
-#: fileread.cc:528
+#: fileread.cc:548
 #, c-format
 msgid "%s: lseek failed: %s"
 msgstr ""
 
-#: fileread.cc:534
+#: fileread.cc:554
 #, c-format
 msgid "%s: readv failed: %s"
 msgstr ""
 
-#: fileread.cc:537
+#: fileread.cc:557
 #, c-format
 msgid "%s: file too short: read only %zd of %zd bytes at %lld"
 msgstr ""
 
-#: fileread.cc:686
+#: fileread.cc:706
 #, c-format
 msgid "%s: total bytes mapped for read: %llu\n"
 msgstr ""
 
-#: fileread.cc:688
+#: fileread.cc:708
 #, c-format
 msgid "%s: maximum bytes mapped for read at one time: %llu\n"
 msgstr ""
 
-#: fileread.cc:783
+#: fileread.cc:791
 #, c-format
-msgid "cannot find -l%s"
+msgid "%s: stat failed: %s"
 msgstr ""
 
-#: fileread.cc:810
+#: fileread.cc:849
+#, c-format
+msgid "cannot find %s%s"
+msgstr ""
+
+#: fileread.cc:880
 #, c-format
 msgid "cannot find %s"
 msgstr ""
 
-#: fileread.cc:833
+#: fileread.cc:904
 #, c-format
 msgid "cannot open %s: %s"
 msgstr ""
@@ -418,12 +535,12 @@
 msgid "pthread_mutex_destroy failed: %s"
 msgstr ""
 
-#: gold-threads.cc:131
+#: gold-threads.cc:131 gold-threads.cc:382
 #, c-format
 msgid "pthread_mutex_lock failed: %s"
 msgstr ""
 
-#: gold-threads.cc:139
+#: gold-threads.cc:139 gold-threads.cc:394
 #, c-format
 msgid "pthread_mutex_unlock failed: %s"
 msgstr ""
@@ -453,120 +570,156 @@
 msgid "pthread_cond_broadcast failed: %s"
 msgstr ""
 
-#: gold.cc:83
+#: gold-threads.cc:388
+#, c-format
+msgid "pthread_once failed: %s"
+msgstr ""
+
+#: gold.cc:91
 #, c-format
 msgid "%s: internal error in %s, at %s:%d\n"
 msgstr ""
 
-#: gold.cc:130
+#: gold.cc:173
 msgid "no input files"
 msgstr ""
 
-#. We print out just the first .so we see; there may be others.
-#: gold.cc:195
+#: gold.cc:226
+msgid "cannot mix -r with --gc-sections or --icf"
+msgstr ""
+
+#: gold.cc:407
 #, c-format
 msgid "cannot mix -static with dynamic object %s"
 msgstr ""
 
-#: gold.cc:199
+#: gold.cc:411
 #, c-format
 msgid "cannot mix -r with dynamic object %s"
 msgstr ""
 
-#: gold.cc:203
+#: gold.cc:415
 #, c-format
 msgid "cannot use non-ELF output format with dynamic object %s"
 msgstr ""
 
+#: gold.cc:427
+#, c-format
+msgid "cannot mix split-stack '%s' and non-split-stack '%s' when using -r"
+msgstr ""
+
 #. FIXME: This needs to specify the location somehow.
-#: i386.cc:193 i386.cc:1588 sparc.cc:211 sparc.cc:2322 x86_64.cc:208
-#: x86_64.cc:1656
+#: i386.cc:232 i386.cc:1669 sparc.cc:234 sparc.cc:2395 x86_64.cc:237
+#: x86_64.cc:1732
 msgid "missing expected TLS relocation"
 msgstr ""
 
-#: i386.cc:503 sparc.cc:1066 x86_64.cc:533
-msgid "** PLT"
-msgstr ""
-
-#: i386.cc:843 powerpc.cc:996 sparc.cc:1480 x86_64.cc:921 x86_64.cc:1230
-#, c-format
-msgid "%s: unsupported reloc %u against local symbol"
-msgstr ""
-
-#: i386.cc:907 x86_64.cc:1033
+#: i386.cc:944 x86_64.cc:1068
 #, c-format
 msgid "section symbol %u has bad shndx %u"
 msgstr ""
 
-#: i386.cc:965 i386.cc:1297 powerpc.cc:1204 powerpc.cc:1413 sparc.cc:1852
-#: sparc.cc:2204 x86_64.cc:1110 x86_64.cc:1418
-#, c-format
-msgid "%s: unexpected reloc %u in object file"
-msgstr ""
-
-#: i386.cc:999 i386.cc:1023 sparc.cc:1753 x86_64.cc:1141 x86_64.cc:1169
+#: i386.cc:1036 i386.cc:1060 sparc.cc:1777 x86_64.cc:1176 x86_64.cc:1204
 #, c-format
 msgid "local symbol %u has bad shndx %u"
 msgstr ""
 
-#: i386.cc:1134 powerpc.cc:1223 sparc.cc:1871 x86_64.cc:1244 x86_64.cc:1536
-#, c-format
-msgid "%s: unsupported reloc %u against global symbol %s"
-msgstr ""
-
-#: i386.cc:1473
-#, c-format
-msgid "%s: unsupported RELA reloc section"
-msgstr ""
-
-#: i386.cc:1735 i386.cc:2429 powerpc.cc:1740 sparc.cc:2637 x86_64.cc:1859
-#: x86_64.cc:2435
-#, c-format
-msgid "unexpected reloc %u in object file"
-msgstr ""
-
-#: i386.cc:1767 i386.cc:1846 i386.cc:1898 i386.cc:1929 i386.cc:1986
-#: powerpc.cc:1746 sparc.cc:2643 sparc.cc:2826 sparc.cc:2887 sparc.cc:2994
-#: x86_64.cc:1880 x86_64.cc:1963 x86_64.cc:2018 x86_64.cc:2043
-#, c-format
-msgid "unsupported reloc %u"
-msgstr ""
-
-#: i386.cc:1906
+#: i386.cc:1991
 msgid "both SUN and GNU model TLS relocations"
 msgstr ""
 
-#: i386.cc:2443
+#: i386.cc:2730 x86_64.cc:2719
 #, c-format
-msgid "unsupported reloc %u in object file"
+msgid "failed to match split-stack sequence at section %u offset %0zx"
 msgstr ""
 
-#: layout.cc:1511
+#: icf.cc:616
+#, c-format
+msgid "%s: ICF Converged after %u iteration(s)"
+msgstr ""
+
+#: icf.cc:619
+#, c-format
+msgid "%s: ICF stopped after %u iteration(s)"
+msgstr ""
+
+#: icf.cc:633
+#, c-format
+msgid "Could not find symbol %s to unfold\n"
+msgstr ""
+
+#: incremental.cc:242
+#, c-format
+msgid "the link might take longer: cannot perform incremental link: %s"
+msgstr ""
+
+#: incremental.cc:302
+msgid "no incremental data from previous build"
+msgstr ""
+
+#: incremental.cc:309 incremental.cc:332
+msgid "invalid incremental build data"
+msgstr ""
+
+#: incremental.cc:321
+msgid "different version of incremental build data"
+msgstr ""
+
+#: incremental.cc:338
+msgid "command line changed"
+msgstr ""
+
+#: incremental.cc:362
+#, c-format
+msgid "unsupported ELF machine number %d"
+msgstr ""
+
+#: incremental.cc:387
+msgid "output is not an ELF file."
+msgstr ""
+
+#: incremental.cc:410
+msgid "unsupported file: 32-bit, big-endian"
+msgstr ""
+
+#: incremental.cc:419
+msgid "unsupported file: 32-bit, little-endian"
+msgstr ""
+
+#: incremental.cc:431
+msgid "unsupported file: 64-bit, big-endian"
+msgstr ""
+
+#: incremental.cc:440
+msgid "unsupported file: 64-bit, little-endian"
+msgstr ""
+
+#: layout.cc:1887
 #, c-format
 msgid "--build-id=uuid failed: could not open /dev/urandom: %s"
 msgstr ""
 
-#: layout.cc:1518
+#: layout.cc:1894
 #, c-format
 msgid "/dev/urandom: read failed: %s"
 msgstr ""
 
-#: layout.cc:1520
+#: layout.cc:1896
 #, c-format
 msgid "/dev/urandom: expected %zu bytes, got %zd bytes"
 msgstr ""
 
-#: layout.cc:1542
+#: layout.cc:1918
 #, c-format
 msgid "--build-id argument '%s' not a valid hex number"
 msgstr ""
 
-#: layout.cc:1548
+#: layout.cc:1924
 #, c-format
 msgid "unrecognized --build-id argument '%s'"
 msgstr ""
 
-#: layout.cc:1866
+#: layout.cc:2337
 #, c-format
 msgid "load segment overlap [0x%llx -> 0x%llx] and [0x%llx -> 0x%llx]"
 msgstr ""
@@ -618,185 +771,162 @@
 "\n"
 msgstr ""
 
-#: merge.cc:449
+#: merge.cc:455
 #, c-format
 msgid "%s: %s merged constants size: %lu; input: %zu; output: %zu\n"
 msgstr ""
 
-#: merge.cc:472
+#: merge.cc:478
 msgid "mergeable string section length not multiple of character size"
 msgstr ""
 
-#: merge.cc:488
-msgid "entry in mergeable string section not null terminated"
+#: merge.cc:494
+#, c-format
+msgid "%s: last entry in mergeable string section '%s' not null terminated"
 msgstr ""
 
-#: merge.cc:605
+#: merge.cc:613
 #, c-format
 msgid "%s: %s input: %zu\n"
 msgstr ""
 
-#: merge.h:289
+#: merge.h:300
 msgid "** merge constants"
 msgstr ""
 
-#: merge.h:411
+#: merge.h:422
 msgid "** merge strings"
 msgstr ""
 
-#: object.cc:73
+#: object.cc:75
 msgid "missing SHT_SYMTAB_SHNDX section"
 msgstr ""
 
-#: object.cc:117
+#: object.cc:119
 #, c-format
 msgid "symbol %u out of range for SHT_SYMTAB_SHNDX section"
 msgstr ""
 
-#: object.cc:124
+#: object.cc:126
 #, c-format
 msgid "extended index for symbol %u out of range: %u"
 msgstr ""
 
-#: object.cc:141
-#, c-format
-msgid "%s: unsupported ELF machine number %d"
-msgstr ""
-
-#: object.cc:159
+#: object.cc:148 object.cc:2331 output.cc:4052
 #, c-format
 msgid "%s: %s"
 msgstr ""
 
-#: object.cc:196
+#: object.cc:190
 #, c-format
 msgid "section name section has wrong type: %u"
 msgstr ""
 
-#: object.cc:459
+#: object.cc:546
 #, c-format
 msgid "invalid symbol table name index: %u"
 msgstr ""
 
-#: object.cc:465
+#: object.cc:552
 #, c-format
 msgid "symbol table name section has wrong type: %u"
 msgstr ""
 
-#: object.cc:554
+#: object.cc:641
 #, c-format
 msgid "section group %u info %u out of range"
 msgstr ""
 
-#: object.cc:573
+#: object.cc:660
 #, c-format
 msgid "symbol %u name offset %u out of range"
 msgstr ""
 
-#: object.cc:591
+#: object.cc:678
 #, c-format
 msgid "symbol %u invalid section index %u"
 msgstr ""
 
-#: object.cc:644
+#: object.cc:723
 #, c-format
 msgid "section %u in section group %u out of range"
 msgstr ""
 
-#: object.cc:652
+#: object.cc:731
 #, c-format
 msgid "invalid section group %u refers to earlier section %u"
 msgstr ""
 
-#: object.cc:827 reloc.cc:215 reloc.cc:723
+#: object.cc:1037 reloc.cc:271 reloc.cc:838
 #, c-format
 msgid "relocation section %u has bad info %u"
 msgstr ""
 
-#: object.cc:1080
+#: object.cc:1231
+#, c-format
+msgid "%s: removing unused section from '%s' in file '%s'"
+msgstr ""
+
+#: object.cc:1257
+#, c-format
+msgid "%s: ICF folding section '%s' in file '%s'into '%s' in file '%s'"
+msgstr ""
+
+#: object.cc:1454
 msgid "size of symbols is not multiple of symbol size"
 msgstr ""
 
-#: object.cc:1187
+#: object.cc:1563
 #, c-format
 msgid "local symbol %u section name out of range: %u >= %u"
 msgstr ""
 
-#: object.cc:1245
+#: object.cc:1652
 #, c-format
 msgid "unknown section index %u for local symbol %u"
 msgstr ""
 
-#: object.cc:1254
+#: object.cc:1661
 #, c-format
 msgid "local symbol %u section index %u out of range"
 msgstr ""
 
-#: object.cc:1619
-msgid "incompatible target"
-msgstr ""
-
-#: object.cc:1816
+#: object.cc:2169
 #, c-format
-msgid "%s: unsupported ELF file type %d"
+msgid "%s is not supported but is required for %s in %s"
 msgstr ""
 
-#: object.cc:1835 object.cc:1881 object.cc:1915
+#: object.cc:2273
 #, c-format
-msgid "%s: ELF file too short"
+msgid "%s: unsupported ELF machine number %d"
 msgstr ""
 
-#: object.cc:1843
+#: object.cc:2283
 #, c-format
-msgid "%s: invalid ELF version 0"
+msgid "%s: incompatible target"
 msgstr ""
 
-#: object.cc:1845
-#, c-format
-msgid "%s: unsupported ELF version %d"
-msgstr ""
-
-#: object.cc:1852
-#, c-format
-msgid "%s: invalid ELF class 0"
-msgstr ""
-
-#: object.cc:1858
-#, c-format
-msgid "%s: unsupported ELF class %d"
-msgstr ""
-
-#: object.cc:1865
-#, c-format
-msgid "%s: invalid ELF data encoding"
-msgstr ""
-
-#: object.cc:1871
-#, c-format
-msgid "%s: unsupported ELF data encoding %d"
-msgstr ""
-
-#: object.cc:1891
+#: object.cc:2347 plugin.cc:1019
 #, c-format
 msgid "%s: not configured to support 32-bit big-endian object"
 msgstr ""
 
-#: object.cc:1904
+#: object.cc:2363 plugin.cc:1028
 #, c-format
 msgid "%s: not configured to support 32-bit little-endian object"
 msgstr ""
 
-#: object.cc:1925
+#: object.cc:2382 plugin.cc:1040
 #, c-format
 msgid "%s: not configured to support 64-bit big-endian object"
 msgstr ""
 
-#: object.cc:1938
+#: object.cc:2398 plugin.cc:1049
 #, c-format
 msgid "%s: not configured to support 64-bit little-endian object"
 msgstr ""
 
-#: options.cc:142
+#: options.cc:156
 #, c-format
 msgid ""
 "Usage: %s [options] file...\n"
@@ -805,1028 +935,1295 @@
 
 #. config.guess and libtool.m4 look in ld --help output for the
 #. string "supported targets".
-#: options.cc:150
+#: options.cc:164
 #, c-format
 msgid "%s: supported targets:"
 msgstr ""
 
-#: options.cc:162
+#: options.cc:176
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
-#: options.cc:179 options.cc:189
+#: options.cc:193 options.cc:203 options.cc:213
 #, c-format
 msgid "%s: invalid option value (expected an integer): %s"
 msgstr ""
 
-#: options.cc:199
+#: options.cc:223
 #, c-format
 msgid "%s: invalid option value (expected a floating point number): %s"
 msgstr ""
 
-#: options.cc:208
+#: options.cc:232
 #, c-format
 msgid "%s: must take a non-empty argument"
 msgstr ""
 
-#: options.cc:249
+#: options.cc:273
 #, c-format
 msgid "%s: must take one of the following arguments: %s"
 msgstr ""
 
-#: options.cc:275
+#: options.cc:300
 #, c-format
 msgid "  Supported targets:\n"
 msgstr ""
 
-#: options.cc:329
+#: options.cc:409
 #, c-format
 msgid "unable to parse script file %s"
 msgstr ""
 
-#: options.cc:337
+#: options.cc:417
 #, c-format
 msgid "unable to parse version script file %s"
 msgstr ""
 
-#: options.cc:363
+#: options.cc:425
 #, c-format
-msgid "%s: use the --help option for usage information\n"
+msgid "unable to parse dynamic-list script file %s"
 msgstr ""
 
-#: options.cc:372
-#, c-format
-msgid "%s: %s: %s\n"
-msgstr ""
-
-#: options.cc:393
+#: options.cc:522
 #, c-format
 msgid ""
 "format '%s' not supported; treating as elf (supported formats: elf, binary)"
 msgstr ""
 
-#: options.cc:499
+#: options.cc:538
+#, c-format
+msgid "%s: use the --help option for usage information\n"
+msgstr ""
+
+#: options.cc:547
+#, c-format
+msgid "%s: %s: %s\n"
+msgstr ""
+
+#: options.cc:651
 msgid "unexpected argument"
 msgstr ""
 
-#: options.cc:512 options.cc:573
+#: options.cc:664 options.cc:725
 msgid "missing argument"
 msgstr ""
 
-#: options.cc:584
+#: options.cc:736
 msgid "unknown -z option"
 msgstr ""
 
-#: options.cc:727
+#: options.cc:935
 #, c-format
 msgid "ignoring --threads: %s was compiled without thread support"
 msgstr ""
 
-#: options.cc:734
+#: options.cc:942
 #, c-format
 msgid "ignoring --thread-count: %s was compiled without thread support"
 msgstr ""
 
-#: options.cc:776
+#: options.cc:981
+#, c-format
+msgid "unable to open -retain-symbols-file file %s: %s"
+msgstr ""
+
+#: options.cc:1003
+msgid "-shared and -static are incompatible"
+msgstr ""
+
+#: options.cc:1005
+msgid "-shared and -pie are incompatible"
+msgstr ""
+
+#: options.cc:1008
 msgid "-shared and -r are incompatible"
 msgstr ""
 
-#: options.cc:780
-msgid "binary output format not compatible with -shared or -r"
+#: options.cc:1010
+msgid "-pie and -r are incompatible"
 msgstr ""
 
-#: options.cc:785
+#: options.cc:1014
+msgid "-retain-symbols-file does not yet work with -r"
+msgstr ""
+
+#: options.cc:1020
+msgid "binary output format not compatible with -shared or -pie or -r"
+msgstr ""
+
+#: options.cc:1026
 #, c-format
 msgid "--hash-bucket-empty-fraction value %g out of range [0.0, 1.0)"
 msgstr ""
 
-#: options.cc:852
+#: options.cc:1031
+msgid ""
+"Options --incremental-changed, --incremental-unchanged, --incremental-"
+"unknown require the use of --incremental"
+msgstr ""
+
+#: options.cc:1097
 msgid "May not nest groups"
 msgstr ""
 
-#: options.cc:864
+#: options.cc:1109
 msgid "Group end without group start"
 msgstr ""
 
 #. I guess it's neither a long option nor a short option.
-#: options.cc:922
+#: options.cc:1174
 msgid "unknown option"
 msgstr ""
 
-#: options.cc:948
+#: options.cc:1201
 #, c-format
 msgid "%s: missing group end\n"
 msgstr ""
 
-#: options.h:536
+#: options.h:571
 msgid "Report usage information"
 msgstr ""
 
-#: options.h:538
+#: options.h:573
 msgid "Report version information"
 msgstr ""
 
-#: options.h:540
+#: options.h:575
 msgid "Report version and target information"
 msgstr ""
 
-#: options.h:549
+#: options.h:584 options.h:635
+msgid "Not supported"
+msgstr ""
+
+#: options.h:585 options.h:636
+msgid "Do not copy DT_NEEDED tags from shared libraries"
+msgstr ""
+
+#: options.h:588
 msgid "Allow unresolved references in shared libraries"
 msgstr ""
 
-#: options.h:550
+#: options.h:589
 msgid "Do not allow unresolved references in shared libraries"
 msgstr ""
 
-#: options.h:553
-msgid "Only set DT_NEEDED for dynamic libs if used"
+#: options.h:592
+msgid "Only set DT_NEEDED for shared libraries if used"
 msgstr ""
 
-#: options.h:554
-msgid "Always DT_NEEDED for dynamic libs"
+#: options.h:593
+msgid "Always DT_NEEDED for shared libraries"
 msgstr ""
 
-#: options.h:561
+#: options.h:600
 msgid "Set input format"
 msgstr ""
 
-#: options.h:564
+#: options.h:603
 msgid "-l searches for shared libraries"
 msgstr ""
 
-#: options.h:566
+#: options.h:605
 msgid "-l does not search for shared libraries"
 msgstr ""
 
-#: options.h:570
+#: options.h:609
 msgid "Bind defined symbols locally"
 msgstr ""
 
-#: options.h:573
+#: options.h:612
 msgid "Bind defined function symbols locally"
 msgstr ""
 
-#: options.h:576
+#: options.h:615
 msgid "Generate build ID note"
 msgstr ""
 
-#: options.h:577 options.h:612
+#: options.h:616 options.h:655
 msgid "[=STYLE]"
 msgstr ""
 
-#: options.h:580
+#: options.h:619
 msgid "Check segment addresses for overlaps (default)"
 msgstr ""
 
-#: options.h:581
+#: options.h:620
 msgid "Do not check segment addresses for overlaps"
 msgstr ""
 
-#: options.h:585 options.h:590
+#: options.h:624 options.h:629
 msgid "Compress .debug_* sections in the output file"
 msgstr ""
 
-#: options.h:591
+#: options.h:630
 msgid "[none]"
 msgstr ""
 
-#: options.h:596
+#: options.h:639
 msgid "Define common symbols"
 msgstr ""
 
-#: options.h:597
+#: options.h:640
 msgid "Do not define common symbols"
 msgstr ""
 
-#: options.h:599 options.h:601
+#: options.h:642 options.h:644
 msgid "Alias for -d"
 msgstr ""
 
-#: options.h:604
+#: options.h:647
 msgid "Turn on debugging"
 msgstr ""
 
-#: options.h:605
+#: options.h:648
 msgid "[all,files,script,task][,...]"
 msgstr ""
 
-#: options.h:608
+#: options.h:651
 msgid "Define a symbol"
 msgstr ""
 
-#: options.h:608
+#: options.h:651
 msgid "SYMBOL=EXPRESSION"
 msgstr ""
 
-#: options.h:611
+#: options.h:654
 msgid "Demangle C++ symbols in log messages"
 msgstr ""
 
-#: options.h:615
+#: options.h:658
 msgid "Do not demangle C++ symbols in log messages"
 msgstr ""
 
-#: options.h:619
+#: options.h:662
 msgid "Try to detect violations of the One Definition Rule"
 msgstr ""
 
-#: options.h:623
-msgid "Set program start address"
-msgstr ""
-
-#: options.h:623 options.h:766 options.h:768 options.h:770
-msgid "ADDRESS"
-msgstr ""
-
-#: options.h:626
-msgid "Export all dynamic symbols"
-msgstr ""
-
-#: options.h:629
-msgid "Create exception frame header"
-msgstr ""
-
-#: options.h:632
-msgid "Treat warnings as errors"
-msgstr ""
-
-#: options.h:633
-msgid "Do not treat warnings as errors"
-msgstr ""
-
-#: options.h:636
-msgid "Set shared library name"
-msgstr ""
-
-#: options.h:636 options.h:696
-msgid "FILENAME"
-msgstr ""
-
-#: options.h:639
-msgid "Min fraction of empty buckets in dynamic hash"
-msgstr ""
-
-#: options.h:640
-msgid "FRACTION"
-msgstr ""
-
-#: options.h:643
-msgid "Dynamic hash style"
-msgstr ""
-
-#: options.h:643
-msgid "[sysv,gnu,both]"
-msgstr ""
-
-#: options.h:647
-msgid "Set dynamic linker path"
-msgstr ""
-
-#: options.h:647
-msgid "PROGRAM"
-msgstr ""
-
-#: options.h:650
-msgid "Read only symbol values from FILE"
-msgstr ""
-
-#: options.h:650 options.h:684 options.h:751 options.h:779
-msgid "FILE"
-msgstr ""
-
-#: options.h:653
-msgid "Search for library LIBNAME"
-msgstr ""
-
-#: options.h:653
-msgid "LIBNAME"
-msgstr ""
-
-#: options.h:656
-msgid "Add directory to search path"
-msgstr ""
-
-#: options.h:656 options.h:714 options.h:717 options.h:721 options.h:745
-msgid "DIR"
-msgstr ""
-
-#: options.h:659
-msgid "Ignored for compatibility"
-msgstr ""
-
-#: options.h:659
-msgid "EMULATION"
-msgstr ""
-
-#: options.h:662
-msgid "Write map file on standard output"
-msgstr ""
-
-#: options.h:663
-msgid "Write map file"
-msgstr ""
-
-#: options.h:664
-msgid "MAPFILENAME"
-msgstr ""
-
-#: options.h:667
-msgid "Do not page align data"
+#: options.h:666
+msgid "Delete all temporary local symbols"
 msgstr ""
 
 #: options.h:669
-msgid "Do not page align data, do not make text readonly"
+msgid "Add data symbols to dynamic symbols"
 msgstr ""
 
-#: options.h:670
-msgid "Page align data, make text readonly"
+#: options.h:672
+msgid "Add C++ operator new/delete to dynamic symbols"
 msgstr ""
 
-#: options.h:673
-msgid "Enable use of DT_RUNPATH and DT_FLAGS"
+#: options.h:675
+msgid "Add C++ typeinfo to dynamic symbols"
 msgstr ""
 
-#: options.h:674
-msgid "Disable use of DT_RUNPATH and DT_FLAGS"
+#: options.h:678
+msgid "Read a list of dynamic symbols"
 msgstr ""
 
-#: options.h:677
-msgid "Create an output file even if errors occur"
+#: options.h:678 options.h:732 options.h:766 options.h:893 options.h:921
+msgid "FILE"
 msgstr ""
 
-#: options.h:680 options.h:808
-msgid "Report undefined symbols (even with --shared)"
+#: options.h:681
+msgid "Set program start address"
+msgstr ""
+
+#: options.h:681 options.h:908 options.h:910 options.h:912
+msgid "ADDRESS"
 msgstr ""
 
 #: options.h:684
-msgid "Set output file name"
+msgid "Exclude libraries from automatic export"
 msgstr ""
 
-#: options.h:687
-msgid "Optimize output file size"
+#: options.h:688
+msgid "Export all dynamic symbols"
 msgstr ""
 
-#: options.h:687
-msgid "LEVEL"
+#: options.h:689
+msgid "Do not export all dynamic symbols (default)"
 msgstr ""
 
-#: options.h:690
-msgid "Set output format"
-msgstr ""
-
-#: options.h:690
-msgid "[binary]"
-msgstr ""
-
-#: options.h:693
-msgid "Preread archive symbols when multi-threaded"
+#: options.h:692
+msgid "Create exception frame header"
 msgstr ""
 
 #: options.h:695
-msgid "Print symbols defined and used for each input"
+msgid "Treat warnings as errors"
+msgstr ""
+
+#: options.h:696
+msgid "Do not treat warnings as errors"
 msgstr ""
 
 #: options.h:699
-msgid "Ignored for SVR4 compatibility"
+msgid "Call SYMBOL at unload-time"
 msgstr ""
 
-#: options.h:702
-msgid "Generate relocations in output"
-msgstr ""
-
-#: options.h:705
-msgid "Generate relocatable output"
-msgstr ""
-
-#: options.h:708
-msgid "Relax branches on certain targets"
-msgstr ""
-
-#: options.h:714 options.h:717
-msgid "Add DIR to runtime search path"
-msgstr ""
-
-#: options.h:720
-msgid "Add DIR to link time shared library search path"
-msgstr ""
-
-#: options.h:724
-msgid "Strip all symbols"
-msgstr ""
-
-#: options.h:726
-msgid "Strip debugging information"
-msgstr ""
-
-#: options.h:728
-msgid "Emit only debug line number information"
-msgstr ""
-
-#: options.h:730
-msgid "Strip debug symbols that are unused by gdb (at least versions <= 6.7)"
-msgstr ""
-
-#: options.h:734
-msgid "Generate shared library"
-msgstr ""
-
-#: options.h:739
-msgid "Do not link against shared libraries"
-msgstr ""
-
-#: options.h:742
-msgid "Print resource usage statistics"
-msgstr ""
-
-#: options.h:745
-msgid "Set target system root directory"
-msgstr ""
-
-#: options.h:748
-msgid "Print the name of each input file"
-msgstr ""
-
-#: options.h:751
-msgid "Read linker script"
-msgstr ""
-
-#: options.h:754
-msgid "Run the linker multi-threaded"
-msgstr ""
-
-#: options.h:755
-msgid "Do not run the linker multi-threaded"
-msgstr ""
-
-#: options.h:757
-msgid "Number of threads to use"
-msgstr ""
-
-#: options.h:757 options.h:759 options.h:761 options.h:763
-msgid "COUNT"
-msgstr ""
-
-#: options.h:759
-msgid "Number of threads to use in initial pass"
-msgstr ""
-
-#: options.h:761
-msgid "Number of threads to use in middle pass"
-msgstr ""
-
-#: options.h:763
-msgid "Number of threads to use in final pass"
-msgstr ""
-
-#: options.h:766
-msgid "Set the address of the bss segment"
-msgstr ""
-
-#: options.h:768
-msgid "Set the address of the data segment"
-msgstr ""
-
-#: options.h:770
-msgid "Set the address of the text segment"
-msgstr ""
-
-#: options.h:773
-msgid "Create undefined reference to SYMBOL"
-msgstr ""
-
-#: options.h:773 options.h:786 options.h:789
+#: options.h:699 options.h:729 options.h:873 options.h:915 options.h:936
+#: options.h:939
 msgid "SYMBOL"
 msgstr ""
 
-#: options.h:776
-msgid "Synonym for --debug=files"
+#: options.h:702
+msgid "Set shared library name"
 msgstr ""
 
-#: options.h:779
-msgid "Read version script"
+#: options.h:702 options.h:792
+msgid "FILENAME"
+msgstr ""
+
+#: options.h:705
+msgid "Min fraction of empty buckets in dynamic hash"
+msgstr ""
+
+#: options.h:706
+msgid "FRACTION"
+msgstr ""
+
+#: options.h:709
+msgid "Dynamic hash style"
+msgstr ""
+
+#: options.h:709
+msgid "[sysv,gnu,both]"
+msgstr ""
+
+#: options.h:713
+msgid "Set dynamic linker path"
+msgstr ""
+
+#: options.h:713
+msgid "PROGRAM"
+msgstr ""
+
+#: options.h:716
+msgid "Work in progress; do not use"
+msgstr ""
+
+#: options.h:717
+msgid "Do a full build"
+msgstr ""
+
+#: options.h:720
+msgid "Assume files changed"
+msgstr ""
+
+#: options.h:723
+msgid "Assume files didn't change"
+msgstr ""
+
+#: options.h:726
+msgid "Use timestamps to check files (default)"
+msgstr ""
+
+#: options.h:729
+msgid "Call SYMBOL at load-time"
+msgstr ""
+
+#: options.h:732
+msgid "Read only symbol values from FILE"
+msgstr ""
+
+#: options.h:735
+msgid "Search for library LIBNAME"
+msgstr ""
+
+#: options.h:735
+msgid "LIBNAME"
+msgstr ""
+
+#: options.h:738
+msgid "Add directory to search path"
+msgstr ""
+
+#: options.h:738 options.h:813 options.h:816 options.h:820 options.h:887
+msgid "DIR"
+msgstr ""
+
+#: options.h:741
+msgid "Ignored for compatibility"
+msgstr ""
+
+#: options.h:741
+msgid "EMULATION"
+msgstr ""
+
+#: options.h:744
+msgid "Write map file on standard output"
+msgstr ""
+
+#: options.h:745
+msgid "Write map file"
+msgstr ""
+
+#: options.h:746
+msgid "MAPFILENAME"
+msgstr ""
+
+#: options.h:749
+msgid "Do not page align data"
+msgstr ""
+
+#: options.h:751
+msgid "Do not page align data, do not make text readonly"
+msgstr ""
+
+#: options.h:752
+msgid "Page align data, make text readonly"
+msgstr ""
+
+#: options.h:755
+msgid "Enable use of DT_RUNPATH and DT_FLAGS"
+msgstr ""
+
+#: options.h:756
+msgid "Disable use of DT_RUNPATH and DT_FLAGS"
+msgstr ""
+
+#: options.h:759
+msgid "Create an output file even if errors occur"
+msgstr ""
+
+#: options.h:762 options.h:958
+msgid "Report undefined symbols (even with --shared)"
+msgstr ""
+
+#: options.h:766
+msgid "Set output file name"
+msgstr ""
+
+#: options.h:769
+msgid "Optimize output file size"
+msgstr ""
+
+#: options.h:769
+msgid "LEVEL"
+msgstr ""
+
+#: options.h:772
+msgid "Set output format"
+msgstr ""
+
+#: options.h:772
+msgid "[binary]"
+msgstr ""
+
+#: options.h:775 options.h:777
+msgid "Create a position independent executable"
 msgstr ""
 
 #: options.h:782
-msgid "Include all archive contents"
+msgid "Load a plugin library"
 msgstr ""
 
-#: options.h:783
-msgid "Include only needed archive contents"
+#: options.h:782
+msgid "PLUGIN"
 msgstr ""
 
-#: options.h:786
-msgid "Use wrapper functions for SYMBOL"
+#: options.h:784
+msgid "Pass an option to the plugin"
 msgstr ""
 
-#: options.h:789
-msgid "Trace references to symbol"
+#: options.h:784
+msgid "OPTION"
 msgstr ""
 
-#: options.h:792
-msgid "Default search path for Solaris compatibility"
+#: options.h:788
+msgid "Preread archive symbols when multi-threaded"
 msgstr ""
 
-#: options.h:793
-msgid "PATH"
+#: options.h:791
+msgid "Print symbols defined and used for each input"
 msgstr ""
 
-#: options.h:796
-msgid "Start a library search group"
+#: options.h:795
+msgid "Ignored for SVR4 compatibility"
 msgstr ""
 
 #: options.h:798
-msgid "End a library search group"
+msgid "Generate relocations in output"
 msgstr ""
 
-#: options.h:803
-msgid "Sort dynamic relocs"
+#: options.h:801
+msgid "Generate relocatable output"
 msgstr ""
 
 #: options.h:804
-msgid "Do not sort dynamic relocs"
+msgid "Relax branches on certain targets"
 msgstr ""
 
-#: options.h:806
-msgid "Set common page size to SIZE"
+#: options.h:807
+msgid "keep only symbols listed in this file"
 msgstr ""
 
-#: options.h:806 options.h:813
-msgid "SIZE"
+#: options.h:807
+msgid "[file]"
 msgstr ""
 
-#: options.h:811
-msgid "Mark output as requiring executable stack"
+#: options.h:813 options.h:816
+msgid "Add DIR to runtime search path"
 msgstr ""
 
-#: options.h:813
-msgid "Set maximum page size to SIZE"
-msgstr ""
-
-#: options.h:815
-msgid "Mark output as not requiring executable stack"
-msgstr ""
-
-#: options.h:817
-msgid "Mark DSO to be initialized first at runtime"
-msgstr ""
-
-#: options.h:820
-msgid "Mark object to interpose all DSOs but executable"
+#: options.h:819
+msgid "Add DIR to link time shared library search path"
 msgstr ""
 
 #: options.h:823
-msgid "Mark object requiring immediate process"
+msgid "Strip all symbols"
 msgstr ""
 
-#: options.h:826
-msgid "Mark object not to use default search paths"
+#: options.h:825
+msgid "Strip debugging information"
+msgstr ""
+
+#: options.h:827
+msgid "Emit only debug line number information"
 msgstr ""
 
 #: options.h:829
-msgid "Mark DSO non-deletable at runtime"
+msgid "Strip debug symbols that are unused by gdb (at least versions <= 6.7)"
 msgstr ""
 
 #: options.h:832
-msgid "Mark DSO not available to dlopen"
+msgid "Strip LTO intermediate code sections"
 msgstr ""
 
 #: options.h:835
+msgid ""
+"(ARM only) The maximum distance from instructions in a group of sections to "
+"their stubs.  Negative values mean stubs are always after the group. 1 means "
+"using default size.\n"
+msgstr ""
+
+#: options.h:838 options.h:852 options.h:956 options.h:975
+msgid "SIZE"
+msgstr ""
+
+#: options.h:841
+msgid ""
+"Use less memory and more disk I/O (included only for compatibility with GNU "
+"ld)"
+msgstr ""
+
+#: options.h:845 options.h:848
+msgid "Generate shared library"
+msgstr ""
+
+#: options.h:851
+msgid "Stack size when -fsplit-stack function calls non-split"
+msgstr ""
+
+#: options.h:857
+msgid "Do not link against shared libraries"
+msgstr ""
+
+#: options.h:860
+msgid "Identical Code Folding. '--icf=safe' folds only ctors and dtors."
+msgstr ""
+
+#: options.h:866
+msgid "Number of iterations of ICF (default 2)"
+msgstr ""
+
+#: options.h:866 options.h:899 options.h:901 options.h:903 options.h:905
+msgid "COUNT"
+msgstr ""
+
+#: options.h:869
+msgid "List folded identical sections on stderr"
+msgstr ""
+
+#: options.h:870
+msgid "Do not list folded identical sections"
+msgstr ""
+
+#: options.h:873
+msgid "Do not fold this symbol during ICF"
+msgstr ""
+
+#: options.h:876
+msgid "Remove unused sections"
+msgstr ""
+
+#: options.h:877
+msgid "Don't remove unused sections (default)"
+msgstr ""
+
+#: options.h:880
+msgid "List removed unused sections on stderr"
+msgstr ""
+
+#: options.h:881
+msgid "Do not list removed unused sections"
+msgstr ""
+
+#: options.h:884
+msgid "Print resource usage statistics"
+msgstr ""
+
+#: options.h:887
+msgid "Set target system root directory"
+msgstr ""
+
+#: options.h:890
+msgid "Print the name of each input file"
+msgstr ""
+
+#: options.h:893
+msgid "Read linker script"
+msgstr ""
+
+#: options.h:896
+msgid "Run the linker multi-threaded"
+msgstr ""
+
+#: options.h:897
+msgid "Do not run the linker multi-threaded"
+msgstr ""
+
+#: options.h:899
+msgid "Number of threads to use"
+msgstr ""
+
+#: options.h:901
+msgid "Number of threads to use in initial pass"
+msgstr ""
+
+#: options.h:903
+msgid "Number of threads to use in middle pass"
+msgstr ""
+
+#: options.h:905
+msgid "Number of threads to use in final pass"
+msgstr ""
+
+#: options.h:908
+msgid "Set the address of the bss segment"
+msgstr ""
+
+#: options.h:910
+msgid "Set the address of the data segment"
+msgstr ""
+
+#: options.h:912
+msgid "Set the address of the text segment"
+msgstr ""
+
+#: options.h:915
+msgid "Create undefined reference to SYMBOL"
+msgstr ""
+
+#: options.h:918
+msgid "Synonym for --debug=files"
+msgstr ""
+
+#: options.h:921
+msgid "Read version script"
+msgstr ""
+
+#: options.h:924
+msgid "Warn about duplicate common symbols"
+msgstr ""
+
+#: options.h:925
+msgid "Do not warn about duplicate common symbols (default)"
+msgstr ""
+
+#: options.h:928
+msgid "Warn when skipping an incompatible library"
+msgstr ""
+
+#: options.h:929
+msgid "Don't warn when skipping an incompatible library"
+msgstr ""
+
+#: options.h:932
+msgid "Include all archive contents"
+msgstr ""
+
+#: options.h:933
+msgid "Include only needed archive contents"
+msgstr ""
+
+#: options.h:936
+msgid "Use wrapper functions for SYMBOL"
+msgstr ""
+
+#: options.h:939
+msgid "Trace references to symbol"
+msgstr ""
+
+#: options.h:942
+msgid "Default search path for Solaris compatibility"
+msgstr ""
+
+#: options.h:943
+msgid "PATH"
+msgstr ""
+
+#: options.h:946
+msgid "Start a library search group"
+msgstr ""
+
+#: options.h:948
+msgid "End a library search group"
+msgstr ""
+
+#: options.h:953
+msgid "Sort dynamic relocs"
+msgstr ""
+
+#: options.h:954
+msgid "Do not sort dynamic relocs"
+msgstr ""
+
+#: options.h:956
+msgid "Set common page size to SIZE"
+msgstr ""
+
+#: options.h:961
+msgid "Mark output as requiring executable stack"
+msgstr ""
+
+#: options.h:963
+msgid "Mark DSO to be initialized first at runtime"
+msgstr ""
+
+#: options.h:966
+msgid "Mark object to interpose all DSOs but executable"
+msgstr ""
+
+#: options.h:969
+msgid "Mark object for lazy runtime binding (default)"
+msgstr ""
+
+#: options.h:972
+msgid "Mark object requiring immediate process"
+msgstr ""
+
+#: options.h:975
+msgid "Set maximum page size to SIZE"
+msgstr ""
+
+#: options.h:978
+msgid "Do not create copy relocs"
+msgstr ""
+
+#: options.h:980
+msgid "Mark object not to use default search paths"
+msgstr ""
+
+#: options.h:983
+msgid "Mark DSO non-deletable at runtime"
+msgstr ""
+
+#: options.h:986
+msgid "Mark DSO not available to dlopen"
+msgstr ""
+
+#: options.h:989
 msgid "Mark DSO not available to dldump"
 msgstr ""
 
-#: options.h:838
+#: options.h:992
+msgid "Mark output as not requiring executable stack"
+msgstr ""
+
+#: options.h:994
+msgid "Mark object for immediate function binding"
+msgstr ""
+
+#: options.h:997
+msgid "Mark DSO to indicate that needs immediate $ORIGIN processing at runtime"
+msgstr ""
+
+#: options.h:1000
 msgid "Where possible mark variables read-only after relocation"
 msgstr ""
 
-#: options.h:839
+#: options.h:1001
 msgid "Don't mark variables read-only after relocation"
 msgstr ""
 
-#: output.cc:1098
+#: output.cc:1132
 msgid "section group retained but group element discarded"
 msgstr ""
 
-#: output.cc:1800
+#: output.cc:1860
 #, c-format
 msgid "invalid alignment %lu for section \"%s\""
 msgstr ""
 
-#: output.cc:3159
+#: output.cc:3573
+#, c-format
+msgid "dot moves backward in linker script from 0x%llx to 0x%llx"
+msgstr ""
+
+#: output.cc:3576
+#, c-format
+msgid "address of section '%s' moves backward from 0x%llx to 0x%llx"
+msgstr ""
+
+#: output.cc:3755
 #, c-format
 msgid "nobits section %s may not precede progbits section %s in same segment"
 msgstr ""
 
-#: output.cc:3329
+#: output.cc:3907 output.cc:3975
 #, c-format
 msgid "%s: open: %s"
 msgstr ""
 
-#: output.cc:3350
+#: output.cc:3996
 #, c-format
 msgid "%s: mremap: %s"
 msgstr ""
 
-#: output.cc:3387
-#, c-format
-msgid "%s: lseek: %s"
-msgstr ""
-
-#: output.cc:3390 output.cc:3427
-#, c-format
-msgid "%s: write: %s"
-msgstr ""
-
-#: output.cc:3398
+#: output.cc:4005
 #, c-format
 msgid "%s: mmap: %s"
 msgstr ""
 
-#: output.cc:3408
+#: output.cc:4085
+#, c-format
+msgid "%s: mmap: failed to allocate %lu bytes for output file: %s"
+msgstr ""
+
+#: output.cc:4096
 #, c-format
 msgid "%s: munmap: %s"
 msgstr ""
 
-#: output.cc:3425
+#: output.cc:4115
 #, c-format
 msgid "%s: write: unexpected 0 return-value"
 msgstr ""
 
-#: output.cc:3439
+#: output.cc:4117
+#, c-format
+msgid "%s: write: %s"
+msgstr ""
+
+#: output.cc:4132
 #, c-format
 msgid "%s: close: %s"
 msgstr ""
 
-#: output.h:415
+#: output.h:520
 msgid "** section headers"
 msgstr ""
 
-#: output.h:451
+#: output.h:565
 msgid "** segment headers"
 msgstr ""
 
-#: output.h:490
+#: output.h:613
 msgid "** file header"
 msgstr ""
 
-#: output.h:696
+#: output.h:833
 msgid "** fill"
 msgstr ""
 
-#: output.h:850
+#: output.h:987
 msgid "** string table"
 msgstr ""
 
-#: output.h:1161
+#: output.h:1300
 msgid "** dynamic relocs"
 msgstr ""
 
-#: output.h:1162 output.h:1498
+#: output.h:1301 output.h:1637
 msgid "** relocs"
 msgstr ""
 
-#: output.h:1523
+#: output.h:1662
 msgid "** group"
 msgstr ""
 
-#: output.h:1630
+#: output.h:1774
 msgid "** GOT"
 msgstr ""
 
-#: output.h:1772
+#: output.h:1916
 msgid "** dynamic"
 msgstr ""
 
-#: output.h:1890
+#: output.h:2039
 msgid "** symtab xindex"
 msgstr ""
 
-#: parameters.cc:87
+#: parameters.cc:172
 #, c-format
 msgid "unrecognized output format %s"
 msgstr ""
 
-#: powerpc.cc:1086 sparc.cc:1569 x86_64.cc:957
-msgid "requires unsupported dynamic reloc; recompile with -fPIC"
+#: plugin.cc:106
+#, c-format
+msgid "%s: could not load plugin library"
 msgstr ""
 
-#: powerpc.cc:1447 sparc.cc:2237 x86_64.cc:1561
+#: plugin.cc:116
+#, c-format
+msgid "%s: could not find onload entry point"
+msgstr ""
+
+#: plugin.cc:426
+msgid ""
+"Input files added by plug-ins in --incremental mode not supported yet.\n"
+msgstr ""
+
+#: powerpc.cc:1502 sparc.cc:2307 x86_64.cc:1632
 #, c-format
 msgid "%s: unsupported REL reloc section"
 msgstr ""
 
-#: readsyms.cc:150
+#: readsyms.cc:191
 #, c-format
 msgid "%s: file is empty"
 msgstr ""
 
 #. Here we have to handle any other input file types we need.
-#: readsyms.cc:471
+#: readsyms.cc:575
 #, c-format
 msgid "%s: not an object or archive"
 msgstr ""
 
-#: reduced_debug_output.cc:240
+#: reduced_debug_output.cc:236
 msgid ""
 "Debug abbreviations extend beyond .debug_abbrev section; failed to reduce "
 "debug abbreviations"
 msgstr ""
 
-#: reduced_debug_output.cc:326
+#: reduced_debug_output.cc:322
 msgid "Extremely large compile unit in debug info; failed to reduce debug info"
 msgstr ""
 
-#: reduced_debug_output.cc:334
+#: reduced_debug_output.cc:330
 msgid ""
 "Debug info extends beyond .debug_info section;failed to reduce debug info"
 msgstr ""
 
-#: reduced_debug_output.cc:354 reduced_debug_output.cc:396
+#: reduced_debug_output.cc:350 reduced_debug_output.cc:392
 msgid "Invalid DIE in debug info; failed to reduce debug info"
 msgstr ""
 
-#: reduced_debug_output.cc:377
+#: reduced_debug_output.cc:373
 msgid ""
 "Debug info extends beyond .debug_info section; failed to reduce debug info"
 msgstr ""
 
-#: reloc.cc:239 reloc.cc:743
+#: reloc.cc:297 reloc.cc:858
 #, c-format
 msgid "relocation section %u uses unexpected symbol table %u"
 msgstr ""
 
-#: reloc.cc:254 reloc.cc:761
+#: reloc.cc:312 reloc.cc:875
 #, c-format
 msgid "unexpected entsize for reloc section %u: %lu != %u"
 msgstr ""
 
-#: reloc.cc:263 reloc.cc:770
+#: reloc.cc:321 reloc.cc:884
 #, c-format
 msgid "reloc section %u size %lu uneven"
 msgstr ""
 
-#: reloc.cc:992
+#: reloc.cc:1203
+#, c-format
+msgid "could not convert call to '%s' to '%s'"
+msgstr ""
+
+#: reloc.cc:1343
 #, c-format
 msgid "reloc section size %zu is not a multiple of reloc size %d\n"
 msgstr ""
 
 #. We should only see externally visible symbols in the symbol
 #. table.
-#: resolve.cc:170
+#: resolve.cc:191
 msgid "invalid STB_LOCAL symbol in external symbols"
 msgstr ""
 
 #. Any target which wants to handle STB_LOOS, etc., needs to
 #. define a resolve method.
-#: resolve.cc:176
+#: resolve.cc:197
 msgid "unsupported symbol binding"
 msgstr ""
 
-#. FIXME: Do a better job of reporting locations.
-#: resolve.cc:367
+#. A dynamic object cannot reference a hidden or internal symbol
+#. defined in another object.
+#: resolve.cc:266
 #, c-format
-msgid "%s: multiple definition of %s"
+msgid "%s symbol '%s' in %s is referenced by DSO %s"
 msgstr ""
 
-#: resolve.cc:368 resolve.cc:373
+#: resolve.cc:326
+#, c-format
+msgid "common of '%s' overriding smaller common"
+msgstr ""
+
+#: resolve.cc:331
+#, c-format
+msgid "common of '%s' overidden by larger common"
+msgstr ""
+
+#: resolve.cc:336
+#, c-format
+msgid "multiple common of '%s'"
+msgstr ""
+
+#: resolve.cc:442
+#, c-format
+msgid "multiple definition of '%s'"
+msgstr ""
+
+#: resolve.cc:481
+#, c-format
+msgid "definition of '%s' overriding common"
+msgstr ""
+
+#: resolve.cc:516
+#, c-format
+msgid "definition of '%s' overriding dynamic common definition"
+msgstr ""
+
+#: resolve.cc:636
+#, c-format
+msgid "common '%s' overridden by previous definition"
+msgstr ""
+
+#: resolve.cc:766 resolve.cc:778
 msgid "command line"
 msgstr ""
 
-#: resolve.cc:370
-#, c-format
-msgid "%s: previous definition here"
-msgstr ""
-
-#: script-sections.cc:432
+#: script-sections.cc:690
 msgid "dot may not move backward"
 msgstr ""
 
-#: script-sections.cc:498
+#: script-sections.cc:757
 msgid "** expression"
 msgstr ""
 
-#: script-sections.cc:684
+#: script-sections.cc:941
 msgid "fill value is not absolute"
 msgstr ""
 
-#: script-sections.cc:1693
+#: script-sections.cc:1913
 #, c-format
 msgid "alignment of section %s is not absolute"
 msgstr ""
 
-#: script-sections.cc:1737
+#: script-sections.cc:1957
 #, c-format
 msgid "subalign of section %s is not absolute"
 msgstr ""
 
-#: script-sections.cc:1752
+#: script-sections.cc:1972
 #, c-format
 msgid "fill of section %s is not absolute"
 msgstr ""
 
-#: script-sections.cc:1828
+#: script-sections.cc:2048
 msgid "SPECIAL constraints are not implemented"
 msgstr ""
 
-#: script-sections.cc:1870
+#: script-sections.cc:2090
 msgid "mismatched definition for constrained sections"
 msgstr ""
 
-#: script-sections.cc:2395
+#: script-sections.cc:2634
 msgid "DATA_SEGMENT_ALIGN may only appear once in a linker script"
 msgstr ""
 
-#: script-sections.cc:2406
+#: script-sections.cc:2649
 msgid "DATA_SEGMENT_RELRO_END may only appear once in a linker script"
 msgstr ""
 
-#: script-sections.cc:2411
+#: script-sections.cc:2654
 msgid "DATA_SEGMENT_RELRO_END must follow DATA_SEGMENT_ALIGN"
 msgstr ""
 
-#: script-sections.cc:2570
+#: script-sections.cc:2826
 msgid "no matching section constraint"
 msgstr ""
 
-#: script-sections.cc:2890
+#: script-sections.cc:3151
 msgid "TLS sections are not adjacent"
 msgstr ""
 
-#: script-sections.cc:3016
+#: script-sections.cc:3280
 msgid "allocated section not in any segment"
 msgstr ""
 
-#: script-sections.cc:3048
+#: script-sections.cc:3309
 #, c-format
 msgid "no segment %s"
 msgstr ""
 
-#: script-sections.cc:3058
+#: script-sections.cc:3323
 msgid "section in two PT_LOAD segments"
 msgstr ""
 
-#: script-sections.cc:3065
+#: script-sections.cc:3330
 msgid "allocated section not in any PT_LOAD segment"
 msgstr ""
 
-#: script-sections.cc:3093
+#: script-sections.cc:3358
 msgid "may only specify load address for PT_LOAD segment"
 msgstr ""
 
-#: script-sections.cc:3117
+#: script-sections.cc:3382
 #, c-format
 msgid "PHDRS load address overrides section %s load address"
 msgstr ""
 
 #. We could support this if we wanted to.
-#: script-sections.cc:3128
+#: script-sections.cc:3393
 msgid "using only one of FILEHDR and PHDRS is not currently supported"
 msgstr ""
 
-#: script-sections.cc:3143
+#: script-sections.cc:3408
 msgid ""
 "sections loaded on first page without room for file and program headers are "
 "not supported"
 msgstr ""
 
-#: script-sections.cc:3149
+#: script-sections.cc:3414
 msgid ""
 "using FILEHDR and PHDRS on more than one PT_LOAD segment is not currently "
 "supported"
 msgstr ""
 
-#: script.cc:1063
+#: script.cc:1072
 msgid "invalid use of PROVIDE for dot symbol"
 msgstr ""
 
-#: script.cc:1065
-msgid "invalid assignment to dot outside of SECTIONS"
-msgstr ""
-
-#: script.cc:1995
+#: script.cc:2132
 #, c-format
 msgid "%s:%d:%d: %s"
 msgstr ""
 
 #. There are some options that we could handle here--e.g.,
 #. -lLIBRARY.  Should we bother?
-#: script.cc:2143
+#: script.cc:2297
 #, c-format
 msgid ""
 "%s:%d:%d: ignoring command OPTION; OPTION is only valid for scripts "
 "specified via -T/--script"
 msgstr ""
 
-#: script.cc:2168
+#: script.cc:2362
 #, c-format
 msgid ""
 "%s:%d:%d: ignoring SEARCH_DIR; SEARCH_DIR is only valid for scripts "
 "specified via -T/--script"
 msgstr ""
 
-#: script.cc:2411 script.cc:2425
+#: script.cc:2606 script.cc:2620
 #, c-format
 msgid "%s:%d:%d: DATA_SEGMENT_ALIGN not in SECTIONS clause"
 msgstr ""
 
-#: script.cc:2543
+#: script.cc:2739
 msgid "unknown PHDR type (try integer)"
 msgstr ""
 
-#: stringpool.cc:526
+#: stringpool.cc:528
 #, c-format
 msgid "%s: %s entries: %zu; buckets: %zu\n"
 msgstr ""
 
-#: stringpool.cc:530
+#: stringpool.cc:532
 #, c-format
 msgid "%s: %s entries: %zu\n"
 msgstr ""
 
-#: stringpool.cc:533
+#: stringpool.cc:535
 #, c-format
 msgid "%s: %s Stringdata structures: %zu\n"
 msgstr ""
 
-#: symtab.cc:623
+#: symtab.cc:857
 #, c-format
 msgid "%s: reference to %s"
 msgstr ""
 
-#: symtab.cc:625
+#: symtab.cc:859
 #, c-format
 msgid "%s: definition of %s"
 msgstr ""
 
-#: symtab.cc:860
+#: symtab.cc:1052
 #, c-format
 msgid "bad global symbol name offset %u at %zu"
 msgstr ""
 
-#: symtab.cc:999
+#: symtab.cc:1278
 msgid "--just-symbols does not make sense with a shared object"
 msgstr ""
 
-#: symtab.cc:1005
+#: symtab.cc:1284
 msgid "too few symbol versions"
 msgstr ""
 
-#: symtab.cc:1054
+#: symtab.cc:1333
 #, c-format
 msgid "bad symbol name offset %u at %zu"
 msgstr ""
 
-#: symtab.cc:1117
+#: symtab.cc:1396
 #, c-format
 msgid "versym for symbol %zu out of range: %u"
 msgstr ""
 
-#: symtab.cc:1125
+#: symtab.cc:1404
 #, c-format
 msgid "versym for symbol %zu has no name: %u"
 msgstr ""
 
-#: symtab.cc:2035 symtab.cc:2251
+#: symtab.cc:2549 symtab.cc:2681
 #, c-format
 msgid "%s: unsupported symbol section 0x%x"
 msgstr ""
 
-#: symtab.cc:2409
-#, c-format
-msgid "%s: undefined reference to '%s', version '%s'"
-msgstr ""
-
-#: symtab.cc:2414
-#, c-format
-msgid "%s: undefined reference to '%s'"
-msgstr ""
-
-#: symtab.cc:2498
+#: symtab.cc:2933
 #, c-format
 msgid "%s: symbol table entries: %zu; buckets: %zu\n"
 msgstr ""
 
-#: symtab.cc:2501
+#: symtab.cc:2936
 #, c-format
 msgid "%s: symbol table entries: %zu\n"
 msgstr ""
 
-#: symtab.cc:2572
+#: symtab.cc:3007
 #, c-format
 msgid ""
 "while linking %s: symbol '%s' defined in multiple places (possible ODR "
 "violation):"
 msgstr ""
 
-#: target-reloc.h:247
-msgid "Relocation refers to discarded comdat section"
+#: target-reloc.h:259
+msgid "relocation refers to discarded comdat section"
 msgstr ""
 
-#: target-reloc.h:278
+#: target-reloc.h:298
 #, c-format
 msgid "reloc has bad offset %zu"
 msgstr ""
 
+#: target.cc:90
+#, c-format
+msgid "%s: unsupported ELF file type %d"
+msgstr ""
+
+#: target.cc:157
+#, c-format
+msgid "linker does not include stack split support required by %s"
+msgstr ""
+
 #: tls.h:59
 msgid "TLS relocation out of range"
 msgstr ""
@@ -1836,12 +2233,12 @@
 msgstr ""
 
 #. This output is intended to follow the GNU standards.
-#: version.cc:64
+#: version.cc:65
 #, c-format
 msgid "Copyright 2008 Free Software Foundation, Inc.\n"
 msgstr ""
 
-#: version.cc:65
+#: version.cc:66
 #, c-format
 msgid ""
 "This program is free software; you may redistribute it under the terms of\n"
@@ -1855,12 +2252,12 @@
 msgid "%s failed: %s"
 msgstr ""
 
-#: x86_64.cc:2104
+#: x86_64.cc:2184
 #, c-format
 msgid "unsupported reloc type %u"
 msgstr ""
 
-#: x86_64.cc:2441
+#: x86_64.cc:2524
 #, c-format
 msgid "unsupported reloc %u against local symbol"
 msgstr ""
diff --git a/binutils/gold/powerpc.cc b/binutils/gold/powerpc.cc
index 71f2ae4..9aacbf3 100644
--- a/binutils/gold/powerpc.cc
+++ b/binutils/gold/powerpc.cc
@@ -713,7 +713,7 @@
 
       layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 				      elfcpp::SHF_ALLOC | elfcpp::SHF_WRITE,
-				      this->got_);
+				      this->got_, false);
 
       // Create the GOT2 or TOC in the .got section.
       if (size == 32)
@@ -722,7 +722,7 @@
 	  layout->add_output_section_data(".got2", elfcpp::SHT_PROGBITS,
 					  elfcpp::SHF_ALLOC
 					  | elfcpp::SHF_WRITE,
-					  this->got2_);
+					  this->got2_, false);
 	}
       else
 	{
@@ -730,7 +730,7 @@
 	  layout->add_output_section_data(".toc", elfcpp::SHT_PROGBITS,
 					  elfcpp::SHF_ALLOC
 					  | elfcpp::SHF_WRITE,
-					  this->toc_);
+					  this->toc_, false);
 	}
 
       // Define _GLOBAL_OFFSET_TABLE_ at the start of the .got section.
@@ -756,7 +756,7 @@
       gold_assert(layout != NULL);
       this->rela_dyn_ = new Reloc_section(parameters->options().combreloc());
       layout->add_output_section_data(".rela.dyn", elfcpp::SHT_RELA,
-				      elfcpp::SHF_ALLOC, this->rela_dyn_);
+				      elfcpp::SHF_ALLOC, this->rela_dyn_, true);
     }
   return this->rela_dyn_;
 }
@@ -816,7 +816,7 @@
 {
   this->rel_ = new Reloc_section(false);
   layout->add_output_section_data(".rela.plt", elfcpp::SHT_RELA,
-				  elfcpp::SHF_ALLOC, this->rel_);
+				  elfcpp::SHF_ALLOC, this->rel_, true);
 }
 
 template<int size, bool big_endian>
@@ -945,7 +945,7 @@
 				      (elfcpp::SHF_ALLOC
 				       | elfcpp::SHF_EXECINSTR
 				       | elfcpp::SHF_WRITE),
-				      this->plt_);
+				      this->plt_, false);
 
       // Define _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt section.
       symtab->define_in_output_data("_PROCEDURE_LINKAGE_TABLE_", NULL,
@@ -1512,7 +1512,7 @@
     Output_section* os = layout->add_output_section_data(".sdata", 0,
 							 elfcpp::SHF_ALLOC
 							 | elfcpp::SHF_WRITE,
-							 sdata);
+							 sdata, false);
     symtab->define_in_output_data("_SDA_BASE_", NULL,
 				  os,
 				  32768, 0,
@@ -1547,7 +1547,8 @@
   Output_data_dynamic* const odyn = layout->dynamic_data();
   if (odyn != NULL)
     {
-      if (this->plt_ != NULL)
+      if (this->plt_ != NULL
+	  && this->plt_->output_section() != NULL)
 	{
 	  const Output_data* od = this->plt_->rel_plt();
 	  odyn->add_section_size(elfcpp::DT_PLTRELSZ, od);
@@ -1557,7 +1558,8 @@
 	  odyn->add_section_address(elfcpp::DT_PLTGOT, this->plt_);
 	}
 
-      if (this->rela_dyn_ != NULL)
+      if (this->rela_dyn_ != NULL
+	  && this->rela_dyn_->output_section() != NULL)
 	{
 	  const Output_data* od = this->rela_dyn_;
 	  odyn->add_section_address(elfcpp::DT_RELA, od);
diff --git a/binutils/gold/resolve.cc b/binutils/gold/resolve.cc
index 82af9b4..2f0479a 100644
--- a/binutils/gold/resolve.cc
+++ b/binutils/gold/resolve.cc
@@ -302,25 +302,41 @@
                                          sym.get_st_type());
 
   bool adjust_common_sizes;
+  typename Sized_symbol<size>::Size_type tosize = to->symsize();
   if (Symbol_table::should_override(to, frombits, object,
 				    &adjust_common_sizes))
     {
-      typename Sized_symbol<size>::Size_type tosize = to->symsize();
-
       this->override(to, sym, st_shndx, is_ordinary, object, version);
-
       if (adjust_common_sizes && tosize > to->symsize())
         to->set_symsize(tosize);
     }
   else
     {
-      if (adjust_common_sizes && sym.get_st_size() > to->symsize())
+      if (adjust_common_sizes && sym.get_st_size() > tosize)
         to->set_symsize(sym.get_st_size());
       // The ELF ABI says that even for a reference to a symbol we
       // merge the visibility.
       to->override_visibility(sym.get_st_visibility());
     }
 
+  if (adjust_common_sizes && parameters->options().warn_common())
+    {
+      if (tosize > sym.get_st_size())
+	Symbol_table::report_resolve_problem(false,
+					     _("common of '%s' overriding "
+					       "smaller common"),
+					     to, object);
+      else if (tosize < sym.get_st_size())
+	Symbol_table::report_resolve_problem(false,
+					     _("common of '%s' overidden by "
+					       "larger common"),
+					     to, object);
+      else
+	Symbol_table::report_resolve_problem(false,
+					     _("multiple common of '%s'"),
+					     to, object);
+    }
+
   // A new weak undefined reference, merging with an old weak
   // reference, could be a One Definition Rule (ODR) violation --
   // especially if the types or sizes of the references differ.  We'll
@@ -422,14 +438,9 @@
           || object->just_symbols())
         return false;
 
-      // FIXME: Do a better job of reporting locations.
-      gold_error(_("%s: multiple definition of %s"),
-		 object != NULL ? object->name().c_str() : _("command line"),
-		 to->demangled_name().c_str());
-      gold_error(_("%s: previous definition here"),
-		 (to->source() == Symbol::FROM_OBJECT
-		  ? to->object()->name().c_str()
-		  : _("command line")));
+      Symbol_table::report_resolve_problem(true,
+					   _("multiple definition of '%s'"),
+					   to, object);
       return false;
 
     case WEAK_DEF * 16 + DEF:
@@ -464,8 +475,12 @@
     case DYN_COMMON * 16 + DEF:
     case DYN_WEAK_COMMON * 16 + DEF:
       // We've seen a common symbol and now we see a definition.  The
-      // definition overrides.  FIXME: We should optionally issue, version a
-      // warning.
+      // definition overrides.
+      if (parameters->options().warn_common())
+	Symbol_table::report_resolve_problem(false,
+					     _("definition of '%s' overriding "
+					       "common"),
+					     to, object);
       return true;
 
     case DEF * 16 + WEAK_DEF:
@@ -495,7 +510,12 @@
     case DYN_COMMON * 16 + WEAK_DEF:
     case DYN_WEAK_COMMON * 16 + WEAK_DEF:
       // A weak definition does override a definition in a dynamic
-      // object.  FIXME: We should optionally issue a warning.
+      // object.
+      if (parameters->options().warn_common())
+	Symbol_table::report_resolve_problem(false,
+					     _("definition of '%s' overriding "
+					       "dynamic common definition"),
+					     to, object);
       return true;
 
     case DEF * 16 + DYN_DEF:
@@ -611,6 +631,11 @@
 
     case DEF * 16 + COMMON:
       // A common symbol does not override a definition.
+      if (parameters->options().warn_common())
+	Symbol_table::report_resolve_problem(false,
+					     _("common '%s' overridden by "
+					       "previous definition"),
+					     to, object);
       return false;
 
     case WEAK_DEF * 16 + COMMON:
@@ -716,6 +741,44 @@
     }
 }
 
+// Issue an error or warning due to symbol resolution.  IS_ERROR
+// indicates an error rather than a warning.  MSG is the error
+// message; it is expected to have a %s for the symbol name.  TO is
+// the existing symbol.  OBJECT is where the new symbol was found.
+
+// FIXME: We should have better location information here.  When the
+// symbol is defined, we should be able to pull the location from the
+// debug info if there is any.
+
+void
+Symbol_table::report_resolve_problem(bool is_error, const char* msg,
+				     const Symbol* to, Object* object)
+{
+  std::string demangled(to->demangled_name());
+  size_t len = strlen(msg) + demangled.length() + 10;
+  char* buf = new char[len];
+  snprintf(buf, len, msg, demangled.c_str());
+
+  const char* objname;
+  if (object != NULL)
+    objname = object->name().c_str();
+  else
+    objname = _("command line");
+
+  if (is_error)
+    gold_error("%s: %s", objname, buf);
+  else
+    gold_warning("%s: %s", objname, buf);
+
+  delete[] buf;
+
+  if (to->source() == Symbol::FROM_OBJECT)
+    objname = to->object()->name().c_str();
+  else
+    objname = _("command line");
+  gold_info("%s: %s: previous definition here", program_name, objname);
+}
+
 // A special case of should_override which is only called for a strong
 // defined symbol from a regular object file.  This is used when
 // defining special symbols.
diff --git a/binutils/gold/script-sections.cc b/binutils/gold/script-sections.cc
index a541e9a..5825107 100644
--- a/binutils/gold/script-sections.cc
+++ b/binutils/gold/script-sections.cc
@@ -3051,7 +3051,7 @@
 	  is_current_seg_readonly = true;
 	}
 
-      current_seg->add_output_section(*p, seg_flags);
+      current_seg->add_output_section(*p, seg_flags, false);
 
       if (((*p)->flags() & elfcpp::SHF_WRITE) != 0)
 	is_current_seg_readonly = false;
@@ -3130,7 +3130,7 @@
 	    Layout::section_flags_to_segment((*p)->flags());
 	  Output_segment* oseg = layout->make_output_segment(elfcpp::PT_NOTE,
 							     seg_flags);
-	  oseg->add_output_section(*p, seg_flags);
+	  oseg->add_output_section(*p, seg_flags, false);
 
 	  // Incorporate any subsequent SHT_NOTE sections, in the
 	  // hopes that the script is sensible.
@@ -3139,7 +3139,7 @@
 		 && (*pnext)->type() == elfcpp::SHT_NOTE)
 	    {
 	      seg_flags = Layout::section_flags_to_segment((*pnext)->flags());
-	      oseg->add_output_section(*pnext, seg_flags);
+	      oseg->add_output_section(*pnext, seg_flags, false);
 	      p = pnext;
 	      ++pnext;
 	    }
@@ -3154,14 +3154,14 @@
 	    Layout::section_flags_to_segment((*p)->flags());
 	  Output_segment* oseg = layout->make_output_segment(elfcpp::PT_TLS,
 							     seg_flags);
-	  oseg->add_output_section(*p, seg_flags);
+	  oseg->add_output_section(*p, seg_flags, false);
 
 	  Layout::Section_list::const_iterator pnext = p + 1;
 	  while (pnext != sections->end()
 		 && ((*pnext)->flags() & elfcpp::SHF_TLS) != 0)
 	    {
 	      seg_flags = Layout::section_flags_to_segment((*pnext)->flags());
-	      oseg->add_output_section(*pnext, seg_flags);
+	      oseg->add_output_section(*pnext, seg_flags, false);
 	      p = pnext;
 	      ++pnext;
 	    }
@@ -3315,7 +3315,7 @@
 
 	      elfcpp::Elf_Word seg_flags =
 		Layout::section_flags_to_segment(os->flags());
-	      r->second->add_output_section(os, seg_flags);
+	      r->second->add_output_section(os, seg_flags, false);
 
 	      if (r->second->type() == elfcpp::PT_LOAD)
 		{
diff --git a/binutils/gold/sparc.cc b/binutils/gold/sparc.cc
index eac983f..55a04d9 100644
--- a/binutils/gold/sparc.cc
+++ b/binutils/gold/sparc.cc
@@ -1027,7 +1027,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_);
+					   this->got_, false);
       os->set_is_relro();
 
       // Define _GLOBAL_OFFSET_TABLE_ at the start of the .got section.
@@ -1053,7 +1053,7 @@
       gold_assert(layout != NULL);
       this->rela_dyn_ = new Reloc_section(parameters->options().combreloc());
       layout->add_output_section_data(".rela.dyn", elfcpp::SHT_RELA,
-				      elfcpp::SHF_ALLOC, this->rela_dyn_);
+				      elfcpp::SHF_ALLOC, this->rela_dyn_, true);
     }
   return this->rela_dyn_;
 }
@@ -1155,7 +1155,7 @@
 {
   this->rel_ = new Reloc_section(false);
   layout->add_output_section_data(".rela.plt", elfcpp::SHT_RELA,
-				  elfcpp::SHF_ALLOC, this->rel_);
+				  elfcpp::SHF_ALLOC, this->rel_, true);
 }
 
 template<int size, bool big_endian>
@@ -1372,7 +1372,7 @@
 				      (elfcpp::SHF_ALLOC
 				       | elfcpp::SHF_EXECINSTR
 				       | elfcpp::SHF_WRITE),
-				      this->plt_);
+				      this->plt_, false);
 
       // Define _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt section.
       symtab->define_in_output_data("_PROCEDURE_LINKAGE_TABLE_", NULL,
@@ -2334,7 +2334,8 @@
   Output_data_dynamic* const odyn = layout->dynamic_data();
   if (odyn != NULL)
     {
-      if (this->plt_ != NULL)
+      if (this->plt_ != NULL
+	  && this->plt_->output_section() != NULL)
 	{
 	  const Output_data* od = this->plt_->rel_plt();
 	  odyn->add_section_size(elfcpp::DT_PLTRELSZ, od);
@@ -2344,7 +2345,8 @@
 	  odyn->add_section_address(elfcpp::DT_PLTGOT, this->plt_);
 	}
 
-      if (this->rela_dyn_ != NULL)
+      if (this->rela_dyn_ != NULL
+	  && this->rela_dyn_->output_section() != NULL)
 	{
 	  const Output_data* od = this->rela_dyn_;
 	  odyn->add_section_address(elfcpp::DT_RELA, od);
diff --git a/binutils/gold/symtab.cc b/binutils/gold/symtab.cc
index 5dbab35..45c07c9 100644
--- a/binutils/gold/symtab.cc
+++ b/binutils/gold/symtab.cc
@@ -2242,6 +2242,12 @@
 	  // Record any version information.
           if (sym->version() != NULL)
             versions->record_version(this, dynpool, sym);
+
+	  // If the symbol is defined in a dynamic object and is
+	  // referenced in a regular object, then mark the dynamic
+	  // object as needed.  This is used to implement --as-needed.
+	  if (sym->is_from_dynobj() && sym->in_reg())
+	    sym->object()->set_is_needed();
 	}
     }
 
diff --git a/binutils/gold/symtab.h b/binutils/gold/symtab.h
index d1cd647..544712d 100644
--- a/binutils/gold/symtab.h
+++ b/binutils/gold/symtab.h
@@ -1488,6 +1488,11 @@
   static bool
   should_override(const Symbol*, unsigned int, Object*, bool*);
 
+  // Report a problem in symbol resolution.
+  static void
+  report_resolve_problem(bool is_error, const char* msg, const Symbol* to,
+			 Object* object);
+
   // Override a symbol.
   template<int size, bool big_endian>
   void
diff --git a/binutils/gold/testsuite/Makefile.in b/binutils/gold/testsuite/Makefile.in
index 3f5459f..07cb97b 100644
--- a/binutils/gold/testsuite/Makefile.in
+++ b/binutils/gold/testsuite/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
diff --git a/binutils/gold/x86_64.cc b/binutils/gold/x86_64.cc
index 3562065..c6b5f94 100644
--- a/binutils/gold/x86_64.cc
+++ b/binutils/gold/x86_64.cc
@@ -472,7 +472,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_);
+					   this->got_, false);
       os->set_is_relro();
 
       // The old GNU linker creates a .got.plt section.  We just
@@ -483,7 +483,7 @@
       os = layout->add_output_section_data(".got", elfcpp::SHT_PROGBITS,
 					   (elfcpp::SHF_ALLOC
 					    | elfcpp::SHF_WRITE),
-					   this->got_plt_);
+					   this->got_plt_, false);
       os->set_is_relro();
 
       // The first three entries are reserved.
@@ -511,7 +511,7 @@
       gold_assert(layout != NULL);
       this->rela_dyn_ = new Reloc_section(parameters->options().combreloc());
       layout->add_output_section_data(".rela.dyn", elfcpp::SHT_RELA,
-				      elfcpp::SHF_ALLOC, this->rela_dyn_);
+				      elfcpp::SHF_ALLOC, this->rela_dyn_, true);
     }
   return this->rela_dyn_;
 }
@@ -611,7 +611,7 @@
 {
   this->rel_ = new Reloc_section(false);
   layout->add_output_section_data(".rela.plt", elfcpp::SHT_RELA,
-				  elfcpp::SHF_ALLOC, this->rel_);
+				  elfcpp::SHF_ALLOC, this->rel_, true);
 }
 
 void
@@ -807,7 +807,7 @@
       layout->add_output_section_data(".plt", elfcpp::SHT_PROGBITS,
 				      (elfcpp::SHF_ALLOC
 				       | elfcpp::SHF_EXECINSTR),
-				      this->plt_);
+				      this->plt_, false);
     }
 }
 
@@ -1659,10 +1659,12 @@
   Output_data_dynamic* const odyn = layout->dynamic_data();
   if (odyn != NULL)
     {
-      if (this->got_plt_ != NULL)
+      if (this->got_plt_ != NULL
+	  && this->got_plt_->output_section() != NULL)
 	odyn->add_section_address(elfcpp::DT_PLTGOT, this->got_plt_);
 
-      if (this->plt_ != NULL)
+      if (this->plt_ != NULL
+	  && this->plt_->output_section() != NULL)
 	{
 	  const Output_data* od = this->plt_->rel_plt();
 	  odyn->add_section_size(elfcpp::DT_PLTRELSZ, od);
@@ -1680,7 +1682,8 @@
 	    }
 	}
 
-      if (this->rela_dyn_ != NULL)
+      if (this->rela_dyn_ != NULL
+	  && this->rela_dyn_->output_section() != NULL)
 	{
 	  const Output_data* od = this->rela_dyn_;
 	  odyn->add_section_address(elfcpp::DT_RELA, od);
diff --git a/binutils/gprof/Makefile.in b/binutils/gprof/Makefile.in
index c67e913..b6ce3ea 100644
--- a/binutils/gprof/Makefile.in
+++ b/binutils/gprof/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -667,7 +667,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -692,7 +692,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
diff --git a/binutils/gprof/aclocal.m4 b/binutils/gprof/aclocal.m4
index 791dad0..7ba06ce 100644
--- a/binutils/gprof/aclocal.m4
+++ b/binutils/gprof/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/gprof/po/gprof.pot b/binutils/gprof/po/gprof.pot
index 68a77a1..ba9a475 100644
--- a/binutils/gprof/po/gprof.pot
+++ b/binutils/gprof/po/gprof.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:10+0200\n"
+"POT-Creation-Date: 2010-03-03 15:06+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -245,12 +245,12 @@
 msgid "%s: -c not supported on architecture %s\n"
 msgstr ""
 
-#: corefile.c:505 corefile.c:588
+#: corefile.c:505 corefile.c:590
 #, c-format
 msgid "%s: file `%s' has no symbols\n"
 msgstr ""
 
-#: corefile.c:848
+#: corefile.c:851
 #, c-format
 msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
 msgstr ""
diff --git a/binutils/include/ChangeLog b/binutils/include/ChangeLog
index 9e6fb59..244610a 100644
--- a/binutils/include/ChangeLog
+++ b/binutils/include/ChangeLog
@@ -1,3 +1,13 @@
+2009-10-09  Rafael Espindola  <espindola@google.com>
+
+	* plugin-api.h (ld_plugin_add_input_library): Change argument name to
+	libname.
+
+2008-10-03  Rafael Espindola  <espindola@google.com>
+
+	* plugin-api.h: New.
+	* lto-symtab.h: New.
+
 2009-09-09  Martin Thuresson  <martin@mtme.org>
 
 	* bfdlink.h (struct bfd_link_hash_common_entry): Move to top
diff --git a/binutils/include/elf/ChangeLog b/binutils/include/elf/ChangeLog
index a33fb84..12c90e9 100644
--- a/binutils/include/elf/ChangeLog
+++ b/binutils/include/elf/ChangeLog
@@ -1,3 +1,9 @@
+2009-12-17  Alan Modra  <amodra@bigpond.net.au>
+
+	* ppc.h (R_PPC_RELAX32, R_PPC_RELAX32PC, R_PPC_RELAX32_PLT,
+	R_PPC_RELAX32PC_PLT): Delete.
+	(R_PPC_RELAX, R_PPC_RELAX_PLT, R_PPC_RELAX_PLTREL24): Define.
+
 2009-09-21  Alan Modra  <amodra@bigpond.net.au>
 
 	* ppc.h (DT_PPC_TLSOPT): Define.
diff --git a/binutils/include/elf/ppc.h b/binutils/include/elf/ppc.h
index e2de0ad..a77c833 100644
--- a/binutils/include/elf/ppc.h
+++ b/binutils/include/elf/ppc.h
@@ -73,10 +73,9 @@
 
 #ifndef RELOC_MACROS_GEN_FUNC
 /* Fake relocations for branch stubs, only used internally by ld.  */
-  RELOC_NUMBER (R_PPC_RELAX32,		 48)
-  RELOC_NUMBER (R_PPC_RELAX32PC,	 49)
-  RELOC_NUMBER (R_PPC_RELAX32_PLT,	 50)
-  RELOC_NUMBER (R_PPC_RELAX32PC_PLT,	 51)
+  RELOC_NUMBER (R_PPC_RELAX,		 48)
+  RELOC_NUMBER (R_PPC_RELAX_PLT,	 49)
+  RELOC_NUMBER (R_PPC_RELAX_PLTREL24,	 50)
 #endif
 
   /* Relocs added to support TLS.  */
diff --git a/binutils/include/plugin-api.h b/binutils/include/plugin-api.h
index f536d57..a026e7a 100644
--- a/binutils/include/plugin-api.h
+++ b/binutils/include/plugin-api.h
@@ -1,6 +1,6 @@
 /* plugin-api.h -- External linker plugin API.  */
 
-/* Copyright 2008 Free Software Foundation, Inc.
+/* Copyright 2009 Free Software Foundation, Inc.
    Written by Cary Coutant <ccoutant@google.com>.
 
    This file is part of binutils.
@@ -111,13 +111,34 @@
 enum ld_plugin_symbol_resolution
 {
   LDPR_UNKNOWN = 0,
+
+  /* Symbol is still undefined at this point.  */
   LDPR_UNDEF,
+
+  /* This is the prevailing definition of the symbol, with references from
+     regular object code.  */
   LDPR_PREVAILING_DEF,
+
+  /* This is the prevailing definition of the symbol, with no
+     references from regular objects.  It is only referenced from IR
+     code.  */
   LDPR_PREVAILING_DEF_IRONLY,
+
+  /* This definition was pre-empted by a definition in a regular
+     object file.  */
   LDPR_PREEMPTED_REG,
+
+  /* This definition was pre-empted by a definition in another IR file.  */
   LDPR_PREEMPTED_IR,
+
+  /* This symbol was resolved by a definition in another IR file.  */
   LDPR_RESOLVED_IR,
+
+  /* This symbol was resolved by a definition in a regular object
+     linked into the main executable.  */
   LDPR_RESOLVED_EXEC,
+
+  /* This symbol was resolved by a definition in a shared object.  */
   LDPR_RESOLVED_DYN
 };
 
@@ -193,6 +214,12 @@
 enum ld_plugin_status
 (*ld_plugin_add_input_file) (char *pathname);
 
+/* The linker's interface for adding a library that should be searched.  */
+
+typedef
+enum ld_plugin_status
+(*ld_plugin_add_input_library) (char *libname);
+
 /* The linker's interface for issuing a warning or error message.  */
 
 typedef
@@ -224,7 +251,8 @@
   LDPT_ADD_INPUT_FILE,
   LDPT_MESSAGE,
   LDPT_GET_INPUT_FILE,
-  LDPT_RELEASE_INPUT_FILE
+  LDPT_RELEASE_INPUT_FILE,
+  LDPT_ADD_INPUT_LIBRARY
 };
 
 /* The plugin transfer vector.  */
@@ -245,6 +273,7 @@
     ld_plugin_message tv_message;
     ld_plugin_get_input_file tv_get_input_file;
     ld_plugin_release_input_file tv_release_input_file;
+    ld_plugin_add_input_library tv_add_input_library;
   } tv_u;
 };
 
diff --git a/binutils/ld/ChangeLog b/binutils/ld/ChangeLog
index 31c0348..949be72 100644
--- a/binutils/ld/ChangeLog
+++ b/binutils/ld/ChangeLog
@@ -1,3 +1,33 @@
+2010-02-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* Makefile.am (CFILES): Add ldlex-wrapper.c.
+	(OFILES): Replace ldlex.c with ldlex-wrapper.c.
+	(ldlex.o): Replace with...
+	(ldlex-wrapper.o): ...this new rule.
+	(EXTRA_ld_new_SOURCES): Add ldlex.l.
+	(ld_new_SOURCES): Replace ldlex.l with ldlex-wrapper.c.
+	* Makefile.in: Regenerate.
+	* ldlex.l (sysdep.h): Don't include here.
+	* ldlex-wrapper.c: New file.
+
+2010-01-08  Alan Modra  <amodra@gmail.com>
+
+	PR 11107
+	* emultempl/vxworks.em: Expand tr arguments to suit non-GNU tr.
+
+2009-12-17  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+	* pe-dll.c (generate_reloc): Take account of wrapper options when
+	testing if a weak symbol is defined or not, and when it is not,
+	consider whether the default value requires a base reloc anyway.
+
+2009-12-09  Alan Modra  <amodra@bigpond.net.au>
+
+	PR ld/11012
+	* emulparams/elf64ppc.sh (OTHER_GOT_RELOC_SECTIONS): Move .rela.opd ..
+	(INITIAL_RELOC_SECTIONS): .. to here.  New define.
+	* scripttempl/elf.sc: Expand INITIAL_RELOC_SECTIONS.
+
 2009-10-14  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* ldlex.l (yy_input): Remove second argument and return the value
diff --git a/binutils/ld/Makefile.am b/binutils/ld/Makefile.am
index 7c4444b..d8bd1f9 100644
--- a/binutils/ld/Makefile.am
+++ b/binutils/ld/Makefile.am
@@ -446,7 +446,7 @@
 
 CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
 	ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
-	mri.c ldcref.c pe-dll.c pep-dll.c
+	mri.c ldcref.c pe-dll.c pep-dll.c ldlex-wrapper.c
 
 HFILES = ld.h ldctor.h ldemul.h ldexp.h ldfile.h \
 	ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h \
@@ -459,7 +459,7 @@
 # tracking will not cause them to be built beforehand.
 BUILT_SOURCES = $(GENERATED_HFILES)
 
-OFILES = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \
+OFILES = ldgram.o ldlex-wrapper.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \
 	ldwrite.o ldexp.o  ldemul.o ldver.o ldmisc.o \
 	ldfile.o ldcref.o ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES}
 
@@ -479,16 +479,16 @@
 	$(COMPILE) -c `test -f ldgram.c || echo $(srcdir)/`ldgram.c $(NO_WERROR)
 endif
 
-ldlex.o: ldlex.c
+ldlex-wrapper.o: ldlex-wrapper.c ldlex.c
 if am__fastdepCC
-	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f ldlex.c || echo $(srcdir)/`ldlex.c $(NO_WERROR)
+	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $(srcdir)/ldlex-wrapper.c $(NO_WERROR)
 	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 else
 if AMDEP
-	source='ldlex.c' object='$@' libtool=no @AMDEPBACKSLASH@
+	source='ldlex-wrapper.c' object='$@' libtool=no @AMDEPBACKSLASH@
 	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 endif
-	$(COMPILE) -c `test -f ldlex.c || echo $(srcdir)/`ldlex.c $(NO_WERROR)
+	$(COMPILE) -c $(srcdir)/ldlex-wrapper.c $(NO_WERROR)
 endif
 
 deffilep.o: deffilep.c
@@ -1833,11 +1833,11 @@
 	${GENSCRIPTS} z8002 "$(tdir_z8002)"
 
 # We need this for automake to use YLWRAP.
-EXTRA_ld_new_SOURCES = deffilep.y
+EXTRA_ld_new_SOURCES = deffilep.y ldlex.l
 # Allow dependency tracking to work for these files, too.
 EXTRA_ld_new_SOURCES += pep-dll.c pe-dll.c
 
-ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \
+ld_new_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c ldmain.c \
 	ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c
 ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP)
 ld_new_LDADD = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL)
diff --git a/binutils/ld/Makefile.in b/binutils/ld/Makefile.in
index 8aabafb..3a8b4f5 100644
--- a/binutils/ld/Makefile.in
+++ b/binutils/ld/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -45,7 +45,7 @@
 	$(srcdir)/Makefile.am $(top_srcdir)/configure \
 	$(am__configure_deps) $(srcdir)/config.in \
 	$(srcdir)/../mkinstalldirs $(top_srcdir)/po/Make-in ldgram.h \
-	ldgram.c ldlex.c deffilep.h deffilep.c $(srcdir)/../depcomp \
+	ldgram.c deffilep.h deffilep.c ldlex.c $(srcdir)/../depcomp \
 	$(srcdir)/../ylwrap $(ld_TEXINFOS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../bfd/acinclude.m4 \
@@ -71,11 +71,11 @@
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(infodir)" \
 	"$(DESTDIR)$(man1dir)"
 PROGRAMS = $(bin_PROGRAMS)
-am_ld_new_OBJECTS = ldgram.$(OBJEXT) ldlex.$(OBJEXT) lexsup.$(OBJEXT) \
-	ldlang.$(OBJEXT) mri.$(OBJEXT) ldctor.$(OBJEXT) \
-	ldmain.$(OBJEXT) ldwrite.$(OBJEXT) ldexp.$(OBJEXT) \
-	ldemul.$(OBJEXT) ldver.$(OBJEXT) ldmisc.$(OBJEXT) \
-	ldfile.$(OBJEXT) ldcref.$(OBJEXT)
+am_ld_new_OBJECTS = ldgram.$(OBJEXT) ldlex-wrapper.$(OBJEXT) \
+	lexsup.$(OBJEXT) ldlang.$(OBJEXT) mri.$(OBJEXT) \
+	ldctor.$(OBJEXT) ldmain.$(OBJEXT) ldwrite.$(OBJEXT) \
+	ldexp.$(OBJEXT) ldemul.$(OBJEXT) ldver.$(OBJEXT) \
+	ldmisc.$(OBJEXT) ldfile.$(OBJEXT) ldcref.$(OBJEXT)
 ld_new_OBJECTS = $(am_ld_new_OBJECTS)
 am__DEPENDENCIES_1 =
 DEFAULT_INCLUDES = -I.@am__isrc@
@@ -732,7 +732,7 @@
 
 CFILES = ldctor.c ldemul.c ldexp.c ldfile.c ldlang.c \
 	ldmain.c ldmisc.c ldver.c ldwrite.c lexsup.c \
-	mri.c ldcref.c pe-dll.c pep-dll.c
+	mri.c ldcref.c pe-dll.c pep-dll.c ldlex-wrapper.c
 
 HFILES = ld.h ldctor.h ldemul.h ldexp.h ldfile.h \
 	ldlang.h ldlex.h ldmain.h ldmisc.h ldver.h \
@@ -744,7 +744,7 @@
 # Require an early dependency on the generated headers, as the dependency
 # tracking will not cause them to be built beforehand.
 BUILT_SOURCES = $(GENERATED_HFILES)
-OFILES = ldgram.o ldlex.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \
+OFILES = ldgram.o ldlex-wrapper.o lexsup.o ldlang.o mri.o ldctor.o ldmain.o \
 	ldwrite.o ldexp.o  ldemul.o ldver.o ldmisc.o \
 	ldfile.o ldcref.o ${EMULATION_OFILES} ${EMUL_EXTRA_OFILES}
 
@@ -765,9 +765,9 @@
 # Allow dependency tracking to work for these files, too.
 
 # Dependency tracking for the generated emulation files.
-EXTRA_ld_new_SOURCES = deffilep.y pep-dll.c pe-dll.c \
+EXTRA_ld_new_SOURCES = deffilep.y ldlex.l pep-dll.c pe-dll.c \
 	$(ALL_EMULATIONS:.o=.c) $(ALL_64_EMULATIONS:.o=.c)
-ld_new_SOURCES = ldgram.y ldlex.l lexsup.c ldlang.c mri.c ldctor.c ldmain.c \
+ld_new_SOURCES = ldgram.y ldlex-wrapper.c lexsup.c ldlang.c mri.c ldctor.c ldmain.c \
 	ldwrite.c ldexp.c ldemul.c ldver.c ldmisc.c ldfile.c ldcref.c
 
 ld_new_DEPENDENCIES = $(EMULATION_OFILES) $(EMUL_EXTRA_OFILES) $(BFDLIB) $(LIBIBERTY) $(LIBINTL_DEP)
@@ -1240,6 +1240,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldfile.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldgram.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldlang.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldlex-wrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldlex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldmain.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ldmisc.Po@am__quote@
@@ -1469,7 +1470,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -1494,7 +1495,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -1858,12 +1859,12 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `test -f ldgram.c || echo $(srcdir)/`ldgram.c $(NO_WERROR)
 
-ldlex.o: ldlex.c
-@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f ldlex.c || echo $(srcdir)/`ldlex.c $(NO_WERROR)
+ldlex-wrapper.o: ldlex-wrapper.c ldlex.c
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $(srcdir)/ldlex-wrapper.c $(NO_WERROR)
 @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ldlex.c' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='ldlex-wrapper.c' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(COMPILE) -c `test -f ldlex.c || echo $(srcdir)/`ldlex.c $(NO_WERROR)
+@am__fastdepCC_FALSE@	$(COMPILE) -c $(srcdir)/ldlex-wrapper.c $(NO_WERROR)
 
 deffilep.o: deffilep.c
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `test -f deffilep.c || echo $(srcdir)/`deffilep.c $(NO_WERROR)
diff --git a/binutils/ld/aclocal.m4 b/binutils/ld/aclocal.m4
index dac3fdc..3845ecd 100644
--- a/binutils/ld/aclocal.m4
+++ b/binutils/ld/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/ld/emulparams/elf64ppc.sh b/binutils/ld/emulparams/elf64ppc.sh
index b9631b6..c9337ea 100644
--- a/binutils/ld/emulparams/elf64ppc.sh
+++ b/binutils/ld/emulparams/elf64ppc.sh
@@ -28,9 +28,11 @@
   .got		0 : { *(.got) }
   .toc		0 : { *(.toc) }"
 fi
+# Put .opd relocs first so ld.so will process them before any ifunc relocs.
+INITIAL_RELOC_SECTIONS="
+  .rela.opd	${RELOCATING-0} : { *(.rela.opd) }"
 OTHER_GOT_RELOC_SECTIONS="
   .rela.toc	${RELOCATING-0} : { *(.rela.toc) }
-  .rela.opd	${RELOCATING-0} : { *(.rela.opd) }
   .rela.branch_lt	${RELOCATING-0} : { *(.rela.branch_lt) }"
 OTHER_READWRITE_SECTIONS="
   .toc1		${RELOCATING-0} :${RELOCATING+ ALIGN(8)} { *(.toc1) }
diff --git a/binutils/ld/emultempl/vxworks.em b/binutils/ld/emultempl/vxworks.em
index 3748ddb..7a21ac3 100644
--- a/binutils/ld/emultempl/vxworks.em
+++ b/binutils/ld/emultempl/vxworks.em
@@ -1,5 +1,5 @@
 # This shell script emits a C file. -*- C -*-
-#   Copyright 2006, 2007, 2008 Free Software Foundation, Inc.
+#   Copyright 2006, 2007, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is part of the GNU Binutils.
 #
@@ -90,7 +90,7 @@
 #	something other than gld${EMULATION_NAME}_foo.  We handle
 #	this case in the same way as (1).
 for override in before_parse after_open; do
-  var="LDEMUL_`echo ${override} | tr a-z A-Z`"
+  var="LDEMUL_`echo ${override} | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`"
   eval value=\$${var}
   if test "${value}" = "gld${EMULATION_NAME}_${override}"; then
     fragment <<EOF
diff --git a/binutils/ld/ldlex-wrapper.c b/binutils/ld/ldlex-wrapper.c
new file mode 100644
index 0000000..ef2beba
--- /dev/null
+++ b/binutils/ld/ldlex-wrapper.c
@@ -0,0 +1,6 @@
+/* The flex output (ldlex.c) includes stdio.h before any of the C code
+   in ldlex.l.  Make sure we include sysdep.h first, so that config.h
+   can select the correct value of things like _FILE_OFFSET_BITS and
+   _LARGE_FILES.  */
+#include "sysdep.h"
+#include "ldlex.c"
diff --git a/binutils/ld/ldlex.c b/binutils/ld/ldlex.c
index 49de3f3..cc51945 100644
--- a/binutils/ld/ldlex.c
+++ b/binutils/ld/ldlex.c
@@ -1,5 +1,5 @@
 
-#line 3 "ldlex.c"
+#line 3 "/Users/gingold/Repositories/fsf/binutils-2_20/ld/ldlex.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -1582,7 +1582,6 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-#include "sysdep.h"
 #include "bfd.h"
 #include "safe-ctype.h"
 #include "bfdlink.h"
@@ -1656,7 +1655,7 @@
 
 
 
-#line 1660 "ldlex.c"
+#line 1659 "/Users/gingold/Repositories/fsf/binutils-2_20/ld/ldlex.c"
 
 #define INITIAL 0
 #define SCRIPT 1
@@ -1846,7 +1845,7 @@
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 117 "ldlex.l"
+#line 116 "ldlex.l"
 
 
   if (parser_input != input_selected)
@@ -1865,7 +1864,7 @@
 	}
     }
 
-#line 1869 "ldlex.c"
+#line 1868 "/Users/gingold/Repositories/fsf/binutils-2_20/ld/ldlex.c"
 
 	if ( !(yy_init) )
 		{
@@ -1950,32 +1949,32 @@
 
 case 1:
 YY_RULE_SETUP
-#line 135 "ldlex.l"
+#line 134 "ldlex.l"
 { comment (); }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 138 "ldlex.l"
+#line 137 "ldlex.l"
 { RTOKEN('-');}
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 139 "ldlex.l"
+#line 138 "ldlex.l"
 { RTOKEN('+');}
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 140 "ldlex.l"
+#line 139 "ldlex.l"
 { yylval.name = xstrdup (yytext); return NAME; }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 141 "ldlex.l"
+#line 140 "ldlex.l"
 { RTOKEN('='); }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 143 "ldlex.l"
+#line 142 "ldlex.l"
 {
   				yylval.integer = bfd_scan_vma (yytext + 1, 0, 16);
 				yylval.bigint.str = NULL;
@@ -1984,7 +1983,7 @@
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 149 "ldlex.l"
+#line 148 "ldlex.l"
 {
 				   int ibase ;
 				   switch (yytext[yyleng - 1]) {
@@ -2013,7 +2012,7 @@
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 174 "ldlex.l"
+#line 173 "ldlex.l"
 {
 				  char *s = yytext;
 				  int ibase = 0;
@@ -2046,789 +2045,789 @@
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 203 "ldlex.l"
+#line 202 "ldlex.l"
 { RTOKEN(']');}
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 204 "ldlex.l"
+#line 203 "ldlex.l"
 { RTOKEN('[');}
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 205 "ldlex.l"
+#line 204 "ldlex.l"
 { RTOKEN(LSHIFTEQ);}
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 206 "ldlex.l"
+#line 205 "ldlex.l"
 { RTOKEN(RSHIFTEQ);}
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 207 "ldlex.l"
+#line 206 "ldlex.l"
 { RTOKEN(OROR);}
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 208 "ldlex.l"
+#line 207 "ldlex.l"
 { RTOKEN(EQ);}
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 209 "ldlex.l"
+#line 208 "ldlex.l"
 { RTOKEN(NE);}
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 210 "ldlex.l"
+#line 209 "ldlex.l"
 { RTOKEN(GE);}
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 211 "ldlex.l"
+#line 210 "ldlex.l"
 { RTOKEN(LE);}
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 212 "ldlex.l"
+#line 211 "ldlex.l"
 { RTOKEN(LSHIFT);}
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 213 "ldlex.l"
+#line 212 "ldlex.l"
 { RTOKEN(RSHIFT);}
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 214 "ldlex.l"
+#line 213 "ldlex.l"
 { RTOKEN(PLUSEQ);}
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 215 "ldlex.l"
+#line 214 "ldlex.l"
 { RTOKEN(MINUSEQ);}
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 216 "ldlex.l"
+#line 215 "ldlex.l"
 { RTOKEN(MULTEQ);}
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 217 "ldlex.l"
+#line 216 "ldlex.l"
 { RTOKEN(DIVEQ);}
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 218 "ldlex.l"
+#line 217 "ldlex.l"
 { RTOKEN(ANDEQ);}
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 219 "ldlex.l"
+#line 218 "ldlex.l"
 { RTOKEN(OREQ);}
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 220 "ldlex.l"
+#line 219 "ldlex.l"
 { RTOKEN(ANDAND);}
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 221 "ldlex.l"
+#line 220 "ldlex.l"
 { RTOKEN('>');}
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 222 "ldlex.l"
+#line 221 "ldlex.l"
 { RTOKEN(',');}
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 223 "ldlex.l"
+#line 222 "ldlex.l"
 { RTOKEN('&');}
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 224 "ldlex.l"
+#line 223 "ldlex.l"
 { RTOKEN('|');}
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 225 "ldlex.l"
+#line 224 "ldlex.l"
 { RTOKEN('~');}
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 226 "ldlex.l"
+#line 225 "ldlex.l"
 { RTOKEN('!');}
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 227 "ldlex.l"
+#line 226 "ldlex.l"
 { RTOKEN('?');}
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 228 "ldlex.l"
+#line 227 "ldlex.l"
 { RTOKEN('*');}
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 229 "ldlex.l"
+#line 228 "ldlex.l"
 { RTOKEN('+');}
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 230 "ldlex.l"
+#line 229 "ldlex.l"
 { RTOKEN('-');}
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 231 "ldlex.l"
+#line 230 "ldlex.l"
 { RTOKEN('/');}
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 232 "ldlex.l"
+#line 231 "ldlex.l"
 { RTOKEN('%');}
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 233 "ldlex.l"
+#line 232 "ldlex.l"
 { RTOKEN('<');}
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 234 "ldlex.l"
+#line 233 "ldlex.l"
 { RTOKEN('=');}
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 235 "ldlex.l"
+#line 234 "ldlex.l"
 { RTOKEN('}') ; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 236 "ldlex.l"
+#line 235 "ldlex.l"
 { RTOKEN('{'); }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 237 "ldlex.l"
+#line 236 "ldlex.l"
 { RTOKEN(')');}
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 238 "ldlex.l"
+#line 237 "ldlex.l"
 { RTOKEN('(');}
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 239 "ldlex.l"
+#line 238 "ldlex.l"
 { RTOKEN(':'); }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 240 "ldlex.l"
+#line 239 "ldlex.l"
 { RTOKEN(';');}
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 241 "ldlex.l"
+#line 240 "ldlex.l"
 { RTOKEN(MEMORY);}
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 242 "ldlex.l"
+#line 241 "ldlex.l"
 { RTOKEN(REGION_ALIAS);}
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 243 "ldlex.l"
+#line 242 "ldlex.l"
 { RTOKEN(ORIGIN);}
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 244 "ldlex.l"
+#line 243 "ldlex.l"
 { RTOKEN(VERSIONK);}
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 245 "ldlex.l"
+#line 244 "ldlex.l"
 { RTOKEN(BLOCK);}
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 246 "ldlex.l"
+#line 245 "ldlex.l"
 { RTOKEN(BIND);}
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 247 "ldlex.l"
+#line 246 "ldlex.l"
 { RTOKEN(LENGTH);}
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 248 "ldlex.l"
+#line 247 "ldlex.l"
 { RTOKEN(ALIGN_K);}
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 249 "ldlex.l"
+#line 248 "ldlex.l"
 { RTOKEN(DATA_SEGMENT_ALIGN);}
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 250 "ldlex.l"
+#line 249 "ldlex.l"
 { RTOKEN(DATA_SEGMENT_RELRO_END);}
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 251 "ldlex.l"
+#line 250 "ldlex.l"
 { RTOKEN(DATA_SEGMENT_END);}
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 252 "ldlex.l"
+#line 251 "ldlex.l"
 { RTOKEN(ADDR);}
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 253 "ldlex.l"
+#line 252 "ldlex.l"
 { RTOKEN(LOADADDR);}
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 254 "ldlex.l"
+#line 253 "ldlex.l"
 { RTOKEN(ALIGNOF); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 255 "ldlex.l"
+#line 254 "ldlex.l"
 { RTOKEN(MAX_K); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 256 "ldlex.l"
+#line 255 "ldlex.l"
 { RTOKEN(MIN_K); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 257 "ldlex.l"
+#line 256 "ldlex.l"
 { RTOKEN(ASSERT_K); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 258 "ldlex.l"
+#line 257 "ldlex.l"
 { RTOKEN(ENTRY);}
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 259 "ldlex.l"
+#line 258 "ldlex.l"
 { RTOKEN(EXTERN);}
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 260 "ldlex.l"
+#line 259 "ldlex.l"
 { RTOKEN(NEXT);}
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 261 "ldlex.l"
+#line 260 "ldlex.l"
 { RTOKEN(SIZEOF_HEADERS);}
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 262 "ldlex.l"
+#line 261 "ldlex.l"
 { RTOKEN(SIZEOF_HEADERS);}
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 263 "ldlex.l"
+#line 262 "ldlex.l"
 { RTOKEN(SEGMENT_START);}
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 264 "ldlex.l"
+#line 263 "ldlex.l"
 { RTOKEN(MAP);}
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 265 "ldlex.l"
+#line 264 "ldlex.l"
 { RTOKEN(SIZEOF);}
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 266 "ldlex.l"
+#line 265 "ldlex.l"
 { RTOKEN(TARGET_K);}
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 267 "ldlex.l"
+#line 266 "ldlex.l"
 { RTOKEN(SEARCH_DIR);}
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 268 "ldlex.l"
+#line 267 "ldlex.l"
 { RTOKEN(OUTPUT);}
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 269 "ldlex.l"
+#line 268 "ldlex.l"
 { RTOKEN(INPUT);}
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 270 "ldlex.l"
+#line 269 "ldlex.l"
 { RTOKEN(GROUP);}
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 271 "ldlex.l"
+#line 270 "ldlex.l"
 { RTOKEN(AS_NEEDED);}
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 272 "ldlex.l"
+#line 271 "ldlex.l"
 { RTOKEN(DEFINED);}
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 273 "ldlex.l"
+#line 272 "ldlex.l"
 { RTOKEN(CREATE_OBJECT_SYMBOLS);}
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 274 "ldlex.l"
+#line 273 "ldlex.l"
 { RTOKEN( CONSTRUCTORS);}
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 275 "ldlex.l"
+#line 274 "ldlex.l"
 { RTOKEN(FORCE_COMMON_ALLOCATION);}
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 276 "ldlex.l"
+#line 275 "ldlex.l"
 { RTOKEN(INHIBIT_COMMON_ALLOCATION);}
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 277 "ldlex.l"
+#line 276 "ldlex.l"
 { RTOKEN(SECTIONS);}
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 278 "ldlex.l"
+#line 277 "ldlex.l"
 { RTOKEN(INSERT_K);}
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 279 "ldlex.l"
+#line 278 "ldlex.l"
 { RTOKEN(AFTER);}
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 280 "ldlex.l"
+#line 279 "ldlex.l"
 { RTOKEN(BEFORE);}
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 281 "ldlex.l"
+#line 280 "ldlex.l"
 { RTOKEN(FILL);}
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 282 "ldlex.l"
+#line 281 "ldlex.l"
 { RTOKEN(STARTUP);}
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 283 "ldlex.l"
+#line 282 "ldlex.l"
 { RTOKEN(OUTPUT_FORMAT);}
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 284 "ldlex.l"
+#line 283 "ldlex.l"
 { RTOKEN( OUTPUT_ARCH);}
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 285 "ldlex.l"
+#line 284 "ldlex.l"
 { RTOKEN(HLL);}
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 286 "ldlex.l"
+#line 285 "ldlex.l"
 { RTOKEN(SYSLIB);}
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 287 "ldlex.l"
+#line 286 "ldlex.l"
 { RTOKEN(FLOAT);}
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 288 "ldlex.l"
+#line 287 "ldlex.l"
 { RTOKEN( QUAD);}
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 289 "ldlex.l"
+#line 288 "ldlex.l"
 { RTOKEN( SQUAD);}
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 290 "ldlex.l"
+#line 289 "ldlex.l"
 { RTOKEN( LONG);}
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 291 "ldlex.l"
+#line 290 "ldlex.l"
 { RTOKEN( SHORT);}
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 292 "ldlex.l"
+#line 291 "ldlex.l"
 { RTOKEN( BYTE);}
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 293 "ldlex.l"
+#line 292 "ldlex.l"
 { RTOKEN(NOFLOAT);}
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 294 "ldlex.l"
+#line 293 "ldlex.l"
 { RTOKEN(NOCROSSREFS);}
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 295 "ldlex.l"
+#line 294 "ldlex.l"
 { RTOKEN(OVERLAY); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 296 "ldlex.l"
+#line 295 "ldlex.l"
 { RTOKEN(SORT_BY_NAME); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 297 "ldlex.l"
+#line 296 "ldlex.l"
 { RTOKEN(SORT_BY_ALIGNMENT); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 298 "ldlex.l"
+#line 297 "ldlex.l"
 { RTOKEN(SORT_BY_NAME); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 299 "ldlex.l"
+#line 298 "ldlex.l"
 { RTOKEN(NOLOAD);}
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 300 "ldlex.l"
+#line 299 "ldlex.l"
 { RTOKEN(DSECT);}
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 301 "ldlex.l"
+#line 300 "ldlex.l"
 { RTOKEN(COPY);}
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 302 "ldlex.l"
+#line 301 "ldlex.l"
 { RTOKEN(INFO);}
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 303 "ldlex.l"
+#line 302 "ldlex.l"
 { RTOKEN(OVERLAY);}
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 304 "ldlex.l"
+#line 303 "ldlex.l"
 { RTOKEN(ONLY_IF_RO); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 305 "ldlex.l"
+#line 304 "ldlex.l"
 { RTOKEN(ONLY_IF_RW); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 306 "ldlex.l"
+#line 305 "ldlex.l"
 { RTOKEN(SPECIAL); }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 307 "ldlex.l"
+#line 306 "ldlex.l"
 { RTOKEN(ORIGIN);}
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 308 "ldlex.l"
+#line 307 "ldlex.l"
 { RTOKEN(ORIGIN);}
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 309 "ldlex.l"
+#line 308 "ldlex.l"
 { RTOKEN( LENGTH);}
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 310 "ldlex.l"
+#line 309 "ldlex.l"
 { RTOKEN( LENGTH);}
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 311 "ldlex.l"
+#line 310 "ldlex.l"
 { RTOKEN(INCLUDE);}
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 312 "ldlex.l"
+#line 311 "ldlex.l"
 { RTOKEN (PHDRS); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 313 "ldlex.l"
+#line 312 "ldlex.l"
 { RTOKEN(AT);}
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 314 "ldlex.l"
+#line 313 "ldlex.l"
 { RTOKEN(SUBALIGN);}
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 315 "ldlex.l"
+#line 314 "ldlex.l"
 { RTOKEN(PROVIDE); }
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 316 "ldlex.l"
+#line 315 "ldlex.l"
 { RTOKEN(PROVIDE_HIDDEN); }
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 317 "ldlex.l"
+#line 316 "ldlex.l"
 { RTOKEN(KEEP); }
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 318 "ldlex.l"
+#line 317 "ldlex.l"
 { RTOKEN(EXCLUDE_FILE); }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 319 "ldlex.l"
+#line 318 "ldlex.l"
 { RTOKEN(CONSTANT);}
 	YY_BREAK
 case 126:
 /* rule 126 can match eol */
 YY_RULE_SETUP
-#line 320 "ldlex.l"
+#line 319 "ldlex.l"
 { ++ lineno; }
 	YY_BREAK
 case 127:
 /* rule 127 can match eol */
 YY_RULE_SETUP
-#line 321 "ldlex.l"
+#line 320 "ldlex.l"
 { ++ lineno;  RTOKEN(NEWLINE); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 322 "ldlex.l"
+#line 321 "ldlex.l"
 { /* Mri comment line */ }
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 323 "ldlex.l"
+#line 322 "ldlex.l"
 { /* Mri comment line */ }
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 324 "ldlex.l"
+#line 323 "ldlex.l"
 { RTOKEN(ENDWORD); }
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 325 "ldlex.l"
+#line 324 "ldlex.l"
 { RTOKEN(ALIGNMOD);}
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 326 "ldlex.l"
+#line 325 "ldlex.l"
 { RTOKEN(ALIGN_K);}
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 327 "ldlex.l"
+#line 326 "ldlex.l"
 { RTOKEN(CHIP); }
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 328 "ldlex.l"
+#line 327 "ldlex.l"
 { RTOKEN(BASE); }
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 329 "ldlex.l"
+#line 328 "ldlex.l"
 { RTOKEN(ALIAS); }
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 330 "ldlex.l"
+#line 329 "ldlex.l"
 { RTOKEN(TRUNCATE); }
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 331 "ldlex.l"
+#line 330 "ldlex.l"
 { RTOKEN(LOAD); }
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 332 "ldlex.l"
+#line 331 "ldlex.l"
 { RTOKEN(PUBLIC); }
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 333 "ldlex.l"
+#line 332 "ldlex.l"
 { RTOKEN(ORDER); }
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 334 "ldlex.l"
+#line 333 "ldlex.l"
 { RTOKEN(NAMEWORD); }
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 335 "ldlex.l"
+#line 334 "ldlex.l"
 { RTOKEN(FORMAT); }
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 336 "ldlex.l"
+#line 335 "ldlex.l"
 { RTOKEN(CASE); }
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 337 "ldlex.l"
+#line 336 "ldlex.l"
 { RTOKEN(START); }
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 338 "ldlex.l"
+#line 337 "ldlex.l"
 { RTOKEN(LIST); /* LIST and ignore to end of line */ }
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 339 "ldlex.l"
+#line 338 "ldlex.l"
 { RTOKEN(SECT); }
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 340 "ldlex.l"
+#line 339 "ldlex.l"
 { RTOKEN(ABSOLUTE); }
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 341 "ldlex.l"
+#line 340 "ldlex.l"
 { RTOKEN(ENDWORD); }
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 342 "ldlex.l"
+#line 341 "ldlex.l"
 { RTOKEN(ALIGNMOD);}
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 343 "ldlex.l"
+#line 342 "ldlex.l"
 { RTOKEN(ALIGN_K);}
 	YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 344 "ldlex.l"
+#line 343 "ldlex.l"
 { RTOKEN(CHIP); }
 	YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 345 "ldlex.l"
+#line 344 "ldlex.l"
 { RTOKEN(BASE); }
 	YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 346 "ldlex.l"
+#line 345 "ldlex.l"
 { RTOKEN(ALIAS); }
 	YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 347 "ldlex.l"
+#line 346 "ldlex.l"
 { RTOKEN(TRUNCATE); }
 	YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 348 "ldlex.l"
+#line 347 "ldlex.l"
 { RTOKEN(LOAD); }
 	YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 349 "ldlex.l"
+#line 348 "ldlex.l"
 { RTOKEN(PUBLIC); }
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 350 "ldlex.l"
+#line 349 "ldlex.l"
 { RTOKEN(ORDER); }
 	YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 351 "ldlex.l"
+#line 350 "ldlex.l"
 { RTOKEN(NAMEWORD); }
 	YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 352 "ldlex.l"
+#line 351 "ldlex.l"
 { RTOKEN(FORMAT); }
 	YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 353 "ldlex.l"
+#line 352 "ldlex.l"
 { RTOKEN(CASE); }
 	YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 354 "ldlex.l"
+#line 353 "ldlex.l"
 { RTOKEN(EXTERN); }
 	YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 355 "ldlex.l"
+#line 354 "ldlex.l"
 { RTOKEN(START); }
 	YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 356 "ldlex.l"
+#line 355 "ldlex.l"
 { RTOKEN(LIST); /* LIST and ignore to end of line */ }
 	YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 357 "ldlex.l"
+#line 356 "ldlex.l"
 { RTOKEN(SECT); }
 	YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 358 "ldlex.l"
+#line 357 "ldlex.l"
 { RTOKEN(ABSOLUTE); }
 	YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 360 "ldlex.l"
+#line 359 "ldlex.l"
 {
 /* Filename without commas, needed to parse mri stuff */
 				 yylval.name = xstrdup (yytext);
@@ -2837,7 +2836,7 @@
 	YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 367 "ldlex.l"
+#line 366 "ldlex.l"
 {
 				 yylval.name = xstrdup (yytext);
 				  return NAME;
@@ -2845,7 +2844,7 @@
 	YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 371 "ldlex.l"
+#line 370 "ldlex.l"
 {
 				  yylval.name = xstrdup (yytext + 2);
 				  return LNAME;
@@ -2853,7 +2852,7 @@
 	YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 375 "ldlex.l"
+#line 374 "ldlex.l"
 {
 				 yylval.name = xstrdup (yytext);
 				  return NAME;
@@ -2861,7 +2860,7 @@
 	YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 379 "ldlex.l"
+#line 378 "ldlex.l"
 {
 				  yylval.name = xstrdup (yytext + 2);
 				  return LNAME;
@@ -2869,7 +2868,7 @@
 	YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 383 "ldlex.l"
+#line 382 "ldlex.l"
 {
 		/* Annoyingly, this pattern can match comments, and we have
 		   longest match issues to consider.  So if the first two
@@ -2890,7 +2889,7 @@
 case 171:
 /* rule 171 can match eol */
 YY_RULE_SETUP
-#line 400 "ldlex.l"
+#line 399 "ldlex.l"
 {
 					/* No matter the state, quotes
 					   give what's inside */
@@ -2902,54 +2901,54 @@
 case 172:
 /* rule 172 can match eol */
 YY_RULE_SETUP
-#line 407 "ldlex.l"
+#line 406 "ldlex.l"
 { lineno++;}
 	YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 408 "ldlex.l"
+#line 407 "ldlex.l"
 { }
 	YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 410 "ldlex.l"
+#line 409 "ldlex.l"
 { return *yytext; }
 	YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 412 "ldlex.l"
+#line 411 "ldlex.l"
 { RTOKEN(GLOBAL); }
 	YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 414 "ldlex.l"
+#line 413 "ldlex.l"
 { RTOKEN(LOCAL); }
 	YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 416 "ldlex.l"
+#line 415 "ldlex.l"
 { RTOKEN(EXTERN); }
 	YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 418 "ldlex.l"
+#line 417 "ldlex.l"
 { yylval.name = xstrdup (yytext);
 				  return VERS_IDENTIFIER; }
 	YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 421 "ldlex.l"
+#line 420 "ldlex.l"
 { yylval.name = xstrdup (yytext);
 				  return VERS_TAG; }
 	YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 424 "ldlex.l"
+#line 423 "ldlex.l"
 { BEGIN(VERS_SCRIPT); return *yytext; }
 	YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 426 "ldlex.l"
+#line 425 "ldlex.l"
 { BEGIN(VERS_NODE);
 				  vers_node_nesting = 0;
 				  return *yytext;
@@ -2957,17 +2956,17 @@
 	YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 430 "ldlex.l"
+#line 429 "ldlex.l"
 { return *yytext; }
 	YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 431 "ldlex.l"
+#line 430 "ldlex.l"
 { vers_node_nesting++; return *yytext; }
 	YY_BREAK
 case 184:
 YY_RULE_SETUP
-#line 432 "ldlex.l"
+#line 431 "ldlex.l"
 { if (--vers_node_nesting < 0)
 				    BEGIN(VERS_SCRIPT);
 				  return *yytext;
@@ -2976,17 +2975,17 @@
 case 185:
 /* rule 185 can match eol */
 YY_RULE_SETUP
-#line 437 "ldlex.l"
+#line 436 "ldlex.l"
 { lineno++; }
 	YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 439 "ldlex.l"
+#line 438 "ldlex.l"
 { /* Eat up comments */ }
 	YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 441 "ldlex.l"
+#line 440 "ldlex.l"
 { /* Eat up whitespace */ }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
@@ -2998,7 +2997,7 @@
 case YY_STATE_EOF(VERS_START):
 case YY_STATE_EOF(VERS_SCRIPT):
 case YY_STATE_EOF(VERS_NODE):
-#line 443 "ldlex.l"
+#line 442 "ldlex.l"
 {
   include_stack_ptr--;
 
@@ -3019,20 +3018,20 @@
 	YY_BREAK
 case 188:
 YY_RULE_SETUP
-#line 461 "ldlex.l"
+#line 460 "ldlex.l"
 lex_warn_invalid (" in script", yytext);
 	YY_BREAK
 case 189:
 YY_RULE_SETUP
-#line 462 "ldlex.l"
+#line 461 "ldlex.l"
 lex_warn_invalid (" in expression", yytext);
 	YY_BREAK
 case 190:
 YY_RULE_SETUP
-#line 464 "ldlex.l"
+#line 463 "ldlex.l"
 ECHO;
 	YY_BREAK
-#line 3036 "ldlex.c"
+#line 3035 "/Users/gingold/Repositories/fsf/binutils-2_20/ld/ldlex.c"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -4027,7 +4026,7 @@
 
 #define YYTABLES_NAME "yytables"
 
-#line 464 "ldlex.l"
+#line 463 "ldlex.l"
 
 
 
diff --git a/binutils/ld/ldlex.l b/binutils/ld/ldlex.l
index ef09eb0..4add152 100644
--- a/binutils/ld/ldlex.l
+++ b/binutils/ld/ldlex.l
@@ -22,7 +22,6 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-#include "sysdep.h"
 #include "bfd.h"
 #include "safe-ctype.h"
 #include "bfdlink.h"
diff --git a/binutils/ld/pe-dll.c b/binutils/ld/pe-dll.c
index f615b2d..54021b6 100644
--- a/binutils/ld/pe-dll.c
+++ b/binutils/ld/pe-dll.c
@@ -1348,10 +1348,29 @@
 		  if (sym->flags == BSF_WEAK)
 		    {
 		      struct bfd_link_hash_entry *blhe
-			= bfd_link_hash_lookup (info->hash, sym->name,
+			= bfd_wrapped_link_hash_lookup (abfd, info, sym->name,
 						FALSE, FALSE, FALSE);
-		      if (!blhe || blhe->type != bfd_link_hash_defined)
-			continue;		      
+		      if (blhe && blhe->type == bfd_link_hash_undefweak)
+			{
+			  /* Check aux sym and see if it is defined or not. */
+			  struct coff_link_hash_entry *h, *h2;
+			  h = (struct coff_link_hash_entry *)blhe;
+			  if (h->symbol_class != C_NT_WEAK || h->numaux != 1)
+			    continue;
+			  h2 = h->auxbfd->tdata.coff_obj_data->sym_hashes
+						[h->aux->x_sym.x_tagndx.l];
+			  /* We don't want a base reloc if the aux sym is not
+			     found, undefined, or if it is the constant ABS
+			     zero default value.  (We broaden that slightly by
+			     not testing the value, just the section; there's
+			     no reason we'd want a reference to any absolute
+			     address to get relocated during rebasing).  */
+			  if (!h2 || h2->root.type == bfd_link_hash_undefined
+				|| h2->root.u.def.section == &bfd_abs_section)
+			    continue;
+			}
+		      else if (!blhe || blhe->type != bfd_link_hash_defined)
+			continue;
 		    }
 
 		  sym_vma = (relocs[i]->addend
diff --git a/binutils/ld/po/POTFILES.in b/binutils/ld/po/POTFILES.in
index 48172c4..f48a991 100644
--- a/binutils/ld/po/POTFILES.in
+++ b/binutils/ld/po/POTFILES.in
@@ -14,6 +14,7 @@
 ldfile.h
 ldlang.c
 ldlang.h
+ldlex-wrapper.c
 ldlex.h
 ldmain.c
 ldmain.h
diff --git a/binutils/ld/po/ld.pot b/binutils/ld/po/ld.pot
index 3802df2..db3f75f 100644
--- a/binutils/ld/po/ld.pot
+++ b/binutils/ld/po/ld.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:10+0200\n"
+"POT-Creation-Date: 2010-03-03 15:06+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -32,11 +32,11 @@
 msgid "Errors encountered processing file %s"
 msgstr ""
 
-#: emultempl/armcoff.em:190 emultempl/pe.em:1710
+#: emultempl/armcoff.em:190 emultempl/pe.em:1696
 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
 msgstr ""
 
-#: emultempl/armcoff.em:195 emultempl/pe.em:1715
+#: emultempl/armcoff.em:195 emultempl/pe.em:1701
 msgid "%P: warning: cannot find thumb start symbol %s\n"
 msgstr ""
 
@@ -377,36 +377,36 @@
 msgid "%P: warning, file alignment > section alignment.\n"
 msgstr ""
 
-#: emultempl/pe.em:899
+#: emultempl/pe.em:883
 msgid ""
 "%P: warning: --export-dynamic is not supported for PE targets, did you mean "
 "--export-all-symbols?\n"
 msgstr ""
 
-#: emultempl/pe.em:963 emultempl/pe.em:990
+#: emultempl/pe.em:949 emultempl/pe.em:976
 #, c-format
 msgid "Warning: resolving %s by linking to %s\n"
 msgstr ""
 
-#: emultempl/pe.em:968 emultempl/pe.em:995
+#: emultempl/pe.em:954 emultempl/pe.em:981
 msgid "Use --enable-stdcall-fixup to disable these warnings\n"
 msgstr ""
 
-#: emultempl/pe.em:969 emultempl/pe.em:996
+#: emultempl/pe.em:955 emultempl/pe.em:982
 msgid "Use --disable-stdcall-fixup to disable these fixups\n"
 msgstr ""
 
-#: emultempl/pe.em:1015
+#: emultempl/pe.em:1001
 #, c-format
 msgid "%C: Cannot get section contents - auto-import exception\n"
 msgstr ""
 
-#: emultempl/pe.em:1055
+#: emultempl/pe.em:1041
 #, c-format
 msgid "Info: resolving %s by linking to %s (auto-import)\n"
 msgstr ""
 
-#: emultempl/pe.em:1062
+#: emultempl/pe.em:1048
 msgid ""
 "%P: warning: auto-importing has been activated without --enable-auto-import "
 "specified on the command line.\n"
@@ -414,28 +414,28 @@
 "symbols from auto-imported DLLs.\n"
 msgstr ""
 
-#: emultempl/pe.em:1069 emultempl/pe.em:1268 emultempl/pe.em:1474 ldcref.c:488
-#: ldcref.c:586 ldmain.c:1107 ldmisc.c:285 pe-dll.c:683 pe-dll.c:1227
+#: emultempl/pe.em:1055 emultempl/pe.em:1254 emultempl/pe.em:1460 ldcref.c:490
+#: ldcref.c:588 ldmain.c:1111 ldmisc.c:285 pe-dll.c:683 pe-dll.c:1227
 #: pe-dll.c:1324
 msgid "%B%F: could not read symbols: %E\n"
 msgstr ""
 
-#: emultempl/pe.em:1149
+#: emultempl/pe.em:1135
 msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
 msgstr ""
 
-#: emultempl/pe.em:1515
+#: emultempl/pe.em:1501
 #, c-format
 msgid "Errors encountered processing file %s\n"
 msgstr ""
 
-#: emultempl/pe.em:1538
+#: emultempl/pe.em:1524
 #, c-format
 msgid "Errors encountered processing file %s for interworking\n"
 msgstr ""
 
-#: emultempl/pe.em:1599 ldexp.c:539 ldlang.c:3276 ldlang.c:6636 ldlang.c:6667
-#: ldmain.c:1052
+#: emultempl/pe.em:1585 ldexp.c:539 ldlang.c:3284 ldlang.c:6649 ldlang.c:6680
+#: ldmain.c:1056
 msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
 msgstr ""
 
@@ -451,7 +451,7 @@
 msgid "%X%P: cref alloc failed: %E\n"
 msgstr ""
 
-#: ldcref.c:364
+#: ldcref.c:366
 #, c-format
 msgid ""
 "\n"
@@ -459,25 +459,25 @@
 "\n"
 msgstr ""
 
-#: ldcref.c:365
+#: ldcref.c:367
 msgid "Symbol"
 msgstr ""
 
-#: ldcref.c:373
+#: ldcref.c:375
 #, c-format
 msgid "File\n"
 msgstr ""
 
-#: ldcref.c:377
+#: ldcref.c:379
 #, c-format
 msgid "No symbols\n"
 msgstr ""
 
-#: ldcref.c:530
+#: ldcref.c:532
 msgid "%P: symbol `%T' missing from main hash table\n"
 msgstr ""
 
-#: ldcref.c:648 ldcref.c:655 ldmain.c:1141 ldmain.c:1148
+#: ldcref.c:650 ldcref.c:657 ldmain.c:1145 ldmain.c:1152
 msgid "%B%F: could not read relocs: %E\n"
 msgstr ""
 
@@ -485,7 +485,7 @@
 #. in OUTSECNAME.  This reloc is from a section which is
 #. mapped into a section from which references to OUTSECNAME
 #. are prohibited.  We must report an error.
-#: ldcref.c:682
+#: ldcref.c:684
 msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
 msgstr ""
 
@@ -497,40 +497,40 @@
 msgid "%P%X: Different object file formats composing set %s\n"
 msgstr ""
 
-#: ldctor.c:279 ldctor.c:293
+#: ldctor.c:281 ldctor.c:295
 msgid "%P%X: %s does not support reloc %s for set %s\n"
 msgstr ""
 
-#: ldctor.c:314
+#: ldctor.c:316
 msgid "%P%X: Unsupported size %d for set %s\n"
 msgstr ""
 
-#: ldctor.c:335
+#: ldctor.c:337
 msgid ""
 "\n"
 "Set                 Symbol\n"
 "\n"
 msgstr ""
 
-#: ldemul.c:239
+#: ldemul.c:265
 #, c-format
 msgid "%S SYSLIB ignored\n"
 msgstr ""
 
-#: ldemul.c:245
+#: ldemul.c:271
 #, c-format
 msgid "%S HLL ignored\n"
 msgstr ""
 
-#: ldemul.c:265
+#: ldemul.c:291
 msgid "%P: unrecognised emulation mode: %s\n"
 msgstr ""
 
-#: ldemul.c:266
+#: ldemul.c:292
 msgid "Supported emulations: "
 msgstr ""
 
-#: ldemul.c:308
+#: ldemul.c:334
 #, c-format
 msgid "  no emulation specific options.\n"
 msgstr ""
@@ -654,35 +654,35 @@
 msgid "%P%F: cannot represent machine `%s'\n"
 msgstr ""
 
-#: ldlang.c:1142 ldlang.c:1184 ldlang.c:3006
+#: ldlang.c:1145 ldlang.c:1187 ldlang.c:3014
 msgid "%P%F: can not create hash table: %E\n"
 msgstr ""
 
-#: ldlang.c:1235
+#: ldlang.c:1238
 msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
 msgstr ""
 
-#: ldlang.c:1241
+#: ldlang.c:1244
 msgid "%P:%S: warning: memory region `%s' not declared\n"
 msgstr ""
 
-#: ldlang.c:1275
+#: ldlang.c:1278
 msgid "%F%P:%S: error: alias for default memory region\n"
 msgstr ""
 
-#: ldlang.c:1286
+#: ldlang.c:1289
 msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
 msgstr ""
 
-#: ldlang.c:1293
+#: ldlang.c:1296
 msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
 msgstr ""
 
-#: ldlang.c:1345 ldlang.c:1384
+#: ldlang.c:1348 ldlang.c:1387
 msgid "%P%F: failed creating section `%s': %E\n"
 msgstr ""
 
-#: ldlang.c:1927
+#: ldlang.c:1930
 #, c-format
 msgid ""
 "\n"
@@ -690,30 +690,30 @@
 "\n"
 msgstr ""
 
-#: ldlang.c:1935
+#: ldlang.c:1938
 msgid ""
 "\n"
 "Memory Configuration\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:1937
+#: ldlang.c:1940
 msgid "Name"
 msgstr ""
 
-#: ldlang.c:1937
+#: ldlang.c:1940
 msgid "Origin"
 msgstr ""
 
-#: ldlang.c:1937
+#: ldlang.c:1940
 msgid "Length"
 msgstr ""
 
-#: ldlang.c:1937
+#: ldlang.c:1940
 msgid "Attributes"
 msgstr ""
 
-#: ldlang.c:1977
+#: ldlang.c:1980
 #, c-format
 msgid ""
 "\n"
@@ -721,245 +721,245 @@
 "\n"
 msgstr ""
 
-#: ldlang.c:2045
+#: ldlang.c:2050
 msgid "%P%F: Illegal use of `%s' section\n"
 msgstr ""
 
-#: ldlang.c:2054
+#: ldlang.c:2059
 msgid "%P%F: output format %s cannot represent section called %s\n"
 msgstr ""
 
-#: ldlang.c:2602
+#: ldlang.c:2607
 msgid "%B: file not recognized: %E\n"
 msgstr ""
 
-#: ldlang.c:2603
+#: ldlang.c:2608
 msgid "%B: matching formats:"
 msgstr ""
 
-#: ldlang.c:2610
+#: ldlang.c:2615
 msgid "%F%B: file not recognized: %E\n"
 msgstr ""
 
-#: ldlang.c:2677
+#: ldlang.c:2685
 msgid "%F%B: member %B in archive is not an object\n"
 msgstr ""
 
-#: ldlang.c:2688 ldlang.c:2702
+#: ldlang.c:2696 ldlang.c:2710
 msgid "%F%B: could not read symbols: %E\n"
 msgstr ""
 
-#: ldlang.c:2976
+#: ldlang.c:2984
 msgid ""
 "%P: warning: could not find any targets that match endianness requirement\n"
 msgstr ""
 
-#: ldlang.c:2990
+#: ldlang.c:2998
 msgid "%P%F: target %s not found\n"
 msgstr ""
 
-#: ldlang.c:2992
+#: ldlang.c:3000
 msgid "%P%F: cannot open output file %s: %E\n"
 msgstr ""
 
-#: ldlang.c:2998
+#: ldlang.c:3006
 msgid "%P%F:%s: can not make object file: %E\n"
 msgstr ""
 
-#: ldlang.c:3002
+#: ldlang.c:3010
 msgid "%P%F:%s: can not set architecture: %E\n"
 msgstr ""
 
-#: ldlang.c:3143
+#: ldlang.c:3151
 msgid "%P: warning: %s contains output sections; did you forget -T?\n"
 msgstr ""
 
-#: ldlang.c:3169
+#: ldlang.c:3177
 msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
 msgstr ""
 
-#: ldlang.c:3187
+#: ldlang.c:3195
 msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
 msgstr ""
 
-#: ldlang.c:3566
+#: ldlang.c:3574
 msgid "%F%P: %s not found for insert\n"
 msgstr ""
 
-#: ldlang.c:3781
+#: ldlang.c:3789
 msgid " load address 0x%V"
 msgstr ""
 
-#: ldlang.c:4052
+#: ldlang.c:4061
 msgid "%W (size before relaxing)\n"
 msgstr ""
 
-#: ldlang.c:4143
+#: ldlang.c:4152
 #, c-format
 msgid "Address of section %s set to "
 msgstr ""
 
-#: ldlang.c:4296
+#: ldlang.c:4305
 #, c-format
 msgid "Fail with %d\n"
 msgstr ""
 
-#: ldlang.c:4579
+#: ldlang.c:4589
 msgid ""
 "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
 msgstr ""
 
-#: ldlang.c:4595
+#: ldlang.c:4605
 msgid "%X%P: region `%s' overflowed by %ld bytes\n"
 msgstr ""
 
-#: ldlang.c:4618
+#: ldlang.c:4628
 msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
 msgstr ""
 
-#: ldlang.c:4629
+#: ldlang.c:4639
 msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
 msgstr ""
 
-#: ldlang.c:4669
+#: ldlang.c:4687
 #, c-format
 msgid ""
 "%F%S: non constant or forward reference address expression for section %s\n"
 msgstr ""
 
-#: ldlang.c:4694
+#: ldlang.c:4712
 msgid "%P%X: Internal error on COFF shared library section %s\n"
 msgstr ""
 
-#: ldlang.c:4753
+#: ldlang.c:4771
 msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
 msgstr ""
 
-#: ldlang.c:4758
+#: ldlang.c:4776
 msgid "%P: warning: no memory region specified for loadable section `%s'\n"
 msgstr ""
 
-#: ldlang.c:4780
+#: ldlang.c:4798
 msgid "%P: warning: changing start of section %s by %lu bytes\n"
 msgstr ""
 
-#: ldlang.c:4862
+#: ldlang.c:4875
 msgid "%P: warning: dot moved backwards before `%s'\n"
 msgstr ""
 
-#: ldlang.c:5035
+#: ldlang.c:5048
 msgid "%P%F: can't relax section: %E\n"
 msgstr ""
 
-#: ldlang.c:5357
+#: ldlang.c:5370
 msgid "%F%P: invalid data statement\n"
 msgstr ""
 
-#: ldlang.c:5390
+#: ldlang.c:5403
 msgid "%F%P: invalid reloc statement\n"
 msgstr ""
 
-#: ldlang.c:5509
+#: ldlang.c:5522
 msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
 msgstr ""
 
-#: ldlang.c:5534
+#: ldlang.c:5547
 msgid "%P%F:%s: can't set start address\n"
 msgstr ""
 
-#: ldlang.c:5547 ldlang.c:5566
+#: ldlang.c:5560 ldlang.c:5579
 msgid "%P%F: can't set start address\n"
 msgstr ""
 
-#: ldlang.c:5559
+#: ldlang.c:5572
 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
 msgstr ""
 
-#: ldlang.c:5571
+#: ldlang.c:5584
 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
 msgstr ""
 
-#: ldlang.c:5621
+#: ldlang.c:5634
 msgid ""
 "%P%F: Relocatable linking with relocations from format %s (%B) to format %s "
 "(%B) is not supported\n"
 msgstr ""
 
-#: ldlang.c:5631
+#: ldlang.c:5644
 msgid ""
 "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
 msgstr ""
 
-#: ldlang.c:5653
+#: ldlang.c:5666
 msgid "%P%X: failed to merge target specific data of file %B\n"
 msgstr ""
 
-#: ldlang.c:5724
+#: ldlang.c:5737
 msgid "%P%F: Could not define common symbol `%T': %E\n"
 msgstr ""
 
-#: ldlang.c:5736
+#: ldlang.c:5749
 msgid ""
 "\n"
 "Allocating common symbols\n"
 msgstr ""
 
-#: ldlang.c:5737
+#: ldlang.c:5750
 msgid ""
 "Common symbol       size              file\n"
 "\n"
 msgstr ""
 
-#: ldlang.c:5878
+#: ldlang.c:5891
 msgid "%P%F: invalid syntax in flags\n"
 msgstr ""
 
-#: ldlang.c:6270
+#: ldlang.c:6283
 msgid "%P%F: Failed to create hash table\n"
 msgstr ""
 
-#: ldlang.c:6549
+#: ldlang.c:6562
 msgid "%P%F: multiple STARTUP files\n"
 msgstr ""
 
-#: ldlang.c:6597
+#: ldlang.c:6610
 msgid "%X%P:%S: section has both a load address and a load region\n"
 msgstr ""
 
-#: ldlang.c:6844
+#: ldlang.c:6857
 msgid "%F%P: no sections assigned to phdrs\n"
 msgstr ""
 
-#: ldlang.c:6881
+#: ldlang.c:6895
 msgid "%F%P: bfd_record_phdr failed: %E\n"
 msgstr ""
 
-#: ldlang.c:6901
+#: ldlang.c:6915
 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
 msgstr ""
 
-#: ldlang.c:7299
+#: ldlang.c:7316
 msgid "%X%P: unknown language `%s' in version information\n"
 msgstr ""
 
-#: ldlang.c:7441
+#: ldlang.c:7461
 msgid ""
 "%X%P: anonymous version tag cannot be combined with other version tags\n"
 msgstr ""
 
-#: ldlang.c:7450
+#: ldlang.c:7470
 msgid "%X%P: duplicate version tag `%s'\n"
 msgstr ""
 
-#: ldlang.c:7470 ldlang.c:7479 ldlang.c:7496 ldlang.c:7506
+#: ldlang.c:7491 ldlang.c:7500 ldlang.c:7518 ldlang.c:7528
 msgid "%X%P: duplicate expression `%s' in version information\n"
 msgstr ""
 
-#: ldlang.c:7546
+#: ldlang.c:7568
 msgid "%X%P: unable to find version dependency `%s'\n"
 msgstr ""
 
-#: ldlang.c:7568
+#: ldlang.c:7590
 msgid "%X%P: unable to read .exports section contents\n"
 msgstr ""
 
@@ -1019,7 +1019,7 @@
 msgid "%P: Error writing file `%s'\n"
 msgstr ""
 
-#: ldmain.c:531 pe-dll.c:1687
+#: ldmain.c:531 pe-dll.c:1706
 #, c-format
 msgid "%P: Error closing file `%s'\n"
 msgstr ""
@@ -1038,162 +1038,162 @@
 msgid "%P%F: missing argument to -m\n"
 msgstr ""
 
-#: ldmain.c:680 ldmain.c:699 ldmain.c:730
+#: ldmain.c:681 ldmain.c:701 ldmain.c:733
 msgid "%P%F: bfd_hash_table_init failed: %E\n"
 msgstr ""
 
-#: ldmain.c:684 ldmain.c:703
+#: ldmain.c:685 ldmain.c:705
 msgid "%P%F: bfd_hash_lookup failed: %E\n"
 msgstr ""
 
-#: ldmain.c:717
+#: ldmain.c:719
 msgid "%X%P: error: duplicate retain-symbols-file\n"
 msgstr ""
 
-#: ldmain.c:760
+#: ldmain.c:763
 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
 msgstr ""
 
-#: ldmain.c:765
+#: ldmain.c:768
 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
 msgstr ""
 
-#: ldmain.c:829
+#: ldmain.c:833
 #, c-format
 msgid ""
 "Archive member included because of file (symbol)\n"
 "\n"
 msgstr ""
 
-#: ldmain.c:899
+#: ldmain.c:903
 msgid "%X%C: multiple definition of `%T'\n"
 msgstr ""
 
-#: ldmain.c:902
+#: ldmain.c:906
 msgid "%D: first defined here\n"
 msgstr ""
 
-#: ldmain.c:906
+#: ldmain.c:910
 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
 msgstr ""
 
-#: ldmain.c:936
+#: ldmain.c:940
 msgid "%B: warning: definition of `%T' overriding common\n"
 msgstr ""
 
-#: ldmain.c:939
+#: ldmain.c:943
 msgid "%B: warning: common is here\n"
 msgstr ""
 
-#: ldmain.c:946
+#: ldmain.c:950
 msgid "%B: warning: common of `%T' overridden by definition\n"
 msgstr ""
 
-#: ldmain.c:949
+#: ldmain.c:953
 msgid "%B: warning: defined here\n"
 msgstr ""
 
-#: ldmain.c:956
+#: ldmain.c:960
 msgid "%B: warning: common of `%T' overridden by larger common\n"
 msgstr ""
 
-#: ldmain.c:959
+#: ldmain.c:963
 msgid "%B: warning: larger common is here\n"
 msgstr ""
 
-#: ldmain.c:963
+#: ldmain.c:967
 msgid "%B: warning: common of `%T' overriding smaller common\n"
 msgstr ""
 
-#: ldmain.c:966
+#: ldmain.c:970
 msgid "%B: warning: smaller common is here\n"
 msgstr ""
 
-#: ldmain.c:970
+#: ldmain.c:974
 msgid "%B: warning: multiple common of `%T'\n"
 msgstr ""
 
-#: ldmain.c:972
+#: ldmain.c:976
 msgid "%B: warning: previous common is here\n"
 msgstr ""
 
-#: ldmain.c:992 ldmain.c:1030
+#: ldmain.c:996 ldmain.c:1034
 msgid "%P: warning: global constructor %s used\n"
 msgstr ""
 
-#: ldmain.c:1040
+#: ldmain.c:1044
 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
 msgstr ""
 
 #. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1094 ldmain.c:1096 ldmain.c:1098 ldmain.c:1116 ldmain.c:1161
+#: ldmain.c:1098 ldmain.c:1100 ldmain.c:1102 ldmain.c:1120 ldmain.c:1165
 msgid "warning: "
 msgstr ""
 
-#: ldmain.c:1196
+#: ldmain.c:1201
 msgid "%F%P: bfd_hash_table_init failed: %E\n"
 msgstr ""
 
-#: ldmain.c:1203
+#: ldmain.c:1208
 msgid "%F%P: bfd_hash_lookup failed: %E\n"
 msgstr ""
 
-#: ldmain.c:1224
+#: ldmain.c:1229
 msgid "%X%C: undefined reference to `%T'\n"
 msgstr ""
 
-#: ldmain.c:1227
+#: ldmain.c:1232
 msgid "%C: warning: undefined reference to `%T'\n"
 msgstr ""
 
-#: ldmain.c:1233
+#: ldmain.c:1238
 msgid "%X%D: more undefined references to `%T' follow\n"
 msgstr ""
 
-#: ldmain.c:1236
+#: ldmain.c:1241
 msgid "%D: warning: more undefined references to `%T' follow\n"
 msgstr ""
 
-#: ldmain.c:1247
+#: ldmain.c:1252
 msgid "%X%B: undefined reference to `%T'\n"
 msgstr ""
 
-#: ldmain.c:1250
+#: ldmain.c:1255
 msgid "%B: warning: undefined reference to `%T'\n"
 msgstr ""
 
-#: ldmain.c:1256
+#: ldmain.c:1261
 msgid "%X%B: more undefined references to `%T' follow\n"
 msgstr ""
 
-#: ldmain.c:1259
+#: ldmain.c:1264
 msgid "%B: warning: more undefined references to `%T' follow\n"
 msgstr ""
 
-#: ldmain.c:1298
+#: ldmain.c:1303
 msgid " additional relocation overflows omitted from the output\n"
 msgstr ""
 
-#: ldmain.c:1311
+#: ldmain.c:1316
 msgid " relocation truncated to fit: %s against undefined symbol `%T'"
 msgstr ""
 
-#: ldmain.c:1316
+#: ldmain.c:1321
 msgid ""
 " relocation truncated to fit: %s against symbol `%T' defined in %A section "
 "in %B"
 msgstr ""
 
-#: ldmain.c:1328
+#: ldmain.c:1333
 msgid " relocation truncated to fit: %s against `%T'"
 msgstr ""
 
-#: ldmain.c:1345
+#: ldmain.c:1350
 #, c-format
 msgid "%X%C: dangerous relocation: %s\n"
 msgstr ""
 
-#: ldmain.c:1360
+#: ldmain.c:1365
 msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
 msgstr ""
 
@@ -1256,584 +1256,584 @@
 msgid "%P%F: bfd_new_link_order failed\n"
 msgstr ""
 
-#: ldwrite.c:354
+#: ldwrite.c:355
 msgid "%F%P: cannot create split section name for %s\n"
 msgstr ""
 
-#: ldwrite.c:366
+#: ldwrite.c:367
 msgid "%F%P: clone section failed: %E\n"
 msgstr ""
 
-#: ldwrite.c:404
+#: ldwrite.c:405
 #, c-format
 msgid "%8x something else\n"
 msgstr ""
 
-#: ldwrite.c:574
+#: ldwrite.c:575
 msgid "%F%P: final link failed: %E\n"
 msgstr ""
 
-#: lexsup.c:209 lexsup.c:349
+#: lexsup.c:211 lexsup.c:351
 msgid "KEYWORD"
 msgstr ""
 
-#: lexsup.c:209
+#: lexsup.c:211
 msgid "Shared library control for HP/UX compatibility"
 msgstr ""
 
-#: lexsup.c:212
+#: lexsup.c:214
 msgid "ARCH"
 msgstr ""
 
-#: lexsup.c:212
+#: lexsup.c:214
 msgid "Set architecture"
 msgstr ""
 
-#: lexsup.c:214 lexsup.c:459
+#: lexsup.c:216 lexsup.c:461
 msgid "TARGET"
 msgstr ""
 
-#: lexsup.c:214
+#: lexsup.c:216
 msgid "Specify target for following input files"
 msgstr ""
 
-#: lexsup.c:217 lexsup.c:268 lexsup.c:280 lexsup.c:293 lexsup.c:295
-#: lexsup.c:413 lexsup.c:471 lexsup.c:533 lexsup.c:546
+#: lexsup.c:219 lexsup.c:270 lexsup.c:282 lexsup.c:295 lexsup.c:297
+#: lexsup.c:415 lexsup.c:473 lexsup.c:535 lexsup.c:548
 msgid "FILE"
 msgstr ""
 
-#: lexsup.c:217
+#: lexsup.c:219
 msgid "Read MRI format linker script"
 msgstr ""
 
-#: lexsup.c:219
+#: lexsup.c:221
 msgid "Force common symbols to be defined"
 msgstr ""
 
-#: lexsup.c:223 lexsup.c:515 lexsup.c:517 lexsup.c:519 lexsup.c:521
+#: lexsup.c:225 lexsup.c:517 lexsup.c:519 lexsup.c:521 lexsup.c:523
 msgid "ADDRESS"
 msgstr ""
 
-#: lexsup.c:223
+#: lexsup.c:225
 msgid "Set start address"
 msgstr ""
 
-#: lexsup.c:225
+#: lexsup.c:227
 msgid "Export all dynamic symbols"
 msgstr ""
 
-#: lexsup.c:227
+#: lexsup.c:229
 msgid "Undo the effect of --export-dynamic"
 msgstr ""
 
-#: lexsup.c:229
+#: lexsup.c:231
 msgid "Link big-endian objects"
 msgstr ""
 
-#: lexsup.c:231
+#: lexsup.c:233
 msgid "Link little-endian objects"
 msgstr ""
 
-#: lexsup.c:233 lexsup.c:236
+#: lexsup.c:235 lexsup.c:238
 msgid "SHLIB"
 msgstr ""
 
-#: lexsup.c:233
+#: lexsup.c:235
 msgid "Auxiliary filter for shared object symbol table"
 msgstr ""
 
-#: lexsup.c:236
+#: lexsup.c:238
 msgid "Filter for shared object symbol table"
 msgstr ""
 
-#: lexsup.c:239
+#: lexsup.c:241
 msgid "Ignored"
 msgstr ""
 
-#: lexsup.c:241
+#: lexsup.c:243
 msgid "SIZE"
 msgstr ""
 
-#: lexsup.c:241
+#: lexsup.c:243
 msgid "Small data size (if no size, same as --shared)"
 msgstr ""
 
-#: lexsup.c:244
+#: lexsup.c:246
 msgid "FILENAME"
 msgstr ""
 
-#: lexsup.c:244
+#: lexsup.c:246
 msgid "Set internal name of shared library"
 msgstr ""
 
-#: lexsup.c:246
+#: lexsup.c:248
 msgid "PROGRAM"
 msgstr ""
 
-#: lexsup.c:246
+#: lexsup.c:248
 msgid "Set PROGRAM as the dynamic linker to use"
 msgstr ""
 
-#: lexsup.c:249
+#: lexsup.c:251
 msgid "LIBNAME"
 msgstr ""
 
-#: lexsup.c:249
+#: lexsup.c:251
 msgid "Search for library LIBNAME"
 msgstr ""
 
-#: lexsup.c:251
+#: lexsup.c:253
 msgid "DIRECTORY"
 msgstr ""
 
-#: lexsup.c:251
+#: lexsup.c:253
 msgid "Add DIRECTORY to library search path"
 msgstr ""
 
-#: lexsup.c:254
+#: lexsup.c:256
 msgid "Override the default sysroot location"
 msgstr ""
 
-#: lexsup.c:256
+#: lexsup.c:258
 msgid "EMULATION"
 msgstr ""
 
-#: lexsup.c:256
+#: lexsup.c:258
 msgid "Set emulation"
 msgstr ""
 
-#: lexsup.c:258
+#: lexsup.c:260
 msgid "Print map file on standard output"
 msgstr ""
 
-#: lexsup.c:260
+#: lexsup.c:262
 msgid "Do not page align data"
 msgstr ""
 
-#: lexsup.c:262
+#: lexsup.c:264
 msgid "Do not page align data, do not make text readonly"
 msgstr ""
 
-#: lexsup.c:265
+#: lexsup.c:267
 msgid "Page align data, make text readonly"
 msgstr ""
 
-#: lexsup.c:268
+#: lexsup.c:270
 msgid "Set output file name"
 msgstr ""
 
-#: lexsup.c:270
+#: lexsup.c:272
 msgid "Optimize output file"
 msgstr ""
 
-#: lexsup.c:272
+#: lexsup.c:274
 msgid "Ignored for SVR4 compatibility"
 msgstr ""
 
-#: lexsup.c:276
+#: lexsup.c:278
 msgid "Generate relocatable output"
 msgstr ""
 
-#: lexsup.c:280
+#: lexsup.c:282
 msgid "Just link symbols (if directory, same as --rpath)"
 msgstr ""
 
-#: lexsup.c:283
+#: lexsup.c:285
 msgid "Strip all symbols"
 msgstr ""
 
-#: lexsup.c:285
+#: lexsup.c:287
 msgid "Strip debugging symbols"
 msgstr ""
 
-#: lexsup.c:287
+#: lexsup.c:289
 msgid "Strip symbols in discarded sections"
 msgstr ""
 
-#: lexsup.c:289
+#: lexsup.c:291
 msgid "Do not strip symbols in discarded sections"
 msgstr ""
 
-#: lexsup.c:291
+#: lexsup.c:293
 msgid "Trace file opens"
 msgstr ""
 
-#: lexsup.c:293
+#: lexsup.c:295
 msgid "Read linker script"
 msgstr ""
 
-#: lexsup.c:295
+#: lexsup.c:297
 msgid "Read default linker script"
 msgstr ""
 
-#: lexsup.c:299 lexsup.c:317 lexsup.c:390 lexsup.c:411 lexsup.c:508
-#: lexsup.c:536 lexsup.c:575
+#: lexsup.c:301 lexsup.c:319 lexsup.c:392 lexsup.c:413 lexsup.c:510
+#: lexsup.c:538 lexsup.c:577
 msgid "SYMBOL"
 msgstr ""
 
-#: lexsup.c:299
+#: lexsup.c:301
 msgid "Start with undefined reference to SYMBOL"
 msgstr ""
 
-#: lexsup.c:302
+#: lexsup.c:304
 msgid "[=SECTION]"
 msgstr ""
 
-#: lexsup.c:303
+#: lexsup.c:305
 msgid "Don't merge input [SECTION | orphan] sections"
 msgstr ""
 
-#: lexsup.c:305
+#: lexsup.c:307
 msgid "Build global constructor/destructor tables"
 msgstr ""
 
-#: lexsup.c:307
+#: lexsup.c:309
 msgid "Print version information"
 msgstr ""
 
-#: lexsup.c:309
+#: lexsup.c:311
 msgid "Print version and emulation information"
 msgstr ""
 
-#: lexsup.c:311
+#: lexsup.c:313
 msgid "Discard all local symbols"
 msgstr ""
 
-#: lexsup.c:313
+#: lexsup.c:315
 msgid "Discard temporary local symbols (default)"
 msgstr ""
 
-#: lexsup.c:315
+#: lexsup.c:317
 msgid "Don't discard any local symbols"
 msgstr ""
 
-#: lexsup.c:317
+#: lexsup.c:319
 msgid "Trace mentions of SYMBOL"
 msgstr ""
 
-#: lexsup.c:319 lexsup.c:473 lexsup.c:475
+#: lexsup.c:321 lexsup.c:475 lexsup.c:477
 msgid "PATH"
 msgstr ""
 
-#: lexsup.c:319
+#: lexsup.c:321
 msgid "Default search path for Solaris compatibility"
 msgstr ""
 
-#: lexsup.c:322
+#: lexsup.c:324
 msgid "Start a group"
 msgstr ""
 
-#: lexsup.c:324
+#: lexsup.c:326
 msgid "End a group"
 msgstr ""
 
-#: lexsup.c:328
+#: lexsup.c:330
 msgid "Accept input files whose architecture cannot be determined"
 msgstr ""
 
-#: lexsup.c:332
+#: lexsup.c:334
 msgid "Reject input files whose architecture is unknown"
 msgstr ""
 
-#: lexsup.c:335
+#: lexsup.c:337
 msgid ""
 "Set DT_NEEDED tags for DT_NEEDED entries in\n"
 "                                following dynamic libs"
 msgstr ""
 
-#: lexsup.c:339
+#: lexsup.c:341
 msgid ""
 "Do not set DT_NEEDED tags for DT_NEEDED entries\n"
 "                                in following dynamic libs"
 msgstr ""
 
-#: lexsup.c:343
+#: lexsup.c:345
 msgid "Only set DT_NEEDED for following dynamic libs if used"
 msgstr ""
 
-#: lexsup.c:346
+#: lexsup.c:348
 msgid "Always set DT_NEEDED for following dynamic libs"
 msgstr ""
 
-#: lexsup.c:349
+#: lexsup.c:351
 msgid "Ignored for SunOS compatibility"
 msgstr ""
 
-#: lexsup.c:351
+#: lexsup.c:353
 msgid "Link against shared libraries"
 msgstr ""
 
-#: lexsup.c:357
+#: lexsup.c:359
 msgid "Do not link against shared libraries"
 msgstr ""
 
-#: lexsup.c:365
+#: lexsup.c:367
 msgid "Bind global references locally"
 msgstr ""
 
-#: lexsup.c:367
+#: lexsup.c:369
 msgid "Bind global function references locally"
 msgstr ""
 
-#: lexsup.c:369
+#: lexsup.c:371
 msgid "Check section addresses for overlaps (default)"
 msgstr ""
 
-#: lexsup.c:372
+#: lexsup.c:374
 msgid "Do not check section addresses for overlaps"
 msgstr ""
 
-#: lexsup.c:375
+#: lexsup.c:377
 msgid "Output cross reference table"
 msgstr ""
 
-#: lexsup.c:377
+#: lexsup.c:379
 msgid "SYMBOL=EXPRESSION"
 msgstr ""
 
-#: lexsup.c:377
+#: lexsup.c:379
 msgid "Define a symbol"
 msgstr ""
 
-#: lexsup.c:379
+#: lexsup.c:381
 msgid "[=STYLE]"
 msgstr ""
 
-#: lexsup.c:379
+#: lexsup.c:381
 msgid "Demangle symbol names [using STYLE]"
 msgstr ""
 
-#: lexsup.c:382
+#: lexsup.c:384
 msgid "Generate embedded relocs"
 msgstr ""
 
-#: lexsup.c:384
+#: lexsup.c:386
 msgid "Treat warnings as errors"
 msgstr ""
 
-#: lexsup.c:387
+#: lexsup.c:389
 msgid "Do not treat warnings as errors (default)"
 msgstr ""
 
-#: lexsup.c:390
+#: lexsup.c:392
 msgid "Call SYMBOL at unload-time"
 msgstr ""
 
-#: lexsup.c:392
+#: lexsup.c:394
 msgid "Force generation of file with .exe suffix"
 msgstr ""
 
-#: lexsup.c:394
+#: lexsup.c:396
 msgid "Remove unused sections (on some targets)"
 msgstr ""
 
-#: lexsup.c:397
+#: lexsup.c:399
 msgid "Don't remove unused sections (default)"
 msgstr ""
 
-#: lexsup.c:400
+#: lexsup.c:402
 msgid "List removed unused sections on stderr"
 msgstr ""
 
-#: lexsup.c:403
+#: lexsup.c:405
 msgid "Do not list removed unused sections"
 msgstr ""
 
-#: lexsup.c:406
+#: lexsup.c:408
 msgid "Set default hash table size close to <NUMBER>"
 msgstr ""
 
-#: lexsup.c:409
+#: lexsup.c:411
 msgid "Print option help"
 msgstr ""
 
-#: lexsup.c:411
+#: lexsup.c:413
 msgid "Call SYMBOL at load-time"
 msgstr ""
 
-#: lexsup.c:413
+#: lexsup.c:415
 msgid "Write a map file"
 msgstr ""
 
-#: lexsup.c:415
+#: lexsup.c:417
 msgid "Do not define Common storage"
 msgstr ""
 
-#: lexsup.c:417
+#: lexsup.c:419
 msgid "Do not demangle symbol names"
 msgstr ""
 
-#: lexsup.c:419
+#: lexsup.c:421
 msgid "Use less memory and more disk I/O"
 msgstr ""
 
-#: lexsup.c:421
+#: lexsup.c:423
 msgid "Do not allow unresolved references in object files"
 msgstr ""
 
-#: lexsup.c:424
+#: lexsup.c:426
 msgid "Allow unresolved references in shared libaries"
 msgstr ""
 
-#: lexsup.c:428
+#: lexsup.c:430
 msgid "Do not allow unresolved references in shared libs"
 msgstr ""
 
-#: lexsup.c:432
+#: lexsup.c:434
 msgid "Allow multiple definitions"
 msgstr ""
 
-#: lexsup.c:434
+#: lexsup.c:436
 msgid "Disallow undefined version"
 msgstr ""
 
-#: lexsup.c:436
+#: lexsup.c:438
 msgid "Create default symbol version"
 msgstr ""
 
-#: lexsup.c:439
+#: lexsup.c:441
 msgid "Create default symbol version for imported symbols"
 msgstr ""
 
-#: lexsup.c:442
+#: lexsup.c:444
 msgid "Don't warn about mismatched input files"
 msgstr ""
 
-#: lexsup.c:445
+#: lexsup.c:447
 msgid "Don't warn on finding an incompatible library"
 msgstr ""
 
-#: lexsup.c:448
+#: lexsup.c:450
 msgid "Turn off --whole-archive"
 msgstr ""
 
-#: lexsup.c:450
+#: lexsup.c:452
 msgid "Create an output file even if errors occur"
 msgstr ""
 
-#: lexsup.c:455
+#: lexsup.c:457
 msgid ""
 "Only use library directories specified on\n"
 "                                the command line"
 msgstr ""
 
-#: lexsup.c:459
+#: lexsup.c:461
 msgid "Specify target of output file"
 msgstr ""
 
-#: lexsup.c:462
+#: lexsup.c:464
 msgid "Ignored for Linux compatibility"
 msgstr ""
 
-#: lexsup.c:465
+#: lexsup.c:467
 msgid "Reduce memory overheads, possibly taking much longer"
 msgstr ""
 
-#: lexsup.c:468
+#: lexsup.c:470
 msgid "Relax branches on certain targets"
 msgstr ""
 
-#: lexsup.c:471
+#: lexsup.c:473
 msgid "Keep only symbols listed in FILE"
 msgstr ""
 
-#: lexsup.c:473
+#: lexsup.c:475
 msgid "Set runtime shared library search path"
 msgstr ""
 
-#: lexsup.c:475
+#: lexsup.c:477
 msgid "Set link time shared library search path"
 msgstr ""
 
-#: lexsup.c:478
+#: lexsup.c:480
 msgid "Create a shared library"
 msgstr ""
 
-#: lexsup.c:482
+#: lexsup.c:484
 msgid "Create a position independent executable"
 msgstr ""
 
-#: lexsup.c:486
+#: lexsup.c:488
 msgid "[=ascending|descending]"
 msgstr ""
 
-#: lexsup.c:487
+#: lexsup.c:489
 msgid "Sort common symbols by alignment [in specified order]"
 msgstr ""
 
-#: lexsup.c:492
+#: lexsup.c:494
 msgid "name|alignment"
 msgstr ""
 
-#: lexsup.c:493
+#: lexsup.c:495
 msgid "Sort sections by name or maximum alignment"
 msgstr ""
 
-#: lexsup.c:495
+#: lexsup.c:497
 msgid "COUNT"
 msgstr ""
 
-#: lexsup.c:495
+#: lexsup.c:497
 msgid "How many tags to reserve in .dynamic section"
 msgstr ""
 
-#: lexsup.c:498
+#: lexsup.c:500
 msgid "[=SIZE]"
 msgstr ""
 
-#: lexsup.c:498
+#: lexsup.c:500
 msgid "Split output sections every SIZE octets"
 msgstr ""
 
-#: lexsup.c:501
+#: lexsup.c:503
 msgid "[=COUNT]"
 msgstr ""
 
-#: lexsup.c:501
+#: lexsup.c:503
 msgid "Split output sections every COUNT relocs"
 msgstr ""
 
-#: lexsup.c:504
+#: lexsup.c:506
 msgid "Print memory usage statistics"
 msgstr ""
 
-#: lexsup.c:506
+#: lexsup.c:508
 msgid "Display target specific options"
 msgstr ""
 
-#: lexsup.c:508
+#: lexsup.c:510
 msgid "Do task level linking"
 msgstr ""
 
-#: lexsup.c:510
+#: lexsup.c:512
 msgid "Use same format as native linker"
 msgstr ""
 
-#: lexsup.c:512
+#: lexsup.c:514
 msgid "SECTION=ADDRESS"
 msgstr ""
 
-#: lexsup.c:512
+#: lexsup.c:514
 msgid "Set address of named section"
 msgstr ""
 
-#: lexsup.c:515
+#: lexsup.c:517
 msgid "Set address of .bss section"
 msgstr ""
 
-#: lexsup.c:517
+#: lexsup.c:519
 msgid "Set address of .data section"
 msgstr ""
 
-#: lexsup.c:519
+#: lexsup.c:521
 msgid "Set address of .text section"
 msgstr ""
 
-#: lexsup.c:521
+#: lexsup.c:523
 msgid "Set address of text segment"
 msgstr ""
 
-#: lexsup.c:524
+#: lexsup.c:526
 msgid ""
 "How to handle unresolved symbols.  <method> is:\n"
 "                                ignore-all, report-all, ignore-in-object-"
@@ -1841,105 +1841,105 @@
 "                                ignore-in-shared-libs"
 msgstr ""
 
-#: lexsup.c:529
+#: lexsup.c:531
 msgid "Output lots of information during link"
 msgstr ""
 
-#: lexsup.c:533
+#: lexsup.c:535
 msgid "Read version information script"
 msgstr ""
 
-#: lexsup.c:536
+#: lexsup.c:538
 msgid ""
 "Take export symbols list from .exports, using\n"
 "                                SYMBOL as the version."
 msgstr ""
 
-#: lexsup.c:540
+#: lexsup.c:542
 msgid "Add data symbols to dynamic list"
 msgstr ""
 
-#: lexsup.c:542
+#: lexsup.c:544
 msgid "Use C++ operator new/delete dynamic list"
 msgstr ""
 
-#: lexsup.c:544
+#: lexsup.c:546
 msgid "Use C++ typeinfo dynamic list"
 msgstr ""
 
-#: lexsup.c:546
+#: lexsup.c:548
 msgid "Read dynamic list"
 msgstr ""
 
-#: lexsup.c:548
+#: lexsup.c:550
 msgid "Warn about duplicate common symbols"
 msgstr ""
 
-#: lexsup.c:550
+#: lexsup.c:552
 msgid "Warn if global constructors/destructors are seen"
 msgstr ""
 
-#: lexsup.c:553
+#: lexsup.c:555
 msgid "Warn if the multiple GP values are used"
 msgstr ""
 
-#: lexsup.c:555
+#: lexsup.c:557
 msgid "Warn only once per undefined symbol"
 msgstr ""
 
-#: lexsup.c:557
+#: lexsup.c:559
 msgid "Warn if start of section changes due to alignment"
 msgstr ""
 
-#: lexsup.c:560
+#: lexsup.c:562
 msgid "Warn if shared object has DT_TEXTREL"
 msgstr ""
 
-#: lexsup.c:563
+#: lexsup.c:565
 msgid "Warn if an object has alternate ELF machine code"
 msgstr ""
 
-#: lexsup.c:567
+#: lexsup.c:569
 msgid "Report unresolved symbols as warnings"
 msgstr ""
 
-#: lexsup.c:570
+#: lexsup.c:572
 msgid "Report unresolved symbols as errors"
 msgstr ""
 
-#: lexsup.c:572
+#: lexsup.c:574
 msgid "Include all objects from following archives"
 msgstr ""
 
-#: lexsup.c:575
+#: lexsup.c:577
 msgid "Use wrapper functions for SYMBOL"
 msgstr ""
 
-#: lexsup.c:722
+#: lexsup.c:726
 msgid "%P: unrecognized option '%s'\n"
 msgstr ""
 
-#: lexsup.c:726
+#: lexsup.c:730
 msgid "%P%F: use the --help option for usage information\n"
 msgstr ""
 
-#: lexsup.c:744
+#: lexsup.c:748
 msgid "%P%F: unrecognized -a option `%s'\n"
 msgstr ""
 
-#: lexsup.c:757
+#: lexsup.c:761
 msgid "%P%F: unrecognized -assert option `%s'\n"
 msgstr ""
 
-#: lexsup.c:800
+#: lexsup.c:804
 msgid "%F%P: unknown demangling style `%s'"
 msgstr ""
 
-#: lexsup.c:866
+#: lexsup.c:870
 msgid "%P%F: invalid number `%s'\n"
 msgstr ""
 
-#: lexsup.c:964
+#: lexsup.c:968
 msgid "%P%F: bad --unresolved-symbols option: %s\n"
 msgstr ""
 
@@ -1951,109 +1951,109 @@
 #. an error message here.  We cannot just make this a warning,
 #. increment optind, and continue because getopt is too confused
 #. and will seg-fault the next time around.
-#: lexsup.c:1038
+#: lexsup.c:1042
 msgid "%P%F: bad -rpath option\n"
 msgstr ""
 
-#: lexsup.c:1149
+#: lexsup.c:1153
 msgid "%P%F: -shared not supported\n"
 msgstr ""
 
-#: lexsup.c:1158
+#: lexsup.c:1162
 msgid "%P%F: -pie not supported\n"
 msgstr ""
 
-#: lexsup.c:1166
+#: lexsup.c:1170
 msgid "descending"
 msgstr ""
 
-#: lexsup.c:1168
+#: lexsup.c:1172
 msgid "ascending"
 msgstr ""
 
-#: lexsup.c:1171
+#: lexsup.c:1175
 msgid "%P%F: invalid common section sorting option: %s\n"
 msgstr ""
 
-#: lexsup.c:1175
+#: lexsup.c:1179
 msgid "name"
 msgstr ""
 
-#: lexsup.c:1177
+#: lexsup.c:1181
 msgid "alignment"
 msgstr ""
 
-#: lexsup.c:1180
+#: lexsup.c:1184
 msgid "%P%F: invalid section sorting option: %s\n"
 msgstr ""
 
-#: lexsup.c:1214
+#: lexsup.c:1218
 msgid "%P%F: invalid argument to option \"--section-start\"\n"
 msgstr ""
 
-#: lexsup.c:1221
+#: lexsup.c:1225
 msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
 msgstr ""
 
-#: lexsup.c:1441
+#: lexsup.c:1445
 msgid "%P%F: may not nest groups (--help for usage)\n"
 msgstr ""
 
-#: lexsup.c:1448
+#: lexsup.c:1452
 msgid "%P%F: group ended before it began (--help for usage)\n"
 msgstr ""
 
-#: lexsup.c:1476
+#: lexsup.c:1480
 msgid "%P%X: --hash-size needs a numeric argument\n"
 msgstr ""
 
-#: lexsup.c:1527 lexsup.c:1540
+#: lexsup.c:1531 lexsup.c:1544
 msgid "%P%F: invalid hex number `%s'\n"
 msgstr ""
 
-#: lexsup.c:1576
+#: lexsup.c:1580
 #, c-format
 msgid "Usage: %s [options] file...\n"
 msgstr ""
 
-#: lexsup.c:1578
+#: lexsup.c:1582
 #, c-format
 msgid "Options:\n"
 msgstr ""
 
-#: lexsup.c:1656
+#: lexsup.c:1660
 #, c-format
 msgid "  @FILE"
 msgstr ""
 
-#: lexsup.c:1659
+#: lexsup.c:1663
 #, c-format
 msgid "Read options from FILE\n"
 msgstr ""
 
 #. Note: Various tools (such as libtool) depend upon the
 #. format of the listings below - do not change them.
-#: lexsup.c:1664
+#: lexsup.c:1668
 #, c-format
 msgid "%s: supported targets:"
 msgstr ""
 
-#: lexsup.c:1672
+#: lexsup.c:1676
 #, c-format
 msgid "%s: supported emulations: "
 msgstr ""
 
-#: lexsup.c:1677
+#: lexsup.c:1681
 #, c-format
 msgid "%s: emulation specific options:\n"
 msgstr ""
 
-#: lexsup.c:1682
+#: lexsup.c:1686
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
-#: mri.c:291
+#: mri.c:292
 msgid "%P%F: unknown format type %s\n"
 msgstr ""
 
@@ -2097,53 +2097,53 @@
 msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
 msgstr ""
 
-#: pe-dll.c:1410
+#: pe-dll.c:1429
 #, c-format
 msgid "%XError: %d-bit reloc in dll\n"
 msgstr ""
 
-#: pe-dll.c:1538
+#: pe-dll.c:1557
 #, c-format
 msgid "%s: Can't open output def file %s\n"
 msgstr ""
 
-#: pe-dll.c:1683
+#: pe-dll.c:1702
 #, c-format
 msgid "; no contents available\n"
 msgstr ""
 
-#: pe-dll.c:2600
+#: pe-dll.c:2619
 msgid ""
 "%C: variable '%T' can't be auto-imported. Please read the documentation for "
 "ld's --enable-auto-import for details.\n"
 msgstr ""
 
-#: pe-dll.c:2630
+#: pe-dll.c:2649
 #, c-format
 msgid "%XCan't open .lib file: %s\n"
 msgstr ""
 
-#: pe-dll.c:2635
+#: pe-dll.c:2654
 #, c-format
 msgid "Creating library file: %s\n"
 msgstr ""
 
-#: pe-dll.c:2664
+#: pe-dll.c:2683
 #, c-format
 msgid "%Xbfd_openr %s: %E\n"
 msgstr ""
 
-#: pe-dll.c:2676
+#: pe-dll.c:2695
 #, c-format
 msgid "%X%s(%s): can't find member in non-archive file"
 msgstr ""
 
-#: pe-dll.c:2688
+#: pe-dll.c:2707
 #, c-format
 msgid "%X%s(%s): can't find member in archive"
 msgstr ""
 
-#: pe-dll.c:3078
+#: pe-dll.c:3097
 #, c-format
 msgid "%XError: can't use long section names on this arch\n"
 msgstr ""
diff --git a/binutils/ld/scripttempl/elf.sc b/binutils/ld/scripttempl/elf.sc
index 886f578..5378afa 100644
--- a/binutils/ld/scripttempl/elf.sc
+++ b/binutils/ld/scripttempl/elf.sc
@@ -311,6 +311,7 @@
   COMBRELOCCAT="cat > $COMBRELOC"
 fi
 eval $COMBRELOCCAT <<EOF
+  ${INITIAL_RELOC_SECTIONS}
   .rel.init     ${RELOCATING-0} : { *(.rel.init) }
   .rela.init    ${RELOCATING-0} : { *(.rela.init) }
   .rel.text     ${RELOCATING-0} : { *(.rel.text${RELOCATING+ .rel.text.* .rel.gnu.linkonce.t.*}) }
diff --git a/binutils/ld/testsuite/ChangeLog b/binutils/ld/testsuite/ChangeLog
index 5fb02a4..521c22c 100644
--- a/binutils/ld/testsuite/ChangeLog
+++ b/binutils/ld/testsuite/ChangeLog
@@ -1,3 +1,33 @@
+2010-02-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+	2010-02-15  Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
+	* ld-arm/jump-reloc-veneers-long.d: Correct testcase for
+	arm-none-eabi target.
+	* ld-arm/jump-reloc-veneers-short1.d: Likewise
+	* ld-arm/jump-reloc-veneers-short2.d: Likewise
+
+	2010-02-01  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+	* ld-arm/jump-reloc-veneers-long.d: New test.
+	* ld-arm/jump-reloc-veneers-short1.d: Likewise.
+	* ld-arm/jump-reloc-veneers-short2.d: Likewise.
+	* ld-arm/jump-reloc-veneers.s: Likewise.
+	* ld-arm/arm-elf.exp (armelftests): Run them.
+
+2010-01-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* ld-powerpc/aix-ref-1-32.od, ld-powerpc/aix-ref-1-64.od,
+	ld-powerpc/aix-ref-1.s: New tests.
+	* ld-powerpc/aix52.exp: Run them.
+
+2009-10-19  Hans-Peter Nilsson  <hp@axis.com>
+
+	* ld-cris/tls-e-20.d, ld-cris/tls-e-20a.d, ld-cris/tls-e-22.d,
+	ld-cris/tls-e-80.d, ld-cris/tls-e-dtpoffd1.d,
+	ld-cris/tls-e-dtpoffd3.d, ld-cris/tls-ldgde-14.d,
+	ld-cris/tls-ldgde-15.d, ld-cris/tls-ldgdex-14.d,
+	ld-cris/tls-ldgdex-15.d: Adjust for change in non-shared
+	R_CRIS_32_DTPREL and R_CRIS_16_DTPREL relocations.
+
 2009-10-03  Alan Modra  <amodra@bigpond.net.au>
 
 	* ld-powerpc/tlsexe.d: Update.
diff --git a/binutils/ld/testsuite/ld-arm/arm-elf.exp b/binutils/ld/testsuite/ld-arm/arm-elf.exp
index d88fb37..4b65c37 100644
--- a/binutils/ld/testsuite/ld-arm/arm-elf.exp
+++ b/binutils/ld/testsuite/ld-arm/arm-elf.exp
@@ -419,6 +419,24 @@
      {{objdump -fdw farcall-mixed-lib.d}}
      "farcall-mixed-lib.so"}
 
+    {"R_ARM_THM_JUMP24 Relocation veneers: Short 1" 
+     "-defsym _start=0x8000 --section-start destsect=0x00009000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-short1.d}}
+     "jump-reloc-veneers-short1"}
+    {"R_ARM_THM_JUMP24 Relocation veneers: Short 2" 
+     "-defsym _start=0x8000 --section-start destsect=0x00900000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-short2.d}}
+     "jump-reloc-veneers-short2"}
+    {"R_ARM_THM_JUMP24 Relocation veneers: Long" 
+     "-defsym _start=0x8000 --section-start destsect=0x09000000" 
+     "-march=armv7-a -mthumb" 
+     {jump-reloc-veneers.s}
+     {{objdump -d jump-reloc-veneers-long.d}}
+     "jump-reloc-veneers-long"}
 }
 
 run_ld_link_tests $armeabitests
diff --git a/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-long.d b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-long.d
new file mode 100644
index 0000000..0dba9ec
--- /dev/null
+++ b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-long.d
@@ -0,0 +1,21 @@
+
+.*:     file format.*
+
+
+Disassembly of section destsect:
+
+09000000 <[^>]*>:
+ 9000000:	e7fe      	b.n	9000000 <dest>
+
+Disassembly of section .text:
+
+000080.. <[^>]*>:
+    80..:	b802f000 	.word	0xb802f000
+    80..:	00000000 	andeq	r0, r0, r0
+
+000080.. <[^>]*>:
+    80..:	4778      	bx	pc
+    80..:	46c0      	nop			; \(mov r8, r8\)
+    80..:	e59fc000 	ldr	ip, \[pc, #0\]	; 80.. <__dest_veneer\+0xc>
+    80..:	e12fff1c 	bx	ip
+    80..:	09000001 	.word	0x09000001
diff --git a/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-short1.d b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-short1.d
new file mode 100644
index 0000000..3796652
--- /dev/null
+++ b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-short1.d
@@ -0,0 +1,13 @@
+
+.*:     file format.*
+
+
+Disassembly of section destsect:
+
+00009000 <[^>]*>:
+    9000:	e7fe      	b.n	9000 <dest>
+
+Disassembly of section .text:
+
+000080.. <[^>]*>:
+    80..:	f000 bf.. 	b.w	9000 <dest>
diff --git a/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-short2.d b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-short2.d
new file mode 100644
index 0000000..22fa6df
--- /dev/null
+++ b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers-short2.d
@@ -0,0 +1,13 @@
+
+.*:     file format.*
+
+
+Disassembly of section destsect:
+
+00900000 <[^>]*>:
+  900000:	e7fe      	b.n	900000 <dest>
+
+Disassembly of section .text:
+
+000080.. <[^>]*>:
+    80..:	f0f7 9f.. 	b.w	900000 <dest>
diff --git a/binutils/ld/testsuite/ld-arm/jump-reloc-veneers.s b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers.s
new file mode 100644
index 0000000..d307c08
--- /dev/null
+++ b/binutils/ld/testsuite/ld-arm/jump-reloc-veneers.s
@@ -0,0 +1,12 @@
+	.text
+	.syntax unified
+	.thumb_func
+	.global _start
+	.type _start,%function
+_start:
+	b.w dest
+
+	.section destsect, "x"
+	.thumb_func
+dest:
+	b dest
diff --git a/binutils/ld/testsuite/ld-cris/tls-e-20.d b/binutils/ld/testsuite/ld-cris/tls-e-20.d
index d4fd8fc..e45bb47 100644
--- a/binutils/ld/testsuite/ld-cris/tls-e-20.d
+++ b/binutils/ld/testsuite/ld-cris/tls-e-20.d
@@ -64,7 +64,7 @@
    80098:	6fae 1800 0000      	move\.d 18 <x2\+0x10>,\$r10
 #...
 000800a0 <tlsdsofn>:
-   800a0:	6fae f4ff ffff      	move\.d 0xfffffff4,\$r10
+   800a0:	6fae 0000 0000      	move\.d 0 <x>,\$r10
 #...
 000800a8 <tlsdsofn10>:
    800a8:	6fae 1400 0000      	move\.d 14 <x2\+0xc>,\$r10
diff --git a/binutils/ld/testsuite/ld-cris/tls-e-20a.d b/binutils/ld/testsuite/ld-cris/tls-e-20a.d
index 2ea7d0d..b1550b4 100644
--- a/binutils/ld/testsuite/ld-cris/tls-e-20a.d
+++ b/binutils/ld/testsuite/ld-cris/tls-e-20a.d
@@ -102,7 +102,7 @@
 #...
 
 000800cc <tlsdsofn>:
-   800cc:	6fae f4ff ffff      	move\.d 0xfffffff4,\$r10
+   800cc:	6fae 8000 0000      	move\.d 80 <x>,\$r10
 #...
 
 000800d4 <tlsdsofn10>:
diff --git a/binutils/ld/testsuite/ld-cris/tls-e-22.d b/binutils/ld/testsuite/ld-cris/tls-e-22.d
index 1976d99..93ab45d 100644
--- a/binutils/ld/testsuite/ld-cris/tls-e-22.d
+++ b/binutils/ld/testsuite/ld-cris/tls-e-22.d
@@ -35,5 +35,5 @@
    80094:	41b2                	moveq 1,\$r11
 #...
 00080098 <tlsdsofn>:
-   80098:	6fae fcff ffff      	move\.d 0xfffffffc,\$r10
+   80098:	6fae 8000 0000      	move\.d 80 <x>,\$r10
 #...
diff --git a/binutils/ld/testsuite/ld-cris/tls-e-80.d b/binutils/ld/testsuite/ld-cris/tls-e-80.d
index 273ac1f..6210593 100644
--- a/binutils/ld/testsuite/ld-cris/tls-e-80.d
+++ b/binutils/ld/testsuite/ld-cris/tls-e-80.d
@@ -81,7 +81,7 @@
    800a8:	6fae b4ff ffff      	move.d 0xffffffb4,\$r10
 #...
 000800b0 <tlsdsofn>:
-   800b0:	6fae b0ff ffff      	move\.d 0xffffffb0,\$r10
+   800b0:	6fae 0000 0000      	move\.d 0 <x>,\$r10
 #...
 000800b8 <tlsdsofn10>:
    800b8:	6fae 1400 0000      	move\.d 14 <gx\+0x4>,\$r10
diff --git a/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd1.d b/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd1.d
index e81485b..5da24b5 100644
--- a/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd1.d
+++ b/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd1.d
@@ -27,6 +27,6 @@
  82120 00000000 00000000 00000000 01000000  .*
  82130 80000000                             .*
 Contents of section .debug_info:
- 0000 fcffffff                             .*
+ 0000 80000000                             .*
 Contents of section .debug_line:
 #pass
diff --git a/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd3.d b/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd3.d
index 8612e38..6013a3a 100644
--- a/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd3.d
+++ b/binutils/ld/testsuite/ld-cris/tls-e-dtpoffd3.d
@@ -27,6 +27,6 @@
  8211c 00000000 00000000 00000000 01000000  .*
  8212c 80000000                             .*
 Contents of section .debug_info:
- 0000 fcffffff                             .*
+ 0000 80000000                             .*
 Contents of section .debug_line:
 #pass
diff --git a/binutils/ld/testsuite/ld-cris/tls-ldgde-14.d b/binutils/ld/testsuite/ld-cris/tls-ldgde-14.d
index aa8e60e..9eada3e 100644
--- a/binutils/ld/testsuite/ld-cris/tls-ldgde-14.d
+++ b/binutils/ld/testsuite/ld-cris/tls-ldgde-14.d
@@ -51,8 +51,8 @@
    80094:	41b2                	moveq 1,\$r11
 #...
 00080098 <tlsdsofn>:
-   80098:	5fae f8ff           	move\.w 0xfff8,\$r10
-   8009c:	5fbe fcff           	move\.w 0xfffc,\$r11
+   80098:	5fae 8800           	move\.w 0x88,\$r10
+   8009c:	5fbe 8c00           	move\.w 0x8c,\$r11
 
 000800a0 <tlsdsofn0>:
    800a0:	5fae 1400           	move\.w 0x14,\$r10
diff --git a/binutils/ld/testsuite/ld-cris/tls-ldgde-15.d b/binutils/ld/testsuite/ld-cris/tls-ldgde-15.d
index 6e71bcf..d5e993d 100644
--- a/binutils/ld/testsuite/ld-cris/tls-ldgde-15.d
+++ b/binutils/ld/testsuite/ld-cris/tls-ldgde-15.d
@@ -51,8 +51,8 @@
    80094:	41b2                	moveq 1,\$r11
 #...
 00080098 <tlsdsofn>:
-   80098:	6fae f8ff ffff      	move.d 0xfffffff8,\$r10
-   8009e:	6fbe fcff ffff      	move.d 0xfffffffc,\$r11
+   80098:	6fae 8800 0000      	move.d 88 <x1>,\$r10
+   8009e:	6fbe 8c00 0000      	move.d 8c <x2>,\$r11
 000800a4 <tlsdsofn2>:
    800a4:	6fae 1400 0000      	move.d 14 <tls128\+0x14>,\$r10
 #...
diff --git a/binutils/ld/testsuite/ld-cris/tls-ldgdex-14.d b/binutils/ld/testsuite/ld-cris/tls-ldgdex-14.d
index 8fdd500..83d94a7 100644
--- a/binutils/ld/testsuite/ld-cris/tls-ldgdex-14.d
+++ b/binutils/ld/testsuite/ld-cris/tls-ldgdex-14.d
@@ -44,7 +44,7 @@
 Contents of section .interp:
 #...
 Contents of section \.text:
- 801dc 41b20000 5faef8ff 5fbefcff 5fae1400  .*
+ 801dc 41b20000 5fae8000 5fbe8400 5fae1400  .*
  801ec 5fae1c00                             .*
 Contents of section \.tdata:
 #...
diff --git a/binutils/ld/testsuite/ld-cris/tls-ldgdex-15.d b/binutils/ld/testsuite/ld-cris/tls-ldgdex-15.d
index 43bac9f..fca739b 100644
--- a/binutils/ld/testsuite/ld-cris/tls-ldgdex-15.d
+++ b/binutils/ld/testsuite/ld-cris/tls-ldgdex-15.d
@@ -44,7 +44,7 @@
 Contents of section \.interp:
 #...
 Contents of section \.text:
- 801dc 41b20000 6faef8ff ffff6fbe fcffffff  .*
+ 801dc 41b20000 6fae8000 00006fbe 84000000  .*
  801ec 6fae1400 00000000 6fae1c00 00000000  .*
 Contents of section \.tdata:
 #...
diff --git a/binutils/ld/testsuite/ld-powerpc/aix-ref-1-32.od b/binutils/ld/testsuite/ld-powerpc/aix-ref-1-32.od
new file mode 100644
index 0000000..1ba90ec
--- /dev/null
+++ b/binutils/ld/testsuite/ld-powerpc/aix-ref-1-32.od
@@ -0,0 +1,30 @@
+
+.*
+
+
+Disassembly of section \.text:
+
+.* <foo1>:
+.*:	60 00 00 00 	oril    r0,r0,0
+			.*: R_REF	foo2\+.*
+.*:	80 22 00 00 	l       r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+.*:	4e 80 00 20 	br
+
+.* <foo2>:
+.*:	60 00 00 00 	oril    r0,r0,0
+			.*: R_REF	foo6\+.*
+			.*: R_REF	foo4\+.*
+.*:	80 22 00 00 	l       r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+
+.* <foo4>:
+.*:	60 00 00 00 	oril    r0,r0,0
+.*:	80 22 00 00 	l       r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+
+.* <foo6>:
+.*:	60 00 00 00 	oril    r0,r0,0
+.*:	80 22 00 00 	l       r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+	\.\.\.
diff --git a/binutils/ld/testsuite/ld-powerpc/aix-ref-1-64.od b/binutils/ld/testsuite/ld-powerpc/aix-ref-1-64.od
new file mode 100644
index 0000000..9cc6e9d
--- /dev/null
+++ b/binutils/ld/testsuite/ld-powerpc/aix-ref-1-64.od
@@ -0,0 +1,30 @@
+
+.*
+
+
+Disassembly of section \.text:
+
+.* <foo1>:
+    .*:	60 00 00 00 	nop
+			.*: R_REF	foo2\+.*
+    .*:	e8 22 00 00 	ld      r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+    .*:	4e 80 00 20 	blr
+
+.* <foo2>:
+    .*:	60 00 00 00 	nop
+			.*: R_REF	foo6\+.*
+			.*: R_REF	foo4\+.*
+    .*:	e8 22 00 00 	ld      r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+
+.* <foo4>:
+    .*:	60 00 00 00 	nop
+    .*:	e8 22 00 00 	ld      r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+
+.* <foo6>:
+    .*:	60 00 00 00 	nop
+    .*:	e8 22 00 00 	ld      r1,0\(r2\)
+			.*: R_TOC	stuff\+.*
+	\.\.\.
diff --git a/binutils/ld/testsuite/ld-powerpc/aix-ref-1.s b/binutils/ld/testsuite/ld-powerpc/aix-ref-1.s
new file mode 100644
index 0000000..33445a6
--- /dev/null
+++ b/binutils/ld/testsuite/ld-powerpc/aix-ref-1.s
@@ -0,0 +1,57 @@
+	.macro	loadtoc,sym
+	.if	size == 32
+	lwz	1,\sym(2)
+	.else
+	ld	1,\sym(2)
+	.endif
+	.endm
+
+	.toc
+LC01:	.tc	stuff[TC],stuff[RW]
+
+	.globl	foo1
+	.csect	foo1[pr]
+foo1:
+	.align	8
+	nop
+	loadtoc	LC01
+
+	.globl	foo2
+	.csect	foo2[pr]
+foo2:
+	nop
+	loadtoc	LC01
+	.ref	foo4 , foo6
+
+	.globl	foo3
+	.csect	foo3[pr]
+foo3:
+	nop
+	loadtoc	LC01
+
+	.globl	foo4
+	.csect	foo4[pr]
+foo4:
+	nop
+	loadtoc	LC01
+
+	.globl	foo5
+	.csect	foo5[pr]
+foo5:
+	nop
+	loadtoc	LC01
+	.ref	foo3
+
+	.globl	foo6
+	.csect	foo6[pr]
+foo6:
+	nop
+	loadtoc	LC01
+
+	.csect	foo1[pr]
+	blr
+	.ref	foo2
+
+	.csect	stuff[rw]
+stuff:
+	.long	1
diff --git a/binutils/ld/testsuite/ld-powerpc/aix52.exp b/binutils/ld/testsuite/ld-powerpc/aix52.exp
index d608490..2f00cff 100644
--- a/binutils/ld/testsuite/ld-powerpc/aix52.exp
+++ b/binutils/ld/testsuite/ld-powerpc/aix52.exp
@@ -196,6 +196,11 @@
      "" {aix-rel-1.s}
      {{objdump -hr aix-rel-1.od}} "aix-rel-1.ro"}
 
+    {".ref test 1" "-efoo1"
+     "" {aix-ref-1.s}
+     {{objdump -dr aix-ref-1-SIZE.od}}
+     "aix-ref-1"}
+
     {"Weak test 1 (rel)" "-r"
      "" {aix-weak-1a.s aix-weak-1b.s}
      {{nm {} aix-weak-1-rel.nd} {objdump -h aix-weak-1-rel.hd}}
diff --git a/binutils/md5.sum b/binutils/md5.sum
index 848fafa..6c1629e 100644
--- a/binutils/md5.sum
+++ b/binutils/md5.sum
@@ -10,7 +10,7 @@
 07c33a285703b40cd6f93a478e97e03b  README
 72b7803505f14cf31e291a59f538c6c8  README-maintainer-mode
 6e04f1e8cca42e88402002abca0337e4  bfd/acinclude.m4
-c73469ad3b65e73f4594fa1025b55a58  bfd/aclocal.m4
+93132c57c9e4b85d6ab07406466e4e39  bfd/aclocal.m4
 736616e4415e3fb08d12930fe6b9f1b8  bfd/aix386-core.c
 b3575c73467ebc45473c2ea0875c1b4e  bfd/aix5ppc-core.c
 7f81d4e4d87ee972479722a701445e68  bfd/aout-adobe.c
@@ -29,8 +29,8 @@
 6b6f763f6dff0e916eee73ec1cb8c2e8  bfd/archive64.c
 12132d26831ab2293b6c4266829a4ad8  bfd/archures.c
 5ed657bb294400d6c36a8c00ee83ad48  bfd/armnetbsd.c
-0bd13549dccc2d28c2da5da026f54b54  bfd/bfd-in.h
-7ae38711bfc7c844360e99bd3b518bd4  bfd/bfd-in2.h
+568e5b953765fe036483bbc6b0bb9e20  bfd/bfd-in.h
+79ace8e56b6d024905f3cb268556f6d3  bfd/bfd-in2.h
 0820806c50969f382ebd08ba0ea75dd3  bfd/bfd.c
 7c10f60dcc5ef2ab6486251a4ea83b9a  bfd/bfd.m4
 fb1a215e0529a943e10d06774dbc946e  bfd/bfdio.c
@@ -40,7 +40,7 @@
 56ddc3ad0997bf501efd35a69c80b2a0  bfd/cache.c
 c97717d51efe6661f46119e4e1ea4db4  bfd/cf-i386lynx.c
 18f09a3a9b17fa7bff19b95588827a37  bfd/cf-sparclynx.c
-5b3d65bb3f7cd33c7abb4a9507effac8  bfd/ChangeLog
+ad1a6c09ae06a24a45642f070682c87b  bfd/ChangeLog
 daabeea83b81f2707d48d2c04dcc37c4  bfd/ChangeLog-0001
 0a3e33c0b179772334e34175da11b64f  bfd/ChangeLog-0203
 d20549a2f701cd99318d0af070416bf3  bfd/ChangeLog-2004
@@ -72,7 +72,7 @@
 b7adb34f445f942e3ab4332950e83945  bfd/coff-or32.c
 51449ffb254d04e0fb326a249e8f972f  bfd/coff-pmac.c
 beb1745d9d1934b104011b8d8e371f71  bfd/coff-ppc.c
-4f7e155c199f37212548927742ec1f80  bfd/coff-rs6000.c
+16aec4e21228e7c67601e20422c91080  bfd/coff-rs6000.c
 95668664b1c47c719a64c579c4cbafb0  bfd/coff-sh.c
 cb5ae8ecdedba094ce170c3d3cb895c9  bfd/coff-sparc.c
 050538e2d4350eba57e0b158fb542a88  bfd/coff-stgo32.c
@@ -87,7 +87,7 @@
 8edccf7382fab70ebb08fdfd4c63622c  bfd/coff-x86_64.c
 c41d9c0df131f800b6d0913834696aa0  bfd/coff-z80.c
 7d0efdbb284f00939c3d7f6de24235da  bfd/coff-z8k.c
-c72019f53da8407593fb0da671902cdc  bfd/coff64-rs6000.c
+39762a5a07ab9c3ee0a4adc7946ea645  bfd/coff64-rs6000.c
 42f5f7505d067b236305bea7fcf703e1  bfd/coffcode.h
 d042ac47f3315ef17980c30ea185177b  bfd/coffgen.c
 abf5780c1440d9fb2f989c0e15b90029  bfd/cofflink.c
@@ -95,10 +95,10 @@
 665b7fa48e79efdaa9754656a00e46d8  bfd/compress.c
 fc5cc293c6839f22e402ea57fa1e983d  bfd/config.bfd
 cdee5933be05d3db9f0a75c5ea4bc7a5  bfd/config.in
-2367fc43b8bed1e5e2dba8fcdd1cfc7a  bfd/configure
+2c85bfdca1af4cda321152427ed22a65  bfd/configure
 8da9933e8c528ce88a460cfadb5b61ce  bfd/configure.com
-b6168706fdbf981a62df6348ad485b18  bfd/configure.host
-6aaf616a4f2e2d423bb5936f1eada266  bfd/configure.in
+3c12773fc822c4c05d8f8373a490bf95  bfd/configure.host
+748f253a58d00f0be8391f33dbbde3ce  bfd/configure.in
 d32239bcb673463ab874e80d47fae504  bfd/COPYING
 222c91c7fd6af092606bd158a11dca39  bfd/corefile.c
 89ae5a994f899638bc8effdc8bfeac34  bfd/cpu-alpha.c
@@ -182,7 +182,7 @@
 f18aecbdd5aa2d32d474c0d54c84b130  bfd/doc/bfdio.texi
 5ee7f8ae8b0ec33c7baf2e004084aaa1  bfd/doc/bfdsumm.texi
 b062ec651474123a3eea29b9ba6e5468  bfd/doc/bfdt.texi
-8e5828e42a9b5629e7a07cf33a98b6b5  bfd/doc/bfdver.texi
+c531368d517e950babfdb037bce08adb  bfd/doc/bfdver.texi
 236e856bb13ee47adc5d7d253037640d  bfd/doc/bfdwin.texi
 2afdf80182d7d816eb993fe194d378a3  bfd/doc/cache.texi
 c4aee1a8490ff21baf7a9e58f1c4b8f3  bfd/doc/ChangeLog
@@ -201,7 +201,7 @@
 7d2276b33f6c38de1679adc0ec62edf8  bfd/doc/libbfd.texi
 59089a0cf39c460b7c7809e77027946c  bfd/doc/linker.texi
 d2c072a60c85bbcf23800ed64bd45f83  bfd/doc/Makefile.am
-aa5df6f27e30515e929b84a4ee5f0d1c  bfd/doc/Makefile.in
+6e7ecfafe4d99528a66e7d4ad9780fba  bfd/doc/Makefile.in
 5fa24958e8a60b2f879af658e615ccc0  bfd/doc/makefile.vms
 58f9e78e71f2d034a79e172899e792f6  bfd/doc/mmo.texi
 08cdd2645039224cac888475654eb8dd  bfd/doc/opncls.texi
@@ -210,8 +210,8 @@
 2e898b03bef3b8a7689a215ead650f07  bfd/doc/section.texi
 f335289247e38d4dce82697113a6bce5  bfd/doc/syms.texi
 26beaf26934fd162b4c2dc0b64535bb9  bfd/doc/targets.texi
-b6bb15ec19e7a9f07cba0354427f1540  bfd/dwarf1.c
-0ed8d4f550a61baee451985fa55769c4  bfd/dwarf2.c
+35a51081f68984bab0850ecc54b062cc  bfd/dwarf1.c
+5c011c53605307b0b52e1c8506904dce  bfd/dwarf2.c
 2758f6f941092dd789345a79e6a9e82d  bfd/ecoff.c
 5202b65bffd54bd5e14854b3bdc8f464  bfd/ecofflink.c
 67df9e1bdfc0782dd9e6ad00f505f687  bfd/ecoffswap.h
@@ -228,13 +228,13 @@
 995232b1f180b7301849123de7d57658  bfd/elf.c
 42c1efc1918415fca01b5679c884cc7c  bfd/elf32-am33lin.c
 9d03e5cc8b0719b6fdb483746ba834a0  bfd/elf32-arc.c
-665b7cedb53cb4a6a3366764528ee4c6  bfd/elf32-arm.c
+bdb9d7f72b5375a1e071664422eb353c  bfd/elf32-arm.c
 f9b84815151375c07441b932b12885e9  bfd/elf32-avr.c
 f6846e8628e2f26f82fea28151906429  bfd/elf32-avr.h
 cf448e260f83a780161976628bb273be  bfd/elf32-bfin.c
 c6b3376212ae56b9d63c72257c90256e  bfd/elf32-cr16.c
 360179e5184bb7fe963f2dfb028e1484  bfd/elf32-cr16c.c
-c3893f5e373eb2fb0c4a02c28fb3b0b4  bfd/elf32-cris.c
+9bcda061d2f33327969beb1af6705208  bfd/elf32-cris.c
 93df2a6438919921754f45e4f703b769  bfd/elf32-crx.c
 77b587dc1b8d03e2fb93bc16f24398f4  bfd/elf32-d10v.c
 e9aa232096cc8fe8d530c39db7358897  bfd/elf32-d30v.c
@@ -270,7 +270,7 @@
 12c4270a4084fed5b8b6fa038bd0cb3c  bfd/elf32-openrisc.c
 468e5e58c80e985dfbfa201ce07fe4ba  bfd/elf32-or32.c
 140b65ea1bdd039c81067900b5124da8  bfd/elf32-pj.c
-07b38ad55faf56192f4a79279e74ac50  bfd/elf32-ppc.c
+a77eac060a167d8483f8b9bb7ef8b271  bfd/elf32-ppc.c
 365a056a6b67a82bc90fd684ae12a82c  bfd/elf32-ppc.h
 ca652020cb9d995a11c98baaf2717d81  bfd/elf32-s390.c
 90050b13a75ba51cbab99f21134cb872  bfd/elf32-score.c
@@ -283,7 +283,7 @@
 26b1a1107fd2d560c3e29822f8321780  bfd/elf32-sh64.c
 1fa268e389df0b3304de7d965589da01  bfd/elf32-sh64.h
 08c64e47eceb3c03c97099d36e6b3677  bfd/elf32-sparc.c
-ab39d1d74026a536670993848f811f9d  bfd/elf32-spu.c
+d0344c67c5406e8caefe07976092bb85  bfd/elf32-spu.c
 e48841dba20a31a21c00d16af64ee8f8  bfd/elf32-spu.h
 a28c501416a9e193188e81e2771c2b23  bfd/elf32-v850.c
 3551bfead652d327b54a96bc528d4b97  bfd/elf32-vax.c
@@ -297,7 +297,7 @@
 9cff3ac6c428477bd9e305540d95e47a  bfd/elf64-hppa.h
 4c281dbce22ab9ed7e7b407fbbc4c205  bfd/elf64-mips.c
 1863e432d4b5480802ac74270ad0a154  bfd/elf64-mmix.c
-ab3444116d1c1ef873e3d00cb89a1395  bfd/elf64-ppc.c
+af6c78e89d59df95586a78b4f9f02866  bfd/elf64-ppc.c
 e9613996e66f31a4d0f4beb781a9b58a  bfd/elf64-ppc.h
 ec779fdb1eca4dc5bf220a8fe78526de  bfd/elf64-s390.c
 5e93740ad5e4da72e616a1558429f94b  bfd/elf64-sh64.c
@@ -392,8 +392,8 @@
 501a5a7c284d70ea7b7975172b05c159  bfd/mach-o.c
 207effaf2f34b8a982fcb6e447a4622e  bfd/mach-o.h
 d618facc3e8ce8bf3d02ba452e1be6ab  bfd/MAINTAINERS
-3a037720b0ffaf8b6f37b27264836df5  bfd/Makefile.am
-6ec8d40bd98b2d6072855a8b2113b4f0  bfd/Makefile.in
+f5bb9e7083d4aa0f80d08af521b81242  bfd/Makefile.am
+99e802e6144421227b4a23c8f056d0d7  bfd/Makefile.in
 f9f0bd218e634b6d1ddf6556e4aa0f20  bfd/makefile.vms
 76a44dbc419f39a2d9cdf76d308b370f  bfd/mep-relocs.pl
 02a6c47e22afc74aaec995a041e9c92c  bfd/merge.c
@@ -415,7 +415,7 @@
 7d24843968787ccead71cb5da5c21adf  bfd/ns32k.h
 fdbfd6f37c3c732d7b622b8fd5fdee3a  bfd/ns32knetbsd.c
 821b3a7520f935350be4cf792dc0a69b  bfd/oasys.c
-34e29256b4970c5125fb189f590398d0  bfd/opncls.c
+7c31906a2d7d21c67c7bbecfe2c0a15e  bfd/opncls.c
 cf7e90ff372c0f49751682aa82a2fda5  bfd/osf-core.c
 6f427e2408b21a034daf553e5aacb0c9  bfd/pc532-mach.c
 ac8d83a218e81645d69d7ab82d00b999  bfd/pdp11.c
@@ -443,7 +443,7 @@
 1af0014f635bac9df1bdf9484349438a  bfd/peXXigen.c
 105ec07116c825794757b457d434301a  bfd/plugin.c
 2261c135ccf79ec02dc19864386d2cca  bfd/plugin.h
-89a6b93f314df6531d57b4664ab7f718  bfd/po/bfd.pot
+aca9c8b785cc1d45f75498db988488e3  bfd/po/bfd.pot
 d900f09c506ad5057a3fddd39e3fab7c  bfd/po/BLD-POTFILES.in
 35a4480c592584b75a828838b20938a0  bfd/po/da.gmo
 3aae148fb9018854c2d708a4ef931674  bfd/po/da.po
@@ -507,7 +507,7 @@
 35614e9f4a26c44ff67a78f1c2ff108c  bfd/vaxnetbsd.c
 ded914cc2de38e887f34cddf674120e1  bfd/verilog.c
 bf65ca61018ff6d9a6c8a493f2e382f4  bfd/versados.c
-4da57fe16d83d664265d53151a304684  bfd/version.h
+8a8156a2423f003bc32367677c39cf20  bfd/version.h
 ed75724c37b40d40c40ec328602113d8  bfd/vms-gsd.c
 ebab96cd0f18879922c8aba8aaa3c0bc  bfd/vms-hdr.c
 73ea21be4d2230a458bc995780494bca  bfd/vms-misc.c
@@ -521,7 +521,7 @@
 11213bf58c2136189edd119d00671f00  bfd/xsym.h
 55550309c348f92e3fca871dee1bf980  bfd/xtensa-isa.c
 13929a56808fb5cf008e237eee5a4b55  bfd/xtensa-modules.c
-1a455f2e2d6856e7913d62030ad0ac75  binutils/aclocal.m4
+95cad22bbe2e419a301deb0ca9e16c23  binutils/aclocal.m4
 38097b022d418ba79fe3ce2910b58cd0  binutils/addr2line.c
 e1f55d1c4ba6be8edf09b66c37c5ef1a  binutils/ar.c
 03f2dd8273c84972aa64805022a4950b  binutils/arlex.c
@@ -538,7 +538,7 @@
 9457e8a8ca63f92c626d1816dc072f77  binutils/bucomm.c
 74290145b581c48373615df3f0dddd0d  binutils/bucomm.h
 48357d45bd874fc265a6a2c1f3e634bc  binutils/budbg.h
-f69beae0959df97811ed1e7b37ad50dd  binutils/ChangeLog
+9f8f32f1718a937ebad39dec7f1f8d7e  binutils/ChangeLog
 75f03b546abf41db936b3eae9ee79760  binutils/ChangeLog-0001
 ac9c338a84bd8da1d3be610a39a75c38  binutils/ChangeLog-0203
 e3940b38e6baee310a1565e098d2d9ba  binutils/ChangeLog-2004
@@ -565,7 +565,7 @@
 81d02c4e69c122e1150c3a56bffb09e3  binutils/defparse.h
 731edb6c7d2905cd9f06342ed8c1e487  binutils/defparse.y
 cec602aa7e8925e06a658a3060d42c1b  binutils/dep-in.sed
-69844730c3266a6ef28455fc99fa5bb0  binutils/dlltool.c
+31b3eb1f18f8154369e4ccd2d49db58f  binutils/dlltool.c
 1d0f98177b28fb226a2fa9de810239c5  binutils/dlltool.h
 1de7fee09a3817d8e4fd6a411d5c1e55  binutils/dllwrap.c
 88d90a15523b7ca55a66b615df472cf0  binutils/doc/addr2line.1
@@ -576,7 +576,7 @@
 257331228ca2323fb5f5519d4b67d3c5  binutils/doc/dlltool.1
 072910d553f79906db69fa7c0e956bba  binutils/doc/fdl.texi
 a9d661ff662be9d3924ebc7f821b4d14  binutils/doc/Makefile.am
-03887091ce4951e83c862ed07bb6484c  binutils/doc/Makefile.in
+a964dc695e51792e727dba8978a5d777  binutils/doc/Makefile.in
 e45642e177c1cc26e1adbc08658d0aab  binutils/doc/nlmconv.1
 644d6d0d2654351b529b8c3366be5574  binutils/doc/nm.1
 4575e508852e55c3691a8fa8c5180a88  binutils/doc/objcopy.1
@@ -597,9 +597,9 @@
 a825ec82fd021be9b75197c39059d7be  binutils/ieee.c
 e30cdf08d8264e27b35b920b411fc763  binutils/is-ranlib.c
 d2ea7edc9e4d3ca9d85e80972546170c  binutils/is-strip.c
-2dde8b0b9887aa147c30ad4f18ef48cd  binutils/MAINTAINERS
-e90ed886da617fb3de234fa51cb04ef4  binutils/Makefile.am
-eb1d13868d1605f16287a1abc76609cc  binutils/Makefile.in
+55d8730d45766b7cf44b77c97b0a99e3  binutils/MAINTAINERS
+39feffb4b9d301ea0c4a2d0f0eb706bd  binutils/Makefile.am
+684fe9f4a6e71fad947b25ae39876bd3  binutils/Makefile.in
 b60c0012c55ac69b99ea48501f0578f3  binutils/makefile.vms
 84ad11164e15c74fa941f49a2ad0278e  binutils/maybe-ranlib.c
 3e286ed9d2f98e9463da6760db792abb  binutils/maybe-strip.c
@@ -616,9 +616,9 @@
 e790538f81d643ca6a033288f2660ade  binutils/nm.c
 41d8556bd279371fb24dd10f370d684b  binutils/not-ranlib.c
 f80bdc8c61ea529f54c93e682505ad79  binutils/not-strip.c
-1fccdeb5311fd2c571c73b4ec967111e  binutils/objcopy.c
-71456217946a742ef8132a1dcfa4da93  binutils/objdump.c
-44330d55f3b1d15f5f99ea8761990beb  binutils/po/binutils.pot
+6d96e0189b6c9cb119fd02b79c4fd8ae  binutils/objcopy.c
+992e08caa4a10b43a6f392a2e17d3710  binutils/objdump.c
+a1d8486f66b70e38eead1f57f6564635  binutils/po/binutils.pot
 0de6d10b7eff191841591e04a9542e4f  binutils/po/da.gmo
 3cb30a598d8ad2ef1b90853a04acffa2  binutils/po/da.po
 cbdd8143363474923f649fed872db524  binutils/po/es.gmo
@@ -653,7 +653,7 @@
 9a88c63202a227e80843a311c9520fad  binutils/po/zh_CN.po
 d66dc645567221704d9a96af2951ec0f  binutils/po/zh_TW.gmo
 fc31799334330cf7596de77081fcc3dd  binutils/po/zh_TW.po
-23e416cc0faafb4739603aa70f6134bf  binutils/prdbg.c
+f9101e77cc100d6ae15213c4ea3a8920  binutils/prdbg.c
 253d92247a3802211f202f4fc8d764c9  binutils/ranlib.sh
 5760344d3da073a201b876a2f016ce99  binutils/rclex.c
 65d300feff90dab55877958558676497  binutils/rcparse.c
@@ -661,7 +661,7 @@
 81e87fc12351c3dbca3b8e6bd23c2bf7  binutils/rcparse.y
 6c832b4a8e51d600e29fee3a6e42d510  binutils/rdcoff.c
 13564621fdd3ac52dab709d2b739fe94  binutils/rddbg.c
-a6bbfb82d350ee3519349203b38cfd88  binutils/readelf.c
+de8fa73905208edc3d0c939f7a96b096  binutils/readelf.c
 513698e6b21989373e4e3af16bf9af83  binutils/README
 16e8266bccbca8900d8916b69971bb6d  binutils/rename.c
 87344f3a88df0df85d0900158a0cfa6e  binutils/resbin.c
@@ -964,10 +964,10 @@
 b4ca7d57f486fb2db77fb8588a1b6d6a  etc/standards.texi
 d5faa80d97899ae08accaff400923890  etc/texi2pod.pl
 0ccf7e1ad0698f58fd8eceb1362ccfbc  gas/acinclude.m4
-8a19cb44d65017cc7f16a17676c6e59d  gas/aclocal.m4
+6c516b733f4d72372297ff4487aa6709  gas/aclocal.m4
 3b040c34a41854548de109750f6c7067  gas/app.c
 6a6e193817f53ed43d93e679501d79ef  gas/as.c
-c9a24678520578534fa74df41675d4b2  gas/as.h
+d05f5de749ca1e3313ccad6d1bc8b33e  gas/as.h
 e25637964415c4475a64a2a5c7cb963b  gas/asintl.h
 6c8d6099ae64334a6bb30e8adc4083d8  gas/atof-generic.c
 0b1560c9671dc68e7b53d651bb54a5cc  gas/bfin-lex.c
@@ -977,7 +977,7 @@
 c87664d9e05462d25308624a5caf49a6  gas/bit_fix.h
 17d0d0f607f1a6f3aaaf4907fa8a903f  gas/cgen.c
 eb7e4b90cc3827cec6911988d53ac099  gas/cgen.h
-c38b02e0a279790a120a56be56faf36c  gas/ChangeLog
+bd8b4e70e53144833fef21ce51551b0c  gas/ChangeLog
 d92c3865d6ed795c892f2cba004856e1  gas/ChangeLog-0001
 f985628fdd8bed73c8948cc8496a1af1  gas/ChangeLog-0203
 7ee4a40be5732a4dc9b8f09dd534dffa  gas/ChangeLog-2004
@@ -1010,7 +1010,7 @@
 14e0c56a18c48425b787682b1f8e6b35  gas/config/obj-aout.h
 090ea5ccdad532a6b0b9876393ea7643  gas/config/obj-coff-seh.c
 6f4f689d73fab667c89de8fcf3567f7b  gas/config/obj-coff-seh.h
-da604bff06d00008ed96ffaebe369925  gas/config/obj-coff.c
+5b0f79af00b8110806d46b4eca8f13e1  gas/config/obj-coff.c
 04edcdc929d894c5a3b29dac41e578e9  gas/config/obj-coff.h
 14ca32601a3ccf09b5d875a754c10b53  gas/config/obj-ecoff.c
 3dff9d5e5729000819d86717877addc3  gas/config/obj-ecoff.h
@@ -1030,7 +1030,7 @@
 096c407c69a2ceb0d13006fe1b2f3fc9  gas/config/tc-alpha.h
 16a26406335b1121e4174dc26d6b15bd  gas/config/tc-arc.c
 11b936fdbc63c624d6713a01be12a049  gas/config/tc-arc.h
-3260ddcdc6d8bf158efe07be72206d9e  gas/config/tc-arm.c
+3768c7a5bbf66e56c7c3e7437c9ad8dc  gas/config/tc-arm.c
 a7473461d6c63ace0a172f1aa0979354  gas/config/tc-arm.h
 4fe2c1fc61b91bbf6e9c9c443b9e6346  gas/config/tc-avr.c
 821e6c7611a87a70e1f0e85c0a24e5a0  gas/config/tc-avr.h
@@ -1116,13 +1116,13 @@
 f9cad0069f8a7b2f076a80c6309f2ebb  gas/config/tc-pdp11.h
 1fac263a288e4046cbddb12e55116729  gas/config/tc-pj.c
 5b7366e23ad26831a0037bd3b93d3e4e  gas/config/tc-pj.h
-e1ef2d702cbf2a7b3a4ce915f0221cc3  gas/config/tc-ppc.c
+272bc5dfed4acb609486ae84eb818b63  gas/config/tc-ppc.c
 d74665662a6657af83ed4dc8bb344bcf  gas/config/tc-ppc.h
 4613531f6da72336858dc4e84ff1fdc4  gas/config/tc-s390.c
 364d65ca51207a0c0ece2102c3d4b918  gas/config/tc-s390.h
 965168e4c62658383ffbf3448d618229  gas/config/tc-score.c
 8e6d62acf30dfed34157b0ca80896a5e  gas/config/tc-score.h
-b3547a6bf153e9b41c14626da9b1979a  gas/config/tc-score7.c
+70e5e8071e8819c505828cd032fbef90  gas/config/tc-score7.c
 404bad55cfa6636ad7940925c61a3922  gas/config/tc-sh.c
 ce6e048cdd182bf86c1000a15ed5d263  gas/config/tc-sh.h
 bebedc752d900fb3bbed784603d7ff17  gas/config/tc-sh64.c
@@ -1165,7 +1165,7 @@
 9a256557e990376c03c799f23447d3ad  gas/config/te-hppa64.h
 1dc4b217e7321782918812087dfec497  gas/config/te-hppalinux64.h
 f054729d11e4bdc0d511de0c22771a84  gas/config/te-hpux.h
-f09e947faab8ab2fd5d199fc1021be02  gas/config/te-i386aix.h
+482879c6ae606c3b430e6826ebf8dd68  gas/config/te-i386aix.h
 b0bdd8286d474201386f781932f73fa3  gas/config/te-ia64aix.h
 aa8fabcf3d3093365a232271033ff216  gas/config/te-interix.h
 480085f6479825238a1496c74d985737  gas/config/te-irix.h
@@ -1182,7 +1182,7 @@
 0d376aa34db1e2863f3509f47027dcaf  gas/config/te-pep.h
 5ba13db883834de33b7a3c24116ede95  gas/config/te-psos.h
 3e7327df1df473529e30df0a10a31e65  gas/config/te-riscix.h
-ee8de9cf71dcc35a1d9bbd5ade4f0d76  gas/config/te-solaris.h
+47b89894b5e5cb88a4d4822530c1cbb7  gas/config/te-solaris.h
 b3878236b9488c1a4facd0a31544aa3f  gas/config/te-sparcaout.h
 ddd6bf4b762e74b3b3ac1b928098f09c  gas/config/te-sun3.h
 e884942337b3717dcbad12574a4ba59d  gas/config/te-svr4.h
@@ -1207,9 +1207,9 @@
 36285069bae7f4dca379829241710bd4  gas/dep-in.sed
 d4c181c85eb2f45c7834d080fcc4819f  gas/depend.c
 e7ee960b489ec80834b29977178e1ccf  gas/doc/all.texi
-ac1b311d3be090954b5670c521f93adc  gas/doc/as.1
-b38718ac04c3ae71ed7988cdee46fd1d  gas/doc/as.info
-1963b5652be4bfa3169802e08436a83c  gas/doc/as.texinfo
+08da492e86ebae061109490d72a37925  gas/doc/as.1
+2d8cbc7cdd3d8327299e63a6090089d3  gas/doc/as.info
+9a57e8e6151761f18510d1ef5a4854ed  gas/doc/as.texinfo
 e7ee960b489ec80834b29977178e1ccf  gas/doc/asconfig.texi
 a7732678d50ad8b1491e744187040f8e  gas/doc/c-alpha.texi
 f744ba94b8be356d789bc1923144062d  gas/doc/c-arc.texi
@@ -1258,7 +1258,7 @@
 289febda425d8afbd046e348a08dbfff  gas/doc/h8.texi
 39a0082c71106d18c766f47f168b7816  gas/doc/internals.texi
 8cca5bc3dc1ad37b289e6cdc3df70c32  gas/doc/Makefile.am
-7d3c37c5b55d47257cc715b5e419b8f9  gas/doc/Makefile.in
+efa7aaad240d3ea30a9ed670f7b8b063  gas/doc/Makefile.in
 6cf8420bbe8999eff15313f3534fdb8e  gas/dw2gencfi.c
 1f190729e07b7eb8f5ce00d801107129  gas/dw2gencfi.h
 73bf1657393b540b80824777fd3ccbb6  gas/dwarf2dbg.c
@@ -1268,7 +1268,7 @@
 1cb4b897534910709ab1e79396a3a2b9  gas/ehopt.c
 92732c078a7acf574af9df1fbc62236b  gas/emul-target.h
 99a7a09433a40a316a830646e1febaba  gas/emul.h
-16f06bbc8bbc53179f1ca8210bc470f8  gas/expr.c
+0032677247086a651622331a8d31ef0a  gas/expr.c
 b8484af32ffad8813ba5245245e72d90  gas/expr.h
 a8086612007d4b1398bbcd3222491afc  gas/flonum-copy.c
 17e961bd7664effaa115dbe1752cc76a  gas/flonum-konst.c
@@ -1290,7 +1290,7 @@
 4ea7ac4d931713b4c4266bf1e01c540c  gas/itbl-parse.c
 86a928b05e84edab3af35f7aa489f27c  gas/itbl-parse.h
 0153b49dbbcf47a9cfea80fa35b93482  gas/itbl-parse.y
-4582f83f1ce80887eecd230d463e57ab  gas/listing.c
+23c6eab120a5a31f5e6ae5fd595100b8  gas/listing.c
 054c93674efed639127153b3067b5340  gas/listing.h
 d3d3be59b37f1add71b4f71bfc46422f  gas/literal.c
 64cd294a7e4390954710090b0b743b49  gas/m68k-parse.c
@@ -1298,10 +1298,10 @@
 bc1cba24dd11574ee28e63c61603cf43  gas/macro.h
 d618facc3e8ce8bf3d02ba452e1be6ab  gas/MAINTAINERS
 0f9dfccd00b4ee23302aaf3e63a8dc67  gas/Makefile.am
-5906d9466f93488e6ca383ff0cc5b373  gas/Makefile.in
+a79e09b5f4a75f09b432f8bc7164d90b  gas/Makefile.in
 4cce4ad62d03534aac88e42370263a26  gas/makefile.vms
 10b6029065c29f1d0457d2f559525208  gas/messages.c
-0e797bb94df7e1a8dd9db9316175594d  gas/NEWS
+74e052aa910f49ab1703220e25e8e47f  gas/NEWS
 d34e803ae48756464d68d19b412d842c  gas/obj.h
 3e00ed74939d0ee85607e68a10456265  gas/output-file.c
 2fa8189fa6fc775e05be73053a0b853d  gas/output-file.h
@@ -1309,7 +1309,7 @@
 894e11d79b0b13680b3d7b26da6bde48  gas/po/es.po
 76487369bd971a3c864b3547825fc705  gas/po/fr.gmo
 c28c7a6a8ab5b61fb0b18c5bb480dd20  gas/po/fr.po
-fcebfc3eecd4bde371eee75b5981559e  gas/po/gas.pot
+72e56a1cd61770c4b597a5078c9977c9  gas/po/gas.pot
 4fec0f968c023ff22bbab2e19f16bbce  gas/po/id.gmo
 f38341bad78f26434f38d28b60c5005e  gas/po/id.po
 8935ae2870f3d67420c16c4b92796ceb  gas/po/Make-in
@@ -1329,10 +1329,10 @@
 f466095ac8a7a01b59cce1a965b3e166  gas/struc-symbol.h
 919587b23bcc5514a7c31d7c363e51eb  gas/subsegs.c
 fb0f91c11edf3d6da54955ca2cd59a7e  gas/subsegs.h
-5e0cf667ee519bff6f6259f770ca60e1  gas/symbols.c
-cb6d81ce746ab5cc0ef122e834a9baa3  gas/symbols.h
+19ce0cf9260cc6ef6eb1ec3f8eb3297a  gas/symbols.c
+4101d9e508b59047295009591d7b00b1  gas/symbols.h
 5e55a27d8d002eda60e10a4baaa71984  gas/tc.h
-eedba2de1486374ecc45558ffe228cb7  gas/testsuite/ChangeLog
+8f8e5110a0a6af2d4ee7f1cdf6855c0b  gas/testsuite/ChangeLog
 8f4c98fe241e3d57b357137c666fd4ba  gas/testsuite/ChangeLog-2004
 6e717d4f414fd8ffacb0b5f480256270  gas/testsuite/ChangeLog-2005
 a89405fc1bad7bc620fc00b28bd62f6c  gas/testsuite/ChangeLog-2006
@@ -1558,7 +1558,7 @@
 9f5b000dd66bc7c0db553cb6ce6975e9  gas/testsuite/gas/arm/arm-it-auto-2.s
 138f287347c8ed8f01f0e7a77905dcd2  gas/testsuite/gas/arm/arm-it-auto-3.d
 291da626dfa21707c7fbd22d8fec0ad4  gas/testsuite/gas/arm/arm-it-auto-3.s
-0a0bca894e31544d4ab1607bc615079f  gas/testsuite/gas/arm/arm-it-auto.d
+a7c67b1b46b78cd4a635836487e30cbe  gas/testsuite/gas/arm/arm-it-auto.d
 ca845e1f677a847052f021f47accf21f  gas/testsuite/gas/arm/arm-it-auto.s
 d2a0cb15941b397e826744db6e57b539  gas/testsuite/gas/arm/arm-it-bad-2.d
 e7fba9b31f84364a16bcfe7cbab71d84  gas/testsuite/gas/arm/arm-it-bad-2.l
@@ -1668,13 +1668,16 @@
 19dbb71962cdc1a1cc2956e10ea0e088  gas/testsuite/gas/arm/backslash-at.s
 233af5c2872f271ed24f36379bfb2cde  gas/testsuite/gas/arm/bignum1.d
 08269632d864fb311787d7c196186ac6  gas/testsuite/gas/arm/bignum1.s
-5c95d319ad1b614013ea2ec0db73f0e1  gas/testsuite/gas/arm/bl-local-v4t.d
+376a039bac61bd92ae468ba5fed33bb5  gas/testsuite/gas/arm/bl-local-v4t.d
 e59eb4b037d361fe5f48e44b495bd373  gas/testsuite/gas/arm/bl-local-v4t.s
 1632d9677c2b9800feac355724a3d9dc  gas/testsuite/gas/arm/blank.s
 dede5ad56b863e00e38ff1d45d9130d4  gas/testsuite/gas/arm/blx-local-thumb.l
-f1a88c5ba1d4915a435fcbbc59de63ee  gas/testsuite/gas/arm/blx-local.d
+50af86ab9b358feed8d802d758d1d830  gas/testsuite/gas/arm/blx-local.d
 849e424049e3d10e64e125f2e370f822  gas/testsuite/gas/arm/blx-local.l
 ff4cfc84703ae62368d353c3dd637989  gas/testsuite/gas/arm/blx-local.s
+1905b4a656a3bc94ed7c9a3c70ece91f  gas/testsuite/gas/arm/branch-reloc.d
+30a90f3df22295b76fd0d6c07a6bf602  gas/testsuite/gas/arm/branch-reloc.l
+ca024a3bc15ec962ca2183508ed14cbe  gas/testsuite/gas/arm/branch-reloc.s
 5dd99ca40500a7cceb0f46d064780497  gas/testsuite/gas/arm/copro.d
 150de0425bf9f74a67639920f792e411  gas/testsuite/gas/arm/copro.s
 d2e647f8aeae70453a63bf29e817e404  gas/testsuite/gas/arm/eabi_attr_1.d
@@ -1872,7 +1875,7 @@
 74f88e1fa42785685687ee1221aaca18  gas/testsuite/gas/arm/thumb-w-bad.d
 cf8d5e98ccdcd542ecad9a5641c85f29  gas/testsuite/gas/arm/thumb-w-bad.l
 d9d877613eeb9f575af073c4200b56e7  gas/testsuite/gas/arm/thumb-w-bad.s
-238cf8ec22dd6d6d0b70e32aaaed67b3  gas/testsuite/gas/arm/thumb-w-good.d
+bfb87e3b0495eccdb975fc9266b515a2  gas/testsuite/gas/arm/thumb-w-good.d
 f442cec1a0ed93f8b1b514ebaca215e7  gas/testsuite/gas/arm/thumb-w-good.s
 4769422b8f76055618d2e29c256d626e  gas/testsuite/gas/arm/thumb.d
 6435d6209d1ded87cef68a7315781dca  gas/testsuite/gas/arm/thumb.s
@@ -3056,8 +3059,8 @@
 9dc7912d7d9818fcf980b00f86bee5e2  gas/testsuite/gas/i386/intelbad.s
 d5e17b8724f25f10587e302e69dfe6a6  gas/testsuite/gas/i386/intelok.d
 19de40406e9944a08239d578fd8e8c8b  gas/testsuite/gas/i386/intelok.s
-37ac371e6c7863fb3dfcbf22f0d6745a  gas/testsuite/gas/i386/intelpic.d
-10af8323b3fdfb2580629d4bbb96414f  gas/testsuite/gas/i386/intelpic.s
+b83a2a0dbc42d7719c1f3773e5ece505  gas/testsuite/gas/i386/intelpic.d
+8555f3b34fdffff6df460123cab004a2  gas/testsuite/gas/i386/intelpic.s
 7d29d7830f6d684717aed5c27411734a  gas/testsuite/gas/i386/inval-avx.l
 a7b6a8c2865124822043ef0e02c71562  gas/testsuite/gas/i386/inval-avx.s
 277eec2e7d58fa65cb3e60587ae96e40  gas/testsuite/gas/i386/inval-crc32.l
@@ -4851,7 +4854,11 @@
 022aa068d648739647e467cd768f603f  gas/testsuite/gas/pe/aligncomm-c.s
 55d11bd5aaa60e015d09c41f01646dc0  gas/testsuite/gas/pe/aligncomm-d.d
 87202c1ee6ceb1e831ae1b57d2506121  gas/testsuite/gas/pe/aligncomm-d.s
-f1399a7c96d3486852f823fb0692e709  gas/testsuite/gas/pe/pe.exp
+7224f6cb8b8017736f4d0cb9c8ace638  gas/testsuite/gas/pe/pe.exp
+cf1138a294ab7d6e8d2ff734630730dc  gas/testsuite/gas/pe/section-align-1.d
+5ab659a1d28d273669e669582aa5474f  gas/testsuite/gas/pe/section-align-1.s
+914530c1307708d7330b54a2f5e1b113  gas/testsuite/gas/pe/section-align-3.d
+579e63be19d5a83aa3edeebbcaf0d852  gas/testsuite/gas/pe/section-align-3.s
 f3a7124485548781ba12a81c18199e29  gas/testsuite/gas/pj/ops.d
 308d2177ed3b3b087d977e46c924fc0c  gas/testsuite/gas/pj/ops.s
 a6667ed6fc7b116477f95ef897bc5444  gas/testsuite/gas/pj/pj.exp
@@ -4859,7 +4866,7 @@
 5e044218a1ec3e04be04733aec253a76  gas/testsuite/gas/ppc/476.s
 39f06d82f09df62e674d16cd0c458e66  gas/testsuite/gas/ppc/a2.d
 a43d37f6b7f113687c2eddb9672087c8  gas/testsuite/gas/ppc/a2.s
-fc56e529b0ae1f1f9a2ff184317dbcbe  gas/testsuite/gas/ppc/aix.exp
+c4e76a28a10c0d1059a10a442155921e  gas/testsuite/gas/ppc/aix.exp
 1144f1624f81b2bf57bc44af8e76f9bb  gas/testsuite/gas/ppc/align.s
 78ff04d1b9877427fac95abb3a2c09c2  gas/testsuite/gas/ppc/altivec.d
 da75a2b442b5537342a3fb0ae74a0510  gas/testsuite/gas/ppc/altivec.s
@@ -4929,6 +4936,8 @@
 08ea62f057fad4130ab4496b10773187  gas/testsuite/gas/ppc/xcoff-branch-1-32.d
 8e884141661fddd367c49211824ec4dc  gas/testsuite/gas/ppc/xcoff-branch-1-64.d
 80d642f21d1d3f314901cc58bd518132  gas/testsuite/gas/ppc/xcoff-branch-1.s
+1f3ca01c9d7afa8a580c73ee371fee03  gas/testsuite/gas/ppc/xcoff-ref-1.l
+1e195c4e7e61cabafec65c9c47e4a7ad  gas/testsuite/gas/ppc/xcoff-ref-1.s
 a9270ad7a5b7c6c1e60615314b3b8625  gas/testsuite/gas/s390/esa-g5.d
 a2208e287f361e1631a43999e2407e4f  gas/testsuite/gas/s390/esa-g5.s
 049e09aef849c8721bc128ebba592aa9  gas/testsuite/gas/s390/esa-operands.d
@@ -5542,16 +5551,16 @@
 30764ced5c424e3c2c384059cbe2a227  gas/testsuite/lib/dounssym
 b088d95998198e32a01347b43d0ea8ba  gas/testsuite/lib/gas-defs.exp
 b4a303f3223f3695d37e231d7e691500  gas/testsuite/lib/gas-dg.exp
-b7e54296f8c31ad5d458dc779926c741  gas/write.c
-2385d216742b533175f70756095d4abd  gas/write.h
-1ef57dba5facb7e1ac97032f9d1c6504  gold/aclocal.m4
+f555a10f7d4b8ea106424d314cb38f4c  gas/write.c
+3b955fb7ab2ef082f90865d180ed0ef5  gas/write.h
+920138da7dbc4f3ef4ba32e27f2886a9  gold/aclocal.m4
 43f9ff89e4b6d264ee927a32eb089ee3  gold/archive.cc
 6f26bd0cc71662aa36e2769212b4852e  gold/archive.h
-9cd46ca721741de9e031ce8ae0572236  gold/arm.cc
+6f4d072b9bc52734c8503832b8baeccc  gold/arm.cc
 b469982bec0a258309a5e40522f4a41b  gold/binary.cc
 db3d9c5c5950fe999accc7ea1c5b659a  gold/binary.h
-514b2cbb849e99ca23744a71f048ad08  gold/ChangeLog
-bfca73424684c15a48b89a374a723621  gold/common.cc
+590acda55ef078ac396956a47f652c46  gold/ChangeLog
+8d29a0e56aa2a6e37f8fa2c4c8ff5ea4  gold/common.cc
 0268f5ae0b8e7475edadd383591b5962  gold/common.h
 de06263f182d9079bf5b1a82fa0fef96  gold/compressed_output.cc
 6d8e4d0e8e8ca67c48d229b1e7b81352  gold/compressed_output.h
@@ -5559,12 +5568,12 @@
 c1e21d8280af570c8852a3f41c90a5a6  gold/configure
 997efe0ab77bab77d652f7deaa0dcd5f  gold/configure.ac
 4284d853c1edf2de7ab6eefef294d4ee  gold/configure.tgt
-434f2b1e216fb989a3d5dddf298c0114  gold/copy-relocs.cc
+e93506902e15e70bd09f4efd753c8f34  gold/copy-relocs.cc
 8f0f2e138a1a2334dd6b7f5963c9120e  gold/copy-relocs.h
 273c2115fb8fbfa27c303cd0b3e51fcb  gold/cref.cc
 2695409d25f1d5c2b27e3b6cbbc783b8  gold/cref.h
 6ff10963bd1c3496684a6a94686ffdf3  gold/debug.h
-7d17789178afbc0c18c825cf39ec6aa1  gold/defstd.cc
+4975e64d2e82d6ebf867d01ece854c1d  gold/defstd.cc
 a76f48603de929b8ed7a7a656ba630b0  gold/defstd.h
 d91da0884c123b728a0e17d23a1653e9  gold/descriptors.cc
 8f1817f08b09eb28b618e3b5a8983ae6  gold/descriptors.h
@@ -5572,8 +5581,8 @@
 e3496f31d83290c48995d784522c25eb  gold/dirsearch.h
 0712e25605d2d5eaa302dc78bc040298  gold/dwarf_reader.cc
 a4673f0c4ea42426ae973d26e4f77078  gold/dwarf_reader.h
-1a4c7bfe89d61f835a25dbae8e538536  gold/dynobj.cc
-df8d1ed0fea05e6296eec1e23d08a4d7  gold/dynobj.h
+847325e9c11c685a56cad0096e340595  gold/dynobj.cc
+bbf734865fbf998f4cff472ae46d79b9  gold/dynobj.h
 f17a70ab1f547d53f21c3cd1d490e5ac  gold/ehframe.cc
 3f6612c1fb8cf4b0b76fd0a27da40c01  gold/ehframe.h
 f4d8ec0df04191ce8b252d2f7c5bef08  gold/errors.cc
@@ -5590,40 +5599,40 @@
 bfe13464bd2f479d20fdee7994785904  gold/gold-threads.h
 10d2663005800000d3039427b639602f  gold/gold.cc
 5c825100979355353197da9c18dbd5eb  gold/gold.h
-8a343198e291d8fbafb73215116996d9  gold/i386.cc
+6fdbcb6c9790a9d95c3d2ae76ba36262  gold/i386.cc
 04d2cd94495768c88a4fc6b8c57fc5d6  gold/icf.cc
 83970d249884cb3d72eae7eeb563d383  gold/icf.h
 71d0124246ec59cfc5d307feba9ebf4f  gold/incremental.cc
 9164bed936427cef0148a6322c19c681  gold/incremental.h
-17bb754a2a8ec852bc0acd913be51b6a  gold/layout.cc
-ab77e98e1a50d2d36fa31367b0028ce3  gold/layout.h
+1c5821708f34bccfa4b47a3db3e2f258  gold/layout.cc
+743fac67163982610ae87651565ed9aa  gold/layout.h
 752e63580968313cca239557cb824a5b  gold/main.cc
 8764aa233664710c551a86404f08b2a0  gold/Makefile.am
-4f7b5e2a34d18f8a68da1506bd9b5931  gold/Makefile.in
+275a9dbde460cdd96a03d92104a3a68a  gold/Makefile.in
 bf1e543159ab69900deca49a4e8ed9a9  gold/mapfile.cc
 53d3c199d52484bbfdcb03132b864a97  gold/mapfile.h
 4a3b629f2a419b7667b1ffd4ce6a4cbe  gold/merge.cc
 f0169b477d031fa312320260d117a2d8  gold/merge.h
 83bf8e7cb827286f1995b6529e2dd6ad  gold/mremap.c
 d6d999c5dc1e4cc4032ee874d917f984  gold/NEWS
-6dda5c1183033439efe19c80125db7c8  gold/object.cc
-58bebd2944f52e260990e0a126d28c06  gold/object.h
+caa254fca6ae465733f6b1c3576d295a  gold/object.cc
+9e71512bc3b5d158d9f554284dd9dfcf  gold/object.h
 c3193f4d42296c14d9e7a72ba41671ad  gold/options.cc
-a01d45db6ce6fc52a2dafdb89b55e1ea  gold/options.h
-6ebed0585d3e73a3010304a2b38225a4  gold/output.cc
-71c31f76ee5f49ba163ac3b44b345cb0  gold/output.h
+ec2e1ab779600b3c7361e6ee84b8bfe8  gold/options.h
+c4f3e227e928c0a9f75dac59b729c718  gold/output.cc
+c7e9706ff3705228c773d44abc96d4a3  gold/output.h
 9204d464af915ba86c53b243156a9251  gold/parameters.cc
 dda1dfd2bef1b06a1242eead7acb6b97  gold/parameters.h
 79c5e2b4ce5ff80bf2acf1e4538983fd  gold/plugin.cc
 f168cb2d469c7759d05f55418ca41dbb  gold/plugin.h
 7be634ae9ae5ae9c64da2e1e3f927698  gold/po/es.gmo
 b3301fe2a06da4293c2df62a09777638  gold/po/es.po
-27836224addb962f916f23b7d578d3cf  gold/po/gold.pot
+2b7ec11aad5f113736fd4e91b78f3bf8  gold/po/gold.pot
 7103bf2876d97b9e71f3e6b20e3a16e7  gold/po/id.gmo
 b4492d1a0779dc0b6da2911fd1bcccf7  gold/po/id.po
-353b3a96dada9911ca3f8fd6d0b80c53  gold/po/Make-in
-10fb1aead62fb728cf7003b0a68c79d0  gold/po/POTFILES.in
-3030ae9c778278d779c1e2c8fd5124a8  gold/powerpc.cc
+60442cbcaec9b27dcd6dc9b1be1484bb  gold/po/Make-in
+ff90d8a564c34f336c87919bf29bdea8  gold/po/POTFILES.in
+f8e940c30f96c49cbb765a5d3c82bdcb  gold/powerpc.cc
 c423652afda43455ca78c502b716405e  gold/pread.c
 0225bed4de14c4834355ec09bc5254d1  gold/README
 d14447ddda8951fb1bc97ab471adfc91  gold/readsyms.cc
@@ -5633,17 +5642,17 @@
 c0e5fe55ab808bdd8cb47edd4786aceb  gold/reloc-types.h
 a8addf10de486af8cb1d27fae236eab5  gold/reloc.cc
 5e05f39c5d3cf177a7d13697ed99fb44  gold/reloc.h
-8a86dc7708064afe2d8fe8551508a7f5  gold/resolve.cc
+99bf729729d8de3975a67c4820ca8910  gold/resolve.cc
 1f9c566bc48f8d268819921d10ed7382  gold/script-c.h
-d6db7ff04cf3c0fc433dd8125f39afd7  gold/script-sections.cc
+caeda5071fcea3feefd9217d01da57e8  gold/script-sections.cc
 f0ebca7f4e9df78f0d4447e6b8a9dfe4  gold/script-sections.h
 25ae0b5e6ce7c1bf8373a7d9662a0c4a  gold/script.cc
 f5dceceb9a750d67712f6cce9c9b0eae  gold/script.h
-75b8f5e34c56b11eadc6ed712ba0f169  gold/sparc.cc
+dae61890cefedf13f1611a7b542e91d4  gold/sparc.cc
 5a7cf4ec789355b84f0352f43c4aa410  gold/stringpool.cc
 5f1192003eeb8e4e87cf4e7b4aa1d5e8  gold/stringpool.h
-140fa67b9d228110b26d7f7750f4cf11  gold/symtab.cc
-6a026f34bbb4ea22bdbe62323a2ca6e1  gold/symtab.h
+25d9f0e7b214456a5febe5030f7f94dc  gold/symtab.cc
+0a81c1e090ba542e256493d39cdb909b  gold/symtab.h
 fe18fb4c8d1403d496afaac3936b36b6  gold/target-reloc.h
 6049ce0a89cd3f34bc0a39ffadf4d016  gold/target-select.cc
 db368e379e00b920a8c9322b325dbe73  gold/target-select.h
@@ -5693,7 +5702,7 @@
 c60367832efe45fa6723dd66e9ac5b05  gold/testsuite/justsyms_2.cc
 f56a346fc9a2bcb6a4f0cc8f11c9a982  gold/testsuite/large.c
 4f3643337cfa64bf31242ec8c89d7d41  gold/testsuite/Makefile.am
-9f6a04858e34ecfd641bd8f2ad620ea9  gold/testsuite/Makefile.in
+f6b122c286ae4249365c5e82e3c75b13  gold/testsuite/Makefile.in
 4fdd47206bc0385125e6d021aa14307a  gold/testsuite/many_sections_test.cc
 72ed035ac7684fdc5a6379aa16640090  gold/testsuite/object_unittest.cc
 d1f9351ad5fec4b510ad02eae3e5b21c  gold/testsuite/odr_violation1.cc
@@ -5810,10 +5819,10 @@
 6a247d3f0c96b2347af6be2f81853b18  gold/workqueue-threads.cc
 cd0771d886e9298f77e3e0a834d60468  gold/workqueue.cc
 ccb66083c332971075fea91f87f26512  gold/workqueue.h
-3ae64830bdaa946727e1e7e359c83291  gold/x86_64.cc
+54a478dd022fecef6bf0b574757b4a21  gold/x86_64.cc
 95fed3ad30fbb1f0975f7ec3b40045b6  gold/yyscript.y
 b167dc5dcf583c07feecea0f8003e647  gprof/.gdbinit
-df5dc1f132e6368f4f85efde99e09682  gprof/aclocal.m4
+5feda4132f1893921eed0232056a3b56  gprof/aclocal.m4
 b7f3f1dbdb1af21fadd9bad6efebe8c0  gprof/alpha.c
 d4cb8d19fdb12e38db2615ecf089d920  gprof/basic_blocks.c
 68337233c4fbbae70f0c91b14ac23771  gprof/basic_blocks.h
@@ -5865,7 +5874,7 @@
 a6429d3de563eb0422db7c58555a7b0b  gprof/i386.c
 d618facc3e8ce8bf3d02ba452e1be6ab  gprof/MAINTAINERS
 8b750356e7c6dacb9caf9861bc315f8c  gprof/Makefile.am
-ba3c6c8167ca66ec3c3d36d14e3b8048  gprof/Makefile.in
+6f369742244a7d2b04911af88cee225c  gprof/Makefile.in
 92a358204dc90732f5c3ffc4d16ef9dc  gprof/mips.c
 b909370fda89f8d24c2acf058239951f  gprof/po/da.gmo
 20f0110fa4f21ba909001fab604f5df6  gprof/po/da.po
@@ -5879,7 +5888,7 @@
 231c91836d7128574c828d0c958c3d81  gprof/po/fr.po
 82d1a6e0345a6dc65b323f04ea1f1375  gprof/po/ga.gmo
 c46ba65e8300569e05946980c1c7c9a2  gprof/po/ga.po
-8d5b228997910635167679c085119989  gprof/po/gprof.pot
+fb7eed45c979374c7627037ea6bad4b1  gprof/po/gprof.pot
 7873cc6cf605e08a4eb7c3ea0d9649a7  gprof/po/id.gmo
 62419681ebff5b0bea804402686d057f  gprof/po/id.po
 b6b3fdee1867107468c837cd28e9f2cc  gprof/po/Make-in
@@ -5937,7 +5946,7 @@
 859eedc16025e7f237e7a1c75203ac4e  include/bfdlink.h
 8899f3b1094aed581ee5ce21fb77eeb5  include/binary-io.h
 b6e1fac26f93147f8011414af5669be7  include/bout.h
-768f3789a5f801fdb1a2f497cce99d0f  include/ChangeLog
+604e7079b3ada3462096b3a45ad17625  include/ChangeLog
 4263432a72ff47ed8bf420208ee7eea5  include/ChangeLog-9103
 0eae126d2322eae7cb85fda3b3c51d4e  include/coff/alpha.h
 ba1e7d1f5ed257158d5ce1495995b9ab  include/coff/apollo.h
@@ -5992,7 +6001,7 @@
 758bdbaee2dcc5ca76e3ddc48f104e0f  include/elf/arm.h
 c98da0ae0aecf3922f72a99bf18820f8  include/elf/avr.h
 4b6fac30af0ac6bf2cfd14e1568f0f08  include/elf/bfin.h
-e832f854e1b0dd5ead3d9138b2eb529d  include/elf/ChangeLog
+01d15a16fd51d99da7366250d8a9730f  include/elf/ChangeLog
 98f9c5b892b53edff47e277ff7d497f8  include/elf/ChangeLog-9103
 ba8409f8c2e920b6c99ab35b149b7b06  include/elf/common.h
 5aec0c6b342d206adf8af8723aa94d7b  include/elf/cr16.h
@@ -6034,7 +6043,7 @@
 67c44a12efec004686c5da82c283fea9  include/elf/openrisc.h
 77f09d73d2331ef33a81df01367e759a  include/elf/or32.h
 4e3af9766a70428a794053db9ac26982  include/elf/pj.h
-bfdc7304ea010578c478860b11e10b2c  include/elf/ppc.h
+7a2a544e8fbce74fa0dc60de26623006  include/elf/ppc.h
 42f7c10529a21dfda4153ff04d491881  include/elf/ppc64.h
 d90b38ee405b35a8922339c6b480bb52  include/elf/reloc-macros.h
 b163e0ddc4c8cceb00f746535ecf0785  include/elf/s390.h
@@ -6145,7 +6154,7 @@
 187cfeb91ed5171f7e834812d8110288  include/opcode/vax.h
 10cbf87ea52bafe84a696ec172e072d5  include/os9k.h
 b212dcdaf1121bd8a14b03ebb2ce5ce1  include/partition.h
-a4f8df8ee5b9f9cc416889686536caaf  include/plugin-api.h
+5fce27911377b2396cbeb88255cc5c86  include/plugin-api.h
 ce441968fb1b5f3f68ae7afa86ad0476  include/progress.h
 f407187879a6cc40877c4b38ee717349  include/safe-ctype.h
 e6f4dc9aa834eb5b72d8af31d357bfb6  include/sha1.h
@@ -6200,8 +6209,8 @@
 bedade7bcfc3bc5eb09a2c6844f637f3  intl/relocatable.h
 43f287d082528203fc85c1d2d81bf30d  intl/textdomain.c
 76ca170a525d5b84d90f0478fe788931  intl/VERSION
-48b2335f1fe5e6e50490c4a12fe73038  ld/aclocal.m4
-20b6ccb6fd9fa45b97efcb13564a048d  ld/ChangeLog
+5039fa627a1f961176bf72abecfe190b  ld/aclocal.m4
+c7c77c05fd272c68c737080c6e08d203  ld/ChangeLog
 7ca725ba584a0477922ca681df841a08  ld/ChangeLog-0001
 1844c5088cd03b9246ecf58008c41d76  ld/ChangeLog-0203
 249882f8f7dd773b47dcbbe3f2aa56cc  ld/ChangeLog-2004
@@ -6347,7 +6356,7 @@
 d969989e47badd85ab444fefa84656eb  ld/emulparams/elf64lppc.sh
 5b2cfd0917902083166727b03fbd07c2  ld/emulparams/elf64ltsmip.sh
 5b79366aa223913e714e04f4303594fc  ld/emulparams/elf64mmix.sh
-33c1dcfbdb97f4253ec272a71cf7535b  ld/emulparams/elf64ppc.sh
+f09188d4b1de430c02be08002d5efe1a  ld/emulparams/elf64ppc.sh
 261c3ee23f1baba72638358c8121b622  ld/emulparams/elf_fbsd.sh
 18049c1216aa8760205fefe5e8cabf6e  ld/emulparams/elf_i386.sh
 9d2ba4f316494a2bc26e467db70950f4  ld/emulparams/elf_i386_be.sh
@@ -6545,7 +6554,7 @@
 38a2174da70ba189c78b1e38385ef64d  ld/emultempl/sunos.em
 a1e44428a80727b027cf3e187d094e33  ld/emultempl/ticoff.em
 2b93c5dc10438986805d040f0edf4b11  ld/emultempl/vanilla.em
-a079ef502595bc2b4e276a1b2f6018b3  ld/emultempl/vxworks.em
+f539dfe654d52ba0f332048373d2355e  ld/emultempl/vxworks.em
 3c1e42750e6c241a8850acb8faa2a2ea  ld/emultempl/xtensaelf.em
 557ec27caeba77ab50050b990469f193  ld/emultempl/z80.em
 6480f450c71077aa69eb65ec7d27172e  ld/fdl.texi
@@ -6572,9 +6581,10 @@
 4bf1a763931c816dc81923762dd20563  ld/ldint.texinfo
 332df25dcb773c42d653e076a0995c29  ld/ldlang.c
 45f0ba6fe80c8229404ec435f85dbd12  ld/ldlang.h
-3515e4b8ecd182890345bff0ef34d14f  ld/ldlex.c
+c9360e41eeba0f5febd651e1298c4c0b  ld/ldlex-wrapper.c
+9876622b06f9a9a1b7614952da45ae72  ld/ldlex.c
 baeb3e241736fb852f797a5cbf9c163b  ld/ldlex.h
-bbca1448a347a620c11241e0428ba4ae  ld/ldlex.l
+b181db64d50e5b27c8177b7189b985a3  ld/ldlex.l
 7d2272d18a4eff26654b3420393c4be6  ld/ldmain.c
 9cf55078341d4dc4d2d47d60e4632392  ld/ldmain.h
 60f63acbc50deec97c027ab4724d79e8  ld/ldmisc.c
@@ -6585,12 +6595,12 @@
 1d0ab77dd5d124786b3142aea0d9e88b  ld/ldwrite.h
 98b62ff722998678e8a23fa1570109f9  ld/lexsup.c
 d618facc3e8ce8bf3d02ba452e1be6ab  ld/MAINTAINERS
-9544e21791bdf13f4910f87b79474ff6  ld/Makefile.am
-afca7aa6fa05d5838b436505072dc8bc  ld/Makefile.in
+36c72d57fb252aa71903f7e4c4936048  ld/Makefile.am
+5aa00ada8d6b792cb1bcf12606bfaf64  ld/Makefile.in
 c501d77ba3c6023eca67a4733016e137  ld/mri.c
 32569346651ca50342ad97f07baca5cf  ld/mri.h
 3948a5c9d2e4aad58f42c7e3ccad898e  ld/NEWS
-6507e17498ba22fc23ca1498012b4cf1  ld/pe-dll.c
+6b8dbb51a0e7e7b8a9fb12a5e14316bd  ld/pe-dll.c
 35f474b18a2d0329dee27ae7b98f184b  ld/pe-dll.h
 d65064fe2526a48f07ef24b57e24788e  ld/pep-dll.c
 31cf6520f78ce23d17b8c8aad3435ef9  ld/pep-dll.h
@@ -6606,9 +6616,9 @@
 6b597ac040f231ea3ed037773cf89082  ld/po/ga.po
 09624f51dfa58df5e60c7500da4357f8  ld/po/id.gmo
 c7a2b4398ca5a63866a3a2b6af03cfcf  ld/po/id.po
-b736f411a71140162c529c83bea6b1b9  ld/po/ld.pot
+295cc6af80182839d936aeda0ed5924c  ld/po/ld.pot
 7cb7553c50642d63ccb14f30f66ca155  ld/po/Make-in
-4f2f0dec2e17c7b816f81f27ab7c8b0b  ld/po/POTFILES.in
+27611c7eb6e1ea9b38d4c21440307090  ld/po/POTFILES.in
 1458a539ab520ec9ecde71e95b38d325  ld/po/sv.gmo
 6c881a8bbe72addbfc0267a9efda3850  ld/po/sv.po
 3d1ef990f300fb1817b57310a731db3e  ld/po/tr.gmo
@@ -6632,7 +6642,7 @@
 206c75cbd7e5185b3ee0c11b5528baa1  ld/scripttempl/delta68.sc
 756f010bc1fcebe9cb08b1c8afa66389  ld/scripttempl/dlx.sc
 32f050a89ef46aed9271f6cd6d7f0bb7  ld/scripttempl/ebmon29k.sc
-cf9683a9726de74ced43ea7b05a88cc5  ld/scripttempl/elf.sc
+06b956187fce5f6eb26fcf945947d36f  ld/scripttempl/elf.sc
 2fbe76192c4153c98b995e8cbd0bb119  ld/scripttempl/elf32cr16.sc
 8222028cb2706153489bff8d5a823387  ld/scripttempl/elf32cr16c.sc
 03fa4a27215925af3a39d23023313935  ld/scripttempl/elf32crx.sc
@@ -6711,7 +6721,7 @@
 60b2f678a8887cae18760d0013bffa20  ld/scripttempl/z8000.sc
 1ded054093de910d9786c62bc4fe8cc6  ld/stamp-h.in
 9e68761f5c37d1787d64ecab67bafe01  ld/sysdep.h
-59a292bd94a2ee43877f580fec85469e  ld/testsuite/ChangeLog
+c1523688a94bfb67736bf4c9c27d71a8  ld/testsuite/ChangeLog
 43821ec3e01aa56c69d031c9cb7aaac6  ld/testsuite/ChangeLog-2004
 0593940197fddd34e72d34ad4681e18d  ld/testsuite/ChangeLog-2005
 13ed49b06cc49649e67f1df2f524946a  ld/testsuite/ChangeLog-2006
@@ -6755,7 +6765,7 @@
 1eb65e01cb3f72a9a9f674a0a23bfe43  ld/testsuite/ld-arm/arm-call1.s
 9135ee4b605fc6176c978325ff45c6e9  ld/testsuite/ld-arm/arm-call2.s
 08422e7338327f170663ee64993d2d15  ld/testsuite/ld-arm/arm-dyn.ld
-f01282a3b03f935b754ec0f02c85e03a  ld/testsuite/ld-arm/arm-elf.exp
+4910ca9732789e7560581564e12334bd  ld/testsuite/ld-arm/arm-elf.exp
 b04b3e1b69a55141a0ebfd7ae824ef8c  ld/testsuite/ld-arm/arm-lib-plt32.d
 a167e469316cdd1ed8af41301205f0a0  ld/testsuite/ld-arm/arm-lib-plt32.r
 72d35e1785ba54a876601fb0dbeeab24  ld/testsuite/ld-arm/arm-lib-plt32.s
@@ -6918,6 +6928,10 @@
 9693aef33aa3f5ee3818dc2204efce12  ld/testsuite/ld-arm/group-relocs-ldrs-bad.s
 ee4ef770572061ed1059a6c047237cfe  ld/testsuite/ld-arm/group-relocs.d
 78ce7e023e1695b29872bd1e5814792d  ld/testsuite/ld-arm/group-relocs.s
+ac964ff819783b53c7feedc2fa7eb4a0  ld/testsuite/ld-arm/jump-reloc-veneers-long.d
+5119a2190ddc593f4a8bf5950b7f6f0d  ld/testsuite/ld-arm/jump-reloc-veneers-short1.d
+7620283ae66569c459a5b78921e6a0b5  ld/testsuite/ld-arm/jump-reloc-veneers-short2.d
+3afdde0f706379c0c26f67c161e9b4e4  ld/testsuite/ld-arm/jump-reloc-veneers.s
 aaeacb4c7723efa0592090d8e28aa38b  ld/testsuite/ld-arm/jump19.d
 5fdb667b4eeed2b5a5e365f6157f7f53  ld/testsuite/ld-arm/jump19.s
 ef985e11cd18e380d77a37c7a5399e05  ld/testsuite/ld-arm/mixed-app-v5.d
@@ -7106,15 +7120,15 @@
 dc6a7771a81b22e57b5cc2723dd73819  ld/testsuite/ld-cris/tls-dso-xz-1.d
 d812a514a905d85452cb5d34e99c0b69  ld/testsuite/ld-cris/tls-dtpoffdx.s
 3da8008017f62a902040791e3996d1e3  ld/testsuite/ld-cris/tls-dtprelm.s
-1241ab94943a409d3df47a2584490498  ld/testsuite/ld-cris/tls-e-20.d
-ae4244890b1a865f83d2e669c1fcadbe  ld/testsuite/ld-cris/tls-e-20a.d
+481af11e54c8e5760981b0c3b293a5c3  ld/testsuite/ld-cris/tls-e-20.d
+40aeb7a328c888eeb312cd43755c1900  ld/testsuite/ld-cris/tls-e-20a.d
 550a13c4e70ae123db6f471fbcb96ca1  ld/testsuite/ld-cris/tls-e-21.d
-c69a95ce4d7a563fdbd66c19c37a1b38  ld/testsuite/ld-cris/tls-e-22.d
+23f2ffdceafd751d6db07fda526ef9a4  ld/testsuite/ld-cris/tls-e-22.d
 5699e4ea4ad88563da8ae26484bd289e  ld/testsuite/ld-cris/tls-e-23.d
 45680291556e5a4ba2313535a7d73029  ld/testsuite/ld-cris/tls-e-66.d
-3f11922bd86fc20d1601d0a3cac2178b  ld/testsuite/ld-cris/tls-e-80.d
-f3f1b4425e124980ef14bfadba2a48d8  ld/testsuite/ld-cris/tls-e-dtpoffd1.d
-f43a5eecf01e86f9d99ad222b49f874f  ld/testsuite/ld-cris/tls-e-dtpoffd3.d
+464b3db34efe76985dc3b8a9914e3d5a  ld/testsuite/ld-cris/tls-e-80.d
+20471f1fcc2d0ae22084287775c19148  ld/testsuite/ld-cris/tls-e-dtpoffd1.d
+bfe76a492985c63a7ab23578af135953  ld/testsuite/ld-cris/tls-e-dtpoffd3.d
 d877a7fe80709cb7aa6f350af68b6780  ld/testsuite/ld-cris/tls-e-tpoffcomm1.d
 50342aefaed14ebfd9238897c30e7168  ld/testsuite/ld-cris/tls-e-tpoffcomm1.s
 d25fd14c85c538cf35c5ff8f326d580f  ld/testsuite/ld-cris/tls-err-20x.d
@@ -7196,10 +7210,10 @@
 679fc1b710b09d032741fd6731445578  ld/testsuite/ld-cris/tls-ldgd-14.s
 ee31f390296482ebca7b72a43397c31c  ld/testsuite/ld-cris/tls-ldgd-15.d
 9797d6ca1f85e6324277c45b4a58601d  ld/testsuite/ld-cris/tls-ldgd-15.s
-f78509a9b38203da7bf7eff8ca4f6f35  ld/testsuite/ld-cris/tls-ldgde-14.d
-5b6406d466e512d385691fbbea1429c6  ld/testsuite/ld-cris/tls-ldgde-15.d
-9f35be2cb7d4cbb1ca5b2d217bd15e4d  ld/testsuite/ld-cris/tls-ldgdex-14.d
-4c79aca80ea181ef15cd202db6ec7351  ld/testsuite/ld-cris/tls-ldgdex-15.d
+d973bab15935e4e25edced51c1f5a01f  ld/testsuite/ld-cris/tls-ldgde-14.d
+0cd1e25768b29a2a5747b0bb6cad0651  ld/testsuite/ld-cris/tls-ldgde-15.d
+3fa67c64792bec501fb1db6e84bd34e1  ld/testsuite/ld-cris/tls-ldgdex-14.d
+0e7a22ba54362bde08475773967bb6a6  ld/testsuite/ld-cris/tls-ldgdex-15.d
 72f8b3d05ca40293b779dedb62650d95  ld/testsuite/ld-cris/tls-ldgdx-14.d
 0c27b3f4594dc269931e211405d20e35  ld/testsuite/ld-cris/tls-ldgdx-15.d
 d88ce0a5efe8a0b8cfe57e055411488c  ld/testsuite/ld-cris/tls-le-12.d
@@ -9065,6 +9079,9 @@
 d3b07384d113edec49eaa6238ad5ff00  ld/testsuite/ld-powerpc/aix-no-dup-syms-1.im
 88e303b5f362d2bed5a0b9ac890b55a6  ld/testsuite/ld-powerpc/aix-no-dup-syms-1a.s
 c8af874076ad726683033347509fa7ac  ld/testsuite/ld-powerpc/aix-no-dup-syms-1b.s
+995efaf46f9360c2de42cc707df57cbe  ld/testsuite/ld-powerpc/aix-ref-1-32.od
+4125c347dab35b4ee206d2634f9a0011  ld/testsuite/ld-powerpc/aix-ref-1-64.od
+5604bf2bd9a113169fbaf5ef75e7a56d  ld/testsuite/ld-powerpc/aix-ref-1.s
 d976c55ada460fa272497cc689c6e36f  ld/testsuite/ld-powerpc/aix-rel-1.od
 55a6057fd2b9eb2daa176789f35e3b68  ld/testsuite/ld-powerpc/aix-rel-1.s
 4237df48b26069a7f09cc9c38b10844e  ld/testsuite/ld-powerpc/aix-toc-1-32.dd
@@ -9100,7 +9117,7 @@
 374aa6a557b88260efd096cf5efb9daf  ld/testsuite/ld-powerpc/aix-weak-3a.s
 009520053b00386d1173f3988c55d192  ld/testsuite/ld-powerpc/aix-weak-3b.ex
 e9279b52fb9ad49703e8c667bc97c2f6  ld/testsuite/ld-powerpc/aix-weak-3b.s
-ea4acf25de3ba983669ad8e0a4de59c0  ld/testsuite/ld-powerpc/aix52.exp
+19847f90e5f5e4ed64aac571cd9e9a57  ld/testsuite/ld-powerpc/aix52.exp
 90ce2f64162c9dc090e96f0729b97f0a  ld/testsuite/ld-powerpc/apuinfo.rd
 787da85c4090a2cd214e445bf01ed784  ld/testsuite/ld-powerpc/apuinfo1.s
 122c70dca18f0a00814d752c8ac134bf  ld/testsuite/ld-powerpc/apuinfo2.s
@@ -10005,7 +10022,7 @@
 fbe2467afef81c41c166173adeb0ee20  mkdep
 766574f467c38d27fc7604ca8eb6734c  mkinstalldirs
 a20215c156b06261d944ae7f30a3b75c  move-if-change
-65724d627f88ea9603261adf5adfa0b6  opcodes/aclocal.m4
+1eabaeb9aa44234d9977c09f3ed932e5  opcodes/aclocal.m4
 0d183fbfd7a3b3bbb706594c41604ace  opcodes/alpha-dis.c
 b2c7455ac27ff79f81ccb4aee922e6a1  opcodes/alpha-opc.c
 4086bffd4ad243d379965f6e8b1dc70d  opcodes/arc-dis.c
@@ -10013,7 +10030,7 @@
 600df541c72eff91184a227ec5b04088  opcodes/arc-ext.c
 b3d65ebfe89e547896663c61def89981  opcodes/arc-ext.h
 e016668afed76e3602ac2c0b9c8c5f9d  opcodes/arc-opc.c
-c8ef6b6b763be3a2716859ae88975426  opcodes/arm-dis.c
+1953d5c3fdd517513f874e7247a0d8fe  opcodes/arm-dis.c
 a7ff38c699b5c09e7a62854ecd54e46c  opcodes/avr-dis.c
 92306ca5de87366b318f185889996716  opcodes/bfin-dis.c
 45cea674fa428a0345e51f278752257c  opcodes/cgen-asm.c
@@ -10026,7 +10043,7 @@
 2b9b845f7b161ef7455edd51eac1685c  opcodes/cgen-ops.h
 7c5687f0e245054341ed9ff9169a0343  opcodes/cgen-types.h
 bc080d7ab00992593cfa8b975cd771a9  opcodes/cgen.sh
-1a262b1256bdbe7874723875c945ce11  opcodes/ChangeLog
+346bfabe1a7f4e1e968d91ba55aeeed6  opcodes/ChangeLog
 1b4b8646bdc7ad5a2f9071d8ac8b024e  opcodes/ChangeLog-0001
 83ac14eead5eda1862cc926b82d35cea  opcodes/ChangeLog-0203
 d4cca6dd9882292b6f2e17604bed6cbd  opcodes/ChangeLog-2004
@@ -10150,7 +10167,7 @@
 a8a5e99b9b9176f9a932a252fd9ab2a1  opcodes/m88k-dis.c
 d618facc3e8ce8bf3d02ba452e1be6ab  opcodes/MAINTAINERS
 084456c9e1285c12092e3c82f37a6a13  opcodes/Makefile.am
-638fdf96e8f69cd6a4e02b25ca80b293  opcodes/Makefile.in
+37693b81c138083c9c388008c6735c48  opcodes/Makefile.in
 3efef7dad61a0eb561346d3047fb7ed8  opcodes/makefile.vms
 82353381607aa08d0214f80b2374196e  opcodes/maxq-dis.c
 e5163d6dcedbe3686a0673bd8a8d3929  opcodes/mcore-dis.c
@@ -10212,7 +10229,7 @@
 ae6d82cae94b6dbf83af04ece662faf8  opcodes/po/Make-in
 ad81a21e8cbc7697c961d49e36f1310f  opcodes/po/nl.gmo
 06250bf1d6eb94893c9bac793eaf7078  opcodes/po/nl.po
-a9853d8895bf67de24c72e1444d966a3  opcodes/po/opcodes.pot
+1e6776b7989f0784e4948a1d151c710b  opcodes/po/opcodes.pot
 42d0757557879a49a37cc19f7abbd4ab  opcodes/po/POTFILES.in
 1b79e075af1926ef6736fa317f054702  opcodes/po/pt_BR.gmo
 30f5fa421474edf39ae99a8985bd42e9  opcodes/po/pt_BR.po
@@ -10226,7 +10243,7 @@
 d240397d7549955db90a909ceca92313  opcodes/po/vi.po
 35aff368921bb92ebaee91c25b2f6af7  opcodes/po/zh_CN.gmo
 5f9e62904aed88b112efa945548f622f  opcodes/po/zh_CN.po
-4f2dda5ed587c6eb5fb08e6a6db2ed88  opcodes/ppc-dis.c
+46f67a35bca0fd56b823e39953ab9f57  opcodes/ppc-dis.c
 92f372db1882f25fd32e077dea783369  opcodes/ppc-opc.c
 22346d07635b0e16085ae3f50f7a5b53  opcodes/s390-dis.c
 b68de552055d61814ea789797085dc4c  opcodes/s390-mkopc.c
diff --git a/binutils/opcodes/ChangeLog b/binutils/opcodes/ChangeLog
index 535d450..68ef62c 100644
--- a/binutils/opcodes/ChangeLog
+++ b/binutils/opcodes/ChangeLog
@@ -1,3 +1,20 @@
+2010-02-18  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
+
+	* arm-dis.c: Fix mis-applied patch.
+
+2010-02-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
+
+	* ppc-dis.c (ppc_opts): Add "pwr4", "pwr5", "pwr5x", "pwr6"
+	and "pwr7".  Move "a2" into alphabetical order.
+
+2010-01-21  Nick Clifton  <nickc@redhat.com>
+
+	* arm-dis.c: Fix mis-applied patch.
+
+2009-11-17  Edward Nevill <edward.nevill@arm.com>
+
+	* arm-dis.c (print_insn_thumb32): Handle undefined instruction.
+
 2009-10-06  Nick Clifton  <nickc@redhat.com>
 
 	* po/fi.po: Updated Finnish translation.
diff --git a/binutils/opcodes/Makefile.in b/binutils/opcodes/Makefile.in
index 5b4721a..424756b 100644
--- a/binutils/opcodes/Makefile.in
+++ b/binutils/opcodes/Makefile.in
@@ -1,4 +1,4 @@
-# Makefile.in generated by automake 1.11 from Makefile.am.
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
@@ -916,7 +916,7 @@
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
@@ -941,7 +941,7 @@
 	fi; test -z "$$fail"
 
 $(RECURSIVE_CLEAN_TARGETS):
-	@failcom='exit 1'; \
+	@fail= failcom='exit 1'; \
 	for f in x $$MAKEFLAGS; do \
 	  case $$f in \
 	    *=* | --[!k]*);; \
diff --git a/binutils/opcodes/aclocal.m4 b/binutils/opcodes/aclocal.m4
index 24b4464..df10cc0 100644
--- a/binutils/opcodes/aclocal.m4
+++ b/binutils/opcodes/aclocal.m4
@@ -1,4 +1,4 @@
-# generated automatically by aclocal 1.11 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 # 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
@@ -34,7 +34,7 @@
 [am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.11], [],
+m4_if([$1], [1.11.1], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -50,7 +50,7 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.11])dnl
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
diff --git a/binutils/opcodes/arm-dis.c b/binutils/opcodes/arm-dis.c
index 7657147..dae4f17 100644
--- a/binutils/opcodes/arm-dis.c
+++ b/binutils/opcodes/arm-dis.c
@@ -3928,12 +3928,16 @@
 		      c += 1 << width;
 		      break;
 
+		    case 'x':
+		      func (stream, "0x%lx", val & 0xffffffffUL);
+		      break;
+
 		    default:
 		      abort ();
 		    }
+		  break;
 		}
-		break;
-
+		      
 	      default:
 		abort ();
 	      }
diff --git a/binutils/opcodes/po/opcodes.pot b/binutils/opcodes/po/opcodes.pot
index 278ea13..a62e615 100644
--- a/binutils/opcodes/po/opcodes.pot
+++ b/binutils/opcodes/po/opcodes.pot
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 14:08+0200\n"
+"POT-Creation-Date: 2010-03-03 15:04+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -115,18 +115,18 @@
 msgstr ""
 
 #. XXX - should break 'option' at following delimiter.
-#: arm-dis.c:4014
+#: arm-dis.c:4018
 #, c-format
 msgid "Unrecognised register name set: %s\n"
 msgstr ""
 
 #. XXX - should break 'option' at following delimiter.
-#: arm-dis.c:4022
+#: arm-dis.c:4026
 #, c-format
 msgid "Unrecognised disassembler option: %s\n"
 msgstr ""
 
-#: arm-dis.c:4519
+#: arm-dis.c:4522
 #, c-format
 msgid ""
 "\n"
@@ -981,12 +981,12 @@
 msgid "$<undefined>"
 msgstr ""
 
-#: ppc-dis.c:222
+#: ppc-dis.c:248
 #, c-format
 msgid "warning: ignoring unknown -M%s option\n"
 msgstr ""
 
-#: ppc-dis.c:511
+#: ppc-dis.c:537
 #, c-format
 msgid ""
 "\n"
@@ -994,43 +994,43 @@
 "the -M switch:\n"
 msgstr ""
 
-#: ppc-opc.c:870 ppc-opc.c:898
+#: ppc-opc.c:873 ppc-opc.c:901
 msgid "invalid conditional option"
 msgstr ""
 
-#: ppc-opc.c:900
+#: ppc-opc.c:903
 msgid "attempt to set y bit when using + or - modifier"
 msgstr ""
 
-#: ppc-opc.c:932
+#: ppc-opc.c:935
 msgid "invalid mask field"
 msgstr ""
 
-#: ppc-opc.c:958
+#: ppc-opc.c:961
 msgid "ignoring invalid mfcr mask"
 msgstr ""
 
-#: ppc-opc.c:1008 ppc-opc.c:1043
+#: ppc-opc.c:1011 ppc-opc.c:1046
 msgid "illegal bitmask"
 msgstr ""
 
-#: ppc-opc.c:1163
+#: ppc-opc.c:1166
 msgid "index register in load range"
 msgstr ""
 
-#: ppc-opc.c:1179
+#: ppc-opc.c:1182
 msgid "source and target register operands must be different"
 msgstr ""
 
-#: ppc-opc.c:1194
+#: ppc-opc.c:1197
 msgid "invalid register operand when updating"
 msgstr ""
 
-#: ppc-opc.c:1273
+#: ppc-opc.c:1276
 msgid "invalid sprg number"
 msgstr ""
 
-#: ppc-opc.c:1443
+#: ppc-opc.c:1446
 msgid "invalid constant"
 msgstr ""
 
diff --git a/binutils/opcodes/ppc-dis.c b/binutils/opcodes/ppc-dis.c
index ac88f76..883bb3b 100644
--- a/binutils/opcodes/ppc-dis.c
+++ b/binutils/opcodes/ppc-dis.c
@@ -89,6 +89,10 @@
     0 },
   { "750cl",   (PPC_OPCODE_PPC | PPC_OPCODE_PPCPS)
     , 0 },
+  { "a2",      (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ISEL
+		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_CACHELCK
+		| PPC_OPCODE_64 | PPC_OPCODE_A2),
+    0 },
   { "altivec", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC),
     PPC_OPCODE_ALTIVEC },
   { "any",     0,
@@ -145,16 +149,30 @@
   { "ppc64bridge", (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64_BRIDGE
 		    | PPC_OPCODE_64),
     0 },
-  { "a2",      (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ISEL
-		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_CACHELCK
-		| PPC_OPCODE_64 | PPC_OPCODE_A2),
-    0 },
   { "ppcps",   (PPC_OPCODE_PPC | PPC_OPCODE_PPCPS),
     0 },
   { "pwr",     (PPC_OPCODE_POWER | PPC_OPCODE_32),
     0 },
   { "pwr2",    (PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_32),
     0 },
+  { "pwr4",    (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64
+		| PPC_OPCODE_POWER4),
+    0 },
+  { "pwr5",    (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64
+		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5),
+    0 },
+  { "pwr5x",   (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64
+		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5),
+    0 },
+  { "pwr6",    (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_64
+		| PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6
+		| PPC_OPCODE_ALTIVEC),
+    0 },
+  { "pwr7",    (PPC_OPCODE_PPC | PPC_OPCODE_CLASSIC | PPC_OPCODE_ISEL
+		| PPC_OPCODE_64 | PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5
+		| PPC_OPCODE_POWER6 | PPC_OPCODE_POWER7 | PPC_OPCODE_ALTIVEC
+		| PPC_OPCODE_VSX),
+    0 },
   { "pwrx",    (PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_32),
     0 },
   { "spe",     (PPC_OPCODE_PPC | PPC_OPCODE_EFS),