Module Name:    src
Committed By:   christos
Date:           Fri Oct 14 16:19:23 UTC 2016

Modified Files:
        src/external/gpl3/gdb/lib/libbfd/arch/earm: bfd-in3.h bfd.h
            bfd_stdint.h bfdver.h config.h targmatch.h
        src/external/gpl3/gdb/lib/libdecnumber/arch/earm: gstdint.h
        src/external/gpl3/gdb/lib/libgdb/arch/earm: config.h defs.mk init.c
            jit-reader.h observer.h observer.inc version.c xml-builtin.c
        src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib: config.h
        src/external/gpl3/gdb/lib/libiberty/arch/earm: config.h
        src/external/gpl3/gdb/lib/libopcodes/arch/earm: config.h

Log Message:
regen earm


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd-in3.h \
    src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd.h \
    src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd_stdint.h \
    src/external/gpl3/gdb/lib/libbfd/arch/earm/bfdver.h \
    src/external/gpl3/gdb/lib/libbfd/arch/earm/targmatch.h
cvs rdiff -u -r1.6 -r1.7 src/external/gpl3/gdb/lib/libbfd/arch/earm/config.h
cvs rdiff -u -r1.5 -r1.6 \
    src/external/gpl3/gdb/lib/libdecnumber/arch/earm/gstdint.h
cvs rdiff -u -r1.6 -r1.7 src/external/gpl3/gdb/lib/libgdb/arch/earm/config.h \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/defs.mk \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/init.c
cvs rdiff -u -r1.3 -r1.4 \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/jit-reader.h
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.h \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.inc
cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/gdb/lib/libgdb/arch/earm/version.c \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/xml-builtin.c
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib/config.h
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gdb/lib/libiberty/arch/earm/config.h
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gdb/lib/libopcodes/arch/earm/config.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd-in3.h
diff -u src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd-in3.h:1.5 src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd-in3.h:1.6
--- src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd-in3.h:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd-in3.h	Fri Oct 14 12:19:23 2016
@@ -11,7 +11,7 @@
 
 /* Main header file for the bfd library -- portable access to object files.
 
-   Copyright (C) 1990-2015 Free Software Foundation, Inc.
+   Copyright (C) 1990-2016 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -267,7 +267,7 @@ struct orl 			/* Output ranlib.  */
   } u;			/* bfd* or file position.  */
   int namidx;		/* Index into string table.  */
 };
-
+
 /* Linenumber stuff.  */
 typedef struct lineno_cache_entry
 {
@@ -281,11 +281,19 @@ typedef struct lineno_cache_entry
 alent;
 
 /* Object and core file sections.  */
+typedef struct bfd_section *sec_ptr;
 
 #define	align_power(addr, align)	\
-  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
+  (((addr) + ((bfd_vma) 1 << (align)) - 1) & (-((bfd_vma) 1 << (align))))
 
-typedef struct bfd_section *sec_ptr;
+/* Align an address upward to a boundary, expressed as a number of bytes.
+   E.g. align to an 8-byte boundary with argument of 8.  Take care never
+   to wrap around if the address is within boundary-1 of the end of the
+   address space.  */
+#define BFD_ALIGN(this, boundary)					  \
+  ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
+   ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
+   : ~ (bfd_vma) 0)
 
 #define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name)
 #define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma)
@@ -522,7 +530,6 @@ extern void warn_deprecated (const char 
 #define bfd_get_file_flags(abfd) ((abfd)->flags)
 #define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
 #define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
-#define bfd_my_archive(abfd) ((abfd)->my_archive)
 #define bfd_has_map(abfd) ((abfd)->has_armap)
 #define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive)
 
@@ -860,6 +867,23 @@ extern bfd_boolean bfd_elf32_arm_vfp11_e
 extern void bfd_elf32_arm_vfp11_fix_veneer_locations
   (bfd *, struct bfd_link_info *);
 
+/* ARM STM STM32L4XX erratum workaround support.  */
+typedef enum
+{
+  BFD_ARM_STM32L4XX_FIX_NONE,
+  BFD_ARM_STM32L4XX_FIX_DEFAULT,
+  BFD_ARM_STM32L4XX_FIX_ALL
+} bfd_arm_stm32l4xx_fix;
+
+extern void bfd_elf32_arm_set_stm32l4xx_fix
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
+  (bfd *, struct bfd_link_info *);
+
 /* ARM Interworking support.  Called from linker.  */
 extern bfd_boolean bfd_arm_allocate_interworking_sections
   (struct bfd_link_info *);
@@ -889,7 +913,7 @@ extern bfd_boolean bfd_elf32_arm_process
 
 void bfd_elf32_arm_set_target_relocs
   (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
-   int, int, int, int, int);
+   bfd_arm_stm32l4xx_fix, int, int, int, int, int);
 
 extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   (bfd *, struct bfd_link_info *);
@@ -897,6 +921,9 @@ extern bfd_boolean bfd_elf32_arm_get_bfd
 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   (bfd *, struct bfd_link_info *);
 
+extern void bfd_elf32_arm_keep_private_stub_output_sections
+  (struct bfd_link_info *);
+
 /* ELF ARM mapping symbol support.  */
 #define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 #define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
@@ -928,7 +955,8 @@ extern void elf32_arm_next_input_section
   (struct bfd_link_info *, struct bfd_section *);
 extern bfd_boolean elf32_arm_size_stubs
   (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section * (*) (const char *, struct bfd_section *, unsigned int),
+   struct bfd_section * (*) (const char *, struct bfd_section *,
+			     struct bfd_section *, unsigned int),
    void (*) (void));
 extern bfd_boolean elf32_arm_build_stubs
   (struct bfd_link_info *);
@@ -941,13 +969,6 @@ extern bfd_boolean elf32_arm_fix_exidx_c
 extern bfd_boolean elf32_tic6x_fix_exidx_coverage
 (struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
 
-/* PowerPC @tls opcode transform/validate.  */
-extern unsigned int _bfd_elf_ppc_at_tls_transform
-  (unsigned int, unsigned int);
-/* PowerPC @tprel opcode transform/validate.  */
-extern unsigned int _bfd_elf_ppc_at_tprel_transform
-  (unsigned int, unsigned int);
-
 extern void bfd_elf64_aarch64_init_maps
   (bfd *);
 
@@ -955,10 +976,10 @@ extern void bfd_elf32_aarch64_init_maps
   (bfd *);
 
 extern void bfd_elf64_aarch64_set_options
-  (bfd *, struct bfd_link_info *, int, int, int, int, int);
+  (bfd *, struct bfd_link_info *, int, int, int, int, int, int);
 
 extern void bfd_elf32_aarch64_set_options
-  (bfd *, struct bfd_link_info *, int, int, int, int, int);
+  (bfd *, struct bfd_link_info *, int, int, int, int, int, int);
 
 /* ELF AArch64 mapping symbol support.  */
 #define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP	(1 << 0)
@@ -1213,10 +1234,10 @@ typedef struct bfd_section
   const char *name;
 
   /* A unique sequence number.  */
-  int id;
+  unsigned int id;
 
   /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
-  int index;
+  unsigned int index;
 
   /* The next section in the list belonging to the BFD, or NULL.  */
   struct bfd_section *next;
@@ -1419,6 +1440,9 @@ typedef struct bfd_section
      when memory read flag isn't set. */
 #define SEC_COFF_NOREAD 0x40000000
 
+  /* Indicate that section has the purecode flag set.  */
+#define SEC_ELF_PURECODE 0x80000000
+
   /*  End of section flags.  */
 
   /* Some internal packed boolean fields.  */
@@ -1485,7 +1509,7 @@ typedef struct bfd_section
       information.  */
   bfd_vma lma;
 
-  /* The size of the section in octets, as it will be output.
+  /* The size of the section in *octets*, as it will be output.
      Contains a value even if the section has no contents (e.g., the
      size of <<.bss>>).  */
   bfd_size_type size;
@@ -1797,7 +1821,7 @@ void bfd_section_list_clear (bfd *);
 
 asection *bfd_get_section_by_name (bfd *abfd, const char *name);
 
-asection *bfd_get_next_section_by_name (asection *sec);
+asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec);
 
 asection *bfd_get_linker_section (bfd *abfd, const char *name);
 
@@ -1822,6 +1846,8 @@ asection *bfd_make_section_with_flags
 
 asection *bfd_make_section (bfd *, const char *name);
 
+int bfd_get_next_section_id (void);
+
 bfd_boolean bfd_set_section_flags
    (bfd *abfd, asection *sec, flagword flags);
 
@@ -1934,13 +1960,29 @@ enum bfd_architecture
 #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
+#define bfd_mach_sparc_v8plusc         11 /* with UA2005 and T1 add'ns.  */
+#define bfd_mach_sparc_v9c             12 /* with UA2005 and T1 add'ns.  */
+#define bfd_mach_sparc_v8plusd         13 /* with UA2007 and T3 add'ns.  */
+#define bfd_mach_sparc_v9d             14 /* with UA2007 and T3 add'ns.  */
+#define bfd_mach_sparc_v8pluse         15 /* with OSA2001 and T4 add'ns (no IMA).  */
+#define bfd_mach_sparc_v9e             16 /* with OSA2001 and T4 add'ns (no IMA).  */
+#define bfd_mach_sparc_v8plusv         17 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
+#define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
+#define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
+#define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
 /* Nonzero if MACH has the v9 instruction set.  */
 #define bfd_mach_sparc_v9_p(mach) \
-  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
+  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
    && (mach) != bfd_mach_sparc_sparclite_le)
 /* Nonzero if MACH is a 64 bit sparc architecture.  */
 #define bfd_mach_sparc_64bit_p(mach) \
-  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
+  ((mach) >= bfd_mach_sparc_v9 \
+   && (mach) != bfd_mach_sparc_v8plusb \
+   && (mach) != bfd_mach_sparc_v8plusc \
+   && (mach) != bfd_mach_sparc_v8plusd \
+   && (mach) != bfd_mach_sparc_v8pluse \
+   && (mach) != bfd_mach_sparc_v8plusv \
+   && (mach) != bfd_mach_sparc_v8plusm)
   bfd_arch_spu,       /* PowerPC SPU */
 #define bfd_mach_spu           256
   bfd_arch_mips,      /* MIPS Rxxxx */
@@ -2150,10 +2192,12 @@ enum bfd_architecture
 #define bfd_mach_v850e2v3      0x45325633
 #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
   bfd_arch_arc,       /* ARC Cores */
-#define bfd_mach_arc_5         5
-#define bfd_mach_arc_6         6
-#define bfd_mach_arc_7         7
-#define bfd_mach_arc_8         8
+#define bfd_mach_arc_a4        0
+#define bfd_mach_arc_a5        1
+#define bfd_mach_arc_arc600    2
+#define bfd_mach_arc_arc601    4
+#define bfd_mach_arc_arc700    3
+#define bfd_mach_arc_arcv2     5
  bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 #define bfd_mach_m16c        0x75
 #define bfd_mach_m32c        0x78
@@ -2347,6 +2391,9 @@ const bfd_arch_info_type *bfd_arch_get_c
 
 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 
