[binutils-gdb] This patch adds support to objdump for disassembly of NFP (Netronome Flow Processor) ELF files (.nff

Nick Clifton nickc@sourceware.org
Mon Apr 30 16:05:00 GMT 2018


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=fe944acf8f858cfe6bcfd00670a88847a464717c

commit fe944acf8f858cfe6bcfd00670a88847a464717c
Author: Francois H. Theron <francois.theron@netronome.com>
Date:   Mon Apr 30 17:02:59 2018 +0100

    This patch adds support to objdump for disassembly of NFP (Netronome Flow Processor) ELF files (.nffw) as well as some basic readelf support.
    
    bfd	* Makefile.am: Added NFP files to build.
    	* archures.c: Added bfd_arch_nfp
    	* config.bfd: Added NFP support.
    	* configure.ac: Added NFP support.
    	* cpu-nfp.c: New, for NFP support.
    	* elf-bfd.h: Added elf_section_info()
    	* elf64-nfp.c: New, for NFP support.
    	* po/SRC-POTFILES.in: Added NFP source files.
    	* targets.c: Added nfp_elf64_vec
    	* bfd-in2.h: Regenerate.
    	* Makefile.in: Regenerate.
    	* configure: Regenerate.
    
    binutils* readelf.c: Very basic support for EM_NFP and its section types.
    	* testsuite/binutils-all/nfp: New directory.
    	* testsuite/binutils-all/nfp/objdump.exp: New file.  Run new
    	tests.
    	* testsuite/binutils-all/nfp/test2_ctx8.d: New file.
    	* testsuite/binutils-all/nfp/test2_no-pc_ctx4.d: New file.
    	* testsuite/binutils-all/nfp/test1.d: New file.
    	* testsuite/binutils-all/nfp/nfp6000.nffw: New file.
    	* testsuite/binutils-all/nfp/test2_nfp6000.nffw: New file.
    	* NEWS: Mention the new support.
    
    include	* dis-asm.h: Added print_nfp_disassembler_options prototype.
    	* elf/common.h: Added EM_NFP, officially assigned. See Google Group
    	Generic System V Application Binary Interface.
    	* elf/nfp.h: New, for NFP support.
    	* opcode/nfp.h: New, for NFP support.
    
    opcodes	Makefile.am: Added nfp-dis.c.
    	configure.ac: Added bfd_nfp_arch.
    	disassemble.h: Added print_insn_nfp prototype.
    	disassemble.c: Added ARCH_nfp and call to print_insn_nfp
    	nfp-dis.c: New, for NFP support.
    	po/POTFILES.in: Added nfp-dis.c to the list.
    	Makefile.in: Regenerate.
    	configure: Regenerate.

Diff:
---
 bfd/ChangeLog                                      |   15 +
 bfd/Makefile.am                                    |    4 +
 bfd/Makefile.in                                    |    6 +
 bfd/archures.c                                     |    5 +
 bfd/bfd-in2.h                                      |    3 +
 bfd/config.bfd                                     |    7 +
 bfd/configure                                      |    1 +
 bfd/configure.ac                                   |    1 +
 bfd/cpu-nfp.c                                      |   62 +
 bfd/elf-bfd.h                                      |    1 +
 bfd/elf64-nfp.c                                    |  276 ++
 bfd/po/SRC-POTFILES.in                             |    2 +
 bfd/po/bfd.pot                                     |  602 ++--
 bfd/targets.c                                      |    3 +
 binutils/ChangeLog                                 |   13 +
 binutils/NEWS                                      |    2 +
 binutils/po/binutils.pot                           | 3429 +++++++++-----------
 binutils/readelf.c                                 |   37 +
 binutils/testsuite/binutils-all/nfp/objdump.exp    |   52 +
 binutils/testsuite/binutils-all/nfp/test1.d        |  973 ++++++
 .../testsuite/binutils-all/nfp/test1_nfp6000.nffw  |  Bin 0 -> 9880 bytes
 binutils/testsuite/binutils-all/nfp/test2_ctx8.d   |   16 +
 .../testsuite/binutils-all/nfp/test2_nfp6000.nffw  |  Bin 0 -> 1472 bytes
 .../testsuite/binutils-all/nfp/test2_no-pc_ctx4.d  |   16 +
 include/ChangeLog                                  |    8 +
 include/dis-asm.h                                  |    1 +
 include/elf/common.h                               |    1 +
 include/elf/nfp.h                                  |  292 ++
 include/opcode/nfp.h                               |  180 +
 opcodes/ChangeLog                                  |   11 +
 opcodes/Makefile.am                                |    1 +
 opcodes/Makefile.in                                |    2 +
 opcodes/configure                                  |    1 +
 opcodes/configure.ac                               |    1 +
 opcodes/disassemble.c                              |    9 +
 opcodes/disassemble.h                              |    1 +
 opcodes/nfp-dis.c                                  | 2990 +++++++++++++++++
 opcodes/po/POTFILES.in                             |    1 +
 opcodes/po/opcodes.pot                             |  735 +++--
 39 files changed, 7302 insertions(+), 2458 deletions(-)

diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 2b7dfb4..11baf5d 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,18 @@
+2018-04-30  Francois H. Theron <francois.theron@netronome.com>
+
+	* Makefile.am: Added NFP files to build.
+	* archures.c: Added bfd_arch_nfp
+	* config.bfd: Added NFP support.
+	* configure.ac: Added NFP support.
+	* cpu-nfp.c: New, for NFP support.
+	* elf-bfd.h: Added elf_section_info()
+	* elf64-nfp.c: New, for NFP support.
+	* po/SRC-POTFILES.in: Added NFP source files.
+	* targets.c: Added nfp_elf64_vec
+	* bfd-in2.h: Regenerate.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
 2018-04-27  Alan Modra  <amodra@gmail.com>
 
 	* bfd-in2.h: Regenerate.
diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 4f5610d..8500a4f 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -135,6 +135,7 @@ ALL_MACHINES = \
 	cpu-msp430.lo \
 	cpu-mt.lo \
 	cpu-nds32.lo \
+	cpu-nfp.lo \
 	cpu-nios2.lo \
 	cpu-ns32k.lo \
 	cpu-or1k.lo \
@@ -218,6 +219,7 @@ ALL_MACHINES_CFILES = \
 	cpu-msp430.c \
 	cpu-mt.c \
 	cpu-nds32.c \
+	cpu-nfp.c \
 	cpu-ns32k.c \
 	cpu-nios2.c \
 	cpu-or1k.c \
@@ -555,6 +557,7 @@ BFD64_BACKENDS = \
 	elf64-mips.lo \
 	elfxx-mips.lo \
 	elf64-mmix.lo \
+	elf64-nfp.lo \
 	elf64-ppc.lo \
 	elf32-riscv.lo \
 	elf64-riscv.lo \
@@ -590,6 +593,7 @@ BFD64_BACKENDS_CFILES = \
 	elf64-ia64-vms.c \
 	elf64-mips.c \
 	elf64-mmix.c \
+	elf64-nfp.c \
 	elf64-ppc.c \
 	elf64-s390.c \
 	elf64-sparc.c \
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 3acbdaa..ccd9ce1 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -468,6 +468,7 @@ ALL_MACHINES = \
 	cpu-msp430.lo \
 	cpu-mt.lo \
 	cpu-nds32.lo \
+	cpu-nfp.lo \
 	cpu-nios2.lo \
 	cpu-ns32k.lo \
 	cpu-or1k.lo \
@@ -551,6 +552,7 @@ ALL_MACHINES_CFILES = \
 	cpu-msp430.c \
 	cpu-mt.c \
 	cpu-nds32.c \
+	cpu-nfp.c \
 	cpu-ns32k.c \
 	cpu-nios2.c \
 	cpu-or1k.c \
@@ -890,6 +892,7 @@ BFD64_BACKENDS = \
 	elf64-mips.lo \
 	elfxx-mips.lo \
 	elf64-mmix.lo \
+	elf64-nfp.lo \
 	elf64-ppc.lo \
 	elf32-riscv.lo \
 	elf64-riscv.lo \
@@ -925,6 +928,7 @@ BFD64_BACKENDS_CFILES = \
 	elf64-ia64-vms.c \
 	elf64-mips.c \
 	elf64-mmix.c \
+	elf64-nfp.c \
 	elf64-ppc.c \
 	elf64-s390.c \
 	elf64-sparc.c \
@@ -1259,6 +1263,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-msp430.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-mt.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nds32.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nfp.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-nios2.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-ns32k.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-or1k.Plo@am__quote@
@@ -1382,6 +1387,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ia64.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mips.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-mmix.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-nfp.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-ppc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-riscv.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-s390.Plo@am__quote@
diff --git a/bfd/archures.c b/bfd/archures.c
index 2536949..4c20664 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -511,6 +511,9 @@ DESCRIPTION
 .#define bfd_mach_wasm32	1
 .  bfd_arch_pru,       {* PRU.  *}
 .#define bfd_mach_pru		0
+.  bfd_arch_nfp,       {* Netronome Flow Processor *}
+.#define bfd_mach_nfp3200	0x3200
+.#define bfd_mach_nfp6000	0x6000
 .  bfd_arch_last
 .  };
 */
@@ -601,6 +604,7 @@ extern const bfd_arch_info_type bfd_ft32_arch;
 extern const bfd_arch_info_type bfd_msp430_arch;
 extern const bfd_arch_info_type bfd_mt_arch;
 extern const bfd_arch_info_type bfd_nds32_arch;
+extern const bfd_arch_info_type bfd_nfp_arch;
 extern const bfd_arch_info_type bfd_nios2_arch;
 extern const bfd_arch_info_type bfd_ns32k_arch;
 extern const bfd_arch_info_type bfd_or1k_arch;
@@ -689,6 +693,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
     &bfd_msp430_arch,
     &bfd_mt_arch,
     &bfd_nds32_arch,
+    &bfd_nfp_arch,
     &bfd_nios2_arch,
     &bfd_ns32k_arch,
     &bfd_or1k_arch,
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 40d33ea..4822686 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -2381,6 +2381,9 @@ enum bfd_architecture
 #define bfd_mach_wasm32        1
   bfd_arch_pru,       /* PRU.  */
 #define bfd_mach_pru           0
+  bfd_arch_nfp,       /* Netronome Flow Processor */
+#define bfd_mach_nfp3200       0x3200
+#define bfd_mach_nfp6000       0x6000
   bfd_arch_last
   };
 
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 0b40636..bbd4194 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -182,6 +182,7 @@ m68*)		 targ_archs=bfd_m68k_arch ;;
 microblaze*)	 targ_archs=bfd_microblaze_arch ;;
 mips*)		 targ_archs=bfd_mips_arch ;;
 nds32*)		 targ_archs=bfd_nds32_arch ;;
+nfp)		 targ_archs=bfd_nfp_arch ;;
 nios2*)          targ_archs=bfd_nios2_arch ;;
 or1k*|or1knd*)	 targ_archs=bfd_or1k_arch ;;
 pdp11*)		 targ_archs=bfd_pdp11_arch ;;
@@ -992,6 +993,12 @@ case "${targ}" in
     targ_selvecs=nds32_elf32_le_vec
     ;;
 
+#ifdef BFD64
+  nfp-*-*)
+    targ_defvec=nfp_elf64_vec
+    ;;
+#endif
+
   ns32k-pc532-mach* | ns32k-pc532-ux*)
     targ_defvec=ns32k_aout_pc532mach_vec
     targ_underscore=yes
diff --git a/bfd/configure b/bfd/configure
index ab9e8ee..5aca725 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -14482,6 +14482,7 @@ do
     nds32_elf32_le_vec)		 tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
     nds32_elf32_linux_be_vec)	 tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
     nds32_elf32_linux_le_vec)	 tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
+    nfp_elf64_vec)		 tb="$tb elf64-nfp.lo elf64.lo $elf" ;;
     nios2_elf32_be_vec)		 tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
     nios2_elf32_le_vec)		 tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
     ns32k_aout_pc532mach_vec)	 tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
diff --git a/bfd/configure.ac b/bfd/configure.ac
index ae79461..3cef5f9 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -559,6 +559,7 @@ do
     nds32_elf32_le_vec)		 tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
     nds32_elf32_linux_be_vec)	 tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
     nds32_elf32_linux_le_vec)	 tb="$tb elf32-nds32.lo elf32.lo $elf" ;;
+    nfp_elf64_vec)		 tb="$tb elf64-nfp.lo elf64.lo $elf" ;;
     nios2_elf32_be_vec)		 tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
     nios2_elf32_le_vec)		 tb="$tb elf32-nios2.lo elf32.lo $elf" ;;
     ns32k_aout_pc532mach_vec)	 tb="$tb pc532-mach.lo aout-ns32k.lo" ;;