+bfd_boolean bfd_default_set_arch_mach
+   (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
+
 enum bfd_architecture bfd_get_arch (bfd *abfd);
 
 unsigned long bfd_get_mach (bfd *abfd);
@@ -2966,6 +3013,9 @@ to compensate for the borrow when the lo
   BFD_RELOC_MICROMIPS_10_PCREL_S1,
   BFD_RELOC_MICROMIPS_16_PCREL_S1,
 
+/* MIPS16 PC-relative relocation.  */
+  BFD_RELOC_MIPS16_16_PCREL_S1,
+
 /* MIPS PC-relative relocations.  */
   BFD_RELOC_MIPS_21_PCREL_S2,
   BFD_RELOC_MIPS_26_PCREL_S2,
@@ -3177,6 +3227,7 @@ instruction.  */
   BFD_RELOC_386_TLS_DESC_CALL,
   BFD_RELOC_386_TLS_DESC,
   BFD_RELOC_386_IRELATIVE,
+  BFD_RELOC_386_GOT32X,
 
 /* x86-64/elf relocations  */
   BFD_RELOC_X86_64_GOT32,
@@ -3208,6 +3259,8 @@ instruction.  */
   BFD_RELOC_X86_64_IRELATIVE,
   BFD_RELOC_X86_64_PC32_BND,
   BFD_RELOC_X86_64_PLT32_BND,
+  BFD_RELOC_X86_64_GOTPCRELX,
+  BFD_RELOC_X86_64_REX_GOTPCRELX,
 
 /* ns32k relocations  */
   BFD_RELOC_NS32K_IMM_8,
@@ -3283,6 +3336,7 @@ instruction.  */
   BFD_RELOC_PPC_VLE_SDAREL_HI16D,
   BFD_RELOC_PPC_VLE_SDAREL_HA16A,
   BFD_RELOC_PPC_VLE_SDAREL_HA16D,
+  BFD_RELOC_PPC_REL16DX_HA,
   BFD_RELOC_PPC64_HIGHER,
   BFD_RELOC_PPC64_HIGHER_S,
   BFD_RELOC_PPC64_HIGHEST,
@@ -3309,6 +3363,7 @@ instruction.  */
   BFD_RELOC_PPC64_ADDR16_HIGH,
   BFD_RELOC_PPC64_ADDR16_HIGHA,
   BFD_RELOC_PPC64_ADDR64_LOCAL,
+  BFD_RELOC_PPC64_ENTRY,
 
 /* PowerPC and PowerPC64 thread-local storage relocations.  */
   BFD_RELOC_PPC_TLS,
@@ -3494,6 +3549,12 @@ pc-relative or some form of GOT-indirect
 /* ARM support for STT_GNU_IFUNC.  */
   BFD_RELOC_ARM_IRELATIVE,
 
+/* Thumb1 relocations to support execute-only code.  */
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC,
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC,
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC,
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC,
+
 /* These relocs are only used within the ARM assembler.  They are not
 (at present) written to any object files.  */
   BFD_RELOC_ARM_IMMEDIATE,
@@ -3622,16 +3683,74 @@ pc-relative or some form of GOT-indirect
   BFD_RELOC_SH_GOTOFFFUNCDESC20,
   BFD_RELOC_SH_FUNCDESC,
 
-/* ARC Cores relocs.
-ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
-not stored in the instruction.  The high 20 bits are installed in bits 26
-through 7 of the instruction.  */
-  BFD_RELOC_ARC_B22_PCREL,
-
-/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
-stored in the instruction.  The high 24 bits are installed in bits 23
-through 0.  */
-  BFD_RELOC_ARC_B26,
+/* ARC relocs.  */
+  BFD_RELOC_ARC_NONE,
+  BFD_RELOC_ARC_8,
+  BFD_RELOC_ARC_16,
+  BFD_RELOC_ARC_24,
+  BFD_RELOC_ARC_32,
+  BFD_RELOC_ARC_N8,
+  BFD_RELOC_ARC_N16,
+  BFD_RELOC_ARC_N24,
+  BFD_RELOC_ARC_N32,
+  BFD_RELOC_ARC_SDA,
+  BFD_RELOC_ARC_SECTOFF,
+  BFD_RELOC_ARC_S21H_PCREL,
+  BFD_RELOC_ARC_S21W_PCREL,
+  BFD_RELOC_ARC_S25H_PCREL,
+  BFD_RELOC_ARC_S25W_PCREL,
+  BFD_RELOC_ARC_SDA32,
+  BFD_RELOC_ARC_SDA_LDST,
+  BFD_RELOC_ARC_SDA_LDST1,
+  BFD_RELOC_ARC_SDA_LDST2,
+  BFD_RELOC_ARC_SDA16_LD,
+  BFD_RELOC_ARC_SDA16_LD1,
+  BFD_RELOC_ARC_SDA16_LD2,
+  BFD_RELOC_ARC_S13_PCREL,
+  BFD_RELOC_ARC_W,
+  BFD_RELOC_ARC_32_ME,
+  BFD_RELOC_ARC_32_ME_S,
+  BFD_RELOC_ARC_N32_ME,
+  BFD_RELOC_ARC_SECTOFF_ME,
+  BFD_RELOC_ARC_SDA32_ME,
+  BFD_RELOC_ARC_W_ME,
+  BFD_RELOC_AC_SECTOFF_U8,
+  BFD_RELOC_AC_SECTOFF_U8_1,
+  BFD_RELOC_AC_SECTOFF_U8_2,
+  BFD_RELOC_AC_SECTFOFF_S9,
+  BFD_RELOC_AC_SECTFOFF_S9_1,
+  BFD_RELOC_AC_SECTFOFF_S9_2,
+  BFD_RELOC_ARC_SECTOFF_ME_1,
+  BFD_RELOC_ARC_SECTOFF_ME_2,
+  BFD_RELOC_ARC_SECTOFF_1,
+  BFD_RELOC_ARC_SECTOFF_2,
+  BFD_RELOC_ARC_SDA16_ST2,
+  BFD_RELOC_ARC_32_PCREL,
+  BFD_RELOC_ARC_PC32,
+  BFD_RELOC_ARC_GOT32,
+  BFD_RELOC_ARC_GOTPC32,
+  BFD_RELOC_ARC_PLT32,
+  BFD_RELOC_ARC_COPY,
+  BFD_RELOC_ARC_GLOB_DAT,
+  BFD_RELOC_ARC_JMP_SLOT,
+  BFD_RELOC_ARC_RELATIVE,
+  BFD_RELOC_ARC_GOTOFF,
+  BFD_RELOC_ARC_GOTPC,
+  BFD_RELOC_ARC_S21W_PCREL_PLT,
+  BFD_RELOC_ARC_S25H_PCREL_PLT,
+  BFD_RELOC_ARC_TLS_DTPMOD,
+  BFD_RELOC_ARC_TLS_TPOFF,
+  BFD_RELOC_ARC_TLS_GD_GOT,
+  BFD_RELOC_ARC_TLS_GD_LD,
+  BFD_RELOC_ARC_TLS_GD_CALL,
+  BFD_RELOC_ARC_TLS_IE_GOT,
+  BFD_RELOC_ARC_TLS_DTPOFF,
+  BFD_RELOC_ARC_TLS_DTPOFF_S9,
+  BFD_RELOC_ARC_TLS_LE_S9,
+  BFD_RELOC_ARC_TLS_LE_32,
+  BFD_RELOC_ARC_S25W_PCREL_PLT,
+  BFD_RELOC_ARC_S21H_PCREL_PLT,
+  BFD_RELOC_ARC_NPS_CMEM16,
 
 /* ADI Blackfin 16 bit immediate absolute reloc.  */
   BFD_RELOC_BFIN_16_IMM,
@@ -5497,6 +5616,12 @@ BFD_RELOC_MACH_O_PAIR.  */
 /* Pair of relocation.  Contains the first symbol.  */
   BFD_RELOC_MACH_O_PAIR,
 
+/* Symbol will be substracted.  Must be followed by a BFD_RELOC_32.  */
+  BFD_RELOC_MACH_O_SUBTRACTOR32,
+
+/* Symbol will be substracted.  Must be followed by a BFD_RELOC_64.  */
+  BFD_RELOC_MACH_O_SUBTRACTOR64,
+
 /* PCREL relocations.  They are marked as branch to create PLT entry if
 required.  */
   BFD_RELOC_MACH_O_X86_64_BRANCH32,
@@ -5509,12 +5634,6 @@ required.  */
 the linker could optimize the movq to a leaq if possible.  */
   BFD_RELOC_MACH_O_X86_64_GOT_LOAD,
 
-/* Symbol will be substracted.  Must be followed by a BFD_RELOC_64.  */
-  BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32,
-
-/* Symbol will be substracted.  Must be followed by a BFD_RELOC_64.  */
-  BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64,
-
 /* Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.  */
   BFD_RELOC_MACH_O_X86_64_PCREL32_1,
 
@@ -5524,6 +5643,18 @@ the linker could optimize the movq to a 
 /* Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.  */
   BFD_RELOC_MACH_O_X86_64_PCREL32_4,
 
+/* Addend for PAGE or PAGEOFF.  */
+  BFD_RELOC_MACH_O_ARM64_ADDEND,
+
+/* Relative offset to page of GOT slot.  */
+  BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21,
+
+/* Relative offset within page of GOT slot.  */
+  BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12,
+
+/* Address of a GOT entry.  */
+  BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT,
+
 /* This is a 32 bit reloc for the microblaze that stores the
 low 16 bits of a value  */
   BFD_RELOC_MICROBLAZE_32_LO,
@@ -5614,6 +5745,9 @@ important as several tables in the AArch
 by these enumerators; make sure they are all synced.  */
   BFD_RELOC_AARCH64_RELOC_START,
 
+/* Deprecated AArch64 null relocation code.  */
+  BFD_RELOC_AARCH64_NULL,
+
 /* AArch64 null relocation code.  */
   BFD_RELOC_AARCH64_NONE,
 
@@ -5756,8 +5890,16 @@ the GOT entry for this symbol.  Used in 
 BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.  */
   BFD_RELOC_AARCH64_LD32_GOT_LO12_NC,
 
+/* Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
+for this symbol.  Valid in LP64 ABI only.  */
+  BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC,
+
+/* Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry
+for this symbol.  Valid in LP64 ABI only.  */
+  BFD_RELOC_AARCH64_MOVW_GOTOFF_G1,
+
 /* Unsigned 15 bit byte offset for 64 bit load/store from the page of
-the GOT entry for this symbol. Valid in ILP64 ABI only.  */
+the GOT entry for this symbol.  Valid in LP64 ABI only.  */
   BFD_RELOC_AARCH64_LD64_GOTOFF_LO15,
 
 /* Scaled 14 bit byte offset to the page base of the global offset table.  */
@@ -5780,11 +5922,11 @@ tls_index structure.  Used in conjunctio
 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.  */
   BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC,
 
-/* AArch64 TLS INITIAL EXEC relocation.  */
-  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
+/* AArch64 TLS General Dynamic relocation.  */
+  BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC,
 
-/* AArch64 TLS INITIAL EXEC relocation.  */
-  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
+/* AArch64 TLS General Dynamic relocation.  */
+  BFD_RELOC_AARCH64_TLSGD_MOVW_G1,
 
 /* AArch64 TLS INITIAL EXEC relocation.  */
   BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
@@ -5798,6 +5940,76 @@ BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.  */
 /* AArch64 TLS INITIAL EXEC relocation.  */
   BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19,
 
+/* AArch64 TLS INITIAL EXEC relocation.  */
+  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
+
+/* AArch64 TLS INITIAL EXEC relocation.  */
+  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
+
+/* bit[23:12] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12,
+
+/* Unsigned 12 bit byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12,
+
+/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
+
+/* Unsigned 12 bit byte offset to global offset table entry for a symbols
+tls_index structure.  Used in conjunction with
+BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC,
+
+/* GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
+instruction.  */
+  BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21,
+
+/* GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction.  */
+  BFD_RELOC_AARCH64_TLSLD_ADR_PREL21,
+
+/* bit[11:1] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
+
+/* bit[11:2] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
+
+/* bit[11:3] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
+
+/* bit[11:0] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
+
+/* bit[15:0] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0,
+
+/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
+
+/* bit[31:16] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1,
+
+/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
+
+/* bit[47:32] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2,
+
 /* AArch64 TLS LOCAL EXEC relocation.  */
   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2,
 
@@ -5897,6 +6109,14 @@ assembler and not (currently) written to
 address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.  */
   BFD_RELOC_AARCH64_LDST_LO12,
 
+/* AArch64 pseudo relocation code for TLS local dynamic mode.  It's to be
+used internally by the AArch64 assembler and not (currently) written to
+any object files.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC,
+
 /* AArch64 pseudo relocation code to be used internally by the AArch64
 assembler and not (currently) written to any object files.  */
   BFD_RELOC_AARCH64_LD_GOT_LO12_NC,
@@ -6180,8 +6400,7 @@ typedef struct bfd_symbol
 #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
 
   /* A normal C symbol would be one of:
-     <<BSF_LOCAL>>, <<BSF_COMMON>>,  <<BSF_UNDEFINED>> or
-     <<BSF_GLOBAL>>.  */
+     <<BSF_LOCAL>>, <<BSF_UNDEFINED>> or <<BSF_GLOBAL>>.  */
 
   /* The symbol is a debugging record. The value has an arbitrary
      meaning, unless BSF_DEBUGGING_RELOC is also set.  */
@@ -6193,7 +6412,9 @@ typedef struct bfd_symbol
 
   /* Used by the linker.  */
 #define BSF_KEEP               (1 << 5)
-#define BSF_KEEP_G             (1 << 6)
+
+  /* An ELF common symbol.  */
+#define BSF_ELF_COMMON         (1 << 6)
 
   /* A weak global symbol, overridable without warnings by
      a regular global symbol of the same name.  */
@@ -6340,7 +6561,7 @@ enum bfd_direction
 
 enum bfd_plugin_format
   {
-    bfd_plugin_uknown = 0,
+    bfd_plugin_unknown = 0,
     bfd_plugin_yes = 1,
     bfd_plugin_no = 2
   };
@@ -6385,7 +6606,7 @@ struct bfd
   ENUM_BITFIELD (bfd_direction) direction : 2;
 
   /* Format_specific flags.  */
-  flagword flags : 18;
+  flagword flags : 20;
 
   /* Values that may appear in the flags field of a BFD.  These also
      appear in the object_flags field of the bfd_target structure, where
@@ -6465,16 +6686,23 @@ struct bfd
   /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
 #define BFD_COMPRESS_GABI 0x20000
 
+  /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
+     BFD.  */
+#define BFD_CONVERT_ELF_COMMON 0x40000
+
+  /* Use the ELF STT_COMMON type in this BFD.  */
+#define BFD_USE_ELF_STT_COMMON 0x80000
+
   /* Flags bits to be saved in bfd_preserve_save.  */
 #define BFD_FLAGS_SAVED \
   (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN \
-   | BFD_COMPRESS_GABI)
+   | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
 
   /* Flags bits which are for BFD use only.  */
 #define BFD_FLAGS_FOR_BFD_USE_MASK \
   (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
    | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
-   | BFD_COMPRESS_GABI)
+   | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
 
   /* Is the file descriptor being cached?  That is, can it be closed as
      needed, and re-opened when accessed later?  */
@@ -6859,6 +7087,13 @@ bfd_boolean bfd_check_compression_header
 
 int bfd_get_compression_header_size (bfd *abfd, asection *sec);
 
+bfd_size_type bfd_convert_section_size
+   (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
+
+bfd_boolean bfd_convert_section_contents
+   (bfd *ibfd, asection *isec, bfd *obfd,
+    bfd_byte **ptr, bfd_size_type *ptr_size);
+
 /* Extracted from archive.c.  */
 symindex bfd_get_next_mapent
    (bfd *abfd, symindex previous, carsym **sym);
@@ -6904,6 +7139,7 @@ bfd_boolean generic_core_file_matches_ex
 
 enum bfd_flavour
 {
+  /* N.B. Update bfd_flavour_name if you change this.  */
   bfd_target_unknown_flavour,
   bfd_target_aout_flavour,
   bfd_target_coff_flavour,
@@ -7209,6 +7445,7 @@ typedef struct bfd_target
   NAME##_bfd_copy_link_hash_symbol_type, \
   NAME##_bfd_final_link, \
   NAME##_bfd_link_split_section, \
+  NAME##_bfd_link_check_relocs, \
   NAME##_bfd_gc_sections, \
   NAME##_bfd_lookup_section_flags, \
   NAME##_bfd_merge_sections, \
@@ -7250,6 +7487,9 @@ typedef struct bfd_target
   /* Should this section be split up into smaller pieces during linking.  */
   bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 
+  /* Check the relocations in the bfd for validity.  */
+  bfd_boolean (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *);
+
   /* Remove sections that are not referenced from the output.  */
   bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 
@@ -7319,9 +7559,11 @@ const bfd_target *bfd_get_target_info (c
     const char **def_target_arch);
 const char ** bfd_target_list (void);
 
-const bfd_target *bfd_search_for_target
-   (int (*search_func) (const bfd_target *, void *),
-    void *);
+const bfd_target *bfd_iterate_over_targets
+   (int (*func) (const bfd_target *, void *),
+    void *data);
+
+const char *bfd_flavour_name (enum bfd_flavour flavour);
 
 /* Extracted from format.c.  */
 bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
@@ -7360,6 +7602,12 @@ struct bfd_elf_version_tree * bfd_find_v
 bfd_boolean bfd_hide_sym_by_version
    (struct bfd_elf_version_tree *verdefs, const char *sym_name);
 
+bfd_boolean bfd_link_check_relocs
+   (bfd *abfd, struct bfd_link_info *info);
+
+bfd_boolean _bfd_generic_link_check_relocs
+   (bfd *abfd, struct bfd_link_info *info);
+
 /* Extracted from simple.c.  */
 bfd_byte *bfd_simple_get_relocated_section_contents
    (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
Index: src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd.h
diff -u src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd.h:1.5 src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd.h:1.6
--- src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd.h:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd.h	Fri Oct 14 12:19:23 2016
@@ -11,7 +11,7 @@
 
 /* Main header file for the bfd library -- portable access to object files.
 
-   Copyright (C) 1990-2015 Free Software Foundation, Inc.
+   Copyright (C) 1990-2016 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -267,7 +267,7 @@ struct orl 			/* Output ranlib.  */
   } u;			/* bfd* or file position.  */
   int namidx;		/* Index into string table.  */
 };
-
+
 /* Linenumber stuff.  */
 typedef struct lineno_cache_entry
 {
@@ -281,11 +281,19 @@ typedef struct lineno_cache_entry
 alent;
 
 /* Object and core file sections.  */
+typedef struct bfd_section *sec_ptr;
 
 #define	align_power(addr, align)	\
-  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
+  (((addr) + ((bfd_vma) 1 << (align)) - 1) & (-((bfd_vma) 1 << (align))))
 
-typedef struct bfd_section *sec_ptr;
+/* Align an address upward to a boundary, expressed as a number of bytes.
+   E.g. align to an 8-byte boundary with argument of 8.  Take care never
+   to wrap around if the address is within boundary-1 of the end of the
+   address space.  */
+#define BFD_ALIGN(this, boundary)					  \
+  ((((bfd_vma) (this) + (boundary) - 1) >= (bfd_vma) (this))		  \
+   ? (((bfd_vma) (this) + ((boundary) - 1)) & ~ (bfd_vma) ((boundary)-1)) \
+   : ~ (bfd_vma) 0)
 
 #define bfd_get_section_name(bfd, ptr) ((void) bfd, (ptr)->name)
 #define bfd_get_section_vma(bfd, ptr) ((void) bfd, (ptr)->vma)
@@ -522,7 +530,6 @@ extern void warn_deprecated (const char 
 #define bfd_get_file_flags(abfd) ((abfd)->flags)
 #define bfd_applicable_file_flags(abfd) ((abfd)->xvec->object_flags)
 #define bfd_applicable_section_flags(abfd) ((abfd)->xvec->section_flags)
-#define bfd_my_archive(abfd) ((abfd)->my_archive)
 #define bfd_has_map(abfd) ((abfd)->has_armap)
 #define bfd_is_thin_archive(abfd) ((abfd)->is_thin_archive)
 
@@ -860,6 +867,23 @@ extern bfd_boolean bfd_elf32_arm_vfp11_e
 extern void bfd_elf32_arm_vfp11_fix_veneer_locations
   (bfd *, struct bfd_link_info *);
 
+/* ARM STM STM32L4XX erratum workaround support.  */
+typedef enum
+{
+  BFD_ARM_STM32L4XX_FIX_NONE,
+  BFD_ARM_STM32L4XX_FIX_DEFAULT,
+  BFD_ARM_STM32L4XX_FIX_ALL
+} bfd_arm_stm32l4xx_fix;
+
+extern void bfd_elf32_arm_set_stm32l4xx_fix
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
+  (bfd *, struct bfd_link_info *);
+
 /* ARM Interworking support.  Called from linker.  */
 extern bfd_boolean bfd_arm_allocate_interworking_sections
   (struct bfd_link_info *);
@@ -889,7 +913,7 @@ extern bfd_boolean bfd_elf32_arm_process
 
 void bfd_elf32_arm_set_target_relocs
   (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
-   int, int, int, int, int);
+   bfd_arm_stm32l4xx_fix, int, int, int, int, int);
 
 extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   (bfd *, struct bfd_link_info *);
@@ -897,6 +921,9 @@ extern bfd_boolean bfd_elf32_arm_get_bfd
 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   (bfd *, struct bfd_link_info *);
 
+extern void bfd_elf32_arm_keep_private_stub_output_sections
+  (struct bfd_link_info *);
+
 /* ELF ARM mapping symbol support.  */
 #define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
 #define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
@@ -928,7 +955,8 @@ extern void elf32_arm_next_input_section
   (struct bfd_link_info *, struct bfd_section *);
 extern bfd_boolean elf32_arm_size_stubs
   (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section * (*) (const char *, struct bfd_section *, unsigned int),
+   struct bfd_section * (*) (const char *, struct bfd_section *,
+			     struct bfd_section *, unsigned int),
    void (*) (void));
 extern bfd_boolean elf32_arm_build_stubs
   (struct bfd_link_info *);
@@ -941,13 +969,6 @@ extern bfd_boolean elf32_arm_fix_exidx_c
 extern bfd_boolean elf32_tic6x_fix_exidx_coverage
 (struct bfd_section **, unsigned int, struct bfd_link_info *, bfd_boolean);
 
-/* PowerPC @tls opcode transform/validate.  */
-extern unsigned int _bfd_elf_ppc_at_tls_transform
-  (unsigned int, unsigned int);
-/* PowerPC @tprel opcode transform/validate.  */
-extern unsigned int _bfd_elf_ppc_at_tprel_transform
-  (unsigned int, unsigned int);
-
 extern void bfd_elf64_aarch64_init_maps
   (bfd *);
 
@@ -955,10 +976,10 @@ extern void bfd_elf32_aarch64_init_maps
   (bfd *);
 
 extern void bfd_elf64_aarch64_set_options
-  (bfd *, struct bfd_link_info *, int, int, int, int, int);
+  (bfd *, struct bfd_link_info *, int, int, int, int, int, int);
 
 extern void bfd_elf32_aarch64_set_options
-  (bfd *, struct bfd_link_info *, int, int, int, int, int);
+  (bfd *, struct bfd_link_info *, int, int, int, int, int, int);
 
 /* ELF AArch64 mapping symbol support.  */
 #define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP	(1 << 0)
@@ -1213,10 +1234,10 @@ typedef struct bfd_section
   const char *name;
 
   /* A unique sequence number.  */
-  int id;
+  unsigned int id;
 
   /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
-  int index;
+  unsigned int index;
 
   /* The next section in the list belonging to the BFD, or NULL.  */
   struct bfd_section *next;
@@ -1419,6 +1440,9 @@ typedef struct bfd_section
      when memory read flag isn't set. */
 #define SEC_COFF_NOREAD 0x40000000
 
+  /* Indicate that section has the purecode flag set.  */
+#define SEC_ELF_PURECODE 0x80000000
+
   /*  End of section flags.  */
 
   /* Some internal packed boolean fields.  */
@@ -1485,7 +1509,7 @@ typedef struct bfd_section
       information.  */
   bfd_vma lma;
 
-  /* The size of the section in octets, as it will be output.
+  /* The size of the section in *octets*, as it will be output.
      Contains a value even if the section has no contents (e.g., the
      size of <<.bss>>).  */
   bfd_size_type size;
@@ -1797,7 +1821,7 @@ void bfd_section_list_clear (bfd *);
 
 asection *bfd_get_section_by_name (bfd *abfd, const char *name);
 
-asection *bfd_get_next_section_by_name (asection *sec);
+asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec);
 
 asection *bfd_get_linker_section (bfd *abfd, const char *name);
 
@@ -1822,6 +1846,8 @@ asection *bfd_make_section_with_flags
 
 asection *bfd_make_section (bfd *, const char *name);
 
+int bfd_get_next_section_id (void);
+
 bfd_boolean bfd_set_section_flags
    (bfd *abfd, asection *sec, flagword flags);
 
@@ -1934,13 +1960,29 @@ enum bfd_architecture
 #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
 #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
 #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
+#define bfd_mach_sparc_v8plusc         11 /* with UA2005 and T1 add'ns.  */
+#define bfd_mach_sparc_v9c             12 /* with UA2005 and T1 add'ns.  */
+#define bfd_mach_sparc_v8plusd         13 /* with UA2007 and T3 add'ns.  */
+#define bfd_mach_sparc_v9d             14 /* with UA2007 and T3 add'ns.  */
+#define bfd_mach_sparc_v8pluse         15 /* with OSA2001 and T4 add'ns (no IMA).  */
+#define bfd_mach_sparc_v9e             16 /* with OSA2001 and T4 add'ns (no IMA).  */
+#define bfd_mach_sparc_v8plusv         17 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
+#define bfd_mach_sparc_v9v             18 /* with OSA2011 and T4 and IMA and FJMAU add'ns.  */
+#define bfd_mach_sparc_v8plusm         19 /* with OSA2015 and M7 add'ns.  */
+#define bfd_mach_sparc_v9m             20 /* with OSA2015 and M7 add'ns.  */
 /* Nonzero if MACH has the v9 instruction set.  */
 #define bfd_mach_sparc_v9_p(mach) \
-  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
+  ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9m \
    && (mach) != bfd_mach_sparc_sparclite_le)
 /* Nonzero if MACH is a 64 bit sparc architecture.  */
 #define bfd_mach_sparc_64bit_p(mach) \
-  ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
+  ((mach) >= bfd_mach_sparc_v9 \
+   && (mach) != bfd_mach_sparc_v8plusb \
+   && (mach) != bfd_mach_sparc_v8plusc \
+   && (mach) != bfd_mach_sparc_v8plusd \
+   && (mach) != bfd_mach_sparc_v8pluse \
+   && (mach) != bfd_mach_sparc_v8plusv \
+   && (mach) != bfd_mach_sparc_v8plusm)
   bfd_arch_spu,       /* PowerPC SPU */
 #define bfd_mach_spu           256
   bfd_arch_mips,      /* MIPS Rxxxx */
@@ -2150,10 +2192,12 @@ enum bfd_architecture
 #define bfd_mach_v850e2v3      0x45325633
 #define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
   bfd_arch_arc,       /* ARC Cores */
-#define bfd_mach_arc_5         5
-#define bfd_mach_arc_6         6
-#define bfd_mach_arc_7         7
-#define bfd_mach_arc_8         8
+#define bfd_mach_arc_a4        0
+#define bfd_mach_arc_a5        1
+#define bfd_mach_arc_arc600    2
+#define bfd_mach_arc_arc601    4
+#define bfd_mach_arc_arc700    3
+#define bfd_mach_arc_arcv2     5
  bfd_arch_m32c,     /* Renesas M16C/M32C.  */
 #define bfd_mach_m16c        0x75
 #define bfd_mach_m32c        0x78
@@ -2347,6 +2391,9 @@ const bfd_arch_info_type *bfd_arch_get_c
 
 void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
 
+bfd_boolean bfd_default_set_arch_mach
+   (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
+
 enum bfd_architecture bfd_get_arch (bfd *abfd);
 
 unsigned long bfd_get_mach (bfd *abfd);
@@ -2966,6 +3013,9 @@ to compensate for the borrow when the lo
   BFD_RELOC_MICROMIPS_10_PCREL_S1,
   BFD_RELOC_MICROMIPS_16_PCREL_S1,
 
+/* MIPS16 PC-relative relocation.  */
+  BFD_RELOC_MIPS16_16_PCREL_S1,
+
 /* MIPS PC-relative relocations.  */
   BFD_RELOC_MIPS_21_PCREL_S2,
   BFD_RELOC_MIPS_26_PCREL_S2,
@@ -3177,6 +3227,7 @@ instruction.  */
   BFD_RELOC_386_TLS_DESC_CALL,
   BFD_RELOC_386_TLS_DESC,
   BFD_RELOC_386_IRELATIVE,
+  BFD_RELOC_386_GOT32X,
 
 /* x86-64/elf relocations  */
   BFD_RELOC_X86_64_GOT32,
@@ -3208,6 +3259,8 @@ instruction.  */
   BFD_RELOC_X86_64_IRELATIVE,
   BFD_RELOC_X86_64_PC32_BND,
   BFD_RELOC_X86_64_PLT32_BND,
+  BFD_RELOC_X86_64_GOTPCRELX,
+  BFD_RELOC_X86_64_REX_GOTPCRELX,
 
 /* ns32k relocations  */
   BFD_RELOC_NS32K_IMM_8,
@@ -3283,6 +3336,7 @@ instruction.  */
   BFD_RELOC_PPC_VLE_SDAREL_HI16D,
   BFD_RELOC_PPC_VLE_SDAREL_HA16A,
   BFD_RELOC_PPC_VLE_SDAREL_HA16D,
+  BFD_RELOC_PPC_REL16DX_HA,
   BFD_RELOC_PPC64_HIGHER,
   BFD_RELOC_PPC64_HIGHER_S,
   BFD_RELOC_PPC64_HIGHEST,
@@ -3309,6 +3363,7 @@ instruction.  */
   BFD_RELOC_PPC64_ADDR16_HIGH,
   BFD_RELOC_PPC64_ADDR16_HIGHA,
   BFD_RELOC_PPC64_ADDR64_LOCAL,
+  BFD_RELOC_PPC64_ENTRY,
 
 /* PowerPC and PowerPC64 thread-local storage relocations.  */
   BFD_RELOC_PPC_TLS,
@@ -3494,6 +3549,12 @@ pc-relative or some form of GOT-indirect
 /* ARM support for STT_GNU_IFUNC.  */
   BFD_RELOC_ARM_IRELATIVE,
 
+/* Thumb1 relocations to support execute-only code.  */
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G0_NC,
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G1_NC,
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G2_NC,
+  BFD_RELOC_ARM_THUMB_ALU_ABS_G3_NC,
+
 /* These relocs are only used within the ARM assembler.  They are not
 (at present) written to any object files.  */
   BFD_RELOC_ARM_IMMEDIATE,
@@ -3622,16 +3683,74 @@ pc-relative or some form of GOT-indirect
   BFD_RELOC_SH_GOTOFFFUNCDESC20,
   BFD_RELOC_SH_FUNCDESC,
 
-/* ARC Cores relocs.
-ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
-not stored in the instruction.  The high 20 bits are installed in bits 26
-through 7 of the instruction.  */
-  BFD_RELOC_ARC_B22_PCREL,
-
-/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
-stored in the instruction.  The high 24 bits are installed in bits 23
-through 0.  */
-  BFD_RELOC_ARC_B26,
+/* ARC relocs.  */
+  BFD_RELOC_ARC_NONE,
+  BFD_RELOC_ARC_8,
+  BFD_RELOC_ARC_16,
+  BFD_RELOC_ARC_24,
+  BFD_RELOC_ARC_32,
+  BFD_RELOC_ARC_N8,
+  BFD_RELOC_ARC_N16,
+  BFD_RELOC_ARC_N24,
+  BFD_RELOC_ARC_N32,
+  BFD_RELOC_ARC_SDA,
+  BFD_RELOC_ARC_SECTOFF,
+  BFD_RELOC_ARC_S21H_PCREL,
+  BFD_RELOC_ARC_S21W_PCREL,
+  BFD_RELOC_ARC_S25H_PCREL,
+  BFD_RELOC_ARC_S25W_PCREL,
+  BFD_RELOC_ARC_SDA32,
+  BFD_RELOC_ARC_SDA_LDST,
+  BFD_RELOC_ARC_SDA_LDST1,
+  BFD_RELOC_ARC_SDA_LDST2,
+  BFD_RELOC_ARC_SDA16_LD,
+  BFD_RELOC_ARC_SDA16_LD1,
+  BFD_RELOC_ARC_SDA16_LD2,
+  BFD_RELOC_ARC_S13_PCREL,
+  BFD_RELOC_ARC_W,
+  BFD_RELOC_ARC_32_ME,
+  BFD_RELOC_ARC_32_ME_S,
+  BFD_RELOC_ARC_N32_ME,
+  BFD_RELOC_ARC_SECTOFF_ME,
+  BFD_RELOC_ARC_SDA32_ME,
+  BFD_RELOC_ARC_W_ME,
+  BFD_RELOC_AC_SECTOFF_U8,
+  BFD_RELOC_AC_SECTOFF_U8_1,
+  BFD_RELOC_AC_SECTOFF_U8_2,
+  BFD_RELOC_AC_SECTFOFF_S9,
+  BFD_RELOC_AC_SECTFOFF_S9_1,
+  BFD_RELOC_AC_SECTFOFF_S9_2,
+  BFD_RELOC_ARC_SECTOFF_ME_1,
+  BFD_RELOC_ARC_SECTOFF_ME_2,
+  BFD_RELOC_ARC_SECTOFF_1,
+  BFD_RELOC_ARC_SECTOFF_2,
+  BFD_RELOC_ARC_SDA16_ST2,
+  BFD_RELOC_ARC_32_PCREL,
+  BFD_RELOC_ARC_PC32,
+  BFD_RELOC_ARC_GOT32,
+  BFD_RELOC_ARC_GOTPC32,
+  BFD_RELOC_ARC_PLT32,
+  BFD_RELOC_ARC_COPY,
+  BFD_RELOC_ARC_GLOB_DAT,
+  BFD_RELOC_ARC_JMP_SLOT,
+  BFD_RELOC_ARC_RELATIVE,
+  BFD_RELOC_ARC_GOTOFF,
+  BFD_RELOC_ARC_GOTPC,
+  BFD_RELOC_ARC_S21W_PCREL_PLT,
+  BFD_RELOC_ARC_S25H_PCREL_PLT,
+  BFD_RELOC_ARC_TLS_DTPMOD,
+  BFD_RELOC_ARC_TLS_TPOFF,
+  BFD_RELOC_ARC_TLS_GD_GOT,
+  BFD_RELOC_ARC_TLS_GD_LD,
+  BFD_RELOC_ARC_TLS_GD_CALL,
+  BFD_RELOC_ARC_TLS_IE_GOT,
+  BFD_RELOC_ARC_TLS_DTPOFF,
+  BFD_RELOC_ARC_TLS_DTPOFF_S9,
+  BFD_RELOC_ARC_TLS_LE_S9,
+  BFD_RELOC_ARC_TLS_LE_32,
+  BFD_RELOC_ARC_S25W_PCREL_PLT,
+  BFD_RELOC_ARC_S21H_PCREL_PLT,
+  BFD_RELOC_ARC_NPS_CMEM16,
 
 /* ADI Blackfin 16 bit immediate absolute reloc.  */
   BFD_RELOC_BFIN_16_IMM,
@@ -5497,6 +5616,12 @@ BFD_RELOC_MACH_O_PAIR.  */
 /* Pair of relocation.  Contains the first symbol.  */
   BFD_RELOC_MACH_O_PAIR,
 
+/* Symbol will be substracted.  Must be followed by a BFD_RELOC_32.  */
+  BFD_RELOC_MACH_O_SUBTRACTOR32,
+
+/* Symbol will be substracted.  Must be followed by a BFD_RELOC_64.  */
+  BFD_RELOC_MACH_O_SUBTRACTOR64,
+
 /* PCREL relocations.  They are marked as branch to create PLT entry if
 required.  */
   BFD_RELOC_MACH_O_X86_64_BRANCH32,
@@ -5509,12 +5634,6 @@ required.  */
 the linker could optimize the movq to a leaq if possible.  */
   BFD_RELOC_MACH_O_X86_64_GOT_LOAD,
 
-/* Symbol will be substracted.  Must be followed by a BFD_RELOC_64.  */
-  BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32,
-
-/* Symbol will be substracted.  Must be followed by a BFD_RELOC_64.  */
-  BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64,
-
 /* Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.  */
   BFD_RELOC_MACH_O_X86_64_PCREL32_1,
 
@@ -5524,6 +5643,18 @@ the linker could optimize the movq to a 
 /* Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.  */
   BFD_RELOC_MACH_O_X86_64_PCREL32_4,
 
+/* Addend for PAGE or PAGEOFF.  */
+  BFD_RELOC_MACH_O_ARM64_ADDEND,
+
+/* Relative offset to page of GOT slot.  */
+  BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGE21,
+
+/* Relative offset within page of GOT slot.  */
+  BFD_RELOC_MACH_O_ARM64_GOT_LOAD_PAGEOFF12,
+
+/* Address of a GOT entry.  */
+  BFD_RELOC_MACH_O_ARM64_POINTER_TO_GOT,
+
 /* This is a 32 bit reloc for the microblaze that stores the
 low 16 bits of a value  */
   BFD_RELOC_MICROBLAZE_32_LO,
@@ -5614,6 +5745,9 @@ important as several tables in the AArch
 by these enumerators; make sure they are all synced.  */
   BFD_RELOC_AARCH64_RELOC_START,
 
+/* Deprecated AArch64 null relocation code.  */
+  BFD_RELOC_AARCH64_NULL,
+
 /* AArch64 null relocation code.  */
   BFD_RELOC_AARCH64_NONE,
 
@@ -5756,8 +5890,16 @@ the GOT entry for this symbol.  Used in 
 BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.  */
   BFD_RELOC_AARCH64_LD32_GOT_LO12_NC,
 
+/* Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
+for this symbol.  Valid in LP64 ABI only.  */
+  BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC,
+
+/* Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry
+for this symbol.  Valid in LP64 ABI only.  */
+  BFD_RELOC_AARCH64_MOVW_GOTOFF_G1,
+
 /* Unsigned 15 bit byte offset for 64 bit load/store from the page of
-the GOT entry for this symbol. Valid in ILP64 ABI only.  */
+the GOT entry for this symbol.  Valid in LP64 ABI only.  */
   BFD_RELOC_AARCH64_LD64_GOTOFF_LO15,
 
 /* Scaled 14 bit byte offset to the page base of the global offset table.  */
@@ -5780,11 +5922,11 @@ tls_index structure.  Used in conjunctio
 BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.  */
   BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC,
 
-/* AArch64 TLS INITIAL EXEC relocation.  */
-  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
+/* AArch64 TLS General Dynamic relocation.  */
+  BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC,
 
-/* AArch64 TLS INITIAL EXEC relocation.  */
-  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
+/* AArch64 TLS General Dynamic relocation.  */
+  BFD_RELOC_AARCH64_TLSGD_MOVW_G1,
 
 /* AArch64 TLS INITIAL EXEC relocation.  */
   BFD_RELOC_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21,
@@ -5798,6 +5940,76 @@ BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.  */
 /* AArch64 TLS INITIAL EXEC relocation.  */
   BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19,
 
+/* AArch64 TLS INITIAL EXEC relocation.  */
+  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
+
+/* AArch64 TLS INITIAL EXEC relocation.  */
+  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
+
+/* bit[23:12] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12,
+
+/* Unsigned 12 bit byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12,
+
+/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
+
+/* Unsigned 12 bit byte offset to global offset table entry for a symbols
+tls_index structure.  Used in conjunction with
+BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.  */
+  BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC,
+
+/* GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
+instruction.  */
+  BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21,
+
+/* GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction.  */
+  BFD_RELOC_AARCH64_TLSLD_ADR_PREL21,
+
+/* bit[11:1] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
+
+/* bit[11:2] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
+
+/* bit[11:3] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
+
+/* bit[11:0] of byte offset to module TLS base address, encoded in ldst
+instructions.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
+
+/* bit[15:0] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0,
+
+/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
+
+/* bit[31:16] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1,
+
+/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
+
+/* bit[47:32] of byte offset to module TLS base address.  */
+  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2,
+
 /* AArch64 TLS LOCAL EXEC relocation.  */
   BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2,
 
@@ -5897,6 +6109,14 @@ assembler and not (currently) written to
 address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.  */
   BFD_RELOC_AARCH64_LDST_LO12,
 
+/* AArch64 pseudo relocation code for TLS local dynamic mode.  It's to be
+used internally by the AArch64 assembler and not (currently) written to
+any object files.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12,
+
+/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check.  */
+  BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC,
+
 /* AArch64 pseudo relocation code to be used internally by the AArch64
 assembler and not (currently) written to any object files.  */
   BFD_RELOC_AARCH64_LD_GOT_LO12_NC,
@@ -6180,8 +6400,7 @@ typedef struct bfd_symbol
 #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
 
   /* A normal C symbol would be one of:
-     <<BSF_LOCAL>>, <<BSF_COMMON>>,  <<BSF_UNDEFINED>> or
-     <<BSF_GLOBAL>>.  */
+     <<BSF_LOCAL>>, <<BSF_UNDEFINED>> or <<BSF_GLOBAL>>.  */
 
   /* The symbol is a debugging record. The value has an arbitrary
      meaning, unless BSF_DEBUGGING_RELOC is also set.  */
@@ -6193,7 +6412,9 @@ typedef struct bfd_symbol
 
   /* Used by the linker.  */
 #define BSF_KEEP               (1 << 5)
-#define BSF_KEEP_G             (1 << 6)
+
+  /* An ELF common symbol.  */
+#define BSF_ELF_COMMON         (1 << 6)
 
   /* A weak global symbol, overridable without warnings by
      a regular global symbol of the same name.  */
@@ -6340,7 +6561,7 @@ enum bfd_direction
 
 enum bfd_plugin_format
   {
-    bfd_plugin_uknown = 0,
+    bfd_plugin_unknown = 0,
     bfd_plugin_yes = 1,
     bfd_plugin_no = 2
   };
@@ -6385,7 +6606,7 @@ struct bfd
   ENUM_BITFIELD (bfd_direction) direction : 2;
 
   /* Format_specific flags.  */
-  flagword flags : 18;
+  flagword flags : 20;
 
   /* Values that may appear in the flags field of a BFD.  These also
      appear in the object_flags field of the bfd_target structure, where
@@ -6465,16 +6686,23 @@ struct bfd
   /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
 #define BFD_COMPRESS_GABI 0x20000
 
+  /* Convert ELF common symbol type to STT_COMMON or STT_OBJECT in this
+     BFD.  */
+#define BFD_CONVERT_ELF_COMMON 0x40000
+
+  /* Use the ELF STT_COMMON type in this BFD.  */
+#define BFD_USE_ELF_STT_COMMON 0x80000
+
   /* Flags bits to be saved in bfd_preserve_save.  */
 #define BFD_FLAGS_SAVED \
   (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN \
-   | BFD_COMPRESS_GABI)
+   | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
 
   /* Flags bits which are for BFD use only.  */
 #define BFD_FLAGS_FOR_BFD_USE_MASK \
   (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
    | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
-   | BFD_COMPRESS_GABI)
+   | BFD_COMPRESS_GABI | BFD_CONVERT_ELF_COMMON | BFD_USE_ELF_STT_COMMON)
 
   /* Is the file descriptor being cached?  That is, can it be closed as
      needed, and re-opened when accessed later?  */
@@ -6859,6 +7087,13 @@ bfd_boolean bfd_check_compression_header
 
 int bfd_get_compression_header_size (bfd *abfd, asection *sec);
 
+bfd_size_type bfd_convert_section_size
+   (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
+
+bfd_boolean bfd_convert_section_contents
+   (bfd *ibfd, asection *isec, bfd *obfd,
+    bfd_byte **ptr, bfd_size_type *ptr_size);
+
 /* Extracted from archive.c.  */
 symindex bfd_get_next_mapent
    (bfd *abfd, symindex previous, carsym **sym);
@@ -6904,6 +7139,7 @@ bfd_boolean generic_core_file_matches_ex
 
 enum bfd_flavour
 {
+  /* N.B. Update bfd_flavour_name if you change this.  */
   bfd_target_unknown_flavour,
   bfd_target_aout_flavour,
   bfd_target_coff_flavour,
@@ -7209,6 +7445,7 @@ typedef struct bfd_target
   NAME##_bfd_copy_link_hash_symbol_type, \
   NAME##_bfd_final_link, \
   NAME##_bfd_link_split_section, \
+  NAME##_bfd_link_check_relocs, \
   NAME##_bfd_gc_sections, \
   NAME##_bfd_lookup_section_flags, \
   NAME##_bfd_merge_sections, \
@@ -7250,6 +7487,9 @@ typedef struct bfd_target
   /* Should this section be split up into smaller pieces during linking.  */
   bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
 
+  /* Check the relocations in the bfd for validity.  */
+  bfd_boolean (* _bfd_link_check_relocs)(bfd *, struct bfd_link_info *);
+
   /* Remove sections that are not referenced from the output.  */
   bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
 
@@ -7319,9 +7559,11 @@ const bfd_target *bfd_get_target_info (c
     const char **def_target_arch);
 const char ** bfd_target_list (void);
 
-const bfd_target *bfd_search_for_target
-   (int (*search_func) (const bfd_target *, void *),
-    void *);
+const bfd_target *bfd_iterate_over_targets
+   (int (*func) (const bfd_target *, void *),
+    void *data);
+
+const char *bfd_flavour_name (enum bfd_flavour flavour);
 
 /* Extracted from format.c.  */
 bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
@@ -7360,6 +7602,12 @@ struct bfd_elf_version_tree * bfd_find_v
 bfd_boolean bfd_hide_sym_by_version
    (struct bfd_elf_version_tree *verdefs, const char *sym_name);
 
+bfd_boolean bfd_link_check_relocs
+   (bfd *abfd, struct bfd_link_info *info);
+
+bfd_boolean _bfd_generic_link_check_relocs
+   (bfd *abfd, struct bfd_link_info *info);
+
 /* Extracted from simple.c.  */
 bfd_byte *bfd_simple_get_relocated_section_contents
    (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
Index: src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd_stdint.h
diff -u src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd_stdint.h:1.5 src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd_stdint.h:1.6
--- src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd_stdint.h:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libbfd/arch/earm/bfd_stdint.h	Fri Oct 14 12:19:23 2016
@@ -2,7 +2,7 @@
 /* Generated from: NetBSD: mknative-gdb,v 1.6 2013/10/03 18:58:37 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
 
-/* generated for  arm--netbsdelf-eabi-gcc (NetBSD nb1 20160317) 5.3.0 */
+/* generated for  arm--netbsdelf-eabi-gcc (NetBSD nb1 20160606) 5.4.0 */
 
 #ifndef GCC_GENERATED_STDINT_H
 #define GCC_GENERATED_STDINT_H 1
Index: src/external/gpl3/gdb/lib/libbfd/arch/earm/bfdver.h
diff -u src/external/gpl3/gdb/lib/libbfd/arch/earm/bfdver.h:1.5 src/external/gpl3/gdb/lib/libbfd/arch/earm/bfdver.h:1.6
--- src/external/gpl3/gdb/lib/libbfd/arch/earm/bfdver.h:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libbfd/arch/earm/bfdver.h	Fri Oct 14 12:19:23 2016
@@ -2,7 +2,7 @@
 /* Generated from: NetBSD: mknative-gdb,v 1.6 2013/10/03 18:58:37 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
 
-#define BFD_VERSION_DATE 20151205
-#define BFD_VERSION 225510000
-#define BFD_VERSION_STRING  "(GNU Binutils)" "2.25.51"
+#define BFD_VERSION_DATE 20161007
+#define BFD_VERSION 227510000
+#define BFD_VERSION_STRING  "(GNU Binutils)" "2.27.51"
 #define REPORT_BUGS_TO "<http://www.sourceware.org/bugzilla/>"
Index: src/external/gpl3/gdb/lib/libbfd/arch/earm/targmatch.h
diff -u src/external/gpl3/gdb/lib/libbfd/arch/earm/targmatch.h:1.5 src/external/gpl3/gdb/lib/libbfd/arch/earm/targmatch.h:1.6
--- src/external/gpl3/gdb/lib/libbfd/arch/earm/targmatch.h:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libbfd/arch/earm/targmatch.h	Fri Oct 14 12:19:23 2016
@@ -3,9 +3,19 @@
 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
 
 #ifdef BFD64
+#if !defined (SELECT_VECS) || defined (HAVE_aarch64_mach_o_vec)
+
+{ "aarch64-*-darwin*",
+&aarch64_mach_o_vec },
+#endif
+
+
+
+
+    
 #if !defined (SELECT_VECS) || defined (HAVE_aarch64_elf64_le_vec)
 
-{ "aarch64-*-elf",
+{ "aarch64-*-elf", NULL },{ "aarch64-*-rtems*",
 &aarch64_elf64_le_vec },
 #endif
 
@@ -30,6 +40,15 @@
 
 
     
+#if !defined (SELECT_VECS) || defined (HAVE_aarch64_elf64_le_cloudabi_vec)
+
+{ "aarch64-*-cloudabi*",
+&aarch64_elf64_le_cloudabi_vec },
+#endif
+
+
+
+    
 #if !defined (SELECT_VECS) || defined (HAVE_aarch64_elf64_le_vec)
 
 { "aarch64-*-linux*",
@@ -48,19 +67,19 @@
 
 
     
-#if !defined (SELECT_VECS) || defined (HAVE_bfd_elf64_littleaarch64_vec)
+#if !defined (SELECT_VECS) || defined (HAVE_aarch64_elf64_le_vec)
 
 { "aarch64-*-netbsd*",
-&bfd_elf64_littleaarch64_vec },
+&aarch64_elf64_le_vec },
 #endif
 
 
 
     
-#if !defined (SELECT_VECS) || defined (HAVE_bfd_elf64_bigaarch64_vec)
+#if !defined (SELECT_VECS) || defined (HAVE_aarch64_elf64_be_vec)
 
 { "aarch64_be-*-netbsd*",
-&bfd_elf64_bigaarch64_vec },
+&aarch64_elf64_be_vec },
 #endif
 
 
@@ -177,21 +196,39 @@
 
 #if !defined (SELECT_VECS) || defined (HAVE_am33_elf32_linux_vec)
 
-{ "am34-*-linux*", NULL },{ "am33_2.0-*-linux*",
+{ "am33_2.0-*-linux*",
 &am33_elf32_linux_vec },
 #endif
 
     
 
+#if !defined (SELECT_VECS) || defined (HAVE_arc_elf32_be_vec)
+
+{ "arc*eb-*-elf*", NULL },{ "arc*eb-*-linux*",
+&arc_elf32_be_vec },
+#endif
+
+
+    
+
 #if !defined (SELECT_VECS) || defined (HAVE_arc_elf32_le_vec)
 
-{ "arc-*-elf*",
+{ "arc*-*-elf*", NULL },{ "arc*-*-linux*",
 &arc_elf32_le_vec },
 #endif
 
 
     
 
+#if !defined (SELECT_VECS) || defined (HAVE_arm_mach_o_vec)
+
+{ "arm-*-darwin*",
+&arm_mach_o_vec },
+#endif
+
+
+
+    
 #if !defined (SELECT_VECS) || defined (HAVE_arm_elf32_nacl_le_vec)
 
 { "arm-*-nacl*",
@@ -309,6 +346,14 @@
     
 #if !defined (SELECT_VECS) || defined (HAVE_arm_elf32_le_vec)
 
+{ "arm-*-phoenix*",
+&arm_elf32_le_vec },
+#endif
+
+
+    
+#if !defined (SELECT_VECS) || defined (HAVE_arm_elf32_le_vec)
+
 { "arm-*-rtems*",
 &arm_elf32_le_vec },
 #endif
@@ -664,6 +709,7 @@
 
 
     
+
 #if !defined (SELECT_VECS) || defined (HAVE_i386_coff_vec)
 
 { "i[3-7]86-*-sco3.2v5*coff",
@@ -924,7 +970,7 @@
     
 #if !defined (SELECT_VECS) || defined (HAVE_x86_64_elf64_vec)
 
-{ "x86_64-*-elf*",
+{ "x86_64-*-elf*", NULL },{ "x86_64-*-rtems*",
 &x86_64_elf64_vec },
 #endif
 
@@ -1638,7 +1684,7 @@
     
 #if !defined (SELECT_VECS) || defined (HAVE_mips_elf32_le_vec)
 
-{ "mips*el-*-elf*", NULL },{ "mips*el-*-vxworks*", NULL },{ "mips*-*-chorus*",
+{ "mips*el-*-elf*", NULL },{ "mips*-*-chorus*",
 &mips_elf32_le_vec },
 #endif
 
@@ -1646,15 +1692,7 @@
     
 #if !defined (SELECT_VECS) || defined (HAVE_mips_elf32_be_vec)
 
-{ "mips*-*-elf*", NULL },{ "mips*-*-rtems*", NULL },{ "mips*-*-vxworks", NULL },{ "mips*-*-windiss",
-&mips_elf32_be_vec },
-#endif
-
-
-    
-#if !defined (SELECT_VECS) || defined (HAVE_mips_elf32_be_vec)
-
-{ "mips*-*-none",
+{ "mips*-*-elf*", NULL },{ "mips*-*-rtems*", NULL },{ "mips*-*-windiss", NULL },{ "mips*-*-none",
 &mips_elf32_be_vec },
 #endif
 
@@ -2256,6 +2294,7 @@
 
 
 
+
     
 #endif /* BFD64 */
 
@@ -2266,6 +2305,7 @@
 #endif
 
 
+
     
 #if !defined (SELECT_VECS) || defined (HAVE_sh_elf32_linux_vec)
 
@@ -2274,6 +2314,7 @@
 #endif
 
 
+
     
 
 #if !defined (SELECT_VECS) || defined (HAVE_sh_elf32_vec)
@@ -2777,7 +2818,7 @@
 #endif
 
     
- 
+
 #if !defined (SELECT_VECS) || defined (HAVE_we32k_coff_vec)
 
 { "we32k-*-*",
@@ -2793,7 +2834,7 @@
 #endif
 
     
-    
+
 #if !defined (SELECT_VECS) || defined (HAVE_xgate_elf32_vec)
 
 { "xgate-*-*",
@@ -2802,7 +2843,7 @@
 
 
     
- 	
+
 #if !defined (SELECT_VECS) || defined (HAVE_xstormy16_elf32_vec)
 
 { "xstormy16-*-elf",

Index: src/external/gpl3/gdb/lib/libbfd/arch/earm/config.h
diff -u src/external/gpl3/gdb/lib/libbfd/arch/earm/config.h:1.6 src/external/gpl3/gdb/lib/libbfd/arch/earm/config.h:1.7
--- src/external/gpl3/gdb/lib/libbfd/arch/earm/config.h:1.6	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libbfd/arch/earm/config.h	Fri Oct 14 12:19:23 2016
@@ -298,7 +298,7 @@
 #define PACKAGE_NAME "bfd"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "bfd 2.25.51"
+#define PACKAGE_STRING "bfd 2.27.51"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "bfd"
@@ -307,7 +307,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.25.51"
+#define PACKAGE_VERSION "2.27.51"
 
 /* The size of `char', as computed by sizeof. */
 /* #undef SIZEOF_CHAR */
@@ -342,6 +342,9 @@
 /* Name of host specific header file to include in trad-core.c. */
 /* #undef TRAD_HEADER */
 
+/* Define if we should use 64-bit archives. */
+/* #undef USE_64_BIT_ARCHIVE */
+
 /* Use b modifier when opening binary files? */
 /* #undef USE_BINARY_FOPEN */
 
@@ -354,9 +357,6 @@
 /* Define if we should default to creating read-only plt entries */
 #define USE_SECUREPLT 1
 
-/* Define if we may generate symbols with ELF's STT_COMMON type */
-/* #undef USE_STT_COMMON */
-
 /* Enable extensions on AIX 3, Interix.  */
 #ifndef _ALL_SOURCE
 # define _ALL_SOURCE 1
@@ -380,7 +380,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.25.51"
+#define VERSION "2.27.51"
 
 /* Number of bits in a file offset, on hosts where this is settable. */
 /* #undef _FILE_OFFSET_BITS */

Index: src/external/gpl3/gdb/lib/libdecnumber/arch/earm/gstdint.h
diff -u src/external/gpl3/gdb/lib/libdecnumber/arch/earm/gstdint.h:1.5 src/external/gpl3/gdb/lib/libdecnumber/arch/earm/gstdint.h:1.6
--- src/external/gpl3/gdb/lib/libdecnumber/arch/earm/gstdint.h:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libdecnumber/arch/earm/gstdint.h	Fri Oct 14 12:19:23 2016
@@ -2,7 +2,7 @@
 /* Generated from: NetBSD: mknative-gdb,v 1.6 2013/10/03 18:58:37 christos Exp  */
 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
 
-/* generated for  arm--netbsdelf-eabi-gcc (NetBSD nb1 20160317) 5.3.0 */
+/* generated for  arm--netbsdelf-eabi-gcc (NetBSD nb1 20160606) 5.4.0 */
 
 #ifndef GCC_GENERATED_STDINT_H
 #define GCC_GENERATED_STDINT_H 1

Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/config.h
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/config.h:1.6 src/external/gpl3/gdb/lib/libgdb/arch/earm/config.h:1.7
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/config.h:1.6	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/config.h	Fri Oct 14 12:19:23 2016
@@ -70,6 +70,9 @@
 /* Define to the default OS ABI for this configuration. */
 /* #undef GDB_OSABI_DEFAULT */
 
+/* Define if self-testing features should be enabled */
+/* #undef GDB_SELF_TEST */
+
 /* Define to 1 if you have `alloca', as a function or macro. */
 #define HAVE_ALLOCA 1
 
@@ -455,6 +458,12 @@
 /* Define to 1 if your system has struct lwp. */
 #define HAVE_STRUCT_LWP 1
 
+/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_tdname'. */
+/* #undef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME */
+
+/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_syscall_code'. */
+/* #undef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE */
+
 /* Define to 1 if your system has struct reg in <machine/reg.h>. */
 #define HAVE_STRUCT_REG 1
 
@@ -554,9 +563,6 @@
 /* Define if using Solaris thread debugging. */
 /* #undef HAVE_THREAD_DB_LIB */
 
-/* Define if you support the tkill syscall. */
-/* #undef HAVE_TKILL_SYSCALL */
-
 /* Define to 1 if you have the `ttrace' function. */
 /* #undef HAVE_TTRACE */
 
@@ -658,6 +664,9 @@
    assorted other type changes. */
 /* #undef PROC_SERVICE_IS_OLD */
 
+/* Define to the type of arg 1 for ptrace. */
+#define PTRACE_TYPE_ARG1 int
+
 /* Define to the type of arg 3 for ptrace. */
 #define PTRACE_TYPE_ARG3 void *
 
@@ -679,9 +688,6 @@
 /* Bug reporting address */
 #define REPORT_BUGS_TO "<http://www.gnu.org/software/gdb/bugs/>"
 
-/* Define as the return type of signal handlers (`int' or `void'). */
-#define RETSIGTYPE void
-
 /* Define to 1 if the "%Lg" format works to scan long doubles. */
 /* #undef SCANF_HAS_LONG_DOUBLE */
 
@@ -766,6 +772,9 @@
    when building for Cygwin. */
 /* #undef USE_WIN32API */
 
+/* Define if the PPC simulator is being linked in. */
+/* #undef WITH_PPC_SIM */
+
 /* Define if --with-python provides a path, either directly or via
    python-config.py --exec-prefix. */
 /* #undef WITH_PYTHON_PATH */
Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/defs.mk
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/defs.mk:1.6 src/external/gpl3/gdb/lib/libgdb/arch/earm/defs.mk:1.7
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/defs.mk:1.6	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/defs.mk	Fri Oct 14 12:19:23 2016
@@ -2,6 +2,6 @@
 # Generated from: NetBSD: mknative-gdb,v 1.6 2013/10/03 18:58:37 christos Exp 
 # Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp 
 #
-G_INTERNAL_CFLAGS=    -I. -I${GNUHOSTDIST}/gdb -I${GNUHOSTDIST}/gdb/common -I${GNUHOSTDIST}/gdb/config  -DLOCALEDIR="\"/usr/share/locale\"" -DHAVE_CONFIG_H -I${GNUHOSTDIST}/gdb/../include/opcode -I${GNUHOSTDIST}/gdb/../opcodes/.. -I${GNUHOSTDIST}/gdb/../readline/.. -I${GNUHOSTDIST}/gdb/../zlib  -I../bfd -I${GNUHOSTDIST}/gdb/../bfd -I${GNUHOSTDIST}/gdb/../include -I../libdecnumber -I${GNUHOSTDIST}/gdb/../libdecnumber  -I./../intl -I${GNUHOSTDIST}/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wpointer-sign -Wmissing-prototypes -Wdeclaration-after-statement -Wmissing-parameter-type -Wold-style-declaration -Wold-style-definition -Wformat-nonliteral 
-G_LIBGDB_OBS=arm-tdep.o armnbsd-tdep.o solib-svr4.o ser-base.o ser-unix.o ser-pipe.o ser-tcp.o fork-child.o inf-ptrace.o corelow.o nbsd-nat.o armnbsd-nat.o  bsd-kvm.o nbsd-thread.o  remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o  remote-notif.o ctf.o tracefile.o tracefile-tfile.o  cli-dump.o  cli-decode.o cli-script.o cli-cmds.o cli-setshow.o  cli-logging.o  cli-interp.o cli-utils.o mi-out.o mi-console.o  mi-cmds.o mi-cmd-catch.o mi-cmd-env.o  mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o  mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o  mi-cmd-info.o mi-interp.o  mi-main.o mi-parse.o mi-getopt.o tui-command.o  tui-data.o  tui-disasm.o  tui-file.o  tui-hooks.o  tui-interp.o  tui-io.o  tui-layout.o  tui-out.o  tui-regs.o  tui-source.o  tui-stack.o  tui-win.o  tui-windata.o  tui-wingeneral.o  tui-winsource.o  tui.o python.o guile.o elfread.o stap-probe.o dtrace-probe.o posix-hdep.o posix-strerror.o c-exp.o  cp-name-parser.o  ada-exp.o  jv-exp.o  d-exp.
 o f-exp.o go-exp.o m2-exp.o p-exp.o  version.o  annotate.o  addrmap.o  auto-load.o auxv.o  agent.o  bfd-target.o  blockframe.o breakpoint.o break-catch-sig.o break-catch-throw.o  break-catch-syscall.o  findvar.o regcache.o cleanups.o  charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o  source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o  block.o symtab.o psymtab.o symfile.o symfile-debug.o symmisc.o  linespec.o dictionary.o  infcall.o  infcmd.o infrun.o  expprint.o environ.o stack.o thread.o  exceptions.o  extension.o  filesystem.o  filestuff.o  inf-child.o  interps.o  minidebug.o  main.o  macrotab.o macrocmd.o macroexp.o macroscope.o  mi-common.o  event-loop.o event-top.o inf-loop.o completer.o  gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o  osabi.o copying.o  memattr.o mem-break.o target.o target-dcache.o parse.o language.o  build-id.o buildsym.o  findcmd.o  std-regs.o  signals.o  exec.o reverse.o  bcache.o objfiles.o observer.o minsyms.o ma
 int.o demangle.o  dbxread.o coffread.o coff-pe-read.o  dwarf2read.o mipsread.o stabsread.o corefile.o  dwarf2expr.o dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o  ada-lang.o c-lang.o d-lang.o f-lang.o objc-lang.o  ada-tasks.o ada-varobj.o c-varobj.o  ui-out.o cli-out.o  varobj.o vec.o  go-lang.o go-valprint.o go-typeprint.o  jv-lang.o jv-valprint.o jv-typeprint.o jv-varobj.o  m2-lang.o opencl-lang.o p-lang.o p-typeprint.o p-valprint.o  sentinel-frame.o  complaints.o typeprint.o  ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o  ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o  m2-valprint.o  serial.o mdebugread.o top.o utils.o  ui-file.o  user-regs.o  frame.o frame-unwind.o doublest.o  frame-base.o  inline-frame.o  gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o  cp-namespace.o  reggroups.o  trad-frame.o  tramp-frame.o  solib.o solib-target.o  prologue-value.o memory-map.o memrange.o  xml-support.o xml-syscall.o xml-utils.o  target-descriptions.o ta
 rget-memory.o xml-tdesc.o xml-builtin.o  inferior.o osdata.o gdb_usleep.o record.o record-full.o gcore.o  gdb_vecs.o jit.o progspace.o skip.o probe.o  common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o  format.o registry.o btrace.o record-btrace.o waitstatus.o  print-utils.o rsp-low.o errors.o common-debug.o debug.o  common-exceptions.o btrace-common.o fileio.o  compile.o compile-c-symbols.o compile-c-types.o  compile-object-load.o compile-object-run.o  compile-loc2c.o compile-c-support.o inflow.o    init.o
+G_INTERNAL_CFLAGS=-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS    -I. -I${GNUHOSTDIST}/gdb -I${GNUHOSTDIST}/gdb/common -I${GNUHOSTDIST}/gdb/config  -DLOCALEDIR="\"/usr/share/locale\"" -DHAVE_CONFIG_H -I${GNUHOSTDIST}/gdb/../include/opcode -I${GNUHOSTDIST}/gdb/../opcodes/.. -I${GNUHOSTDIST}/gdb/../readline/.. -I${GNUHOSTDIST}/gdb/../zlib  -I../bfd -I${GNUHOSTDIST}/gdb/../bfd -I${GNUHOSTDIST}/gdb/../include -I../libdecnumber -I${GNUHOSTDIST}/gdb/../libdecnumber  -I./../intl -I${GNUHOSTDIST}/gdb/gnulib/import -Ibuild-gnulib/import   -DTUI=1  -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wunused-but-set-parameter -Wunused-but-set-variable -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral 
+G_LIBGDB_OBS=arm.o arm-get-next-pcs.o arm-tdep.o armnbsd-tdep.o solib-svr4.o ser-base.o ser-unix.o ser-pipe.o ser-tcp.o fork-child.o inf-ptrace.o corelow.o nbsd-nat.o armnbsd-nat.o  bsd-kvm.o nbsd-thread.o  remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o  remote-notif.o ctf.o tracefile.o tracefile-tfile.o  cli-dump.o  cli-decode.o cli-script.o cli-cmds.o cli-setshow.o  cli-logging.o  cli-interp.o cli-utils.o mi-out.o mi-console.o  mi-cmds.o mi-cmd-catch.o mi-cmd-env.o  mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o  mi-cmd-file.o mi-cmd-disas.o mi-symbol-cmds.o mi-cmd-target.o  mi-cmd-info.o mi-interp.o  mi-main.o mi-parse.o mi-getopt.o tui-command.o  tui-data.o  tui-disasm.o  tui-file.o  tui-hooks.o  tui-interp.o  tui-io.o  tui-layout.o  tui-out.o  tui-regs.o  tui-source.o  tui-stack.o  tui-win.o  tui-windata.o  tui-wingeneral.o  tui-winsource.o  tui.o python.o guile.o elfread.o stap-probe.o dtrace-probe.o posix-hdep.o posix-strerror.o c-exp.o  cp-name-parser.o  ad
 a-exp.o  jv-exp.o  d-exp.o f-exp.o go-exp.o m2-exp.o p-exp.o rust-exp.o  version.o  annotate.o  addrmap.o  auto-load.o auxv.o  agent.o  bfd-target.o  blockframe.o breakpoint.o break-catch-sig.o break-catch-throw.o  break-catch-syscall.o  findvar.o regcache.o cleanups.o  charset.o continuations.o corelow.o disasm.o dummy-frame.o dfp.o  source.o value.o eval.o valops.o valarith.o valprint.o printcmd.o  block.o symtab.o psymtab.o symfile.o symfile-debug.o symmisc.o  linespec.o dictionary.o namespace.o  location.o infcall.o  infcmd.o infrun.o  expprint.o environ.o stack.o tid-parse.o thread.o thread-fsm.o  exceptions.o  extension.o  filesystem.o  filestuff.o  inf-child.o  interps.o  minidebug.o  main.o  macrotab.o macrocmd.o macroexp.o macroscope.o  mi-common.o  event-loop.o event-top.o inf-loop.o completer.o  gdbarch.o arch-utils.o gdbtypes.o gdb_bfd.o gdb_obstack.o  osabi.o copying.o  memattr.o mem-break.o target.o target-dcache.o parse.o language.o  build-id.o buildsym.o  findcmd.o  
 std-regs.o  signals-state-save-restore.o  signals.o  exec.o reverse.o  bcache.o objfiles.o observer.o minsyms.o maint.o demangle.o  dbxread.o coffread.o coff-pe-read.o  dwarf2read.o mipsread.o stabsread.o corefile.o  dwarf2expr.o dwarf2loc.o dwarf2-frame.o dwarf2-frame-tailcall.o  ada-lang.o c-lang.o d-lang.o f-lang.o objc-lang.o  ada-tasks.o ada-varobj.o c-varobj.o  ui-out.o cli-out.o  varobj.o vec.o  go-lang.o go-valprint.o go-typeprint.o  jv-lang.o jv-valprint.o jv-typeprint.o jv-varobj.o  m2-lang.o opencl-lang.o p-lang.o p-typeprint.o p-valprint.o  selftest.o sentinel-frame.o  complaints.o typeprint.o  ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o  ada-valprint.o c-valprint.o cp-valprint.o d-valprint.o f-valprint.o  m2-valprint.o  ser-event.o serial.o mdebugread.o top.o utils.o  ui-file.o  user-regs.o  frame.o frame-unwind.o doublest.o  frame-base.o  inline-frame.o  gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o  cp-namespace.o d-namespace.o  reggroups.o  rust-lang
 .o  trad-frame.o  tramp-frame.o  solib.o solib-target.o  prologue-value.o memory-map.o memrange.o  xml-support.o xml-syscall.o xml-utils.o  target-descriptions.o target-memory.o xml-tdesc.o xml-builtin.o  inferior.o osdata.o gdb_usleep.o record.o record-full.o gcore.o  gdb_vecs.o jit.o progspace.o skip.o probe.o  common-utils.o buffer.o ptid.o gdb-dlfcn.o common-agent.o  format.o registry.o btrace.o record-btrace.o waitstatus.o  print-utils.o rsp-low.o errors.o common-debug.o debug.o  common-exceptions.o btrace-common.o fileio.o  common-regcache.o  compile.o compile-c-symbols.o compile-c-types.o  compile-object-load.o compile-object-run.o  compile-loc2c.o compile-c-support.o inflow.o    init.o
 G_SIM_OBS=
Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/init.c
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/init.c:1.6 src/external/gpl3/gdb/lib/libgdb/arch/earm/init.c:1.7
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/init.c:1.6	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/init.c	Fri Oct 14 12:19:23 2016
@@ -28,6 +28,8 @@ extern initialize_file_ftype _initialize
 extern initialize_file_ftype _initialize_elfread;
 extern initialize_file_ftype _initialize_stap_probe;
 extern initialize_file_ftype _initialize_dtrace_probe;
+extern initialize_file_ftype _initialize_ada_exp;
+extern initialize_file_ftype _initialize_rust_exp;
 extern initialize_file_ftype _initialize_annotate;
 extern initialize_file_ftype _initialize_addrmap;
 extern initialize_file_ftype _initialize_auto_load;
@@ -122,6 +124,7 @@ extern initialize_file_ftype _initialize
 extern initialize_file_ftype _initialize_cp_support;
 extern initialize_file_ftype _initialize_cp_namespace;
 extern initialize_file_ftype _initialize_reggroup;
+extern initialize_file_ftype _initialize_rust_language;
 extern initialize_file_ftype _initialize_solib;
 extern initialize_file_ftype _initialize_solib_target;
 extern initialize_file_ftype _initialize_xml_support;
@@ -181,6 +184,8 @@ initialize_all_files (void)
   _initialize_elfread ();
   _initialize_stap_probe ();
   _initialize_dtrace_probe ();
+  _initialize_ada_exp ();
+  _initialize_rust_exp ();
   _initialize_annotate ();
   _initialize_addrmap ();
   _initialize_auto_load ();
@@ -275,6 +280,7 @@ initialize_all_files (void)
   _initialize_cp_support ();
   _initialize_cp_namespace ();
   _initialize_reggroup ();
+  _initialize_rust_language ();
   _initialize_solib ();
   _initialize_solib_target ();
   _initialize_xml_support ();

Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/jit-reader.h
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/jit-reader.h:1.3 src/external/gpl3/gdb/lib/libgdb/arch/earm/jit-reader.h:1.4
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/jit-reader.h:1.3	Mon Aug 17 08:48:17 2015
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/jit-reader.h	Fri Oct 14 12:19:23 2016
@@ -4,7 +4,7 @@
 
 /* JIT declarations for GDB, the GNU Debugger.
 
-   Copyright (C) 2011-2015 Free Software Foundation, Inc.
+   Copyright (C) 2011-2016 Free Software Foundation, Inc.
 
    This file is part of GDB.
 

Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.h
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.h:1.4 src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.h:1.5
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.h:1.4	Mon Aug 17 08:48:17 2015
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.h	Fri Oct 14 12:19:23 2016
@@ -4,7 +4,7 @@
 
 /* GDB Notifications to Observers.
 
-   Copyright (C) 2004-2015 Free Software Foundation, Inc.
+   Copyright (C) 2004-2016 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -126,11 +126,11 @@ extern void observer_notify_inferior_cre
 
 /* record_changed notifications.  */
 
-typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started);
+typedef void (observer_record_changed_ftype) (struct inferior *inferior, int started, const char *method, const char *format);
 
 extern struct observer *observer_attach_record_changed (observer_record_changed_ftype *f);
 extern void observer_detach_record_changed (struct observer *observer);
-extern void observer_notify_record_changed (struct inferior *inferior, int started);
+extern void observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format);
 
 /* solib_loaded notifications.  */
 
@@ -372,4 +372,12 @@ extern struct observer *observer_attach_
 extern void observer_detach_test_notification (struct observer *observer);
 extern void observer_notify_test_notification (int somearg);
 
+/* user_selected_context_changed notifications.  */
+
+typedef void (observer_user_selected_context_changed_ftype) (user_selected_what selection);
+
+extern struct observer *observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f);
+extern void observer_detach_user_selected_context_changed (struct observer *observer);
+extern void observer_notify_user_selected_context_changed (user_selected_what selection);
+
 #endif /* OBSERVER_H */
Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.inc
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.inc:1.4 src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.inc:1.5
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.inc:1.4	Mon Aug 17 08:48:17 2015
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/observer.inc	Fri Oct 14 12:19:23 2016
@@ -4,7 +4,7 @@
 
 /* GDB Notifications to Observers.
 
-   Copyright (C) 2004-2015 Free Software Foundation, Inc.
+   Copyright (C) 2004-2016 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -36,7 +36,7 @@ static void
 observer_normal_stop_notification_stub (const void *data, const void *args_data)
 {
   observer_normal_stop_ftype *notify = (observer_normal_stop_ftype *) data;
-  const struct normal_stop_args *args = args_data;
+  const struct normal_stop_args *args = (const struct normal_stop_args *) args_data;
   notify (args->bs, args->print_frame);
 }
 
@@ -75,7 +75,7 @@ static void
 observer_signal_received_notification_stub (const void *data, const void *args_data)
 {
   observer_signal_received_ftype *notify = (observer_signal_received_ftype *) data;
-  const struct signal_received_args *args = args_data;
+  const struct signal_received_args *args = (const struct signal_received_args *) args_data;
   notify (args->siggnal);
 }
 
@@ -148,7 +148,7 @@ static void
 observer_signal_exited_notification_stub (const void *data, const void *args_data)
 {
   observer_signal_exited_ftype *notify = (observer_signal_exited_ftype *) data;
-  const struct signal_exited_args *args = args_data;
+  const struct signal_exited_args *args = (const struct signal_exited_args *) args_data;
   notify (args->siggnal);
 }
 
@@ -187,7 +187,7 @@ static void
 observer_exited_notification_stub (const void *data, const void *args_data)
 {
   observer_exited_ftype *notify = (observer_exited_ftype *) data;
-  const struct exited_args *args = args_data;
+  const struct exited_args *args = (const struct exited_args *) args_data;
   notify (args->exitstatus);
 }
 
@@ -328,7 +328,7 @@ static void
 observer_target_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_target_changed_ftype *notify = (observer_target_changed_ftype *) data;
-  const struct target_changed_args *args = args_data;
+  const struct target_changed_args *args = (const struct target_changed_args *) args_data;
   notify (args->target);
 }
 
@@ -401,7 +401,7 @@ static void
 observer_inferior_created_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_created_ftype *notify = (observer_inferior_created_ftype *) data;
-  const struct inferior_created_args *args = args_data;
+  const struct inferior_created_args *args = (const struct inferior_created_args *) args_data;
   notify (args->objfile, args->from_tty);
 }
 
@@ -434,14 +434,14 @@ observer_notify_inferior_created (struct
 
 static struct observer_list *record_changed_subject = NULL;
 
-struct record_changed_args { struct inferior *inferior; int started; };
+struct record_changed_args { struct inferior *inferior; int started; const char *method; const char *format; };
 
 static void
 observer_record_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_record_changed_ftype *notify = (observer_record_changed_ftype *) data;
-  const struct record_changed_args *args = args_data;
-  notify (args->inferior, args->started);
+  const struct record_changed_args *args = (const struct record_changed_args *) args_data;
+  notify (args->inferior, args->started, args->method, args->format);
 }
 
 struct observer *
@@ -459,10 +459,10 @@ observer_detach_record_changed (struct o
 }
 
 void
-observer_notify_record_changed (struct inferior *inferior, int started)
+observer_notify_record_changed (struct inferior *inferior, int started, const char *method, const char *format)
 {
   struct record_changed_args args;
-  args.inferior = inferior, args.started = started;
+  args.inferior = inferior, args.started = started, args.method = method, args.format = format;
 
   if (observer_debug)
     fprintf_unfiltered (gdb_stdlog, "observer_notify_record_changed() called\n");
@@ -479,7 +479,7 @@ static void
 observer_solib_loaded_notification_stub (const void *data, const void *args_data)
 {
   observer_solib_loaded_ftype *notify = (observer_solib_loaded_ftype *) data;
-  const struct solib_loaded_args *args = args_data;
+  const struct solib_loaded_args *args = (const struct solib_loaded_args *) args_data;
   notify (args->solib);
 }
 
@@ -518,7 +518,7 @@ static void
 observer_solib_unloaded_notification_stub (const void *data, const void *args_data)
 {
   observer_solib_unloaded_ftype *notify = (observer_solib_unloaded_ftype *) data;
-  const struct solib_unloaded_args *args = args_data;
+  const struct solib_unloaded_args *args = (const struct solib_unloaded_args *) args_data;
   notify (args->solib);
 }
 
@@ -557,7 +557,7 @@ static void
 observer_new_objfile_notification_stub (const void *data, const void *args_data)
 {
   observer_new_objfile_ftype *notify = (observer_new_objfile_ftype *) data;
-  const struct new_objfile_args *args = args_data;
+  const struct new_objfile_args *args = (const struct new_objfile_args *) args_data;
   notify (args->objfile);
 }
 
@@ -596,7 +596,7 @@ static void
 observer_free_objfile_notification_stub (const void *data, const void *args_data)
 {
   observer_free_objfile_ftype *notify = (observer_free_objfile_ftype *) data;
-  const struct free_objfile_args *args = args_data;
+  const struct free_objfile_args *args = (const struct free_objfile_args *) args_data;
   notify (args->objfile);
 }
 
@@ -635,7 +635,7 @@ static void
 observer_new_thread_notification_stub (const void *data, const void *args_data)
 {
   observer_new_thread_ftype *notify = (observer_new_thread_ftype *) data;
-  const struct new_thread_args *args = args_data;
+  const struct new_thread_args *args = (const struct new_thread_args *) args_data;
   notify (args->t);
 }
 
@@ -674,7 +674,7 @@ static void
 observer_thread_exit_notification_stub (const void *data, const void *args_data)
 {
   observer_thread_exit_ftype *notify = (observer_thread_exit_ftype *) data;
-  const struct thread_exit_args *args = args_data;
+  const struct thread_exit_args *args = (const struct thread_exit_args *) args_data;
   notify (args->t, args->silent);
 }
 
@@ -713,7 +713,7 @@ static void
 observer_thread_stop_requested_notification_stub (const void *data, const void *args_data)
 {
   observer_thread_stop_requested_ftype *notify = (observer_thread_stop_requested_ftype *) data;
-  const struct thread_stop_requested_args *args = args_data;
+  const struct thread_stop_requested_args *args = (const struct thread_stop_requested_args *) args_data;
   notify (args->ptid);
 }
 
@@ -752,7 +752,7 @@ static void
 observer_target_resumed_notification_stub (const void *data, const void *args_data)
 {
   observer_target_resumed_ftype *notify = (observer_target_resumed_ftype *) data;
-  const struct target_resumed_args *args = args_data;
+  const struct target_resumed_args *args = (const struct target_resumed_args *) args_data;
   notify (args->ptid);
 }
 
@@ -825,7 +825,7 @@ static void
 observer_breakpoint_created_notification_stub (const void *data, const void *args_data)
 {
   observer_breakpoint_created_ftype *notify = (observer_breakpoint_created_ftype *) data;
-  const struct breakpoint_created_args *args = args_data;
+  const struct breakpoint_created_args *args = (const struct breakpoint_created_args *) args_data;
   notify (args->b);
 }
 
@@ -864,7 +864,7 @@ static void
 observer_breakpoint_deleted_notification_stub (const void *data, const void *args_data)
 {
   observer_breakpoint_deleted_ftype *notify = (observer_breakpoint_deleted_ftype *) data;
-  const struct breakpoint_deleted_args *args = args_data;
+  const struct breakpoint_deleted_args *args = (const struct breakpoint_deleted_args *) args_data;
   notify (args->b);
 }
 
@@ -903,7 +903,7 @@ static void
 observer_breakpoint_modified_notification_stub (const void *data, const void *args_data)
 {
   observer_breakpoint_modified_ftype *notify = (observer_breakpoint_modified_ftype *) data;
-  const struct breakpoint_modified_args *args = args_data;
+  const struct breakpoint_modified_args *args = (const struct breakpoint_modified_args *) args_data;
   notify (args->b);
 }
 
@@ -942,7 +942,7 @@ static void
 observer_traceframe_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_traceframe_changed_ftype *notify = (observer_traceframe_changed_ftype *) data;
-  const struct traceframe_changed_args *args = args_data;
+  const struct traceframe_changed_args *args = (const struct traceframe_changed_args *) args_data;
   notify (args->tfnum, args->tpnum);
 }
 
@@ -981,7 +981,7 @@ static void
 observer_architecture_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_architecture_changed_ftype *notify = (observer_architecture_changed_ftype *) data;
-  const struct architecture_changed_args *args = args_data;
+  const struct architecture_changed_args *args = (const struct architecture_changed_args *) args_data;
   notify (args->newarch);
 }
 
@@ -1020,7 +1020,7 @@ static void
 observer_thread_ptid_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_thread_ptid_changed_ftype *notify = (observer_thread_ptid_changed_ftype *) data;
-  const struct thread_ptid_changed_args *args = args_data;
+  const struct thread_ptid_changed_args *args = (const struct thread_ptid_changed_args *) args_data;
   notify (args->old_ptid, args->new_ptid);
 }
 
@@ -1059,7 +1059,7 @@ static void
 observer_inferior_added_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_added_ftype *notify = (observer_inferior_added_ftype *) data;
-  const struct inferior_added_args *args = args_data;
+  const struct inferior_added_args *args = (const struct inferior_added_args *) args_data;
   notify (args->inf);
 }
 
@@ -1098,7 +1098,7 @@ static void
 observer_inferior_appeared_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_appeared_ftype *notify = (observer_inferior_appeared_ftype *) data;
-  const struct inferior_appeared_args *args = args_data;
+  const struct inferior_appeared_args *args = (const struct inferior_appeared_args *) args_data;
   notify (args->inf);
 }
 
@@ -1137,7 +1137,7 @@ static void
 observer_inferior_exit_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_exit_ftype *notify = (observer_inferior_exit_ftype *) data;
-  const struct inferior_exit_args *args = args_data;
+  const struct inferior_exit_args *args = (const struct inferior_exit_args *) args_data;
   notify (args->inf);
 }
 
@@ -1176,7 +1176,7 @@ static void
 observer_inferior_removed_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_removed_ftype *notify = (observer_inferior_removed_ftype *) data;
-  const struct inferior_removed_args *args = args_data;
+  const struct inferior_removed_args *args = (const struct inferior_removed_args *) args_data;
   notify (args->inf);
 }
 
@@ -1215,7 +1215,7 @@ static void
 observer_memory_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_memory_changed_ftype *notify = (observer_memory_changed_ftype *) data;
-  const struct memory_changed_args *args = args_data;
+  const struct memory_changed_args *args = (const struct memory_changed_args *) args_data;
   notify (args->inferior, args->addr, args->len, args->data);
 }
 
@@ -1254,7 +1254,7 @@ static void
 observer_before_prompt_notification_stub (const void *data, const void *args_data)
 {
   observer_before_prompt_ftype *notify = (observer_before_prompt_ftype *) data;
-  const struct before_prompt_args *args = args_data;
+  const struct before_prompt_args *args = (const struct before_prompt_args *) args_data;
   notify (args->current_prompt);
 }
 
@@ -1327,7 +1327,7 @@ static void
 observer_command_param_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_command_param_changed_ftype *notify = (observer_command_param_changed_ftype *) data;
-  const struct command_param_changed_args *args = args_data;
+  const struct command_param_changed_args *args = (const struct command_param_changed_args *) args_data;
   notify (args->param, args->value);
 }
 
@@ -1366,7 +1366,7 @@ static void
 observer_tsv_created_notification_stub (const void *data, const void *args_data)
 {
   observer_tsv_created_ftype *notify = (observer_tsv_created_ftype *) data;
-  const struct tsv_created_args *args = args_data;
+  const struct tsv_created_args *args = (const struct tsv_created_args *) args_data;
   notify (args->tsv);
 }
 
@@ -1405,7 +1405,7 @@ static void
 observer_tsv_deleted_notification_stub (const void *data, const void *args_data)
 {
   observer_tsv_deleted_ftype *notify = (observer_tsv_deleted_ftype *) data;
-  const struct tsv_deleted_args *args = args_data;
+  const struct tsv_deleted_args *args = (const struct tsv_deleted_args *) args_data;
   notify (args->tsv);
 }
 
@@ -1444,7 +1444,7 @@ static void
 observer_tsv_modified_notification_stub (const void *data, const void *args_data)
 {
   observer_tsv_modified_ftype *notify = (observer_tsv_modified_ftype *) data;
-  const struct tsv_modified_args *args = args_data;
+  const struct tsv_modified_args *args = (const struct tsv_modified_args *) args_data;
   notify (args->tsv);
 }
 
@@ -1483,7 +1483,7 @@ static void
 observer_inferior_call_pre_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_call_pre_ftype *notify = (observer_inferior_call_pre_ftype *) data;
-  const struct inferior_call_pre_args *args = args_data;
+  const struct inferior_call_pre_args *args = (const struct inferior_call_pre_args *) args_data;
   notify (args->thread, args->address);
 }
 
@@ -1522,7 +1522,7 @@ static void
 observer_inferior_call_post_notification_stub (const void *data, const void *args_data)
 {
   observer_inferior_call_post_ftype *notify = (observer_inferior_call_post_ftype *) data;
-  const struct inferior_call_post_args *args = args_data;
+  const struct inferior_call_post_args *args = (const struct inferior_call_post_args *) args_data;
   notify (args->thread, args->address);
 }
 
@@ -1561,7 +1561,7 @@ static void
 observer_register_changed_notification_stub (const void *data, const void *args_data)
 {
   observer_register_changed_ftype *notify = (observer_register_changed_ftype *) data;
-  const struct register_changed_args *args = args_data;
+  const struct register_changed_args *args = (const struct register_changed_args *) args_data;
   notify (args->frame, args->regnum);
 }
 
@@ -1600,7 +1600,7 @@ static void
 observer_test_notification_notification_stub (const void *data, const void *args_data)
 {
   observer_test_notification_ftype *notify = (observer_test_notification_ftype *) data;
-  const struct test_notification_args *args = args_data;
+  const struct test_notification_args *args = (const struct test_notification_args *) args_data;
   notify (args->somearg);
 }
 
@@ -1628,3 +1628,42 @@ observer_notify_test_notification (int s
     fprintf_unfiltered (gdb_stdlog, "observer_notify_test_notification() called\n");
   generic_observer_notify (test_notification_subject, &args);
 }
+
+/* user_selected_context_changed notifications.  */
+
+static struct observer_list *user_selected_context_changed_subject = NULL;
+
+struct user_selected_context_changed_args { user_selected_what selection; };
+
+static void
+observer_user_selected_context_changed_notification_stub (const void *data, const void *args_data)
+{
+  observer_user_selected_context_changed_ftype *notify = (observer_user_selected_context_changed_ftype *) data;
+  const struct user_selected_context_changed_args *args = (const struct user_selected_context_changed_args *) args_data;
+  notify (args->selection);
+}
+
+struct observer *
+observer_attach_user_selected_context_changed (observer_user_selected_context_changed_ftype *f)
+{
+  return generic_observer_attach (&user_selected_context_changed_subject,
+				  &observer_user_selected_context_changed_notification_stub,
+				  (void *) f);
+}
+
+void
+observer_detach_user_selected_context_changed (struct observer *observer)
+{
+  generic_observer_detach (&user_selected_context_changed_subject, observer);
+}
+
+void
+observer_notify_user_selected_context_changed (user_selected_what selection)
+{
+  struct user_selected_context_changed_args args;
+  args.selection = selection;
+
+  if (observer_debug)
+    fprintf_unfiltered (gdb_stdlog, "observer_notify_user_selected_context_changed() called\n");
+  generic_observer_notify (user_selected_context_changed_subject, &args);
+}

Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/version.c
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/version.c:1.5 src/external/gpl3/gdb/lib/libgdb/arch/earm/version.c:1.6
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/version.c:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/version.c	Fri Oct 14 12:19:23 2016
@@ -3,6 +3,6 @@
 /* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
 
 #include "version.h"
-const char version[] = "7.10.1";
+const char version[] = "7.12";
 const char host_name[] = "arm--netbsdelf-eabi";
 const char target_name[] = "arm--netbsdelf-eabi";
Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/xml-builtin.c
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/xml-builtin.c:1.5 src/external/gpl3/gdb/lib/libgdb/arch/earm/xml-builtin.c:1.6
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/xml-builtin.c:1.5	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/xml-builtin.c	Fri Oct 14 12:19:23 2016
@@ -5,7 +5,7 @@
 static const char xml_feature_gdb_target_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '0', '7', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '0', '7', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -151,6 +151,18 @@ static const char xml_feature_gdb_target
    'E', 'D', '>', '\n', 
   '\n', 
   '<', '!', 'E', 'L', 'E', 'M', 'E', 'N', 'T', ' ', 
+   'e', 'n', 'u', 'm', '\011', '\011', '(', 'e', 'v', 'a', 
+   'l', 'u', 'e', '+', ')', '>', '\n', 
+  '<', '!', 'A', 'T', 'T', 'L', 'I', 'S', 'T', ' ', 
+   'e', 'n', 'u', 'm', '\n', 
+  '\011', 'i', 'd', '\011', '\011', 'C', 'D', 'A', 'T', 'A', 
+   '\011', '#', 'R', 'E', 'Q', 'U', 'I', 'R', 'E', 'D', 
+   '\n', 
+  '\011', 's', 'i', 'z', 'e', '\011', '\011', 'C', 'D', 'A', 
+   'T', 'A', '\011', '#', 'R', 'E', 'Q', 'U', 'I', 'R', 
+   'E', 'D', '>', '\n', 
+  '\n', 
+  '<', '!', 'E', 'L', 'E', 'M', 'E', 'N', 'T', ' ', 
    's', 't', 'r', 'u', 'c', 't', '\011', '(', 'f', 'i', 
    'e', 'l', 'd', '+', ')', '>', '\n', 
   '<', '!', 'A', 'T', 'T', 'L', 'I', 'S', 'T', ' ', 
@@ -189,6 +201,18 @@ static const char xml_feature_gdb_target
    'A', '\011', '#', 'I', 'M', 'P', 'L', 'I', 'E', 'D', 
    '>', '\n', 
   '\n', 
+  '<', '!', 'E', 'L', 'E', 'M', 'E', 'N', 'T', ' ', 
+   'e', 'v', 'a', 'l', 'u', 'e', '\011', 'E', 'M', 'P', 
+   'T', 'Y', '>', '\n', 
+  '<', '!', 'A', 'T', 'T', 'L', 'I', 'S', 'T', ' ', 
+   'e', 'v', 'a', 'l', 'u', 'e', '\n', 
+  '\011', 'n', 'a', 'm', 'e', '\011', '\011', 'C', 'D', 'A', 
+   'T', 'A', '\011', '#', 'R', 'E', 'Q', 'U', 'I', 'R', 
+   'E', 'D', '\n', 
+  '\011', 'v', 'a', 'l', 'u', 'e', '\011', '\011', 'C', 'D', 
+   'A', 'T', 'A', '\011', '#', 'R', 'E', 'Q', 'U', 'I', 
+   'R', 'E', 'D', '>', '\n', 
+  '\n', 
   '<', '!', 'E', 'N', 'T', 'I', 'T', 'Y', ' ', '%', 
    ' ', 'x', 'i', 'n', 'c', 'l', 'u', 'd', 'e', ' ', 
    'S', 'Y', 'S', 'T', 'E', 'M', ' ', '"', 'x', 'i', 
@@ -200,7 +224,7 @@ static const char xml_feature_gdb_target
 static const char xml_feature_xinclude_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '0', '7', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '0', '7', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -258,7 +282,7 @@ static const char xml_feature_xinclude_d
 static const char xml_feature_library_list_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '0', '7', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '0', '7', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -339,7 +363,7 @@ static const char xml_feature_library_li
 static const char xml_feature_library_list_aix_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '1', '3', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '1', '3', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -426,7 +450,7 @@ static const char xml_feature_library_li
 static const char xml_feature_library_list_svr4_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '1', '1', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '1', '1', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -509,7 +533,7 @@ static const char xml_feature_library_li
 static const char xml_feature_osdata_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '0', '8', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '0', '8', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -570,7 +594,7 @@ static const char xml_feature_osdata_dtd
 static const char xml_feature_threads_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '0', '8', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '0', '8', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -622,7 +646,7 @@ static const char xml_feature_threads_dt
 static const char xml_feature_traceframe_info_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '1', '0', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '1', '0', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -696,7 +720,7 @@ static const char xml_feature_traceframe
 static const char xml_feature_btrace_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '1', '3', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '1', '3', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 
@@ -783,7 +807,7 @@ static const char xml_feature_btrace_dtd
 static const char xml_feature_btrace_conf_dtd[] = {
   '<', '!', '-', '-', ' ', 'C', 'o', 'p', 'y', 'r', 
    'i', 'g', 'h', 't', ' ', '(', 'C', ')', ' ', '2', 
-   '0', '1', '3', '-', '2', '0', '1', '5', ' ', 'F', 
+   '0', '1', '3', '-', '2', '0', '1', '6', ' ', 'F', 
    'r', 'e', 'e', ' ', 'S', 'o', 'f', 't', 'w', 'a', 
    'r', 'e', ' ', 'F', 'o', 'u', 'n', 'd', 'a', 't', 
    'i', 'o', 'n', ',', ' ', 'I', 'n', 'c', '.', '\n', 

Index: src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib/config.h
diff -u src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib/config.h:1.4 src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib/config.h:1.5
--- src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib/config.h:1.4	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libgdb/arch/earm/build-gnulib/config.h	Fri Oct 14 12:19:23 2016
@@ -55,6 +55,13 @@
    and handles trailing slash correctly. */
 /* #undef FUNC_REALPATH_WORKS */
 
+/* Define if gettimeofday clobbers the localtime buffer. */
+#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1
+
+/* Define this to 'void' or 'struct timezone' to match the system's
+   declaration of the second argument to gettimeofday. */
+#define GETTIMEOFDAY_TIMEZONE void
+
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module canonicalize-lgpl shall be considered present. */
 #define GNULIB_CANONICALIZE_LGPL 1
@@ -63,6 +70,10 @@
    whether the gnulib module fscanf shall be considered present. */
 #define GNULIB_FSCANF 1
 
+/* Define to 1 if printf and friends should be labeled with attribute
+   "__gnu_printf__" instead of "__printf__" */
+/* #undef GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU */
+
 /* Define to a C preprocessor expression that evaluates to 1 or 0, depending
    whether the gnulib module scanf shall be considered present. */
 #define GNULIB_SCANF 1
@@ -83,6 +94,9 @@
 /* Define to 1 when the gnulib module frexpl should be tested. */
 #define GNULIB_TEST_FREXPL 1
 
+/* Define to 1 when the gnulib module gettimeofday should be tested. */
+#define GNULIB_TEST_GETTIMEOFDAY 1
+
 /* Define to 1 when the gnulib module lstat should be tested. */
 #define GNULIB_TEST_LSTAT 1
 
@@ -104,6 +118,9 @@
 /* Define to 1 when the gnulib module memmem should be tested. */
 #define GNULIB_TEST_MEMMEM 1
 
+/* Define to 1 when the gnulib module rawmemchr should be tested. */
+#define GNULIB_TEST_RAWMEMCHR 1
+
 /* Define to 1 when the gnulib module readlink should be tested. */
 #define GNULIB_TEST_READLINK 1
 
@@ -119,15 +136,15 @@
 /* Define to 1 when the gnulib module stat should be tested. */
 #define GNULIB_TEST_STAT 1
 
+/* Define to 1 when the gnulib module strchrnul should be tested. */
+#define GNULIB_TEST_STRCHRNUL 1
+
 /* Define to 1 when the gnulib module strstr should be tested. */
 #define GNULIB_TEST_STRSTR 1
 
 /* Define to 1 when the gnulib module strtok_r should be tested. */
 #define GNULIB_TEST_STRTOK_R 1
 
-/* Define to 1 if you have the `alarm' function. */
-#define HAVE_ALARM 1
-
 /* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
    may be supplied by this distribution. */
 #define HAVE_ALLOCA 1
@@ -145,6 +162,10 @@
 /* Define to 1 if you have the `canonicalize_file_name' function. */
 /* #undef HAVE_CANONICALIZE_FILE_NAME */
 
+/* Define to 1 if you have the declaration of `alarm', and to 0 if you don't.
+   */
+#define HAVE_DECL_ALARM 1
+
 /* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't.
    */
 #define HAVE_DECL_DIRFD 1
@@ -199,6 +220,9 @@
 /* Define to 1 if you have the `getcwd' function. */
 #define HAVE_GETCWD 1
 
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #define HAVE_INTTYPES_H 1
 
@@ -209,7 +233,7 @@
 #define HAVE_ISNAND_IN_LIBC 1
 
 /* Define if the isnan(long double) function is available in libc. */
-/* #undef HAVE_ISNANL_IN_LIBC */
+#define HAVE_ISNANL_IN_LIBC 1
 
 /* Define to 1 if you have the `iswcntrl' function. */
 #define HAVE_ISWCNTRL 1
@@ -263,6 +287,9 @@
 /* Define to 1 if you have the `mprotect' function. */
 #define HAVE_MPROTECT 1
 
+/* Define to 1 if you have the `rawmemchr' function. */
+/* #undef HAVE_RAWMEMCHR */
+
 /* Define to 1 if acosf is declared even after undefining macros. */
 #define HAVE_RAW_DECL_ACOSF 1
 
@@ -507,6 +534,9 @@
 /* Define to 1 if getsubopt is declared even after undefining macros. */
 /* #undef HAVE_RAW_DECL_GETSUBOPT */
 
+/* Define to 1 if gettimeofday is declared even after undefining macros. */
+#define HAVE_RAW_DECL_GETTIMEOFDAY 1
+
 /* Define to 1 if getusershell is declared even after undefining macros. */
 #define HAVE_RAW_DECL_GETUSERSHELL 1
 
@@ -705,6 +735,9 @@
 /* Define to 1 if pread is declared even after undefining macros. */
 #define HAVE_RAW_DECL_PREAD 1
 
+/* Define to 1 if pthread_sigmask is declared even after undefining macros. */
+#define HAVE_RAW_DECL_PTHREAD_SIGMASK 1
+
 /* Define to 1 if ptsname is declared even after undefining macros. */
 #define HAVE_RAW_DECL_PTSNAME 1
 
@@ -777,6 +810,9 @@
 /* Define to 1 if scandir is declared even after undefining macros. */
 #define HAVE_RAW_DECL_SCANDIR 1
 
+/* Define to 1 if secure_getenv is declared even after undefining macros. */
+/* #undef HAVE_RAW_DECL_SECURE_GETENV */
+
 /* Define to 1 if setenv is declared even after undefining macros. */
 #define HAVE_RAW_DECL_SETENV 1
 
@@ -792,6 +828,30 @@
 /* Define to 1 if setusershell is declared even after undefining macros. */
 #define HAVE_RAW_DECL_SETUSERSHELL 1
 
+/* Define to 1 if sigaction is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGACTION 1
+
+/* Define to 1 if sigaddset is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGADDSET 1
+
+/* Define to 1 if sigdelset is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGDELSET 1
+
+/* Define to 1 if sigemptyset is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGEMPTYSET 1
+
+/* Define to 1 if sigfillset is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGFILLSET 1
+
+/* Define to 1 if sigismember is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGISMEMBER 1
+
+/* Define to 1 if sigpending is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGPENDING 1
+
+/* Define to 1 if sigprocmask is declared even after undefining macros. */
+#define HAVE_RAW_DECL_SIGPROCMASK 1
+
 /* Define to 1 if sinf is declared even after undefining macros. */
 #define HAVE_RAW_DECL_SINF 1
 
@@ -832,7 +892,7 @@
 #define HAVE_RAW_DECL_STRCASESTR 1
 
 /* Define to 1 if strchrnul is declared even after undefining macros. */
-/* #undef HAVE_RAW_DECL_STRCHRNUL */
+#define HAVE_RAW_DECL_STRCHRNUL 1
 
 /* Define to 1 if strdup is declared even after undefining macros. */
 #define HAVE_RAW_DECL_STRDUP 1
@@ -1062,12 +1122,18 @@
 /* Define to 1 if 'wint_t' is a signed integer type. */
 /* #undef HAVE_SIGNED_WINT_T */
 
+/* Define to 1 if the system has the type `sigset_t'. */
+#define HAVE_SIGSET_T 1
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #define HAVE_STDINT_H 1
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
 
+/* Define to 1 if you have the `strchrnul' function. */
+#define HAVE_STRCHRNUL 1
+
 /* Define to 1 if you have the <strings.h> header file. */
 #define HAVE_STRINGS_H 1
 
@@ -1092,9 +1158,15 @@
 /* Define to 1 if you have the <sys/param.h> header file. */
 #define HAVE_SYS_PARAM_H 1
 
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #define HAVE_SYS_STAT_H 1
 
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#define HAVE_SYS_TIMEB_H 1
+
 /* Define to 1 if you have the <sys/time.h> header file. */
 #define HAVE_SYS_TIME_H 1
 
@@ -1119,6 +1191,9 @@
 /* Define to 1 if you have the <wctype.h> header file. */
 #define HAVE_WCTYPE_H 1
 
+/* Define to 1 if you have the <winsock2.h> header file. */
+/* #undef HAVE_WINSOCK2_H */
+
 /* Define if you have the 'wint_t' type. */
 #define HAVE_WINT_T 1
 
@@ -1140,6 +1215,9 @@
 /* Define to 1 if the system has the type `_Bool'. */
 #define HAVE__BOOL 1
 
+/* Define to 1 if you have the `_ftime' function. */
+/* #undef HAVE__FTIME */
+
 /* Define as the bit index in the word where to find bit 0 of the exponent of
    'long double'. */
 /* #undef LDBL_EXPBIT0_BIT */
@@ -1157,6 +1235,10 @@
 /* Define to a substitute value for mmap()'s MAP_ANONYMOUS flag. */
 /* #undef MAP_ANONYMOUS */
 
+/* Define if the mbrtowc function does not return (size_t) -2 for empty input.
+   */
+/* #undef MBRTOWC_EMPTY_INPUT_BUG */
+
 /* Define if the mbrtowc function has the NULL pwc argument bug. */
 /* #undef MBRTOWC_NULL_ARG1_BUG */
 
@@ -1243,6 +1325,42 @@
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable general extensions on OS X.  */
+#ifndef _DARWIN_C_SOURCE
+# define _DARWIN_C_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Use GNU style printf and scanf.  */
+#ifndef __USE_MINGW_ANSI_STDIO
+# define __USE_MINGW_ANSI_STDIO 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
+   mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
+   whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
+#ifndef _XOPEN_SOURCE
+/* # undef _XOPEN_SOURCE */
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
    'wchar_t'. */
 /* #undef WCHAR_T_SUFFIX */
@@ -1263,10 +1381,8 @@
 # endif
 #endif
 
-/* Enable large inode numbers on Mac OS X.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
+/* Enable large inode numbers on Mac OS X 10.5. */
+#define _DARWIN_USE_64_BIT_INODE 1
 
 /* Number of bits in a file offset, on hosts where this is settable. */
 /* #undef _FILE_OFFSET_BITS */
@@ -1281,6 +1397,9 @@
 /* Define to 1 if on MINIX. */
 /* #undef _MINIX */
 
+/* Define to 1 to make NetBSD features available. MINIX 3 needs this. */
+/* #undef _NETBSD_SOURCE */
+
 /* The _Noreturn keyword of C11.  */
 #if ! (defined _Noreturn \
        || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
@@ -1302,69 +1421,79 @@
 /* Define to 1 if you need to in order for 'stat' and other things to work. */
 /* #undef _POSIX_SOURCE */
 
-/* Define to 500 only on HP-UX. */
-/* #undef _XOPEN_SOURCE */
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# define _ALL_SOURCE 1
-#endif
-/* Enable general extensions on Mac OS X.  */
-#ifndef _DARWIN_C_SOURCE
-# define _DARWIN_C_SOURCE 1
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# define _GNU_SOURCE 1
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# define _POSIX_PTHREAD_SEMANTICS 1
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# define _TANDEM_SOURCE 1
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# define __EXTENSIONS__ 1
-#endif
+/* Please see the Gnulib manual for how to use these macros.
 
+   Suppress extern inline with HP-UX cc, as it appears to be broken; see
+   <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
 
-/* _GL_INLINE is a portable alternative to ISO C99 plain 'inline'.
-   _GL_EXTERN_INLINE is a portable alternative to 'extern inline'.
-   _GL_INLINE_HEADER_BEGIN contains useful stuff to put
-     in an include file, before uses of _GL_INLINE.
-     It suppresses GCC's bogus "no previous prototype for 'FOO'" diagnostic,
-     when FOO is an inline function in the header; see
-     <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113>.
-   _GL_INLINE_HEADER_END contains useful stuff to put
-     in the same include file, after uses of _GL_INLINE.
-
-   Suppress the use of extern inline on Apple's platforms,
-   as Libc-825.25 (2012-09-19) is incompatible with it; see
-   <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
-   Perhaps Apple will fix this some day.  */
+   Suppress extern inline with Sun C in standards-conformance mode, as it
+   mishandles inline functions that call each other.  E.g., for 'inline void f
+   (void) { } inline void g (void) { f (); }', c99 incorrectly complains
+   'reference to static identifier "f" in extern inline function'.
+   This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
+
+   Suppress extern inline (with or without __attribute__ ((__gnu_inline__)))
+   on configurations that mistakenly use 'static inline' to implement
+   functions or macros in standard C headers like <ctype.h>.  For example,
+   if isdigit is mistakenly implemented via a static inline function,
+   a program containing an extern inline function that calls isdigit
+   may not work since the C standard prohibits extern inline functions
+   from calling static functions.  This bug is known to occur on:
+
+     OS X 10.8 and earlier; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html
+
+     DragonFly; see
+     http://muscles.dragonflybsd.org/bulk/bleeding-edge-potential/latest-per-pkg/ah-tty-0.3.12.log
+
+     FreeBSD; see:
+     http://lists.gnu.org/archive/html/bug-gnulib/2014-07/msg00104.html
+
+   OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and
+   for clang but remains for g++; see <http://trac.macports.org/ticket/41033>.
+   Assume DragonFly and FreeBSD will be similar.  */
+#if (((defined __APPLE__ && defined __MACH__) \
+      || defined __DragonFly__ || defined __FreeBSD__) \
+     && (defined __header_inline \
+         ? (defined __cplusplus && defined __GNUC_STDC_INLINE__ \
+            && ! defined __clang__) \
+         : ((! defined _DONT_USE_CTYPE_INLINE_ \
+             && (defined __GNUC__ || defined __cplusplus)) \
+            || (defined _FORTIFY_SOURCE && 0 < _FORTIFY_SOURCE \
+                && defined __GNUC__ && ! defined __cplusplus))))
+# define _GL_EXTERN_INLINE_STDHEADER_BUG
+#endif
 #if ((__GNUC__ \
       ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
-      : 199901L <= __STDC_VERSION__) \
-     && !defined __APPLE__)
+      : (199901L <= __STDC_VERSION__ \
+         && !defined __HP_cc \
+         && !(defined __SUNPRO_C && __STDC__))) \
+     && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
 # define _GL_INLINE inline
 # define _GL_EXTERN_INLINE extern inline