diff --git a/bfd/cpu-nfp.c b/bfd/cpu-nfp.c
new file mode 100644
index 0000000..ef97f86
--- /dev/null
+++ b/bfd/cpu-nfp.c
@@ -0,0 +1,62 @@
+/* BFD library support routines for the NFP.
+   Copyright (C) 2017 Free Software Foundation, Inc.
+   Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+
+static const bfd_arch_info_type *
+bfd_nfp_compatible (const bfd_arch_info_type * a,
+		    const bfd_arch_info_type * b)
+{
+  if (a->arch != b->arch)
+    return NULL;
+
+  if (a->mach != b->mach)
+    return NULL;
+
+  return a;
+}
+
+#define N(machine, print, default, next)			\
+{								\
+  32,								\
+  64,								\
+  8,								\
+  bfd_arch_nfp,							\
+  machine,							\
+  "nfp",							\
+  print,							\
+  3,								\
+  default,							\
+  bfd_nfp_compatible,						\
+  bfd_default_scan,						\
+  bfd_arch_default_fill,					\
+  next								\
+}
+
+static const bfd_arch_info_type arch_info_struct[] =
+{
+  N (bfd_mach_nfp3200, "NFP-32xx", FALSE, NULL)
+};
+
+const bfd_arch_info_type bfd_nfp_arch =
+  N (bfd_mach_nfp6000, "NFP-6xxx", TRUE, &arch_info_struct[0]);
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index 9c900b7..7b74690 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1671,6 +1671,7 @@ struct bfd_elf_section_data
 #define elf_linked_to_section(sec) (elf_section_data(sec)->linked_to)
 #define elf_section_type(sec)	(elf_section_data(sec)->this_hdr.sh_type)
 #define elf_section_flags(sec)	(elf_section_data(sec)->this_hdr.sh_flags)
+#define elf_section_info(sec)	(elf_section_data(sec)->this_hdr.sh_info)
 #define elf_group_name(sec)	(elf_section_data(sec)->group.name)
 #define elf_group_id(sec)	(elf_section_data(sec)->group.id)
 #define elf_next_in_group(sec)	(elf_section_data(sec)->next_in_group)
diff --git a/bfd/elf64-nfp.c b/bfd/elf64-nfp.c
new file mode 100755
index 0000000..3cdda3d
--- /dev/null
+++ b/bfd/elf64-nfp.c
@@ -0,0 +1,276 @@
+/* NFP-specific support for 64-bit ELF
+   Copyright (C) 2017-2018 Free Software Foundation, Inc.
+   Contributed by Francois H. Theron <francois.theron@netronome.com>
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+#include "elf/nfp.h"
+#include "bfd_stdint.h"
+
+
+static bfd_reloc_status_type
+elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED,
+		 arelent * reloc_entry,
+		 asymbol * symbol,
+		 void *data ATTRIBUTE_UNUSED,
+		 asection * input_section,
+		 bfd * output_bfd,
+		 char **error_message ATTRIBUTE_UNUSED);
+
+/* We don't actually apply any relocations in this toolset
+   so we make them all do nothing, but at least display useful
+   names.
+   Most of these are mainly used by the NFP toolchain to resolve things
+   before the final ELF file is created.  */
+static reloc_howto_type elf_nfp_howto_table[] =
+{
+  HOWTO (R_NFP_NOTYPE,		/* Type.  */
+	 0,			/* Rightshift.  */
+	 3,			/* Size.  */
+	 0,			/* Bitsize.  */
+	 FALSE,			/* PC_relative.  */
+	 0,			/* Bitpos.  */
+	 complain_overflow_dont,/* Complain_on_overflow.  */
+	 elf64_nfp_reloc,	/* Special_function.  */
+	 "R_NFP_NOTYPE",	/* Name.  */
+	 FALSE,			/* Partial_inplace.  */
+	 0,			/* Src_mask.  */
+	 0,			/* Dst_mask.  */
+	 FALSE),		/* PCrel_offset.  */
+  HOWTO (R_NFP_W32LE, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32LE",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SRC8_A, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SRC8_A",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SRC8_B, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SRC8_B",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_IMMED8_I, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_IMMED8_I",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SC, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SC",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_IMMED_LO16_I_A, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_IMMED_LO16_I_A",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_IMMED_LO16_I_B, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_IMMED_LO16_I_B",
+	 TRUE, 0, 0, FALSE),
+  HOWTO (R_NFP_SRC7_B, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SRC7_B",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SRC7_A, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SRC7_A",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SRC8_I_B, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SRC8_I_B",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SRC8_I_A, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SRC8_I_A",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_IMMED_HI16_I_A, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_IMMED_HI16_I_A",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_IMMED_HI16_I_B, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_IMMED_HI16_I_B",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W64LE, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W64LE",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_SH_INFO, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_SH_INFO",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W32BE, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32BE",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W64BE, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W64BE",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W32_29_24, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32_29_24",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W32LE_AND, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32LE_AND",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W32BE_AND, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32BE_AND",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W32LE_OR, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32LE_OR",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W32BE_OR, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W32BE_OR",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W64LE_AND, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W64LE_AND",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W64BE_AND, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W64BE_AND",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W64LE_OR, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W64LE_OR",
+	 FALSE, 0, 0, FALSE),
+  HOWTO (R_NFP_W64BE_OR, 0, 3, 0, FALSE, 0,
+	 complain_overflow_dont, elf64_nfp_reloc,
+	 "R_NFP_W64BE_OR",
+	 FALSE, 0, 0, FALSE)
+};
+
+static bfd_boolean
+elf64_nfp_object_p (bfd * abfd)
+{
+  /* If the e_machine value is one of the unofficial ones, we convert
+     it first and set e_flags accordingly for later consistency.  */
+  if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_3200)
+    {
+      elf_elfheader (abfd)->e_machine = EM_NFP;
+      elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0);
+      elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_3200);
+    }
+  else if (elf_elfheader (abfd)->e_machine == E_NFP_MACH_6000)
+    {
+      elf_elfheader (abfd)->e_machine = EM_NFP;
+      elf_elfheader (abfd)->e_flags &= ~EF_NFP_SET_MACH (~0);
+      elf_elfheader (abfd)->e_flags |= EF_NFP_SET_MACH (E_NFP_MACH_6000);
+    }
+
+  if (elf_elfheader (abfd)->e_machine == EM_NFP)
+    {
+      int e_mach = EF_NFP_MACH (elf_elfheader (abfd)->e_flags);
+
+      switch (e_mach)
+	{
+	case E_NFP_MACH_3200:
+	case E_NFP_MACH_6000:
+	  if (!bfd_default_set_arch_mach (abfd, bfd_arch_nfp, e_mach))
+	    return FALSE;
+	default:
+	  break;
+	}
+    }
+
+  return TRUE;
+}
+
+static bfd_boolean
+elf64_nfp_section_from_shdr (bfd * abfd,
+			     Elf_Internal_Shdr * hdr,
+			     const char *name, int shindex)
+{
+  switch (hdr->sh_type)
+    {
+    case SHT_NFP_INITREG:
+    case SHT_NFP_MECONFIG:
+    case SHT_NFP_UDEBUG:
+      return _bfd_elf_make_section_from_shdr (abfd, hdr, name, shindex);
+    default:
+      return FALSE;
+    }
+}
+
+bfd_reloc_status_type
+elf64_nfp_reloc (bfd * abfd ATTRIBUTE_UNUSED,
+		 arelent * reloc_entry ATTRIBUTE_UNUSED,
+		 asymbol * symbol ATTRIBUTE_UNUSED,
+		 void *data ATTRIBUTE_UNUSED,
+		 asection * input_section ATTRIBUTE_UNUSED,
+		 bfd * output_bfd ATTRIBUTE_UNUSED,
+		 char **error_message ATTRIBUTE_UNUSED)
+{
+  return bfd_reloc_ok;
+}
+
+static bfd_boolean
+elf64_nfp_info_to_howto (bfd * abfd ATTRIBUTE_UNUSED,
+			 arelent * cache_ptr, Elf_Internal_Rela * dst)
+{
+  unsigned int r_type;
+
+  r_type = ELF64_R_TYPE (dst->r_info);
+  if (r_type >= R_NFP_MAX)
+    {
+      /* xgettext:c-format */
+      _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+			  abfd, r_type);
+      bfd_set_error (bfd_error_bad_value);
+      return FALSE;
+    }
+  cache_ptr->howto = &elf_nfp_howto_table[r_type];
+  return TRUE;
+}
+
+static reloc_howto_type *
+elf64_nfp_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
+			     bfd_reloc_code_real_type code ATTRIBUTE_UNUSED)
+{
+  return NULL;
+}
+
+static reloc_howto_type *
+elf64_nfp_reloc_name_lookup (bfd * abfd ATTRIBUTE_UNUSED,
+			     const char *r_name ATTRIBUTE_UNUSED)
+{
+  return NULL;
+}
+
+#define ELF_ARCH		bfd_arch_nfp
+#define ELF_MACHINE_CODE	EM_NFP
+#define ELF_MACHINE_ALT1	E_NFP_MACH_6000
+#define ELF_MACHINE_ALT2	E_NFP_MACH_3200
+#define ELF_MAXPAGESIZE		1
+#define TARGET_LITTLE_NAME	"elf64-nfp"
+#define TARGET_LITTLE_SYM       nfp_elf64_vec
+
+#define elf_backend_object_p		elf64_nfp_object_p
+#define elf_backend_section_from_shdr   elf64_nfp_section_from_shdr
+#define elf_info_to_howto		elf64_nfp_info_to_howto
+#define bfd_elf64_bfd_reloc_type_lookup	     elf64_nfp_reloc_type_lookup
+#define bfd_elf64_bfd_reloc_name_lookup      elf64_nfp_reloc_name_lookup
+
+#include "elf64-target.h"
diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in
index 27139e5..7e82a33 100644
--- a/bfd/po/SRC-POTFILES.in
+++ b/bfd/po/SRC-POTFILES.in
@@ -85,6 +85,7 @@ cpu-moxie.c
 cpu-msp430.c
 cpu-mt.c
 cpu-nds32.c
+cpu-nfp.c
 cpu-nios2.c
 cpu-ns32k.c
 cpu-or1k.c
@@ -209,6 +210,7 @@ elf64-hppa.h
 elf64-ia64-vms.c
 elf64-mips.c
 elf64-mmix.c
+elf64-nfp.c
 elf64-ppc.c
 elf64-s390.c
 elf64-sparc.c
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index a6b2adb..36e0e67 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2018-04-24 11:57+0100\n"
+"POT-Creation-Date: 2018-04-30 11:54+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"
@@ -67,7 +67,7 @@ msgstr ""
 #: aoutx.h:4405 coff-alpha.c:601 coff-alpha.c:1514 coff-rs6000.c:2773
 #: coff-sh.c:504 coff-tic4x.c:184 coff-tic54x.c:279 elf-hppa.h:1040
 #: elf-hppa.h:1068 elf-m10200.c:226 elf-m10300.c:812 elf32-arc.c:519
-#: elf32-arm.c:1852 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698
+#: elf32-arm.c:1944 elf32-avr.c:959 elf32-bfin.c:1061 elf32-bfin.c:4698
 #: elf32-cr16.c:653 elf32-cr16.c:683 elf32-cr16c.c:186 elf32-cris.c:467
 #: elf32-crx.c:429 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
 #: elf32-dlx.c:548 elf32-epiphany.c:376 elf32-fr30.c:381 elf32-frv.c:2558
@@ -88,11 +88,11 @@ msgstr ""
 #: elf32-xstormy16.c:395 elf32-xtensa.c:454 elf32-xtensa.c:488
 #: elf64-alpha.c:1112 elf64-alpha.c:4101 elf64-alpha.c:4249
 #: elf64-ia64-vms.c:254 elf64-ia64-vms.c:3440 elf64-mips.c:3623
-#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-ppc.c:2281 elf64-ppc.c:2555
-#: elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378 elf64-x86-64.c:285
-#: elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955 elfxx-sparc.c:589
-#: elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912 elfxx-tilegx.c:952
-#: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126
+#: elf64-mips.c:3639 elf64-mmix.c:1264 elf64-nfp.c:239 elf64-ppc.c:2281
+#: elf64-ppc.c:2555 elf64-ppc.c:2564 elf64-s390.c:328 elf64-s390.c:378
+#: elf64-x86-64.c:285 elfn32-mips.c:3451 elfxx-ia64.c:325 elfxx-riscv.c:955
+#: elfxx-sparc.c:589 elfxx-sparc.c:639 elfxx-sparc.c:661 elfxx-tilegx.c:912
+#: elfxx-tilegx.c:952 /work/sources/binutils/current/bfd/elfnn-aarch64.c:2126
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:2224 elf32-ia64.c:211
 #: elf32-ia64.c:3863 elf64-ia64.c:211 elf64-ia64.c:3863
 #, c-format
@@ -264,148 +264,12 @@ msgstr ""
 msgid "using multiple gp values"
 msgstr ""
 
-#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8972 elf32-mcore.c:100
-#: elf32-mcore.c:455 elf32-ppc.c:8751 elf32-ppc.c:9883 elf64-ppc.c:14922
+#: coff-alpha.c:1501 coff-alpha.c:1507 elf.c:8979 elf32-mcore.c:100
+#: elf32-mcore.c:455 elf32-ppc.c:8751 elf32-ppc.c:9883 elf64-ppc.c:14932
 #, c-format
 msgid "%pB: %s unsupported"
 msgstr ""
 
-#: coff-arm.c:1037
-#, c-format
-msgid "%pB: unable to find THUMB glue '%s' for `%s'"
-msgstr ""
-
-#: coff-arm.c:1066
-#, c-format
-msgid "%pB: unable to find ARM glue '%s' for `%s'"
-msgstr ""
-
-#: coff-arm.c:1367
-#, c-format
-msgid ""
-"%pB(%s): warning: interworking not enabled; first occurrence: %pB: arm call "
-"to thumb"
-msgstr ""
-
-#: coff-arm.c:1457
-#, c-format
-msgid ""
-"%pB(%s): warning: interworking not enabled; first occurrence: %pB: thumb "
-"call to arm; consider relinking with --support-old-code enabled"
-msgstr ""
-
-#: coff-arm.c:1751 coff-tic80.c:672 cofflink.c:3127
-#, c-format
-msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
-msgstr ""
-
-#: coff-arm.c:2076
-#, c-format
-msgid "%pB: illegal symbol index in reloc: %ld"
-msgstr ""
-
-#: coff-arm.c:2208
-#, c-format
-msgid "error: %pB is compiled for APCS-%d, whereas %pB is compiled for APCS-%d"
-msgstr ""
-
-#: coff-arm.c:2221 elf32-arm.c:19614
-#, c-format
-msgid ""
-"error: %pB passes floats in float registers, whereas %pB passes them in "
-"integer registers"
-msgstr ""
-
-#: coff-arm.c:2226 elf32-arm.c:19618
-#, c-format
-msgid ""
-"error: %pB passes floats in integer registers, whereas %pB passes them in "
-"float registers"
-msgstr ""
-
-#: coff-arm.c:2238
-#, c-format
-msgid ""
-"error: %pB is compiled as position independent code, whereas target %pB is "
-"absolute position"
-msgstr ""
-
-#: coff-arm.c:2243
-#, c-format
-msgid ""
-"error: %pB is compiled as absolute position code, whereas target %pB is "
-"position independent"
-msgstr ""
-
-#: coff-arm.c:2270 elf32-arm.c:19683
-#, c-format
-msgid "warning: %pB supports interworking, whereas %pB does not"
-msgstr ""
-
-#: coff-arm.c:2275 elf32-arm.c:19689
-#, c-format
-msgid "warning: %pB does not support interworking, whereas %pB does"
-msgstr ""
-
-#: coff-arm.c:2298
-#, c-format
-msgid "private flags = %x:"
-msgstr ""
-
-#: coff-arm.c:2306 elf32-arm.c:14191
-#, c-format
-msgid " [floats passed in float registers]"
-msgstr ""
-
-#: coff-arm.c:2308
-#, c-format
-msgid " [floats passed in integer registers]"
-msgstr ""
-
-#: coff-arm.c:2311 elf32-arm.c:14194
-#, c-format
-msgid " [position independent]"
-msgstr ""
-
-#: coff-arm.c:2313
-#, c-format
-msgid " [absolute position]"
-msgstr ""
-
-#: coff-arm.c:2317
-#, c-format
-msgid " [interworking flag not initialised]"
-msgstr ""
-
-#: coff-arm.c:2319
-#, c-format
-msgid " [interworking supported]"
-msgstr ""
-
-#: coff-arm.c:2321
-#, c-format
-msgid " [interworking not supported]"
-msgstr ""
-
-#: coff-arm.c:2366 elf32-arm.c:13052
-#, c-format
-msgid ""
-"warning: not setting interworking flag of %pB since it has already been "
-"specified as non-interworking"
-msgstr ""
-
-#: coff-arm.c:2369 elf32-arm.c:13056
-#, c-format
-msgid "warning: clearing the interworking flag of %pB due to outside request"
-msgstr ""
-
-#: coff-arm.c:2426 elf32-arm.c:13101
-#, c-format
-msgid ""
-"warning: clearing the interworking flag of %pB because non-interworking code "
-"in %pB has been linked with it"
-msgstr ""
-
 #: coff-mips.c:640 elf32-mips.c:1742 elf32-score.c:430 elf32-score7.c:330
 #: elf64-mips.c:3131 elfn32-mips.c:2956
 msgid "GP relative relocation when _gp not defined"
@@ -481,6 +345,11 @@ msgstr ""
 msgid "unsupported relocation type %#x"
 msgstr ""
 
+#: coff-tic80.c:672 cofflink.c:3127
+#, c-format
+msgid "%pB: bad reloc address %#<PRIx64> in section `%pA'"
+msgstr ""
+
 #: coffcode.h:954
 #, c-format
 msgid "%pB: unable to load COMDAT section name"
@@ -1018,7 +887,7 @@ msgstr ""
 msgid "%pB: %s' accessed both as normal and thread local symbol"
 msgstr ""
 
-#: elf-m10300.c:2094 elf32-arm.c:12566 elf32-i386.c:3457 elf32-m32r.c:2539
+#: elf-m10300.c:2094 elf32-arm.c:13225 elf32-i386.c:3457 elf32-m32r.c:2539
 #: elf32-m68k.c:3899 elf32-s390.c:3208 elf32-sh.c:3796 elf32-tilepro.c:3409
 #: elf32-xtensa.c:2947 elf64-s390.c:3125 elf64-x86-64.c:3804 elfxx-sparc.c:3908
 #: elfxx-tilegx.c:3793 /work/sources/binutils/current/bfd/elfnn-aarch64.c:5258
@@ -1046,7 +915,7 @@ msgid "internal error: suspicious relocation type used in shared library"
 msgstr ""
 
 #: elf-m10300.c:2649 elf32-avr.c:2487 elf32-frv.c:5641 elf64-ia64-vms.c:364
-#: elfxx-sparc.c:2797 reloc.c:8078 reloc16.c:155 elf32-ia64.c:362
+#: elfxx-sparc.c:2797 reloc.c:8095 reloc16.c:155 elf32-ia64.c:362
 #: elf64-ia64.c:362
 msgid "%P%F: --relax and -r may not be used together\n"
 msgstr ""
@@ -1256,53 +1125,53 @@ msgstr ""
 msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
 msgstr ""
 
-#: elf.c:4394
+#: elf.c:4401
 #, c-format
 msgid "%pB: GNU_MBIN section `%pA' has invalid sh_info field: %d"
 msgstr ""
 
-#: elf.c:4940
+#: elf.c:4947
 #, c-format
 msgid "%pB: TLS sections are not adjacent:"
 msgstr ""
 
-#: elf.c:4947
+#: elf.c:4954
 #, c-format
 msgid "\t    TLS: %pA"
 msgstr ""
 
-#: elf.c:4951
+#: elf.c:4958
 #, c-format
 msgid "\tnon-TLS: %pA"
 msgstr ""
 
-#: elf.c:5447
+#: elf.c:5454
 #, c-format
 msgid ""
 "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
 msgstr ""
 
-#: elf.c:5475
+#: elf.c:5482
 #, c-format
 msgid "%pB: not enough room for program headers, try linking with -N"
 msgstr ""
 
-#: elf.c:5563
+#: elf.c:5570
 #, c-format
 msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
 msgstr ""
 
-#: elf.c:5700
+#: elf.c:5707
 #, c-format
 msgid "%pB: section `%pA' can't be allocated in segment %d"
 msgstr ""
 
-#: elf.c:5748
+#: elf.c:5755
 #, c-format
 msgid "%pB: warning: allocated section `%s' not in segment"
 msgstr ""
 
-#: elf.c:5981
+#: elf.c:5988
 #, c-format
 msgid ""
 "%pB: error: non-load segment %d includes file header and/or program header"
@@ -1311,47 +1180,47 @@ msgstr ""
 #. The fix for this error is usually to edit the linker script being
 #. used and set up the program headers manually.  Either that or
 #. leave room for the headers at the start of the SECTIONS.
-#: elf.c:6158
+#: elf.c:6165
 #, c-format
 msgid "%pB: error: PHDR segment not covered by LOAD segment"
 msgstr ""
 
-#: elf.c:6503
+#: elf.c:6510
 #, c-format
 msgid "%pB: symbol `%s' required but not present"
 msgstr ""
 
-#: elf.c:6847
+#: elf.c:6854
 #, c-format
 msgid ""
 "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this "
 "intentional?"
 msgstr ""
 
-#: elf.c:7461
+#: elf.c:7468
 #, c-format
 msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
 msgstr ""
 
-#: elf.c:7960
+#: elf.c:7967
 #, c-format
 msgid ""
 "unable to find equivalent output section for symbol '%s' from section '%s'"
 msgstr ""
 
-#: elf.c:8293
+#: elf.c:8300
 #, c-format
 msgid "%pB: .gnu.version_r invalid entry"
 msgstr ""
 
-#: elf.c:8420
+#: elf.c:8427
 #, c-format
 msgid "%pB: .gnu.version_d invalid entry"
 msgstr ""
 
 #: elf32-arc.c:442 elf32-frv.c:6630 elf32-iq2000.c:870 elf32-m32c.c:914
 #: elf32-mt.c:562 elf32-rl78.c:1261 elf32-rx.c:3200 elf32-visium.c:841
-#: elf64-ppc.c:6184
+#: elf64-ppc.c:6194
 #, c-format
 msgid "private flags = 0x%lx:"
 msgstr ""
@@ -1455,7 +1324,7 @@ msgstr ""
 msgid "%pB(%pA): internal error: unknown error"
 msgstr ""
 
-#: elf32-arc.c:1985 elf32-arm.c:14552 elf32-metag.c:2257 elfxx-mips.c:8905
+#: elf32-arc.c:1985 elf32-arm.c:15270 elf32-metag.c:2257 elfxx-mips.c:8905
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7394
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:474
 #, c-format
@@ -1474,7 +1343,7 @@ msgstr ""
 msgid "warning: %pB: unknown ARC object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:4030 elf32-arm.c:4064 elf32-arm.c:4083 elf32-arm.c:4135
+#: elf32-arm.c:4294 elf32-arm.c:4328 elf32-arm.c:4347 elf32-arm.c:4399
 #, c-format
 msgid ""
 "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE "
@@ -1482,141 +1351,141 @@ msgid ""
 "movw instruction"
 msgstr ""
 
-#: elf32-arm.c:4095 elf32-arm.c:4149 elf32-arm.c:8813 elf32-arm.c:8903
+#: elf32-arm.c:4359 elf32-arm.c:4413 elf32-arm.c:9082 elf32-arm.c:9172
 #, c-format
 msgid ""
 "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call "
 "to %s"
 msgstr ""
 
-#: elf32-arm.c:4423
+#: elf32-arm.c:4687
 #, c-format
 msgid "no address assigned to the veneers output section %s"
 msgstr ""
 
-#: elf32-arm.c:4498 elf32-arm.c:6634 elf32-hppa.c:577 elf32-m68hc1x.c:165
-#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4737
+#: elf32-arm.c:4762 elf32-arm.c:6898 elf32-hppa.c:577 elf32-m68hc1x.c:165
+#: elf32-metag.c:1186 elf32-nios2.c:2208 elf64-ppc.c:4747
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:3099
 #, c-format
 msgid "%pB: cannot create stub entry %s"
 msgstr ""
 
-#: elf32-arm.c:5683
+#: elf32-arm.c:5947
 #, c-format
 msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
 msgstr ""
 
-#: elf32-arm.c:5692
+#: elf32-arm.c:5956
 #, c-format
 msgid ""
 "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
 msgstr ""
 
-#: elf32-arm.c:5731
+#: elf32-arm.c:5995
 #, c-format
 msgid ""
 "%pB: invalid standard symbol `%s'; it must be a global or weak function "
 "symbol"
 msgstr ""
 
-#: elf32-arm.c:5737
+#: elf32-arm.c:6001
 #, c-format
 msgid "%pB: absent standard symbol `%s'"
 msgstr ""
 
-#: elf32-arm.c:5749
+#: elf32-arm.c:6013
 #, c-format
 msgid "%pB: `%s' and its special symbol are in different sections"
 msgstr ""
 
-#: elf32-arm.c:5761
+#: elf32-arm.c:6025
 #, c-format
 msgid "%pB: entry function `%s' not output"
 msgstr ""
 
-#: elf32-arm.c:5768
+#: elf32-arm.c:6032
 #, c-format
 msgid "%pB: entry function `%s' is empty"
 msgstr ""
 
-#: elf32-arm.c:5897
+#: elf32-arm.c:6161
 #, c-format
 msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
 msgstr ""
 
-#: elf32-arm.c:5943
+#: elf32-arm.c:6207
 #, c-format
 msgid ""
 "%pB: invalid import library entry: `%s'; symbol should be absolute, global "
 "and refer to Thumb functions"
 msgstr ""
 
-#: elf32-arm.c:5965
+#: elf32-arm.c:6229
 #, c-format
 msgid "entry function `%s' disappeared from secure code"
 msgstr ""
 
-#: elf32-arm.c:5989
+#: elf32-arm.c:6253
 #, c-format
 msgid "`%s' refers to a non entry function"
 msgstr ""
 
-#: elf32-arm.c:6004
+#: elf32-arm.c:6268
 #, c-format
 msgid "%pB: visibility of symbol `%s' has changed"
 msgstr ""
 
-#: elf32-arm.c:6013
+#: elf32-arm.c:6277
 #, c-format
 msgid "%pB: incorrect size for symbol `%s'"
 msgstr ""
 
-#: elf32-arm.c:6032
+#: elf32-arm.c:6296
 #, c-format
 msgid "offset of veneer for entry function `%s' not a multiple of its size"
 msgstr ""
 
-#: elf32-arm.c:6052
+#: elf32-arm.c:6316
 msgid ""
 "new entry function(s) introduced but no output import library specified:"
 msgstr ""
 
-#: elf32-arm.c:6060
+#: elf32-arm.c:6324
 #, c-format
 msgid "start address of `%s' is different from previous link"
 msgstr ""
 
-#: elf32-arm.c:6767 elf32-arm.c:6803
+#: elf32-arm.c:7031 elf32-arm.c:7067
 #, c-format
 msgid "unable to find %s glue '%s' for '%s'"
 msgstr ""
 
-#: elf32-arm.c:7518
+#: elf32-arm.c:7782
 #, c-format
 msgid "%pB: BE8 images only valid in big-endian mode"
 msgstr ""
 
 #. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:7749
+#: elf32-arm.c:8013
 #, c-format
 msgid ""
 "%pB: warning: selected VFP11 erratum workaround is not necessary for target "
 "architecture"
 msgstr ""
 
-#: elf32-arm.c:7776
+#: elf32-arm.c:8040
 #, c-format
 msgid ""
 "%pB: warning: selected STM32L4XX erratum workaround is not necessary for "
 "target architecture"
 msgstr ""
 
-#: elf32-arm.c:8313 elf32-arm.c:8333 elf32-arm.c:8399 elf32-arm.c:8418
+#: elf32-arm.c:8577 elf32-arm.c:8597 elf32-arm.c:8663 elf32-arm.c:8682
 #, c-format
 msgid "%pB: unable to find %s veneer `%s'"
 msgstr ""
 
-#: elf32-arm.c:8625
+#: elf32-arm.c:8889
 #, c-format
 msgid ""
 "%pB(%pA+%#x): error: multiple load detected in non-last IT block "
@@ -1624,182 +1493,201 @@ msgid ""
 "it to generate only one instruction per IT block"
 msgstr ""
 
-#: elf32-arm.c:8723
+#: elf32-arm.c:8989
 #, c-format
 msgid "invalid TARGET2 relocation type '%s'"
 msgstr ""
 
 #. FIXME: We ought to be able to generate thumb-1 PLT
 #. instructions...
-#: elf32-arm.c:9465
+#: elf32-arm.c:9791
 #, c-format
 msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
 msgstr ""
 
-#: elf32-arm.c:9730 elf32-arm.c:9772
+#: elf32-arm.c:10095 elf32-arm.c:10137
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
 msgstr ""
 
-#: elf32-arm.c:10114
+#: elf32-arm.c:10481
 msgid "shared object"
 msgstr ""
 
-#: elf32-arm.c:10117
+#: elf32-arm.c:10484
 msgid "PIE executable"
 msgstr ""
 
-#: elf32-arm.c:10120
+#: elf32-arm.c:10487
 #, c-format
 msgid ""
 "%pB: relocation %s against external or undefined symbol `%s' can not be used "
 "when making a %s; recompile with -fPIC"
 msgstr ""
 
-#: elf32-arm.c:10251 elf32-arm.c:10678
+#: elf32-arm.c:10624 elf32-arm.c:11051
 #, c-format
 msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
 msgstr ""
 
-#: elf32-arm.c:11547 elf32-arm.c:11573
+#: elf32-arm.c:11954 elf32-arm.c:11980
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by "
 "TLS_GOTDESC"
 msgstr ""
 
-#: elf32-arm.c:11605 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366
+#: elf32-arm.c:12026 elf32-m68k.c:3703 elf32-metag.c:1919 elf32-nios2.c:4366
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
 msgstr ""
 
-#: elf32-arm.c:11819
+#: elf32-arm.c:12240
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group "
 "relocations"
 msgstr ""
 
-#: elf32-arm.c:11860 elf32-arm.c:11952 elf32-arm.c:12040 elf32-arm.c:12130
+#: elf32-arm.c:12281 elf32-arm.c:12373 elf32-arm.c:12461 elf32-arm.c:12551
 #, c-format
 msgid ""
 "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group "
 "relocation %s"
 msgstr ""
 
-#: elf32-arm.c:12398 elf32-sh.c:3685
+#: elf32-arm.c:13057 elf32-sh.c:3685
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
 msgstr ""
 
-#: elf32-arm.c:12511 elf32-m68k.c:3936 elf32-xtensa.c:2689
+#: elf32-arm.c:13170 elf32-m68k.c:3936 elf32-xtensa.c:2689
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6466
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:12513 elf32-m68k.c:3938 elf32-xtensa.c:2691
+#: elf32-arm.c:13172 elf32-m68k.c:3938 elf32-xtensa.c:2691
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6468
 #, c-format
 msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
 msgstr ""
 
-#: elf32-arm.c:12596 elf32-tic6x.c:2708
+#: elf32-arm.c:13255 elf32-tic6x.c:2708
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6802
 msgid "out of range"
 msgstr ""
 
-#: elf32-arm.c:12600 elf32-nios2.c:4500 elf32-pru.c:835 elf32-tic6x.c:2712
+#: elf32-arm.c:13259 elf32-nios2.c:4500 elf32-pru.c:835 elf32-tic6x.c:2712
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6806
 msgid "unsupported relocation"
 msgstr ""
 
-#: elf32-arm.c:12608 elf32-nios2.c:4510 elf32-pru.c:845 elf32-tic6x.c:2720
+#: elf32-arm.c:13267 elf32-nios2.c:4510 elf32-pru.c:845 elf32-tic6x.c:2720
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6814
 msgid "unknown error"
 msgstr ""
 
-#: elf32-arm.c:13188
+#: elf32-arm.c:13711
+#, c-format
+msgid ""
+"warning: not setting interworking flag of %pB since it has already been "
+"specified as non-interworking"
+msgstr ""
+
+#: elf32-arm.c:13715
+#, c-format
+msgid "warning: clearing the interworking flag of %pB due to outside request"
+msgstr ""
+
+#: elf32-arm.c:13760
+#, c-format
+msgid ""
+"warning: clearing the interworking flag of %pB because non-interworking code "
+"in %pB has been linked with it"
+msgstr ""
+
+#: elf32-arm.c:13847
 #, c-format
 msgid "%pB: unknown mandatory EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:13196
+#: elf32-arm.c:13855
 #, c-format
 msgid "warning: %pB: unknown EABI object attribute %d"
 msgstr ""
 
-#: elf32-arm.c:13463
+#: elf32-arm.c:14122
 #, c-format
 msgid "error: %pB: unknown CPU architecture"
 msgstr ""
 
-#: elf32-arm.c:13501 elf32-nios2.c:2946
+#: elf32-arm.c:14160 elf32-nios2.c:2946
 #, c-format
 msgid "error: %pB: conflicting CPU architectures %d/%d"
 msgstr ""
 
-#: elf32-arm.c:13598
+#: elf32-arm.c:14257
 #, c-format
 msgid ""
 "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
 
-#: elf32-arm.c:13627
+#: elf32-arm.c:14286
 #, c-format
 msgid "error: %pB uses VFP register arguments, %pB does not"
 msgstr ""
 
-#: elf32-arm.c:13785
+#: elf32-arm.c:14444
 #, c-format
 msgid "error: %pB: unable to merge virtualization attributes with %pB"
 msgstr ""
 
-#: elf32-arm.c:13811
+#: elf32-arm.c:14470
 #, c-format
 msgid "error: %pB: conflicting architecture profiles %c/%c"
 msgstr ""
 
-#: elf32-arm.c:13950
+#: elf32-arm.c:14609
 #, c-format
 msgid "warning: %pB: conflicting platform configuration"
 msgstr ""
 
-#: elf32-arm.c:13959
+#: elf32-arm.c:14618
 #, c-format
 msgid "error: %pB: conflicting use of R9"
 msgstr ""
 
-#: elf32-arm.c:13971
+#: elf32-arm.c:14630
 #, c-format
 msgid "error: %pB: SB relative addressing conflicts with use of R9"
 msgstr ""
 
-#: elf32-arm.c:13984
+#: elf32-arm.c:14643
 #, c-format
 msgid ""
 "warning: %pB 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:14015
+#: elf32-arm.c:14674
 #, c-format
 msgid ""
 "warning: %pB uses %s enums yet the output is to use %s enums; use of enum "
 "values across objects may fail"
 msgstr ""
 
-#: elf32-arm.c:14027
+#: elf32-arm.c:14686
 #, c-format
 msgid "error: %pB uses iWMMXt register arguments, %pB does not"
 msgstr ""
 
-#: elf32-arm.c:14044
+#: elf32-arm.c:14703
 #, c-format
 msgid "error: fp16 format mismatch between %pB and %pB"
 msgstr ""
 
-#: elf32-arm.c:14080
+#: elf32-arm.c:14739
 #, c-format
 msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
 msgstr ""
@@ -1809,7 +1697,7 @@ 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:14167 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410
+#: elf32-arm.c:14826 elf32-bfin.c:4740 elf32-cris.c:3908 elf32-m68hc1x.c:1410
 #: elf32-m68k.c:1201 elf32-score.c:4000 elf32-score7.c:3805 elf32-vax.c:537
 #: elf32-xgate.c:672 elfxx-mips.c:15792
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:6968
@@ -1817,122 +1705,137 @@ msgstr ""
 msgid "private flags = %lx:"
 msgstr ""
 