-#elif 2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __APPLE__
-# if __GNUC_GNU_INLINE__
+# define _GL_EXTERN_INLINE_IN_USE
+#elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \
+       && !defined _GL_EXTERN_INLINE_STDHEADER_BUG)
+# if defined __GNUC_GNU_INLINE__ && __GNUC_GNU_INLINE__
    /* __gnu_inline__ suppresses a GCC 4.2 diagnostic.  */
 #  define _GL_INLINE extern inline __attribute__ ((__gnu_inline__))
 # else
 #  define _GL_INLINE extern inline
 # endif
 # define _GL_EXTERN_INLINE extern
+# define _GL_EXTERN_INLINE_IN_USE
 #else
 # define _GL_INLINE static _GL_UNUSED
 # define _GL_EXTERN_INLINE static _GL_UNUSED
 #endif
 
-#if 4 < __GNUC__ + (6 <= __GNUC_MINOR__)
+/* In GCC 4.6 (inclusive) to 5.1 (exclusive),
+   suppress bogus "no previous prototype for 'FOO'"
+   and "no previous declaration for 'FOO'" diagnostics,
+   when FOO is an inline function in the header; see
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54113> and
+   <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63877>.  */
+#if __GNUC__ == 4 && 6 <= __GNUC_MINOR__
 # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__
 #  define _GL_INLINE_HEADER_CONST_PRAGMA
 # else