-#: elf32-arm.c:14176
+#: elf32-arm.c:14835
 #, c-format
 msgid " [interworking enabled]"
 msgstr ""
 
-#: elf32-arm.c:14184
+#: elf32-arm.c:14843
 #, c-format
 msgid " [VFP float format]"
 msgstr ""
 
-#: elf32-arm.c:14186
+#: elf32-arm.c:14845
 #, c-format
 msgid " [Maverick float format]"
 msgstr ""
 
-#: elf32-arm.c:14188
+#: elf32-arm.c:14847
 #, c-format
 msgid " [FPA float format]"
 msgstr ""
 
-#: elf32-arm.c:14197
+#: elf32-arm.c:14850
+#, c-format
+msgid " [floats passed in float registers]"
+msgstr ""
+
+#: elf32-arm.c:14853 elf32-arm.c:14939
+#, c-format
+msgid " [position independent]"
+msgstr ""
+
+#: elf32-arm.c:14856
 #, c-format
 msgid " [new ABI]"
 msgstr ""
 
-#: elf32-arm.c:14200
+#: elf32-arm.c:14859
 #, c-format
 msgid " [old ABI]"
 msgstr ""
 
-#: elf32-arm.c:14203
+#: elf32-arm.c:14862
 #, c-format
 msgid " [software FP]"
 msgstr ""
 
-#: elf32-arm.c:14212
+#: elf32-arm.c:14871
 #, c-format
 msgid " [Version1 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14215 elf32-arm.c:14226
+#: elf32-arm.c:14874 elf32-arm.c:14885
 #, c-format
 msgid " [sorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:14217 elf32-arm.c:14228
+#: elf32-arm.c:14876 elf32-arm.c:14887
 #, c-format
 msgid " [unsorted symbol table]"
 msgstr ""
 
-#: elf32-arm.c:14223
+#: elf32-arm.c:14882
 #, c-format
 msgid " [Version2 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14231
+#: elf32-arm.c:14890
 #, c-format
 msgid " [dynamic symbols use segment index]"
 msgstr ""
 
-#: elf32-arm.c:14234
+#: elf32-arm.c:14893
 #, c-format
 msgid " [mapping symbols precede others]"
 msgstr ""
 
-#: elf32-arm.c:14241
+#: elf32-arm.c:14900
 #, c-format
 msgid " [Version3 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14245
+#: elf32-arm.c:14904
 #, c-format
 msgid " [Version4 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14249
+#: elf32-arm.c:14908
 #, c-format
 msgid " [Version5 EABI]"
 msgstr ""
 
-#: elf32-arm.c:14252
+#: elf32-arm.c:14911
 #, c-format
 msgid " [soft-float ABI]"
 msgstr ""
 
-#: elf32-arm.c:14255
+#: elf32-arm.c:14914
 #, c-format
 msgid " [hard-float ABI]"
 msgstr ""
 
-#: elf32-arm.c:14261
+#: elf32-arm.c:14920
 #, c-format
 msgid " [BE8]"
 msgstr ""
 
-#: elf32-arm.c:14264
+#: elf32-arm.c:14923
 #, c-format
 msgid " [LE8]"
 msgstr ""
 
-#: elf32-arm.c:14270
+#: elf32-arm.c:14929
 #, c-format
 msgid " <EABI version unrecognised>"
 msgstr ""
 
-#: elf32-arm.c:14277
+#: elf32-arm.c:14936
 #, c-format
 msgid " [relocatable executable]"
 msgstr ""
 
-#: elf32-arm.c:14282 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971
+#: elf32-arm.c:14942
+#, c-format
+msgid " [FDPIC ABI supplement]"
+msgstr ""
+
+#: elf32-arm.c:14947 /work/sources/binutils/current/bfd/elfnn-aarch64.c:6971
 #, c-format
 msgid "<Unrecognised flag bits set>"
 msgstr ""
 
-#: elf32-arm.c:14399 elf32-i386.c:1517 elf32-s390.c:960 elf32-tic6x.c:2783
+#: elf32-arm.c:15064 elf32-i386.c:1517 elf32-s390.c:960 elf32-tic6x.c:2783
 #: elf32-tilepro.c:1479 elf32-xtensa.c:1024 elf64-s390.c:882
 #: elf64-x86-64.c:1826 elfxx-sparc.c:1424 elfxx-tilegx.c:1700
 #: /work/sources/binutils/current/bfd/elfnn-aarch64.c:7260
@@ -1941,92 +1844,122 @@ msgstr ""
 msgid "%pB: bad symbol index: %d"
 msgstr ""
 
-#: elf32-arm.c:15667 elf32-hppa.c:2088 elf32-lm32.c:1998 elf32-m32r.c:2110
+#: elf32-arm.c:15455
+#, c-format
+msgid ""
+"FDPIC does not yet support %s relocation to become dynamic for executable"
+msgstr ""
+
+#: elf32-arm.c:16505 elf32-hppa.c:2088 elf32-lm32.c:1998 elf32-m32r.c:2110
 #: elf32-metag.c:2797 elf32-nds32.c:3840 elf32-or1k.c:2285 elf32-ppc.c:6550
 #: elf32-s390.c:1855 elf32-sh.c:2975 elf32-tic6x.c:3239 elf32-tilepro.c:2245
-#: elf64-ppc.c:10249 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491
+#: elf64-ppc.c:10259 elf64-s390.c:1792 elfxx-sparc.c:2437 elfxx-tilegx.c:2491
 #: elfxx-x86.c:571 /work/sources/binutils/current/bfd/elfnn-aarch64.c:8610
 #: /work/sources/binutils/current/bfd/elfnn-riscv.c:1117
 #, c-format
 msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
 msgstr ""
 
-#: elf32-arm.c:15912
+#: elf32-arm.c:16801
 #, c-format
 msgid "errors encountered processing file %pB"
 msgstr ""
 
-#: elf32-arm.c:16349 elflink.c:12416 elflink.c:12463
+#: elf32-arm.c:17248 elflink.c:12416 elflink.c:12463
 #, c-format
 msgid "could not find section %s"
 msgstr ""
 
-#: elf32-arm.c:17525
+#: elf32-arm.c:18459
 #, c-format
 msgid "%pB: 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:17552
+#: elf32-arm.c:18486
 #, c-format
 msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
 msgstr ""
 
-#: elf32-arm.c:18379 elf32-arm.c:18401
+#: elf32-arm.c:19313 elf32-arm.c:19335
 #, c-format
 msgid "%pB: error: VFP11 veneer out of range"
 msgstr ""
 
-#: elf32-arm.c:18452
+#: elf32-arm.c:19386
 #, c-format
 msgid ""
 "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by "
 "%<PRId64> bytes; cannot encode branch instruction"
 msgstr ""
 
-#: elf32-arm.c:18491
+#: elf32-arm.c:19425
 #, c-format
 msgid "%pB: error: cannot create STM32L4XX veneer"
 msgstr ""
 
-#: elf32-arm.c:19513
+#: elf32-arm.c:20519
 #, c-format
 msgid "error: %pB is already in final BE8 format"
 msgstr ""
 
-#: elf32-arm.c:19589
+#: elf32-arm.c:20595
 #, c-format
 msgid ""
 "error: source object %pB has EABI version %d, but target %pB has EABI "
 "version %d"
 msgstr ""
 
-#: elf32-arm.c:19604
+#: elf32-arm.c:20610
 #, c-format
 msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
 msgstr ""
 
-#: elf32-arm.c:19628 elf32-arm.c:19632 elf32-arm.c:19642
+#: elf32-arm.c:20620
+#, c-format
+msgid ""
+"error: %pB passes floats in float registers, whereas %pB passes them in "
+"integer registers"
+msgstr ""
+
+#: elf32-arm.c:20624
+#, c-format
+msgid ""
+"error: %pB passes floats in integer registers, whereas %pB passes them in "
+"float registers"
+msgstr ""
+
+#: elf32-arm.c:20634 elf32-arm.c:20638 elf32-arm.c:20648
 #, c-format
 msgid "error: %pB uses %s instructions, whereas %pB does not"
 msgstr ""
 
-#: elf32-arm.c:19646
+#: elf32-arm.c:20652
 #, c-format
 msgid "error: %pB does not use %s instructions, whereas %pB does"
 msgstr ""
 
-#: elf32-arm.c:19665
+#: elf32-arm.c:20671
 #, c-format
 msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
 msgstr ""
 
-#: elf32-arm.c:19669
+#: elf32-arm.c:20675
 #, c-format
 msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
 msgstr ""
 
+#: elf32-arm.c:20689
+#, c-format
+msgid "warning: %pB supports interworking, whereas %pB does not"
+msgstr ""
+
+#: elf32-arm.c:20695
+#, c-format
+msgid "warning: %pB does not support interworking, whereas %pB does"
+msgstr ""
+
 #: elf32-avr.c:1513 elf32-bfin.c:3135 elf32-cris.c:2041 elf32-epiphany.c:577
 #: elf32-fr30.c:602 elf32-frv.c:4057 elf32-ft32.c:502 elf32-ip2k.c:1493
 #: elf32-iq2000.c:701 elf32-m32c.c:632 elf32-mep.c:534 elf32-metag.c:1998
@@ -2873,7 +2806,7 @@ msgstr ""
 msgid "%pB: unmatched OMIT_FP in %pA"
 msgstr ""
 
-#: elf32-nds32.c:12642 reloc.c:8292
+#: elf32-nds32.c:12642 reloc.c:8309
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
 msgstr ""
@@ -3033,7 +2966,7 @@ msgstr ""
 #. could just mark this symbol to exclude it
 #. from tls optimization but it's safer to skip
 #. the entire optimization.
-#: elf32-ppc.c:5687 elf64-ppc.c:8949
+#: elf32-ppc.c:5687 elf64-ppc.c:8959
 #, c-format
 msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
 msgstr ""
@@ -3062,7 +2995,7 @@ msgstr ""
 msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
 msgstr ""
 
-#: elf32-ppc.c:8727 elf64-ppc.c:15724
+#: elf32-ppc.c:8727 elf64-ppc.c:15734
 msgid "%H: warning: %s unexpected insn %#x.\n"
 msgstr ""
 
@@ -3114,13 +3047,13 @@ msgstr ""
 msgid "%H: %s reloc against `%s': error %d\n"
 msgstr ""
 
-#: elf32-ppc.c:11013 elf64-ppc.c:16216
+#: elf32-ppc.c:11013 elf64-ppc.c:16226
 msgid ""
 "%X%P: text relocations and GNU indirect functions will result in a segfault "
 "at runtime\n"
 msgstr ""
 
-#: elf32-ppc.c:11017 elf64-ppc.c:16220
+#: elf32-ppc.c:11017 elf64-ppc.c:16230
 msgid ""
 "%P: warning: text relocations and GNU indirect functions may result in a "
 "segfault at runtime\n"
@@ -3415,7 +3348,7 @@ msgstr ""
 msgid "overlay stub relocation overflow"
 msgstr ""
 
-#: elf32-spu.c:1984 elf64-ppc.c:13805
+#: elf32-spu.c:1984 elf64-ppc.c:13815
 msgid "stubs don't match calculated size"
 msgstr ""
 
@@ -4164,134 +4097,134 @@ msgid ""
 "internal inconsistency: remaining %lu != max %lu; please report this bug"
 msgstr ""
 
-#: elf64-ppc.c:5068
+#: elf64-ppc.c:5078
 #, c-format
 msgid "symbol '%s' has invalid st_other for ABI version 1"
 msgstr ""
 
-#: elf64-ppc.c:5243
+#: elf64-ppc.c:5253
 #, c-format
 msgid "%pB .opd not allowed in ABI version %d"
 msgstr ""
 
-#: elf64-ppc.c:5757
+#: elf64-ppc.c:5767
 #, c-format
 msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
 msgstr ""
 
-#: elf64-ppc.c:6152
+#: elf64-ppc.c:6162
 #, c-format
 msgid "%pB uses unknown e_flags 0x%lx"
 msgstr ""
 
-#: elf64-ppc.c:6160
+#: elf64-ppc.c:6170
 #, c-format
 msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
 msgstr ""
 
-#: elf64-ppc.c:6188
+#: elf64-ppc.c:6198
 #, c-format
 msgid " [abiv%ld]"
 msgstr ""
 
-#: elf64-ppc.c:7376
+#: elf64-ppc.c:7386
 msgid ""
 "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting "
 "LD_BIND_NOW=1 or upgrade gcc\n"
 msgstr ""
 
-#: elf64-ppc.c:7645
+#: elf64-ppc.c:7655
 #, c-format
 msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
 msgstr ""
 
-#: elf64-ppc.c:7872
+#: elf64-ppc.c:7882
 #, c-format
 msgid "dynreloc miscount for %pB, section %pA"
 msgstr ""
 
-#: elf64-ppc.c:7961
+#: elf64-ppc.c:7971
 #, c-format
 msgid "%pB: .opd is not a regular array of opd entries"
 msgstr ""
 
-#: elf64-ppc.c:7971
+#: elf64-ppc.c:7981
 #, c-format
 msgid "%pB: unexpected reloc type %u in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:7993
+#: elf64-ppc.c:8003
 #, c-format
 msgid "%pB: undefined sym `%s' in .opd section"
 msgstr ""
 
-#: elf64-ppc.c:8477
+#: elf64-ppc.c:8487
 msgid ""
 "warning: --plt-localentry is especially dangerous without ld.so support to "
 "detect ABI violations"
 msgstr ""
 
-#: elf64-ppc.c:8726
+#: elf64-ppc.c:8736
 msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
 msgstr ""
 
-#: elf64-ppc.c:9101 elf64-ppc.c:9738
+#: elf64-ppc.c:9111 elf64-ppc.c:9748
 #, c-format
 msgid "%s defined on removed toc entry"
 msgstr ""
 
-#: elf64-ppc.c:9466
+#: elf64-ppc.c:9476
 #, c-format
 msgid "%H: toc optimization is not supported for %s instruction\n"
 msgstr ""
 
-#: elf64-ppc.c:9695
+#: elf64-ppc.c:9705
 #, c-format
 msgid "%H: %s references optimized away TOC entry\n"
 msgstr ""
 
-#: elf64-ppc.c:10526
+#: elf64-ppc.c:10536
 #, c-format
 msgid "warning: discarding dynamic section %s"
 msgstr ""
 
-#: elf64-ppc.c:11113
+#: elf64-ppc.c:11123
 msgid "%P: cannot find opd entry toc for `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:11201
+#: elf64-ppc.c:11211
 #, c-format
 msgid "long branch stub `%s' offset overflow"
 msgstr ""
 
-#: elf64-ppc.c:11260
+#: elf64-ppc.c:11270
 #, c-format
 msgid "can't find branch stub `%s'"
 msgstr ""
 
-#: elf64-ppc.c:11324 elf64-ppc.c:11452 elf64-ppc.c:13421
+#: elf64-ppc.c:11334 elf64-ppc.c:11462 elf64-ppc.c:13431
 #, c-format
 msgid "%P: linkage table error against `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:11675
+#: elf64-ppc.c:11685
 #, c-format
 msgid "can't build branch stub `%s'"
 msgstr ""
 
-#: elf64-ppc.c:12451
+#: elf64-ppc.c:12461
 #, c-format
 msgid "%pB section %pA exceeds stub group size"
 msgstr ""
 
-#: elf64-ppc.c:13819
+#: elf64-ppc.c:13829
 #, c-format
 msgid "linker stubs in %u group\n"
 msgid_plural "linker stubs in %u groups\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: elf64-ppc.c:13823
+#: elf64-ppc.c:13833
 #, c-format
 msgid ""
 "  branch       %lu\n"
@@ -4303,54 +4236,54 @@ msgid ""
 "  global entry %lu"
 msgstr ""
 
-#: elf64-ppc.c:14142
+#: elf64-ppc.c:14152
 #, c-format
 msgid "%H: %s used with TLS symbol `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:14144
+#: elf64-ppc.c:14154
 #, c-format
 msgid "%H: %s used with non-TLS symbol `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:14788
+#: elf64-ppc.c:14798
 #, c-format
 msgid "%H: call to `%pT' lacks nop, can't restore toc; recompile with -fPIC\n"
 msgstr ""
 
-#: elf64-ppc.c:14794
+#: elf64-ppc.c:14804
 #, c-format
 msgid ""
 "%H: call to `%pT' lacks nop, can't restore toc; (-mcmodel=small toc adjust "
 "stub)\n"
 msgstr ""
 
-#: elf64-ppc.c:15489
+#: elf64-ppc.c:15499
 #, c-format
 msgid "%H: %s for indirect function `%pT' unsupported\n"
 msgstr ""
 
-#: elf64-ppc.c:15601
+#: elf64-ppc.c:15611
 #, c-format
 msgid "%P: %pB: %s is not supported for `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:15827
+#: elf64-ppc.c:15837
 #, c-format
 msgid "%H: error: %s not a multiple of %u\n"
 msgstr ""
 
-#: elf64-ppc.c:15850
+#: elf64-ppc.c:15860
 #, c-format
 msgid "%H: unresolvable %s against `%pT'\n"
 msgstr ""
 
-#: elf64-ppc.c:15947
+#: elf64-ppc.c:15957
 #, c-format
 msgid "%H: %s against `%pT': error %d\n"
 msgstr ""
 
-#: elf64-ppc.c:16293 elf64-ppc.c:16312
+#: elf64-ppc.c:16303 elf64-ppc.c:16322
 #, c-format
 msgid "%s offset too large for .eh_frame sdata4 encoding"
 msgstr ""
@@ -5679,32 +5612,32 @@ msgstr ""
 msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
 msgstr ""
 
-#: reloc.c:8125
+#: reloc.c:8142
 msgid "INPUT_SECTION_FLAGS are not supported"
 msgstr ""
 
-#: reloc.c:8226
+#: reloc.c:8243
 #, c-format
 msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
 msgstr ""
 
-#: reloc.c:8302
+#: reloc.c:8319
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
 msgstr ""
 
-#: reloc.c:8311
+#: reloc.c:8328
 #, c-format
 msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
 msgstr ""
 
-#: reloc.c:8373
+#: reloc.c:8390
 #, c-format
 msgid "%pB: unrecognized relocation type %#x in section `%pA'"
 msgstr ""
 
 #. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8377
+#: reloc.c:8394
 #, c-format
 msgid "is this version of the linker - %s - out of date ?"
 msgstr ""
@@ -8449,86 +8382,91 @@ msgid ""
 "%pB: Data Directory size (%lx) exceeds space left in section (%<PRIx64>)"
 msgstr ""
 
-#: peigen.c:3021 pepigen.c:3021 pex64igen.c:3021
+#: peigen.c:3001 pepigen.c:3001 pex64igen.c:3001
+#, c-format
+msgid "%pB: Data Directory size (%#lx) is negative"
+msgstr ""
+
+#: peigen.c:3030 pepigen.c:3030 pex64igen.c:3030
 msgid "failed to update file offsets in debug directory"
 msgstr ""
 
-#: peigen.c:3027 pepigen.c:3027 pex64igen.c:3027
+#: peigen.c:3036 pepigen.c:3036 pex64igen.c:3036
 #, c-format
 msgid "%pB: failed to read debug data section"
 msgstr ""
 
-#: peigen.c:3843 pepigen.c:3843 pex64igen.c:3843
+#: peigen.c:3852 pepigen.c:3852 pex64igen.c:3852
 #, c-format
 msgid ".rsrc merge failure: duplicate string resource: %d"
 msgstr ""
 
-#: peigen.c:3978 pepigen.c:3978 pex64igen.c:3978
+#: peigen.c:3987 pepigen.c:3987 pex64igen.c:3987
 msgid ".rsrc merge failure: multiple non-default manifests"
 msgstr ""
 
-#: peigen.c:3996 pepigen.c:3996 pex64igen.c:3996
+#: peigen.c:4005 pepigen.c:4005 pex64igen.c:4005
 msgid ".rsrc merge failure: a directory matches a leaf"
 msgstr ""
 
-#: peigen.c:4038 pepigen.c:4038 pex64igen.c:4038
+#: peigen.c:4047 pepigen.c:4047 pex64igen.c:4047
 msgid ".rsrc merge failure: duplicate leaf"
 msgstr ""
 
-#: peigen.c:4040 pepigen.c:4040 pex64igen.c:4040
+#: peigen.c:4049 pepigen.c:4049 pex64igen.c:4049
 #, c-format
 msgid ".rsrc merge failure: duplicate leaf: %s"
 msgstr ""
 
-#: peigen.c:4106 pepigen.c:4106 pex64igen.c:4106
+#: peigen.c:4115 pepigen.c:4115 pex64igen.c:4115
 msgid ".rsrc merge failure: dirs with differing characteristics"
 msgstr ""
 
-#: peigen.c:4113 pepigen.c:4113 pex64igen.c:4113
+#: peigen.c:4122 pepigen.c:4122 pex64igen.c:4122
 msgid ".rsrc merge failure: differing directory versions"
 msgstr ""
 
 #. Corrupted .rsrc section - cannot merge.
-#: peigen.c:4230 pepigen.c:4230 pex64igen.c:4230
+#: peigen.c:4239 pepigen.c:4239 pex64igen.c:4239
 #, c-format
 msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
 msgstr ""
 
-#: peigen.c:4238 pepigen.c:4238 pex64igen.c:4238
+#: peigen.c:4247 pepigen.c:4247 pex64igen.c:4247
 #, c-format
 msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
 msgstr ""
 
-#: peigen.c:4377 pepigen.c:4377 pex64igen.c:4377
+#: peigen.c:4386 pepigen.c:4386 pex64igen.c:4386
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
 msgstr ""
 
-#: peigen.c:4397 pepigen.c:4397 pex64igen.c:4397
+#: peigen.c:4406 pepigen.c:4406 pex64igen.c:4406
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
 msgstr ""
 
-#: peigen.c:4418 pepigen.c:4418 pex64igen.c:4418
+#: peigen.c:4427 pepigen.c:4427 pex64igen.c:4427
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
 msgstr ""
 
-#: peigen.c:4438 pepigen.c:4438 pex64igen.c:4438
+#: peigen.c:4447 pepigen.c:4447 pex64igen.c:4447
 #, c-format
 msgid ""
 "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because ."
 "idata$6 is missing"
 msgstr ""
 
-#: peigen.c:4480 pepigen.c:4480 pex64igen.c:4480
+#: peigen.c:4489 pepigen.c:4489 pex64igen.c:4489
 #, c-format
 msgid ""
 "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because ."
 "idata$6 is missing"
 msgstr ""
 
-#: peigen.c:4505 pepigen.c:4505 pex64igen.c:4505
+#: peigen.c:4514 pepigen.c:4514 pex64igen.c:4514
 #, c-format
 msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
 msgstr ""
diff --git a/bfd/targets.c b/bfd/targets.c
index e490f5f..230048a 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -734,6 +734,7 @@ extern const bfd_target nds32_elf32_be_vec;
 extern const bfd_target nds32_elf32_le_vec;
 extern const bfd_target nds32_elf32_linux_be_vec;
 extern const bfd_target nds32_elf32_linux_le_vec;
+extern const bfd_target nfp_elf64_vec;
 extern const bfd_target nios2_elf32_be_vec;
 extern const bfd_target nios2_elf32_le_vec;
 extern const bfd_target ns32k_aout_pc532mach_vec;
@@ -1107,6 +1108,8 @@ static const bfd_target * const _bfd_target_vector[] =
 	&nds32_elf32_linux_be_vec,
 	&nds32_elf32_linux_le_vec,
 
+	&nfp_elf64_vec,
+
 	&nios2_elf32_be_vec,
 	&nios2_elf32_le_vec,
 
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index ec97a0d..61bbd2f 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,16 @@
+2018-04-30  Francois H. Theron <francois.theron@netronome.com>
+
+	* readelf.c: Very basic support for EM_NFP and its section types.
+	* testsuite/binutils-all/nfp: New directory.
+	* testsuite/binutils-all/nfp/objdump.exp: New file.  Run new
+	tests.
+	* testsuite/binutils-all/nfp/test2_ctx8.d: New file.
+	* testsuite/binutils-all/nfp/test2_no-pc_ctx4.d: New file.
+	* testsuite/binutils-all/nfp/test1.d: New file.
+	* testsuite/binutils-all/nfp/nfp6000.nffw: New file.
+	* testsuite/binutils-all/nfp/test2_nfp6000.nffw: New file.
+	* NEWS: Mention the new support.
+
 2018-04-27  Maciej W. Rozycki  <macro@mips.com>
 
 	* testsuite/lib/binutils-common.exp (match_target): New procedure.
diff --git a/binutils/NEWS b/binutils/NEWS
index c0fa05f..da841de 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,7 @@
 -*- text -*-
 
+* Add support for disassembling netronome Flow Processor (NFP) firmware files.
+
 Changes in 2.30:
 
 * Add --debug-dump=links option to readelf and --dwarf=links option to objdump
diff --git a/binutils/po/binutils.pot b/binutils/po/binutils.pot
index 29e3c92..de74776 100644
--- a/binutils/po/binutils.pot
+++ b/binutils/po/binutils.pot
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2018-01-13 13:43+0000\n"
+"POT-Creation-Date: 2018-04-30 11:22+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"
@@ -54,10 +54,10 @@ msgid ""
 "\n"
 msgstr ""
 
-#: addr2line.c:100 ar.c:336 ar.c:373 coffdump.c:473 dlltool.c:4006
-#: dllwrap.c:518 elfedit.c:677 nlmconv.c:1112 objcopy.c:658 objcopy.c:711
-#: readelf.c:4385 size.c:97 srconv.c:1706 strings.c:668 sysdump.c:648
-#: windmc.c:227 windres.c:688
+#: addr2line.c:100 ar.c:336 ar.c:373 coffdump.c:473 dlltool.c:3989
+#: dllwrap.c:518 elfedit.c:677 objcopy.c:658 objcopy.c:711 readelf.c:4440
+#: size.c:97 srconv.c:1706 strings.c:668 sysdump.c:648 windmc.c:227
+#: windres.c:688
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
@@ -93,7 +93,7 @@ msgstr ""
 msgid "%s: cannot find section %s"
 msgstr ""
 
-#: addr2line.c:465 nm.c:1683 objdump.c:3856
+#: addr2line.c:465 nm.c:1683 objdump.c:3886
 #, c-format
 msgid "unknown demangling style `%s'"
 msgstr ""
@@ -394,7 +394,7 @@ msgstr ""
 msgid "Cannot convert existing thin library %s to normal format"
 msgstr ""
 
-#: ar.c:1000 ar.c:1064 ar.c:1394 objcopy.c:3288
+#: ar.c:1000 ar.c:1064 ar.c:1394 objcopy.c:3297
 #, c-format
 msgid "internal stat error on %s"
 msgstr ""
@@ -404,7 +404,7 @@ msgstr ""
 msgid "%s is not a valid archive"
 msgstr ""
 
-#: ar.c:1056 objcopy.c:3252
+#: ar.c:1056 objcopy.c:3261
 #, c-format
 msgid "illegal pathname found in archive member: %s"
 msgstr ""
@@ -688,7 +688,7 @@ msgstr ""
 msgid "Symbol  %s, tag %d, number %d"
 msgstr ""
 
-#: coffdump.c:345 readelf.c:16221 readelf.c:16309
+#: coffdump.c:345 readelf.c:16292 readelf.c:16380
 #, c-format
 msgid "Type"
 msgstr ""
@@ -1008,484 +1008,484 @@ msgstr ""
 msgid "debug_write_type: illegal type encountered"
 msgstr ""
 
-#: dlltool.c:916 dlltool.c:942 dlltool.c:973
+#: dlltool.c:901 dlltool.c:926 dlltool.c:956
 #, c-format
 msgid "Internal error: Unknown machine type: %d"
 msgstr ""
 
-#: dlltool.c:1014
+#: dlltool.c:997
 #, c-format
 msgid "Can't open def file: %s"
 msgstr ""
 
-#: dlltool.c:1019
+#: dlltool.c:1002
 #, c-format
 msgid "Processing def file: %s"
 msgstr ""
 
-#: dlltool.c:1023
+#: dlltool.c:1006
 msgid "Processed def file"
 msgstr ""
 
-#: dlltool.c:1047
+#: dlltool.c:1030
 #, c-format
 msgid "Syntax error in def file %s:%d"
 msgstr ""
 
-#: dlltool.c:1084
+#: dlltool.c:1067
 #, c-format
 msgid "%s: Path components stripped from image name, '%s'."
 msgstr ""
 
-#: dlltool.c:1102
+#: dlltool.c:1085
 #, c-format
 msgid "NAME: %s base: %x"
 msgstr ""
 
-#: dlltool.c:1105 dlltool.c:1126
+#: dlltool.c:1088 dlltool.c:1109
 msgid "Can't have LIBRARY and NAME"
 msgstr ""
 
-#: dlltool.c:1123
+#: dlltool.c:1106
 #, c-format
 msgid "LIBRARY: %s base: %x"
 msgstr ""
 
-#: dlltool.c:1279
+#: dlltool.c:1262
 #, c-format
 msgid "VERSION %d.%d\n"
 msgstr ""
 
-#: dlltool.c:1327
+#: dlltool.c:1310
 #, c-format
 msgid "run: %s %s"
 msgstr ""
 
-#: dlltool.c:1368 resrc.c:288
+#: dlltool.c:1351 resrc.c:288
 #, c-format
 msgid "wait: %s"
 msgstr ""
 
-#: dlltool.c:1373 dllwrap.c:416 resrc.c:293
+#: dlltool.c:1356 dllwrap.c:416 resrc.c:293
 #, c-format
 msgid "subprocess got fatal signal %d"
 msgstr ""
 
-#: dlltool.c:1379 dllwrap.c:423 resrc.c:300
+#: dlltool.c:1362 dllwrap.c:423 resrc.c:300
 #, c-format
 msgid "%s exited with status %d"
 msgstr ""
 
-#: dlltool.c:1410
+#: dlltool.c:1393
 #, c-format
 msgid "Sucking in info from %s section in %s"
 msgstr ""
 
-#: dlltool.c:1550
+#: dlltool.c:1533
 #, c-format
 msgid "Excluding symbol: %s"
 msgstr ""
 
-#: dlltool.c:1639 dlltool.c:1650 nm.c:1108 nm.c:1118 nm.c:1127
+#: dlltool.c:1622 dlltool.c:1633 nm.c:1108 nm.c:1118 nm.c:1127
 #, c-format
 msgid "%s: no symbols"
 msgstr ""
 
 #. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1676
+#: dlltool.c:1659
 #, c-format
 msgid "Done reading %s"
 msgstr ""
 
-#: dlltool.c:1686
+#: dlltool.c:1669
 #, c-format
 msgid "Unable to open object file: %s: %s"
 msgstr ""
 
-#: dlltool.c:1689
+#: dlltool.c:1672
 #, c-format
 msgid "Scanning object file %s"
 msgstr ""
 
-#: dlltool.c:1709
+#: dlltool.c:1692
 #, c-format
 msgid "Cannot produce mcore-elf dll from archive file: %s"
 msgstr ""
 
-#: dlltool.c:1811
+#: dlltool.c:1794
 msgid "Adding exports to output file"
 msgstr ""
 
-#: dlltool.c:1863
+#: dlltool.c:1846
 msgid "Added exports to output file"
 msgstr ""
 
-#: dlltool.c:2031
+#: dlltool.c:2014
 #, c-format
 msgid "Generating export file: %s"
 msgstr ""
 
-#: dlltool.c:2036
+#: dlltool.c:2019
 #, c-format
 msgid "Unable to open temporary assembler file: %s"
 msgstr ""
 
-#: dlltool.c:2041
+#: dlltool.c:2024
 #, c-format
 msgid "Opened temporary file: %s"
 msgstr ""
 
-#: dlltool.c:2217
+#: dlltool.c:2200
 msgid "failed to read the number of entries from base file"
 msgstr ""
 
-#: dlltool.c:2268
+#: dlltool.c:2251
 msgid "Generated exports file"
 msgstr ""
 