@@ -1386,6 +1515,9 @@
 /* Define to a replacement function name for fnmatch(). */
 #define fnmatch gnu_fnmatch
 
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
 /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
    the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
    earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
@@ -1425,6 +1557,9 @@
 /* Define as a signed type of the same size as size_t. */
 /* #undef ssize_t */
 
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
+
 /* Define as a marker that can be attached to declarations that might not
     be used.  This helps to reduce warnings, such as from
     GCC -Wunused-parameter.  */
@@ -1437,6 +1572,16 @@
    is a misnomer outside of parameter lists.  */
 #define _UNUSED_PARAMETER_ _GL_UNUSED
 
+/* gcc supports the "unused" attribute on possibly unused labels, and
+   g++ has since version 4.5.  Note to support C++ as well as C,
+   _GL_UNUSED_LABEL should be used with a trailing ;  */
+#if !defined __cplusplus || __GNUC__ > 4 \
+    || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
+# define _GL_UNUSED_LABEL _GL_UNUSED
+#else
+# define _GL_UNUSED_LABEL
+#endif
+
 /* The __pure__ attribute was added in gcc 2.96.  */
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
 # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))

Index: src/external/gpl3/gdb/lib/libiberty/arch/earm/config.h
diff -u src/external/gpl3/gdb/lib/libiberty/arch/earm/config.h:1.4 src/external/gpl3/gdb/lib/libiberty/arch/earm/config.h:1.5
--- src/external/gpl3/gdb/lib/libiberty/arch/earm/config.h:1.4	Tue May 24 05:16:56 2016
+++ src/external/gpl3/gdb/lib/libiberty/arch/earm/config.h	Fri Oct 14 12:19:23 2016
@@ -475,6 +475,9 @@
 /* The size of `long long', as computed by sizeof. */
 #define SIZEOF_LONG_LONG 8
 
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 4
+
 /* Define if you know the direction of stack growth for your system; otherwise
    it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows
    toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses

Index: src/external/gpl3/gdb/lib/libopcodes/arch/earm/config.h
diff -u src/external/gpl3/gdb/lib/libopcodes/arch/earm/config.h:1.4 src/external/gpl3/gdb/lib/libopcodes/arch/earm/config.h:1.5
--- src/external/gpl3/gdb/lib/libopcodes/arch/earm/config.h:1.4	Mon Aug 17 08:48:18 2015
+++ src/external/gpl3/gdb/lib/libopcodes/arch/earm/config.h	Fri Oct 14 12:19:23 2016
@@ -74,7 +74,7 @@
 #define PACKAGE_NAME "opcodes"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "opcodes 2.25.51"
+#define PACKAGE_STRING "opcodes 2.27.51"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "opcodes"
@@ -83,7 +83,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "2.25.51"
+#define PACKAGE_VERSION "2.27.51"
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
@@ -114,7 +114,7 @@
 
 
 /* Version number of package */
-#define VERSION "2.25.51"
+#define VERSION "2.27.51"
 
 /* Define to 1 if on MINIX. */
 /* #undef _MINIX */

Reply via email to