-#: dlltool.c:2478
+#: dlltool.c:2461
 #, c-format
 msgid "bfd_open failed open stub file: %s: %s"
 msgstr ""
 
-#: dlltool.c:2482
+#: dlltool.c:2465
 #, c-format
 msgid "Creating stub file: %s"
 msgstr ""
 
-#: dlltool.c:2953
+#: dlltool.c:2936
 #, c-format
 msgid "bfd_open failed reopen stub file: %s: %s"
 msgstr ""
 
-#: dlltool.c:2967 dlltool.c:3046
+#: dlltool.c:2950 dlltool.c:3029
 #, c-format
 msgid "failed to open temporary head file: %s"
 msgstr ""
 
-#: dlltool.c:3031 dlltool.c:3117
+#: dlltool.c:3014 dlltool.c:3100
 #, c-format
 msgid "failed to open temporary head file: %s: %s"
 msgstr ""
 
-#: dlltool.c:3132
+#: dlltool.c:3115
 #, c-format
 msgid "failed to open temporary tail file: %s"
 msgstr ""
 
-#: dlltool.c:3191
+#: dlltool.c:3174
 #, c-format
 msgid "failed to open temporary tail file: %s: %s"
 msgstr ""
 
-#: dlltool.c:3214
+#: dlltool.c:3197
 #, c-format
 msgid "Can't create .lib file: %s: %s"
 msgstr ""
 
-#: dlltool.c:3218
+#: dlltool.c:3201
 #, c-format
 msgid "Creating library file: %s"
 msgstr ""
 
-#: dlltool.c:3305 dlltool.c:3311
+#: dlltool.c:3288 dlltool.c:3294
 #, c-format
 msgid "cannot delete %s: %s"
 msgstr ""
 
-#: dlltool.c:3317
+#: dlltool.c:3300
 msgid "Created lib file"
 msgstr ""
 
-#: dlltool.c:3529
+#: dlltool.c:3512
 #, c-format
 msgid "Can't open .lib file: %s: %s"
 msgstr ""
 
-#: dlltool.c:3537 dlltool.c:3559
+#: dlltool.c:3520 dlltool.c:3542
 #, c-format
 msgid "%s is not a library"
 msgstr ""
 
-#: dlltool.c:3577
+#: dlltool.c:3560
 #, c-format
 msgid "Import library `%s' specifies two or more dlls"
 msgstr ""
 
-#: dlltool.c:3588
+#: dlltool.c:3571
 #, c-format
 msgid "Unable to determine dll name for `%s' (not an import library?)"
 msgstr ""
 
-#: dlltool.c:3820
+#: dlltool.c:3803
 #, c-format
 msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
 msgstr ""
 
-#: dlltool.c:3826
+#: dlltool.c:3809
 #, c-format
 msgid "Error, duplicate EXPORT with ordinals: %s"
 msgstr ""
 
-#: dlltool.c:3929
+#: dlltool.c:3912
 msgid "Processing definitions"
 msgstr ""
 
-#: dlltool.c:3956
+#: dlltool.c:3939
 msgid "Processed definitions"
 msgstr ""
 
 #. xgetext:c-format
-#: dlltool.c:3963 dllwrap.c:477
+#: dlltool.c:3946 dllwrap.c:477
 #, c-format
 msgid "Usage %s <option(s)> <object-file(s)>\n"
 msgstr ""
 
 #. xgetext:c-format
-#: dlltool.c:3965
+#: dlltool.c:3948
 #, c-format
 msgid ""
 "   -m --machine <machine>    Create as DLL for <machine>.  [default: %s]\n"
 msgstr ""
 
-#: dlltool.c:3966
+#: dlltool.c:3949
 #, c-format
 msgid ""
 "        possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, "
 "ppc, thumb\n"
 msgstr ""
 
-#: dlltool.c:3967
+#: dlltool.c:3950
 #, c-format
 msgid "   -e --output-exp <outname> Generate an export file.\n"
 msgstr ""
 
-#: dlltool.c:3968
+#: dlltool.c:3951
 #, c-format
 msgid "   -l --output-lib <outname> Generate an interface library.\n"
 msgstr ""
 
-#: dlltool.c:3969
+#: dlltool.c:3952
 #, c-format
 msgid "   -y --output-delaylib <outname> Create a delay-import library.\n"
 msgstr ""
 
-#: dlltool.c:3970
+#: dlltool.c:3953
 #, c-format
 msgid "   -a --add-indirect         Add dll indirects to export file.\n"
 msgstr ""
 
-#: dlltool.c:3971
+#: dlltool.c:3954
 #, c-format
 msgid ""
 "   -D --dllname <name>       Name of input dll to put into interface lib.\n"
 msgstr ""
 
-#: dlltool.c:3972
+#: dlltool.c:3955
 #, c-format
 msgid "   -d --input-def <deffile>  Name of .def file to be read in.\n"
 msgstr ""
 
-#: dlltool.c:3973
+#: dlltool.c:3956
 #, c-format
 msgid "   -z --output-def <deffile> Name of .def file to be created.\n"
 msgstr ""
 
-#: dlltool.c:3974
+#: dlltool.c:3957
 #, c-format
 msgid "      --export-all-symbols   Export all symbols to .def\n"
 msgstr ""
 
-#: dlltool.c:3975
+#: dlltool.c:3958
 #, c-format
 msgid "      --no-export-all-symbols  Only export listed symbols\n"
 msgstr ""
 
-#: dlltool.c:3976
+#: dlltool.c:3959
 #, c-format
 msgid "      --exclude-symbols <list> Don't export <list>\n"
 msgstr ""
 
-#: dlltool.c:3977
+#: dlltool.c:3960
 #, c-format
 msgid "      --no-default-excludes  Clear default exclude symbols\n"
 msgstr ""
 
-#: dlltool.c:3978
+#: dlltool.c:3961
 #, c-format
 msgid "   -b --base-file <basefile> Read linker generated base file.\n"
 msgstr ""
 
-#: dlltool.c:3979
+#: dlltool.c:3962
 #, c-format
 msgid "   -x --no-idata4            Don't generate idata$4 section.\n"
 msgstr ""
 
-#: dlltool.c:3980
+#: dlltool.c:3963
 #, c-format
 msgid "   -c --no-idata5            Don't generate idata$5 section.\n"
 msgstr ""
 
-#: dlltool.c:3981
+#: dlltool.c:3964
 #, c-format
 msgid ""
 "      --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata"
 "$5.\n"
 msgstr ""
 
-#: dlltool.c:3982
+#: dlltool.c:3965
 #, c-format
 msgid ""
 "   -U --add-underscore       Add underscores to all symbols in interface "
 "library.\n"
 msgstr ""
 
-#: dlltool.c:3983
+#: dlltool.c:3966
 #, c-format
 msgid ""
 "      --add-stdcall-underscore Add underscores to stdcall symbols in "
 "interface library.\n"
 msgstr ""
 
-#: dlltool.c:3984
+#: dlltool.c:3967
 #, c-format
 msgid ""
 "      --no-leading-underscore All symbols shouldn't be prefixed by an "
 "underscore.\n"
 msgstr ""
 
-#: dlltool.c:3985
+#: dlltool.c:3968
 #, c-format
 msgid ""
 "      --leading-underscore   All symbols should be prefixed by an "
 "underscore.\n"
 msgstr ""
 
-#: dlltool.c:3986
+#: dlltool.c:3969
 #, c-format
 msgid "   -k --kill-at              Kill @<n> from exported names.\n"
 msgstr ""
 
-#: dlltool.c:3987
+#: dlltool.c:3970
 #, c-format
 msgid "   -A --add-stdcall-alias    Add aliases without @<n>.\n"
 msgstr ""
 
-#: dlltool.c:3988
+#: dlltool.c:3971
 #, c-format
 msgid "   -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
 msgstr ""
 
-#: dlltool.c:3989
+#: dlltool.c:3972
 #, c-format
 msgid "   -S --as <name>            Use <name> for assembler.\n"
 msgstr ""
 
-#: dlltool.c:3990
+#: dlltool.c:3973
 #, c-format
 msgid "   -f --as-flags <flags>     Pass <flags> to the assembler.\n"
 msgstr ""
 
-#: dlltool.c:3991
+#: dlltool.c:3974
 #, c-format
 msgid ""
 "   -C --compat-implib        Create backward compatible import library.\n"
 msgstr ""
 
-#: dlltool.c:3992
+#: dlltool.c:3975
 #, c-format
 msgid ""
 "   -n --no-delete            Keep temp files (repeat for extra "
 "preservation).\n"
 msgstr ""
 
-#: dlltool.c:3993
+#: dlltool.c:3976
 #, c-format
 msgid ""
 "   -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
 msgstr ""
 
-#: dlltool.c:3994
+#: dlltool.c:3977
 #, c-format
 msgid ""
 "   -I --identify <implib>    Report the name of the DLL associated with "
 "<implib>.\n"
 msgstr ""
 
-#: dlltool.c:3995
+#: dlltool.c:3978
 #, c-format
 msgid ""
 "      --identify-strict      Causes --identify to report error when multiple "
 "DLLs.\n"
 msgstr ""
 
-#: dlltool.c:3996
+#: dlltool.c:3979
 #, c-format
 msgid "   -v --verbose              Be verbose.\n"
 msgstr ""
 
-#: dlltool.c:3997
+#: dlltool.c:3980
 #, c-format
 msgid "   -V --version              Display the program version.\n"
 msgstr ""
 
-#: dlltool.c:3998
+#: dlltool.c:3981
 #, c-format
 msgid "   -h --help                 Display this information.\n"
 msgstr ""
 
-#: dlltool.c:3999
+#: dlltool.c:3982
 #, c-format
 msgid "   @<file>                   Read options from <file>.\n"
 msgstr ""
 
-#: dlltool.c:4001
+#: dlltool.c:3984
 #, c-format
 msgid ""
 "   -M --mcore-elf <outname>  Process mcore-elf object files into <outname>.\n"
 msgstr ""
 
-#: dlltool.c:4002
+#: dlltool.c:3985
 #, c-format
 msgid "   -L --linker <name>        Use <name> as the linker.\n"
 msgstr ""
 
-#: dlltool.c:4003
+#: dlltool.c:3986
 #, c-format
 msgid "   -F --linker-flags <flags> Pass <flags> to the linker.\n"
 msgstr ""
 
-#: dlltool.c:4149
+#: dlltool.c:4132
 #, c-format
 msgid "Unable to open def-file: %s"
 msgstr ""
 
-#: dlltool.c:4154
+#: dlltool.c:4137
 #, c-format
 msgid "Path components stripped from dllname, '%s'."
 msgstr ""
 
-#: dlltool.c:4202
+#: dlltool.c:4185
 #, c-format
 msgid "Unable to open base-file: %s"
 msgstr ""
 
-#: dlltool.c:4237
+#: dlltool.c:4220
 #, c-format
 msgid "Machine '%s' not supported"
 msgstr ""
 
-#: dlltool.c:4317
+#: dlltool.c:4300
 #, c-format
 msgid "Warning, machine type (%d) not supported for delayimport."
 msgstr ""
 
-#: dlltool.c:4385 dllwrap.c:206
+#: dlltool.c:4368 dllwrap.c:206
 #, c-format
 msgid "Tried file: %s"
 msgstr ""
 
-#: dlltool.c:4392 dllwrap.c:213
+#: dlltool.c:4375 dllwrap.c:213
 #, c-format
 msgid "Using file: %s"
 msgstr ""
@@ -1764,7 +1764,10 @@ msgid ""
 "Internal error: %s:%d: LEB value (%s) too large for containing variable\n"
 msgstr ""
 
-#: dwarf.c:396
+#. Read AMOUNT bytes from PTR and store them in VAL as an unsigned value.
+#. Checks to make sure that the read will not reach or pass END
+#. and that VAL is big enough to hold AMOUNT bytes.
+#: dwarf.c:399
 #, c-format
 msgid "internal error: attempt to read %d byte of data in to %d sized variable"
 msgid_plural ""
@@ -1772,52 +1775,52 @@ msgid_plural ""
 msgstr[0] ""
 msgstr[1] ""
 
-#: dwarf.c:519 dwarf.c:4362
+#: dwarf.c:525 dwarf.c:4387
 msgid "Badly formed extended line op encountered!\n"
 msgstr ""
 
-#: dwarf.c:526
+#: dwarf.c:532
 #, c-format
 msgid "  Extended opcode %d: "
 msgstr ""
 
-#: dwarf.c:531
+#: dwarf.c:537
 #, c-format
 msgid ""
 "End of Sequence\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:539
+#: dwarf.c:545
 #, c-format
 msgid "Length (%d) of DW_LNE_set_address op is too long\n"
 msgstr ""
 
-#: dwarf.c:545
+#: dwarf.c:551
 #, c-format
 msgid "set Address to 0x%s\n"
 msgstr ""
 
-#: dwarf.c:552
+#: dwarf.c:558
 #, c-format
 msgid "define new File Table entry\n"
 msgstr ""
 
-#: dwarf.c:553 dwarf.c:3651
+#: dwarf.c:559 dwarf.c:3676
 #, c-format
 msgid "  Entry\tDir\tTime\tSize\tName\n"
 msgstr ""
 
-#: dwarf.c:572
+#: dwarf.c:578
 msgid "DW_LNE_define_file: Bad opcode length\n"
 msgstr ""
 
-#: dwarf.c:576
+#: dwarf.c:582
 #, c-format
 msgid "set Discriminator to %s\n"
 msgstr ""
 
-#: dwarf.c:651
+#: dwarf.c:657
 #, c-format
 msgid "    UNKNOWN DW_LNE_HP_SFC opcode (%u)\n"
 msgstr ""
@@ -1826,1364 +1829,1372 @@ msgstr ""
 #. the limited range of the unsigned char data type used
 #. for op_code.
 #. && op_code <= DW_LNE_hi_user
-#: dwarf.c:668
+#: dwarf.c:674
 #, c-format
 msgid "user defined: "
 msgstr ""
 
-#: dwarf.c:670
+#: dwarf.c:676
 #, c-format
 msgid "UNKNOWN: "
 msgstr ""
 
-#: dwarf.c:671
+#: dwarf.c:677
 #, c-format
 msgid "length %d ["
 msgstr ""
 
-#: dwarf.c:689 dwarf.c:765 dwarf.c:1703
+#: dwarf.c:695 dwarf.c:771 dwarf.c:1709
 msgid "<no .debug_str section>"
 msgstr ""
 
-#: dwarf.c:693
+#: dwarf.c:699
 #, c-format
 msgid "DW_FORM_strp offset too big: %s\n"
 msgstr ""
 
-#: dwarf.c:695 dwarf.c:723 dwarf.c:1708
+#: dwarf.c:701 dwarf.c:729 dwarf.c:1714
 msgid "<offset is too big>"
 msgstr ""
 
-#: dwarf.c:705 dwarf.c:1717
+#: dwarf.c:711 dwarf.c:1723
 msgid "<no NUL byte at end of .debug_str section>"
 msgstr ""
 
-#: dwarf.c:717
+#: dwarf.c:723
 msgid "<no .debug_line_str section>"
 msgstr ""
 
-#: dwarf.c:721
+#: dwarf.c:727
 #, c-format
 msgid "DW_FORM_line_strp offset too big: %s\n"
 msgstr ""
 
-#: dwarf.c:733
+#: dwarf.c:739
 msgid "<no NUL byte at end of .debug_line_str section>"
 msgstr ""
 
-#: dwarf.c:751
+#: dwarf.c:757
 msgid "<no .debug_str_offsets.dwo section>"
 msgstr ""
 
-#: dwarf.c:752
+#: dwarf.c:758
 msgid "<no .debug_str_offsets section>"
 msgstr ""
 
-#: dwarf.c:758
+#: dwarf.c:764
 #, c-format
 msgid "DW_FORM_GNU_str_index offset too big: %s\n"
 msgstr ""
 
-#: dwarf.c:760
+#: dwarf.c:766
 msgid "<index offset is too big>"
 msgstr ""
 
-#: dwarf.c:764
+#: dwarf.c:770
 msgid "<no .debug_str.dwo section>"
 msgstr ""
 
-#: dwarf.c:771
+#: dwarf.c:777
 #, c-format
 msgid "DW_FORM_GNU_str_index indirect offset too big: %s\n"
 msgstr ""
 
-#: dwarf.c:773
+#: dwarf.c:779
 msgid "<indirect index offset is too big>"
 msgstr ""
 
-#: dwarf.c:782
+#: dwarf.c:788
 msgid "<no NUL byte at end of section>"
 msgstr ""
 
-#: dwarf.c:793
+#: dwarf.c:799
 msgid "<no .debug_addr section>"
 msgstr ""
 
-#: dwarf.c:797
+#: dwarf.c:803
 #, c-format
 msgid "Offset into section %s too big: %s\n"
 msgstr ""
 
 #. Report the missing single zero which ends the section.
-#: dwarf.c:975
+#: dwarf.c:981
 msgid ".debug_abbrev section not zero terminated\n"
 msgstr ""
 
-#: dwarf.c:990
+#: dwarf.c:996
 #, c-format
 msgid "User TAG value: %#lx"
 msgstr ""
 
-#: dwarf.c:992
+#: dwarf.c:998
 #, c-format
 msgid "Unknown TAG value: %#lx"
 msgstr ""
 
-#: dwarf.c:1012
+#: dwarf.c:1018
 #, c-format
 msgid "Unknown FORM value: %lx"
 msgstr ""
 
-#: dwarf.c:1028
+#: dwarf.c:1034
 #, c-format
 msgid "Unknown IDX value: %lx"
 msgstr ""
 
-#: dwarf.c:1042
+#: dwarf.c:1048
 #, c-format
 msgid "%c%s byte block: "
 msgstr ""
 
-#: dwarf.c:1396
+#: dwarf.c:1402
 #, c-format
 msgid "(DW_OP_call_ref in frame info)"
 msgstr ""
 
-#: dwarf.c:1418
+#: dwarf.c:1424
 #, c-format
 msgid "size: %s "
 msgstr ""
 
-#: dwarf.c:1421
+#: dwarf.c:1427
 #, c-format
 msgid "offset: %s "
 msgstr ""
 
-#: dwarf.c:1440
+#: dwarf.c:1446
 #, c-format
 msgid "DW_OP_GNU_push_tls_address or DW_OP_HP_unknown"
 msgstr ""
 
-#: dwarf.c:1465
+#: dwarf.c:1471
 #, c-format
 msgid "(%s in frame info)"
 msgstr ""
 
-#: dwarf.c:1611
+#: dwarf.c:1617
 #, c-format
 msgid "(User defined location op 0x%x)"
 msgstr ""
 
-#: dwarf.c:1613
+#: dwarf.c:1619
 #, c-format
 msgid "(Unknown location op 0x%x)"
 msgstr ""
 
-#: dwarf.c:1696
+#: dwarf.c:1702
 msgid "<following link not possible>"
 msgstr ""
 
-#: dwarf.c:1699
+#: dwarf.c:1705
 msgid "<could not load separate string section>"
 msgstr ""
 
-#: dwarf.c:1707
+#: dwarf.c:1713
 #, c-format
 msgid "DW_FORM_GNU_strp_alt offset too big: %s\n"
 msgstr ""
 
-#: dwarf.c:1740
+#: dwarf.c:1746
 #, c-format
 msgid "Unknown AT value: %lx"
 msgstr ""
 
-#: dwarf.c:1771
+#: dwarf.c:1777
 msgid "Corrupt attribute\n"
 msgstr ""
 
-#: dwarf.c:1786
+#: dwarf.c:1792
 msgid "Internal error: DWARF version is not 2, 3 or 4.\n"
 msgstr ""
 
-#: dwarf.c:1924
+#: dwarf.c:1930
 msgid "DW_FORM_data8 is unsupported when sizeof (dwarf_vma) != 8\n"
 msgstr ""
 
-#: dwarf.c:1968 dwarf.c:1993 dwarf.c:2014 dwarf.c:2036
+#: dwarf.c:1974 dwarf.c:1999 dwarf.c:2020 dwarf.c:2042
 msgid "Block ends prematurely\n"
 msgstr ""
 
-#: dwarf.c:1979 dwarf.c:2000 dwarf.c:2021 dwarf.c:2045
+#: dwarf.c:1985 dwarf.c:2006 dwarf.c:2027 dwarf.c:2051
 #, c-format
 msgid "Corrupt attribute block length: %lx\n"
 msgstr ""
 
-#: dwarf.c:2056
+#: dwarf.c:2062
 #, c-format
 msgid "%c(indirect string, offset: 0x%s): %s"
 msgstr ""
 
-#: dwarf.c:2063
+#: dwarf.c:2069
 #, c-format
 msgid "%c(indirect line string, offset: 0x%s): %s"
 msgstr ""
 
-#: dwarf.c:2074
+#: dwarf.c:2080
 #, c-format
 msgid "%c(indexed string: 0x%s): %s"
 msgstr ""
 
-#: dwarf.c:2083
+#: dwarf.c:2089
 #, c-format
 msgid "%c(alt indirect string, offset: 0x%s) %s"
 msgstr ""
 
-#: dwarf.c:2108
+#: dwarf.c:2114
 #, c-format
 msgid "%c(addr_index: 0x%s): %s"
 msgstr ""
 
-#: dwarf.c:2114
+#: dwarf.c:2120
 #, c-format
 msgid "Unrecognized form: %lu\n"
 msgstr ""
 
-#: dwarf.c:2238 dwarf.c:2263 dwarf.c:2279
+#: dwarf.c:2181
+msgid "More location offset attributes than DW_AT_GNU_locview attributes\n"
+msgstr ""
+
+#: dwarf.c:2193
+msgid "More DW_AT_GNU_locview attributes than location offset attributes\n"
+msgstr ""
+
+#: dwarf.c:2253 dwarf.c:2278 dwarf.c:2294
 #, c-format
 msgid "Unsupported form (%s) for attribute %s\n"
 msgstr ""
 
-#: dwarf.c:2240 dwarf.c:2265 dwarf.c:4284 dwarf.c:4594 readelf.c:5738
-#: readelf.c:5813 readelf.c:5831 readelf.c:5849 readelf.c:10236 readelf.c:10868
-#: readelf.c:15349 readelf.c:15381
+#: dwarf.c:2255 dwarf.c:2280 dwarf.c:4309 dwarf.c:4619 readelf.c:5793
+#: readelf.c:5868 readelf.c:5886 readelf.c:5904 readelf.c:10306 readelf.c:10938
+#: readelf.c:15420 readelf.c:15452
 msgid "<unknown>"
 msgstr ""
 
-#: dwarf.c:2302
+#: dwarf.c:2317
 #, c-format
 msgid "(not inlined)"
 msgstr ""
 
-#: dwarf.c:2305
+#: dwarf.c:2320
 #, c-format
 msgid "(inlined)"
 msgstr ""
 
-#: dwarf.c:2308
+#: dwarf.c:2323
 #, c-format
 msgid "(declared as inline but ignored)"
 msgstr ""
 
-#: dwarf.c:2311
+#: dwarf.c:2326
 #, c-format
 msgid "(declared as inline and inlined)"
 msgstr ""
 
-#: dwarf.c:2314
+#: dwarf.c:2329
 #, c-format
 msgid "  (Unknown inline attribute value: %s)"
 msgstr ""
 
-#: dwarf.c:2361
+#: dwarf.c:2386
 #, c-format
 msgid "(implementation defined: %s)"
 msgstr ""
 
-#: dwarf.c:2364
+#: dwarf.c:2389
 #, c-format
 msgid "(Unknown: %s)"
 msgstr ""
 
-#: dwarf.c:2409
+#: dwarf.c:2434
 #, c-format
 msgid "(user defined type)"
 msgstr ""
 
-#: dwarf.c:2411
+#: dwarf.c:2436
 #, c-format
 msgid "(unknown type)"
 msgstr ""
 
-#: dwarf.c:2424
+#: dwarf.c:2449
 #, c-format
 msgid "(unknown accessibility)"
 msgstr ""
 
-#: dwarf.c:2436
+#: dwarf.c:2461
 #, c-format
 msgid "(unknown visibility)"
 msgstr ""
 
-#: dwarf.c:2449
+#: dwarf.c:2474
 #, c-format
 msgid "(user specified)"
 msgstr ""
 
-#: dwarf.c:2451
+#: dwarf.c:2476
 #, c-format
 msgid "(unknown endianity)"
 msgstr ""
 
-#: dwarf.c:2463
+#: dwarf.c:2488
 #, c-format
 msgid "(unknown virtuality)"
 msgstr ""
 
-#: dwarf.c:2475
+#: dwarf.c:2500
 #, c-format
 msgid "(unknown case)"
 msgstr ""
 
-#: dwarf.c:2493
+#: dwarf.c:2518
 #, c-format
 msgid "(user defined)"
 msgstr ""
 
-#: dwarf.c:2495
+#: dwarf.c:2520
 #, c-format
 msgid "(unknown convention)"
 msgstr ""
 
-#: dwarf.c:2504
+#: dwarf.c:2529
 #, c-format
 msgid "(undefined)"
 msgstr ""
 
-#: dwarf.c:2514
+#: dwarf.c:2539
 #, c-format
 msgid "(unsigned)"
 msgstr ""
 
-#: dwarf.c:2515
+#: dwarf.c:2540
 #, c-format
 msgid "(leading overpunch)"
 msgstr ""
 
-#: dwarf.c:2516
+#: dwarf.c:2541
 #, c-format
 msgid "(trailing overpunch)"
 msgstr ""
 
-#: dwarf.c:2517
+#: dwarf.c:2542
 #, c-format
 msgid "(leading separate)"
 msgstr ""
 
-#: dwarf.c:2518
+#: dwarf.c:2543
 #, c-format
 msgid "(trailing separate)"
 msgstr ""
 
-#: dwarf.c:2519 dwarf.c:2530 dwarf.c:2540
+#: dwarf.c:2544 dwarf.c:2555 dwarf.c:2565
 #, c-format
 msgid "(unrecognised)"
 msgstr ""
 
-#: dwarf.c:2527
+#: dwarf.c:2552
 #, c-format
 msgid "(no)"
 msgstr ""
 
-#: dwarf.c:2528
+#: dwarf.c:2553
 #, c-format
 msgid "(in class)"
 msgstr ""
 
-#: dwarf.c:2529
+#: dwarf.c:2554
 #, c-format
 msgid "(out of class)"
 msgstr ""
 
-#: dwarf.c:2538
+#: dwarf.c:2563
 #, c-format
 msgid "(label)"
 msgstr ""
 
-#: dwarf.c:2539
+#: dwarf.c:2564
 #, c-format
 msgid "(range)"
 msgstr ""
 
-#: dwarf.c:2566
+#: dwarf.c:2591
 #, c-format
 msgid " (location list)"
 msgstr ""
 
-#: dwarf.c:2587 dwarf.c:5551 dwarf.c:5708 dwarf.c:5890
+#: dwarf.c:2612 dwarf.c:5576 dwarf.c:5733 dwarf.c:5915
 #, c-format
 msgid " [without DW_AT_frame_base]"
 msgstr ""
 
-#: dwarf.c:2620
+#: dwarf.c:2645
 #, c-format
 msgid ""
 "Offset %s used as value for DW_AT_import attribute of DIE at offset 0x%lx is "
 "too big.\n"
 msgstr ""
 
-#: dwarf.c:2630
+#: dwarf.c:2655
 #, c-format
 msgid "\t[Abbrev Number: %ld"
 msgstr ""
 
-#: dwarf.c:2715
+#: dwarf.c:2740
 #, c-format
 msgid ""
 "Raw dump of debug contents of section %s (loaded from %s):\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:2718
+#: dwarf.c:2743
 #, c-format
 msgid ""
 "Raw dump of debug contents of section %s:\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:2723
+#: dwarf.c:2748
 #, c-format
 msgid ""
 "Contents of the %s section (loaded from %s):\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:2726
+#: dwarf.c:2751
 #, c-format
 msgid ""
 "Contents of the %s section:\n"
 "\n"
 msgstr ""
 
-#: dwarf.c:2775
+#: dwarf.c:2800
 #, c-format
 msgid "Reserved length value (0x%s) found in section %s\n"
 msgstr ""
 
-#: dwarf.c:2787
+#: dwarf.c:2812
 #, c-format
 msgid "Corrupt unit length (0x%s) found in section %s\n"
 msgstr ""
 
-#: dwarf.c:2795
+#: dwarf.c:2820
 #, c-format
 msgid "No comp units in %s section ?\n"
 msgstr ""
 
-#: dwarf.c:2804
+#: dwarf.c:2829
 #, c-format
 msgid "Not enough memory for a debug info array of %u entries\n"
 msgstr ""
 
-#: dwarf.c:2833
+#: dwarf.c:2858
 #, c-format
 msgid "Unable to locate %s section!\n"
 msgstr ""
 
-#: dwarf.c:2913
+#: dwarf.c:2938
 #, c-format
 msgid "Invalid pointer size (%d) in compunit header, using %d instead\n"
 msgstr ""
 
-#: dwarf.c:2956
+#: dwarf.c:2981
 #, c-format
 msgid "  Compilation Unit @ offset 0x%s:\n"
 msgstr ""
 
-#: dwarf.c:2958
+#: dwarf.c:2983
 #, c-format
 msgid "   Length:        0x%s (%s)\n"
 msgstr ""
 
-#: dwarf.c:2961
+#: dwarf.c:2986
 #, c-format
 msgid "   Version:       %d\n"
 msgstr ""
 
-#: dwarf.c:2962
+#: dwarf.c:2987
 #, c-format
 msgid "   Abbrev Offset: 0x%s\n"
 msgstr ""
 
-#: dwarf.c:2964
+#: dwarf.c:2989
 #, c-format
 msgid "   Pointer Size:  %d\n"
 msgstr ""
 
-#: dwarf.c:2969
+#: dwarf.c:2994
 #, c-format
 msgid "   Signature:     0x%s\n"
 msgstr ""
 
-#: dwarf.c:2972
+#: dwarf.c:2997
 #, c-format
 msgid "   Type Offset:   0x%s\n"
 msgstr ""
 
-#: dwarf.c:2980
+#: dwarf.c:3005
 #, c-format
 msgid "   Section contributions:\n"
 msgstr ""
 
-#: dwarf.c:2981
+#: dwarf.c:3006
 #, c-format
 msgid "    .debug_abbrev.dwo:       0x%s  0x%s\n"
 msgstr ""
 
-#: dwarf.c:2984
+#: dwarf.c:3009
 #, c-format
 msgid "    .debug_line.dwo:         0x%s  0x%s\n"
 msgstr ""
 
-#: dwarf.c:2987
+#: dwarf.c:3012
 #, c-format
 msgid "    .debug_loc.dwo:          0x%s  0x%s\n"
 msgstr ""
 
-#: dwarf.c:2990
+#: dwarf.c:3015
 #, c-format
 msgid "    .debug_str_offsets.dwo:  0x%s  0x%s\n"
 msgstr ""
 
-#: dwarf.c:3000 dwarf.c:4768 dwarf.c:6316 dwarf.c:8348
+#: dwarf.c:3025 dwarf.c:4793 dwarf.c:6341 dwarf.c:8407
 #, c-format
 msgid "Debug info is corrupted, %s header at %#lx has length %s\n"
 msgstr ""
 
-#: dwarf.c:3013
+#: dwarf.c:3038
 #, c-format
 msgid "CU at offset %s contains corrupt or unsupported version number: %d.\n"
 msgstr ""
 
-#: dwarf.c:3022
+#: dwarf.c:3047
 #, c-format
 msgid "CU at offset %s contains corrupt or unsupported unit type: %d.\n"
 msgstr ""
 
-#: dwarf.c:3032
+#: dwarf.c:3057
 #, c-format
 msgid ""
 "Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section "
 "size (%lx)\n"
 msgstr ""
 
-#: dwarf.c:3038
+#: dwarf.c:3063
 #, c-format
 msgid ""
 "Debug info is corrupted, abbrev size (%lx) is larger than abbrev section "
 "size (%lx)\n"
 msgstr ""
 
-#: dwarf.c:3084
+#: dwarf.c:3109
 #, c-format
 msgid " <%d><%lx>: Abbrev Number: 0\n"
 msgstr ""
 
-#: dwarf.c:3094
+#: dwarf.c:3119
 #, c-format
 msgid "Bogus end-of-siblings marker detected at offset %lx in %s section\n"
 msgstr ""
 
-#: dwarf.c:3098
+#: dwarf.c:3123
 msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
 msgstr ""
 
-#: dwarf.c:3117
+#: dwarf.c:3142
 #, c-format
 msgid " <%d><%lx>: Abbrev Number: %lu"
 msgstr ""
 
-#: dwarf.c:3121
+#: dwarf.c:3146
 #, c-format
 msgid " <%d><%lx>: ...\n"
 msgstr ""
 
-#: dwarf.c:3140
+#: dwarf.c:3165
 #, c-format
 msgid ""
 "DIE at offset 0x%lx refers to abbreviation number %lu which does not exist\n"
 msgstr ""
 
-#: dwarf.c:3213
+#: dwarf.c:3238
 msgid "DIE has locviews without loclist\n"
 msgstr ""
 
-#: dwarf.c:3328
+#: dwarf.c:3353
 #, c-format
 msgid ""
 "The length field (0x%lx) in the debug_line header is wrong - the section is "
 "too small\n"
 msgstr ""
 
-#: dwarf.c:3342
+#: dwarf.c:3367
 msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
 msgstr ""
 
-#: dwarf.c:3354 dwarf.c:5983 dwarf.c:6728
+#: dwarf.c:3379 dwarf.c:6008 dwarf.c:6754
 #, c-format
 msgid "The %s section contains unsupported segment selector size: %d.\n"
 msgstr ""
 
-#: dwarf.c:3371
+#: dwarf.c:3396
 msgid "Invalid maximum operations per insn.\n"
 msgstr ""
 
-#: dwarf.c:3387
+#: dwarf.c:3412
 #, c-format
 msgid "Line length %s extends beyond end of section\n"
 msgstr ""
 
-#: dwarf.c:3418
+#: dwarf.c:3443
 #, c-format
 msgid "Corrupt %s format table entry\n"
 msgstr ""
 
-#: dwarf.c:3427
+#: dwarf.c:3452
 #, c-format
 msgid "Corrupt %s list\n"
 msgstr ""
 
-#: dwarf.c:3433
+#: dwarf.c:3458
 #, c-format
 msgid ""
 "\n"
 " The %s Table is empty.\n"
 msgstr ""
 
-#: dwarf.c:3437
+#: dwarf.c:3462
 #, c-format
 msgid ""
 "\n"
 " The %s Table (offset 0x%lx):\n"
 msgstr ""
 
-#: dwarf.c:3440
+#: dwarf.c:3465
 #, c-format
 msgid "  Entry"
 msgstr ""
 
-#: dwarf.c:3455
+#: dwarf.c:3480
 #, c-format
 msgid "\tName"
 msgstr ""
 
-#: dwarf.c:3458
+#: dwarf.c:3483
 #, c-format
 msgid "\tDir"
 msgstr ""
 
-#: dwarf.c:3461
+#: dwarf.c:3486
 #, c-format
 msgid "\tTime"
 msgstr ""
 
-#: dwarf.c:3464
+#: dwarf.c:3489
 #, c-format
 msgid "\tSize"
 msgstr ""
 
-#: dwarf.c:3467
+#: dwarf.c:3492
 #, c-format
 msgid "\tMD5"
 msgstr ""
 
-#: dwarf.c:3470
+#: dwarf.c:3495
 #, c-format
 msgid "\t(Unknown format content type %s)"
 msgstr ""
 
-#: dwarf.c:3506
+#: dwarf.c:3531
 #, c-format
 msgid "Corrupt %s entries list\n"
 msgstr ""
 
-#: dwarf.c:3554 dwarf.c:3970
+#: dwarf.c:3579 dwarf.c:3995
 msgid ""
 "Partial .debug_line. section encountered without a prior full .debug_line "
 "section\n"
 msgstr ""
 
-#: dwarf.c:3567 dwarf.c:5086
+#: dwarf.c:3592 dwarf.c:5111
 #, c-format
 msgid "  Offset:                      0x%lx\n"
 msgstr ""
 
-#: dwarf.c:3568
+#: dwarf.c:3593
 #, c-format
 msgid "  Length:                      %ld\n"
 msgstr ""
 
-#: dwarf.c:3569
+#: dwarf.c:3594
 #, c-format
 msgid "  DWARF Version:               %d\n"
 msgstr ""
 
-#: dwarf.c:3570
+#: dwarf.c:3595
 #, c-format
 msgid "  Prologue Length:             %d\n"
 msgstr ""
 
-#: dwarf.c:3571
+#: dwarf.c:3596
 #, c-format
 msgid "  Minimum Instruction Length:  %d\n"
 msgstr ""
 
-#: dwarf.c:3573
+#: dwarf.c:3598
 #, c-format
 msgid "  Maximum Ops per Instruction: %d\n"
 msgstr ""
 
-#: dwarf.c:3574
+#: dwarf.c:3599
 #, c-format
 msgid "  Initial value of 'is_stmt':  %d\n"
 msgstr ""
 
-#: dwarf.c:3575
+#: dwarf.c:3600
 #, c-format
 msgid "  Line Base:                   %d\n"
 msgstr ""
 
-#: dwarf.c:3576
+#: dwarf.c:3601
 #, c-format
 msgid "  Line Range:                  %d\n"
 msgstr ""
 
-#: dwarf.c:3577
+#: dwarf.c:3602
 #, c-format
 msgid "  Opcode Base:                 %d\n"
 msgstr ""
 
-#: dwarf.c:3582 dwarf.c:3986
+#: dwarf.c:3607 dwarf.c:4011
 msgid "Line range of 0 is invalid, using 1 instead\n"
 msgstr ""
 
-#: dwarf.c:3594
+#: dwarf.c:3619
 msgid "Line Base extends beyond end of section\n"
 msgstr ""
 
-#: dwarf.c:3598
+#: dwarf.c:3623
 #, c-format
 msgid ""
 "\n"
 " Opcodes:\n"
 msgstr ""
 
-#: dwarf.c:3601
+#: dwarf.c:3626
 #, c-format
 msgid "  Opcode %d has %d arg\n"
 msgid_plural "  Opcode %d has %d args\n"
 msgstr[0] ""
 msgstr[1] ""
 
-#: dwarf.c:3614
+#: dwarf.c:3639
 msgid "Directory"
 msgstr ""
 
-#: dwarf.c:3616
+#: dwarf.c:3641
 msgid "File name"
 msgstr ""
 
-#: dwarf.c:3621
+#: dwarf.c:3646
 #, c-format
 msgid ""
 "\n"
 " The Directory Table is empty.\n"
 msgstr ""
 
-#: dwarf.c:3626
+#: dwarf.c:3651
 #, c-format
 msgid ""
 "\n"
 " The Directory Table (offset 0x%lx):\n"
 msgstr ""
 
-#: dwarf.c:3646
+#: dwarf.c:3671
 #, c-format
 msgid ""
 "\n"
 " The File Name Table is empty.\n"
 msgstr ""
 
-#: dwarf.c:3649
+#: dwarf.c:3674
 #, c-format
 msgid ""
 "\n"
 " The File Name Table (offset 0x%lx):\n"
 msgstr ""
 
-#: dwarf.c:3675
+#: dwarf.c:3700
 msgid "Corrupt file name table entry\n"
 msgstr ""
 
-#: dwarf.c:3691
+#: dwarf.c:3716
 #, c-format
 msgid " No Line Number Statements.\n"
 msgstr ""
 
-#: dwarf.c:3694
+#: dwarf.c:3719
 #, c-format
 msgid " Line Number Statements:\n"
 msgstr ""
 
-#: dwarf.c:3717
+#: dwarf.c:3742
 #, c-format
 msgid "  Special opcode %d: advance Address by %s to 0x%s%s"
 msgstr ""
 
-#: dwarf.c:3722 dwarf.c:3743 dwarf.c:3783 dwarf.c:3803 dwarf.c:3856
-#: dwarf.c:3876
+#: dwarf.c:3747 dwarf.c:3768 dwarf.c:3808 dwarf.c:3828 dwarf.c:3881
+#: dwarf.c:3901
 msgid " (reset view)"
 msgstr ""
 
-#: dwarf.c:3737
+#: dwarf.c:3762
 #, c-format
 msgid "  Special opcode %d: advance Address by %s to 0x%s[%d]%s"
 msgstr ""
 
-#: dwarf.c:3747
+#: dwarf.c:3772
 #, c-format
 msgid " and Line by %s to %d"
 msgstr ""
 
-#: dwarf.c:3750 dwarf.c:3764
+#: dwarf.c:3775 dwarf.c:3789
 #, c-format
 msgid " (view %u)\n"
 msgstr ""
 
-#: dwarf.c:3762
+#: dwarf.c:3787
 #, c-format
 msgid "  Copy"
 msgstr ""
 
-#: dwarf.c:3779
+#: dwarf.c:3804
 #, c-format
 msgid "  Advance PC by %s to 0x%s%s\n"
 msgstr ""
 
-#: dwarf.c:3798
+#: dwarf.c:3823
 #, c-format
 msgid "  Advance PC by %s to 0x%s[%d]%s\n"
 msgstr ""
 
-#: dwarf.c:3811
+#: dwarf.c:3836
 #, c-format
 msgid "  Advance Line by %s to %d\n"
 msgstr ""
 
-#: dwarf.c:3819
+#: dwarf.c:3844
 #, c-format
 msgid "  Set File Name to entry %s in the File Name Table\n"
 msgstr ""
 
-#: dwarf.c:3827
+#: dwarf.c:3852
 #, c-format
 msgid "  Set column to %s\n"
 msgstr ""
 
-#: dwarf.c:3835
+#: dwarf.c:3860
 #, c-format
 msgid "  Set is_stmt to %s\n"
 msgstr ""
 
-#: dwarf.c:3840
+#: dwarf.c:3865
 #, c-format
 msgid "  Set basic block\n"
 msgstr ""
 
-#: dwarf.c:3852
+#: dwarf.c:3877
 #, c-format
 msgid "  Advance PC by constant %s to 0x%s%s\n"
 msgstr ""
 
-#: dwarf.c:3871
+#: dwarf.c:3896
 #, c-format
 msgid "  Advance PC by constant %s to 0x%s[%d]%s\n"
 msgstr ""
 
-#: dwarf.c:3884
+#: dwarf.c:3909
 #, c-format
 msgid "  Advance PC by fixed size amount %s to 0x%s\n"
 msgstr ""
 
-#: dwarf.c:3891
+#: dwarf.c:3916
 #, c-format
 msgid "  Set prologue_end to true\n"
 msgstr ""
 
-#: dwarf.c:3895
+#: dwarf.c:3920
 #, c-format
 msgid "  Set epilogue_begin to true\n"
 msgstr ""
 
-#: dwarf.c:3901
+#: dwarf.c:3926
 #, c-format
 msgid "  Set ISA to %s\n"
 msgstr ""
 
-#: dwarf.c:3905 dwarf.c:4557
+#: dwarf.c:3930 dwarf.c:4582
 #, c-format
 msgid "  Unknown opcode %d with operands: "
 msgstr ""
 
-#: dwarf.c:3999
+#: dwarf.c:4024
 #, c-format
 msgid "opcode base of %d extends beyond end of section\n"
 msgstr ""
 
-#: dwarf.c:4027 dwarf.c:4050 dwarf.c:4080
+#: dwarf.c:4052 dwarf.c:4075 dwarf.c:4105
 msgid "Corrupt directories list\n"
 msgstr ""
 
-#: dwarf.c:4100 dwarf.c:4123 dwarf.c:4170
+#: dwarf.c:4125 dwarf.c:4148 dwarf.c:4195
 msgid "Corrupt file name list\n"
 msgstr ""
 
-#: dwarf.c:4190
+#: dwarf.c:4215
 msgid "directory table ends unexpectedly\n"
 msgstr ""
 
-#: dwarf.c:4235
+#: dwarf.c:4260
 msgid "file table ends unexpectedly\n"
 msgstr ""
 
-#: dwarf.c:4274
+#: dwarf.c:4299
 #, c-format
 msgid "CU: %s:\n"
 msgstr ""
 
-#: dwarf.c:4287 dwarf.c:4485
+#: dwarf.c:4312 dwarf.c:4510
 #, c-format
 msgid "directory index %u > number of directories %s\n"
 msgstr ""
 
-#: dwarf.c:4289 dwarf.c:4588 elfcomm.c:891 readelf.c:306 readelf.c:646
-#: readelf.c:6732 readelf.c:7283 readelf.c:9247 readelf.c:11252 readelf.c:11319
-#: readelf.c:11662 readelf.c:14287 readelf.c:14382 readelf.c:14964
-#: readelf.c:14983 readelf.c:15107 readelf.c:15358 readelf.c:16464
-#: readelf.c:16467
+#: dwarf.c:4314 dwarf.c:4613 elfcomm.c:891 readelf.c:307 readelf.c:648
+#: readelf.c:6787 readelf.c:7338 readelf.c:9302 readelf.c:11322 readelf.c:11389
+#: readelf.c:11732 readelf.c:14358 readelf.c:14453 readelf.c:15035
+#: readelf.c:15054 readelf.c:15178 readelf.c:15429 readelf.c:16535
+#: readelf.c:16538
 #, c-format
 msgid "<corrupt>"
 msgstr ""
 
-#: dwarf.c:4295
+#: dwarf.c:4320
 #, c-format
 msgid "CU: %s/%s:\n"
 msgstr ""
 
-#: dwarf.c:4300
+#: dwarf.c:4325
 #, c-format
 msgid ""
 "File name                            Line number    Starting address    "
 "View\n"
 msgstr ""
 
-#: dwarf.c:4416
+#: dwarf.c:4441
 #, c-format
 msgid "UNKNOWN (%u): length %d\n"
 msgstr ""
 
-#: dwarf.c:4469
+#: dwarf.c:4494
 #, c-format
 msgid ""
 "\n"
 " [Use file table entry %d]\n"
 msgstr ""
 
-#: dwarf.c:4473
+#: dwarf.c:4498
 #, c-format
 msgid "file index %u > number of files %u\n"
 msgstr ""
 
-#: dwarf.c:4474
+#: dwarf.c:4499
 #, c-format
 msgid ""
 "\n"
 " <over large file table index %u>"
 msgstr ""
 
-#: dwarf.c:4480
+#: dwarf.c:4505
 #, c-format
 msgid ""
 "\n"
 " [Use file %s in directory table entry %d]\n"
 msgstr ""
 
-#: dwarf.c:4487
+#: dwarf.c:4512
 #, c-format
 msgid ""
 "\n"
 " <over large directory table entry %u>\n"
 msgstr ""
 
-#: dwarf.c:4553
+#: dwarf.c:4578
 #, c-format
 msgid "  Set ISA to %lu\n"
 msgstr ""
 
-#: dwarf.c:4587
+#: dwarf.c:4612
 #, c-format
 msgid "corrupt file index %u encountered\n"
 msgstr ""
 
-#: dwarf.c:4717
+#: dwarf.c:4742
 msgid "no info"
 msgstr ""
 
-#: dwarf.c:4718
+#: dwarf.c:4743
 msgid "type"
 msgstr ""
 
-#: dwarf.c:4719
+#: dwarf.c:4744
 msgid "variable"
 msgstr ""
 
-#: dwarf.c:4720
+#: dwarf.c:4745
 msgid "function"
 msgstr ""
 
-#: dwarf.c:4721
+#: dwarf.c:4746
 msgid "other"
 msgstr ""
 
-#: dwarf.c:4722
+#: dwarf.c:4747
 msgid "unused5"
 msgstr ""
 
-#: dwarf.c:4723
+#: dwarf.c:4748
 msgid "unused6"
 msgstr ""
 
-#: dwarf.c:4724
+#: dwarf.c:4749
 msgid "unused7"
 msgstr ""
 
-#: dwarf.c:4784 dwarf.c:6329
+#: dwarf.c:4809 dwarf.c:6354
 #, c-format
 msgid ""
 ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
 msgstr ""
 
-#: dwarf.c:4789
+#: dwarf.c:4814
 [...]

[diff truncated at 100000 bytes]



More information about the Binutils-cvs mailing list