diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/archive.c ./bfd/archive.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/archive.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/archive.c	2018-07-03 01:49:24.000000000 +0000
@@ -850,8 +850,6 @@ bfd_generic_archive_p (bfd *abfd)
       && ! bfd_is_thin_archive (abfd))
     {
       bfd_set_error (bfd_error_wrong_format);
-      if (abfd->format == bfd_archive)
-	abfd->format = bfd_unknown;
       return NULL;
     }
 
@@ -2765,6 +2763,30 @@ archive_close_worker (void **slot, void 
   return 1;
 }
 
+void
+_bfd_unlink_from_archive_parent (bfd *abfd)
+{
+  if (arch_eltdata (abfd) != NULL)
+    {
+      struct areltdata *ared = arch_eltdata (abfd);
+      htab_t htab = (htab_t) ared->parent_cache;
+
+      if (htab)
+	{
+	  struct ar_cache ent;
+	  void **slot;
+
+	  ent.ptr = ared->key;
+	  slot = htab_find_slot (htab, &ent, NO_INSERT);
+	  if (slot != NULL)
+	    {
+	      BFD_ASSERT (((struct ar_cache *) *slot)->arbfd == abfd);
+	      htab_clear_slot (htab, slot);
+	    }
+	}
+    }
+}
+
 bfd_boolean
 _bfd_archive_close_and_cleanup (bfd *abfd)
 {
@@ -2789,25 +2811,9 @@ _bfd_archive_close_and_cleanup (bfd *abf
 	  bfd_ardata (abfd)->cache = NULL;
 	}
     }
-  if (arch_eltdata (abfd) != NULL)
-    {
-      struct areltdata *ared = arch_eltdata (abfd);
-      htab_t htab = (htab_t) ared->parent_cache;
 
-      if (htab)
-	{
-	  struct ar_cache ent;
-	  void **slot;
+  _bfd_unlink_from_archive_parent (abfd);
 
-	  ent.ptr = ared->key;
-	  slot = htab_find_slot (htab, &ent, NO_INSERT);
-	  if (slot != NULL)
-	    {
-	      BFD_ASSERT (((struct ar_cache *) *slot)->arbfd == abfd);
-	      htab_clear_slot (htab, slot);
-	    }
-	}
-    }
   if (abfd->is_linker_output)
     (*abfd->link.hash->hash_table_free) (abfd);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/archures.c ./bfd/archures.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/archures.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/archures.c	2018-07-03 01:49:24.000000000 +0000
@@ -326,6 +326,19 @@ DESCRIPTION
 .#define bfd_mach_arm_ep9312	11
 .#define bfd_mach_arm_iWMMXt	12
 .#define bfd_mach_arm_iWMMXt2	13
+.#define bfd_mach_arm_5TEJ      14
+.#define bfd_mach_arm_6         15
+.#define bfd_mach_arm_6KZ       16
+.#define bfd_mach_arm_6T2       17
+.#define bfd_mach_arm_6K        18
+.#define bfd_mach_arm_7         19
+.#define bfd_mach_arm_6M        20
+.#define bfd_mach_arm_6SM       21
+.#define bfd_mach_arm_7EM       22
+.#define bfd_mach_arm_8         23
+.#define bfd_mach_arm_8R        24
+.#define bfd_mach_arm_8M_BASE   25
+.#define bfd_mach_arm_8M_MAIN   26
 .  bfd_arch_nds32,     {* Andes NDS32.  *}
 .#define bfd_mach_n1		1
 .#define bfd_mach_n1h		2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/bfd-in2.h ./bfd/bfd-in2.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/bfd-in2.h	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/bfd-in2.h	2018-07-03 01:49:24.000000000 +0000
@@ -2197,6 +2197,19 @@ enum bfd_architecture
 #define bfd_mach_arm_ep9312    11
 #define bfd_mach_arm_iWMMXt    12
 #define bfd_mach_arm_iWMMXt2   13
+#define bfd_mach_arm_5TEJ      14
+#define bfd_mach_arm_6         15
+#define bfd_mach_arm_6KZ       16
+#define bfd_mach_arm_6T2       17
+#define bfd_mach_arm_6K        18
+#define bfd_mach_arm_7         19
+#define bfd_mach_arm_6M        20
+#define bfd_mach_arm_6SM       21
+#define bfd_mach_arm_7EM       22
+#define bfd_mach_arm_8         23
+#define bfd_mach_arm_8R        24
+#define bfd_mach_arm_8M_BASE   25
+#define bfd_mach_arm_8M_MAIN   26
   bfd_arch_nds32,     /* Andes NDS32.  */
 #define bfd_mach_n1            1
 #define bfd_mach_n1h           2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/ChangeLog ./bfd/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/ChangeLog	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/ChangeLog	2018-07-03 01:49:24.000000000 +0000
@@ -1,3 +1,62 @@
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+
+	* elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Set
+	`mark' for symbols created from `mips_elf_dynsym_rtproc_names'
+	list.
+
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+
+	* elf64-mips.c (micromips_elf64_howto_table_rel): Add
+	R_MICROMIPS_HI0_LO16, R_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_LDM,
+	R_MICROMIPS_TLS_DTPREL_HI16, R_MICROMIPS_TLS_DTPREL_LO16,
+	R_MICROMIPS_TLS_GOTTPREL, R_MICROMIPS_TLS_TPREL_HI16,
+	R_MICROMIPS_TLS_TPREL_LO16, R_MICROMIPS_GPREL7_S2 and
+	R_MICROMIPS_PC23_S2 relocation entries.
+	(micromips_elf64_howto_table_rela): Likewise.
+	(micromips_reloc_map): Likewise.
+	* elfn32-mips.c (elf_micromips_howto_table_rel): Likewise.
+	(elf_micromips_howto_table_rela): Likewise.
+	(micromips_reloc_map): Likewise.
+
+2018-07-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/23324
+	* elf64-x86-64.c (elf_x86_64_relocate_section): Clear the
+	R_X86_64_converted_reloc_bit bit.
+
+2018-07-02  Jeff Muizelaar  <jrmuizel@gmail.com>
+	    Tom Tromey  <tom@tromey.com>
+
+	PR 13157
+	PR 21787
+	* mach-o.c (bfd_mach_o_fat_close_and_cleanup): New function.
+	(bfd_mach_o_close_and_cleanup): Redefine.
+	* archive.c (_bfd_unlink_from_archive_parent): New function,
+	extracted from..
+	(_bfd_archive_close_and_cleanup): ..here.
+	(bfd_generic_archive_p): Do not clear archive's format.
+	* libbfd-in.h (_bfd_unlink_from_archive_parent): Declare.
+	* libbfd.h: Regenerate.
+
+2018-07-02  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* archures.c (bfd_mach_arm_5TEJ, bfd_mach_arm_6, bfd_mach_arm_6KZ,
+	bfd_mach_arm_6T2, bfd_mach_arm_6K, bfd_mach_arm_7, bfd_mach_arm_6M,
+	bfd_mach_arm_6SM, bfd_mach_arm_7EM, bfd_mach_arm_8, bfd_mach_arm_8R,
+	bfd_mach_arm_8M_BASE, bfd_mach_arm_8M_MAIN): Define.
+	* bfd-in2.h: Regenerate.
+	* cpu-arm.c (arch_info_struct): Add entries for above new
+	bfd_mach_arm values.
+	* elf32-arm.c (bfd_arm_get_mach_from_attributes): Add Tag_CPU_arch to
+	bfd_mach_arm mapping logic for pre Armv4 and Armv5TEJ and later
+	architectures.  Force assert failure for any new Tag_CPU_arch value.
+
+2018-07-02  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* doc/bfdint.texi: Use command-line consistently when used in a
+	compount word.
+	* doc/bfdsumm.texi: Likewise.
+
 2018-06-29  Maciej W. Rozycki  <macro@mips.com>
 
 	* elfxx-mips.c (allocate_dynrelocs): Remove extraneous symbol
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/cpu-arm.c ./bfd/cpu-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/cpu-arm.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/cpu-arm.c	2018-07-03 01:49:24.000000000 +0000
@@ -129,20 +129,33 @@ scan (const struct bfd_arch_info *info, 
 
 static const bfd_arch_info_type arch_info_struct[] =
 {
-  N (bfd_mach_arm_2,       "armv2",   FALSE, & arch_info_struct[1]),
-  N (bfd_mach_arm_2a,      "armv2a",  FALSE, & arch_info_struct[2]),
-  N (bfd_mach_arm_3,       "armv3",   FALSE, & arch_info_struct[3]),
-  N (bfd_mach_arm_3M,      "armv3m",  FALSE, & arch_info_struct[4]),
-  N (bfd_mach_arm_4,       "armv4",   FALSE, & arch_info_struct[5]),
-  N (bfd_mach_arm_4T,      "armv4t",  FALSE, & arch_info_struct[6]),
-  N (bfd_mach_arm_5,       "armv5",   FALSE, & arch_info_struct[7]),
-  N (bfd_mach_arm_5T,      "armv5t",  FALSE, & arch_info_struct[8]),
-  N (bfd_mach_arm_5TE,     "armv5te", FALSE, & arch_info_struct[9]),
-  N (bfd_mach_arm_XScale,  "xscale",  FALSE, & arch_info_struct[10]),
-  N (bfd_mach_arm_ep9312,  "ep9312",  FALSE, & arch_info_struct[11]),
-  N (bfd_mach_arm_iWMMXt,  "iwmmxt",  FALSE, & arch_info_struct[12]),
-  N (bfd_mach_arm_iWMMXt2, "iwmmxt2", FALSE, & arch_info_struct[13]),
-  N (bfd_mach_arm_unknown, "arm_any", FALSE, NULL)
+  N (bfd_mach_arm_2,         "armv2",          FALSE, & arch_info_struct[1]),
+  N (bfd_mach_arm_2a,        "armv2a",         FALSE, & arch_info_struct[2]),
+  N (bfd_mach_arm_3,         "armv3",          FALSE, & arch_info_struct[3]),
+  N (bfd_mach_arm_3M,        "armv3m",         FALSE, & arch_info_struct[4]),
+  N (bfd_mach_arm_4,         "armv4",          FALSE, & arch_info_struct[5]),
+  N (bfd_mach_arm_4T,        "armv4t",         FALSE, & arch_info_struct[6]),
+  N (bfd_mach_arm_5,         "armv5",          FALSE, & arch_info_struct[7]),
+  N (bfd_mach_arm_5T,        "armv5t",         FALSE, & arch_info_struct[8]),
+  N (bfd_mach_arm_5TE,       "armv5te",        FALSE, & arch_info_struct[9]),
+  N (bfd_mach_arm_XScale,    "xscale",         FALSE, & arch_info_struct[10]),
+  N (bfd_mach_arm_ep9312,    "ep9312",         FALSE, & arch_info_struct[11]),
+  N (bfd_mach_arm_iWMMXt,    "iwmmxt",         FALSE, & arch_info_struct[12]),
+  N (bfd_mach_arm_iWMMXt2,   "iwmmxt2",        FALSE, & arch_info_struct[13]),
+  N (bfd_mach_arm_5TEJ,      "armv5tej",       FALSE, & arch_info_struct[14]),
+  N (bfd_mach_arm_6,         "armv6",          FALSE, & arch_info_struct[15]),
+  N (bfd_mach_arm_6KZ,       "armv6kz",        FALSE, & arch_info_struct[16]),
+  N (bfd_mach_arm_6T2,       "armv6t2",        FALSE, & arch_info_struct[17]),
+  N (bfd_mach_arm_6K,        "armv6k",         FALSE, & arch_info_struct[18]),
+  N (bfd_mach_arm_7,         "armv7",          FALSE, & arch_info_struct[19]),
+  N (bfd_mach_arm_6M,        "armv6-m",        FALSE, & arch_info_struct[20]),
+  N (bfd_mach_arm_6SM,       "armv6s-m",       FALSE, & arch_info_struct[21]),
+  N (bfd_mach_arm_7EM,       "armv7e-m",       FALSE, & arch_info_struct[22]),
+  N (bfd_mach_arm_8,         "armv8-a",        FALSE, & arch_info_struct[23]),
+  N (bfd_mach_arm_8R,        "armv8-r",        FALSE, & arch_info_struct[24]),
+  N (bfd_mach_arm_8M_BASE,   "armv8-m.base",   FALSE, & arch_info_struct[25]),
+  N (bfd_mach_arm_8M_MAIN,   "armv8-m.main",   FALSE, & arch_info_struct[26]),
+  N (bfd_mach_arm_unknown,   "arm_any",        FALSE, NULL)
 };
 
 const bfd_arch_info_type bfd_arm_arch =
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/archures.texi ./bfd/doc/archures.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/archures.texi	2018-07-02 01:51:43.000000000 +0000
+++ ./bfd/doc/archures.texi	2018-07-03 01:51:24.000000000 +0000
@@ -293,6 +293,19 @@ enum bfd_architecture
 #define bfd_mach_arm_ep9312    11
 #define bfd_mach_arm_iWMMXt    12
 #define bfd_mach_arm_iWMMXt2   13
+#define bfd_mach_arm_5TEJ      14
+#define bfd_mach_arm_6         15
+#define bfd_mach_arm_6KZ       16
+#define bfd_mach_arm_6T2       17
+#define bfd_mach_arm_6K        18
+#define bfd_mach_arm_7         19
+#define bfd_mach_arm_6M        20
+#define bfd_mach_arm_6SM       21
+#define bfd_mach_arm_7EM       22
+#define bfd_mach_arm_8         23
+#define bfd_mach_arm_8R        24
+#define bfd_mach_arm_8M_BASE   25
+#define bfd_mach_arm_8M_MAIN   26
   bfd_arch_nds32,     /* Andes NDS32.  */
 #define bfd_mach_n1            1
 #define bfd_mach_n1h           2
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/bfd.info ./bfd/doc/bfd.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/bfd.info	2018-07-02 01:51:50.000000000 +0000
+++ ./bfd/doc/bfd.info	2018-07-03 01:51:31.000000000 +0000
@@ -254,7 +254,7 @@ _symbols_
      symbol information is not worth retaining; in 'a.out', type
      information is stored in the symbol table as long symbol names.
      This information would be useless to most COFF debuggers; the
-     linker has command line switches to allow users to throw it away.
+     linker has command-line switches to allow users to throw it away.
 
      There is one word of type information within the symbol, so if the
      format supports symbol type information within symbols (for
@@ -7891,6 +7891,19 @@ architecture, containing, for example, 6
      #define bfd_mach_arm_ep9312    11
      #define bfd_mach_arm_iWMMXt    12
      #define bfd_mach_arm_iWMMXt2   13
+     #define bfd_mach_arm_5TEJ      14
+     #define bfd_mach_arm_6         15
+     #define bfd_mach_arm_6KZ       16
+     #define bfd_mach_arm_6T2       17
+     #define bfd_mach_arm_6K        18
+     #define bfd_mach_arm_7         19
+     #define bfd_mach_arm_6M        20
+     #define bfd_mach_arm_6SM       21
+     #define bfd_mach_arm_7EM       22
+     #define bfd_mach_arm_8         23
+     #define bfd_mach_arm_8R        24
+     #define bfd_mach_arm_8M_BASE   25
+     #define bfd_mach_arm_8M_MAIN   26
        bfd_arch_nds32,     /* Andes NDS32.  */
      #define bfd_mach_n1            1
      #define bfd_mach_n1h           2
@@ -11562,12 +11575,12 @@ BFD Index
 * bfd_alloc2:                            Opening and Closing.
                                                              (line  248)
 * bfd_alt_mach_code:                     Miscellaneous.      (line  288)
-* bfd_arch_bits_per_address:             Architectures.      (line  618)
-* bfd_arch_bits_per_byte:                Architectures.      (line  610)
-* bfd_arch_default_fill:                 Architectures.      (line  699)
-* bfd_arch_get_compatible:               Architectures.      (line  553)
-* bfd_arch_list:                         Architectures.      (line  544)
-* bfd_arch_mach_octets_per_byte:         Architectures.      (line  687)
+* bfd_arch_bits_per_address:             Architectures.      (line  631)
+* bfd_arch_bits_per_byte:                Architectures.      (line  623)
+* bfd_arch_default_fill:                 Architectures.      (line  712)
+* bfd_arch_get_compatible:               Architectures.      (line  566)
+* bfd_arch_list:                         Architectures.      (line  557)
+* bfd_arch_mach_octets_per_byte:         Architectures.      (line  700)
 * BFD_ARELOC_BFIN_ADD:                   howto manager.      (line 1100)
 * BFD_ARELOC_BFIN_ADDR:                  howto manager.      (line 1134)
 * BFD_ARELOC_BFIN_AND:                   howto manager.      (line 1114)
@@ -11621,11 +11634,11 @@ BFD Index
                                                              (line  431)
 * bfd_decode_symclass:                   symbol handling functions.
                                                              (line  116)
-* bfd_default_arch_struct:               Architectures.      (line  565)
-* bfd_default_compatible:                Architectures.      (line  627)
+* bfd_default_arch_struct:               Architectures.      (line  578)
+* bfd_default_compatible:                Architectures.      (line  640)
 * bfd_default_reloc_type_lookup:         howto manager.      (line 3311)
-* bfd_default_scan:                      Architectures.      (line  636)
-* bfd_default_set_arch_mach:             Architectures.      (line  583)
+* bfd_default_scan:                      Architectures.      (line  649)
+* bfd_default_set_arch_mach:             Architectures.      (line  596)
 * bfd_demangle:                          Miscellaneous.      (line  339)
 * bfd_emul_get_commonpagesize:           Miscellaneous.      (line  319)
 * bfd_emul_get_maxpagesize:              Miscellaneous.      (line  299)
@@ -11662,8 +11675,8 @@ BFD Index
 * bfd_generic_relax_section:             howto manager.      (line 3329)
 * bfd_get_alt_debug_link_info:           Opening and Closing.
                                                              (line  329)
-* bfd_get_arch:                          Architectures.      (line  594)
-* bfd_get_arch_info:                     Architectures.      (line  646)
+* bfd_get_arch:                          Architectures.      (line  607)
+* bfd_get_arch_info:                     Architectures.      (line  659)
 * bfd_get_arch_size:                     Miscellaneous.      (line   63)
 * bfd_get_compression_header_size:       Miscellaneous.      (line  375)
 * bfd_get_debug_link_info:               Opening and Closing.
@@ -11674,7 +11687,7 @@ BFD Index
 * bfd_get_file_size:                     Miscellaneous.      (line  485)
 * bfd_get_gp_size:                       Miscellaneous.      (line  106)
 * bfd_get_linker_section:                section prototypes. (line   37)
-* bfd_get_mach:                          Architectures.      (line  602)
+* bfd_get_mach:                          Architectures.      (line  615)
 * bfd_get_mtime:                         Miscellaneous.      (line  448)
 * bfd_get_next_mapent:                   Archives.           (line   57)
 * bfd_get_next_section_by_name:          section prototypes. (line   25)
@@ -11726,7 +11739,7 @@ BFD Index
 * bfd_link_split_section:                Writing the symbol table.
                                                              (line   43)
 * bfd_log2:                              Internal.           (line  166)
-* bfd_lookup_arch:                       Architectures.      (line  654)
+* bfd_lookup_arch:                       Architectures.      (line  667)
 * bfd_make_debug_symbol:                 symbol handling functions.
                                                              (line  106)
 * bfd_make_empty_symbol:                 symbol handling functions.
@@ -11745,7 +11758,7 @@ BFD Index
 * bfd_merge_private_bfd_data:            Writing the symbol table.
                                                              (line  155)
 * bfd_mmap:                              Miscellaneous.      (line  494)
-* bfd_octets_per_byte:                   Architectures.      (line  677)
+* bfd_octets_per_byte:                   Architectures.      (line  690)
 * bfd_openr:                             Opening and Closing.
                                                              (line   37)
 * bfd_openr_iovec:                       Opening and Closing.
@@ -11758,8 +11771,8 @@ BFD Index
 * bfd_open_file:                         File Caching.       (line   51)
 * bfd_perform_relocation:                typedef arelent.    (line  381)
 * bfd_perror:                            Error reporting.    (line   87)
-* bfd_printable_arch_mach:               Architectures.      (line  665)
-* bfd_printable_name:                    Architectures.      (line  525)
+* bfd_printable_arch_mach:               Architectures.      (line  678)
+* bfd_printable_name:                    Architectures.      (line  538)
 * bfd_print_symbol_vandf:                symbol handling functions.
                                                              (line   73)
 * bfd_put_size:                          Internal.           (line   21)
@@ -14022,14 +14035,14 @@ BFD Index
 * BFD_RELOC_Z8K_DISP7:                   howto manager.      (line 2592)
 * BFD_RELOC_Z8K_IMM4L:                   howto manager.      (line 2596)
 * bfd_rename_section:                    section prototypes. (line  169)
-* bfd_scan_arch:                         Architectures.      (line  534)
+* bfd_scan_arch:                         Architectures.      (line  547)
 * bfd_scan_vma:                          Miscellaneous.      (line  126)
 * bfd_sections_find_if:                  section prototypes. (line  199)
 * bfd_section_already_linked:            Writing the symbol table.
                                                              (line   55)
 * bfd_section_list_clear:                section prototypes. (line    7)
 * bfd_set_archive_head:                  Archives.           (line   74)
-* bfd_set_arch_info:                     Architectures.      (line  575)
+* bfd_set_arch_info:                     Architectures.      (line  588)
 * bfd_set_assert_handler:                Error reporting.    (line  161)
 * bfd_set_default_target:                bfd_target.         (line  485)
 * bfd_set_error:                         Error reporting.    (line   57)
@@ -14121,37 +14134,37 @@ Node: Core Files262511
 Node: Targets264549
 Node: bfd_target266524
 Node: Architectures291990
-Node: Opening and Closing321711
-Node: Internal339886
-Node: File Caching346211
-Node: Linker Functions348129
-Node: Creating a Linker Hash Table349803
-Node: Adding Symbols to the Hash Table351542
-Node: Differing file formats352442
-Node: Adding symbols from an object file354167
-Node: Adding symbols from an archive356317
-Node: Performing the Final Link358663
-Node: Information provided by the linker359904
-Node: Relocating the section contents361058
-Node: Writing the symbol table362810
-Node: Hash Tables369964
-Node: Creating and Freeing a Hash Table371162
-Node: Looking Up or Entering a String372412
-Node: Traversing a Hash Table373665
-Node: Deriving a New Hash Table Type374454
-Node: Define the Derived Structures375520
-Node: Write the Derived Creation Routine376601
-Node: Write Other Derived Routines379226
-Node: BFD back ends380541
-Node: What to Put Where380811
-Node: aout380991
-Node: coff387273
-Node: elf415424
-Node: mmo415825
-Node: File layout416695
-Node: Symbol-table422608
-Node: mmo section mapping426371
-Node: GNU Free Documentation License430025
-Node: BFD Index455089
+Node: Opening and Closing322218
+Node: Internal340393
+Node: File Caching346718
+Node: Linker Functions348636
+Node: Creating a Linker Hash Table350310
+Node: Adding Symbols to the Hash Table352049
+Node: Differing file formats352949
+Node: Adding symbols from an object file354674
+Node: Adding symbols from an archive356824
+Node: Performing the Final Link359170
+Node: Information provided by the linker360411
+Node: Relocating the section contents361565
+Node: Writing the symbol table363317
+Node: Hash Tables370471
+Node: Creating and Freeing a Hash Table371669
+Node: Looking Up or Entering a String372919
+Node: Traversing a Hash Table374172
+Node: Deriving a New Hash Table Type374961
+Node: Define the Derived Structures376027
+Node: Write the Derived Creation Routine377108
+Node: Write Other Derived Routines379733
+Node: BFD back ends381048
+Node: What to Put Where381318
+Node: aout381498
+Node: coff387780
+Node: elf415931
+Node: mmo416332
+Node: File layout417202
+Node: Symbol-table423115
+Node: mmo section mapping426878
+Node: GNU Free Documentation License430532
+Node: BFD Index455596
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/bfdint.texi ./bfd/doc/bfdint.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/bfdint.texi	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/doc/bfdint.texi	2018-07-03 01:49:24.000000000 +0000
@@ -318,7 +318,7 @@ The target vector starts with a set of c
 @table @samp
 @item name
 The name of the target vector.  This is an arbitrary string.  This is
-how the target vector is named in command line options for tools which
+how the target vector is named in command-line options for tools which
 use BFD, such as the @samp{--oformat} linker option.
 
 @item flavour
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/bfdsumm.texi ./bfd/doc/bfdsumm.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/doc/bfdsumm.texi	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/doc/bfdsumm.texi	2018-07-03 01:49:24.000000000 +0000
@@ -115,7 +115,7 @@ output file (no matter its format) will 
 functions and to global, static, and common variables.  Some symbol
 information is not worth retaining; in @code{a.out}, type information is
 stored in the symbol table as long symbol names.  This information would
-be useless to most COFF debuggers; the linker has command line switches
+be useless to most COFF debuggers; the linker has command-line switches
 to allow users to throw it away.
 
 There is one word of type information within the symbol, so if the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elf32-arm.c ./bfd/elf32-arm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elf32-arm.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/elf32-arm.c	2018-07-03 01:49:24.000000000 +0000
@@ -13642,6 +13642,7 @@ bfd_arm_get_mach_from_attributes (bfd * 
 
   switch (arch)
     {
+    case TAG_CPU_ARCH_PRE_V4: return bfd_mach_arm_3M;
     case TAG_CPU_ARCH_V4: return bfd_mach_arm_4;
     case TAG_CPU_ARCH_V4T: return bfd_mach_arm_4T;
     case TAG_CPU_ARCH_V5T: return bfd_mach_arm_5T;
@@ -13679,7 +13680,38 @@ bfd_arm_get_mach_from_attributes (bfd * 
 	return bfd_mach_arm_5TE;
       }
 
+    case TAG_CPU_ARCH_V5TEJ:
+	return bfd_mach_arm_5TEJ;
+    case TAG_CPU_ARCH_V6:
+	return bfd_mach_arm_6;
+    case TAG_CPU_ARCH_V6KZ:
+	return bfd_mach_arm_6KZ;
+    case TAG_CPU_ARCH_V6T2:
+	return bfd_mach_arm_6T2;
+    case TAG_CPU_ARCH_V6K:
+	return bfd_mach_arm_6K;
+    case TAG_CPU_ARCH_V7:
+	return bfd_mach_arm_7;
+    case TAG_CPU_ARCH_V6_M:
+	return bfd_mach_arm_6M;
+    case TAG_CPU_ARCH_V6S_M:
+	return bfd_mach_arm_6SM;
+    case TAG_CPU_ARCH_V7E_M:
+	return bfd_mach_arm_7EM;
+    case TAG_CPU_ARCH_V8:
+	return bfd_mach_arm_8;
+    case TAG_CPU_ARCH_V8R:
+	return bfd_mach_arm_8R;
+    case TAG_CPU_ARCH_V8M_BASE:
+	return bfd_mach_arm_8M_BASE;
+    case TAG_CPU_ARCH_V8M_MAIN:
+	return bfd_mach_arm_8M_MAIN;
+
     default:
+      /* Force entry to be added for any new known Tag_CPU_arch value.  */
+      BFD_ASSERT (arch > MAX_TAG_CPU_ARCH);
+
+      /* Unknown Tag_CPU_arch value.  */
       return bfd_mach_arm_unknown;
     }
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elf64-mips.c ./bfd/elf64-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elf64-mips.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/elf64-mips.c	2018-07-03 01:49:24.000000000 +0000
@@ -2421,6 +2421,166 @@ static reloc_howto_type micromips_elf64_
 	 0,			/* src_mask */
 	 0x00000000,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
+
+  /* Low 16 bits of symbol value.  Note that the high 16 bits of symbol values
+     must be zero.  This is used for relaxation.  */
+  HOWTO (R_MICROMIPS_HI0_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_HI0_LO16",/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (158),
+  EMPTY_HOWTO (159),
+  EMPTY_HOWTO (160),
+  EMPTY_HOWTO (161),
+
+  /* TLS general dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_GD,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GD",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_LDM,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_LDM",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_HI16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_LO16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_GOTTPREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GOTTPREL",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (167),
+  EMPTY_HOWTO (168),
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_HI16", /* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_LO16", /* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (171),
+
+  /* GP- and PC-relative relocations.  */
+  HOWTO (R_MICROMIPS_GPREL7_S2,	/* type */
+	 2,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 7,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf32_gprel16_reloc, /* special_function */
+	 "R_MICROMIPS_GPREL7_S2",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000007f,		/* src_mask */
+	 0x0000007f,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_MICROMIPS_PC23_S2,	/* type */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 23,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_PC23_S2",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x007fffff,		/* src_mask */
+	 0x007fffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 };
 
 static reloc_howto_type micromips_elf64_howto_table_rela[] =
@@ -2763,6 +2923,166 @@ static reloc_howto_type micromips_elf64_
 	 0,			/* src_mask */
 	 0x00000000,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
+
+  /* Low 16 bits of symbol value.  Note that the high 16 bits of symbol values
+     must be zero.  This is used for relaxation.  */
+  HOWTO (R_MICROMIPS_HI0_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_HI0_LO16",/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (158),
+  EMPTY_HOWTO (159),
+  EMPTY_HOWTO (160),
+  EMPTY_HOWTO (161),
+
+  /* TLS general dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_GD,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GD",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_LDM,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_LDM",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_HI16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_LO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_GOTTPREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GOTTPREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (167),
+  EMPTY_HOWTO (168),
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_HI16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_LO16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (171),
+
+  /* GP- and PC-relative relocations.  */
+  HOWTO (R_MICROMIPS_GPREL7_S2,	/* type */
+	 2,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 7,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf32_gprel16_reloc, /* special_function */
+	 "R_MICROMIPS_GPREL7_S2",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000007f,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_MICROMIPS_PC23_S2,	/* type */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 23,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_PC23_S2",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x007fffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 };
 
 /* GNU extension to record C++ vtable hierarchy */
@@ -3463,6 +3783,21 @@ static const struct elf_reloc_map microm
   { BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min },
   { BFD_RELOC_MICROMIPS_SCN_DISP, R_MICROMIPS_SCN_DISP - R_MICROMIPS_min },
   { BFD_RELOC_MICROMIPS_JALR, R_MICROMIPS_JALR - R_MICROMIPS_min },
+  /* There is no BFD reloc for R_MICROMIPS_HI0_LO16.  */
+  { BFD_RELOC_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_GD - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_LDM, R_MICROMIPS_TLS_LDM - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16,
+    R_MICROMIPS_TLS_DTPREL_HI16 - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16,
+    R_MICROMIPS_TLS_DTPREL_LO16 - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_GOTTPREL,
+    R_MICROMIPS_TLS_GOTTPREL - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_TPREL_HI16,
+    R_MICROMIPS_TLS_TPREL_HI16 - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_TPREL_LO16,
+    R_MICROMIPS_TLS_TPREL_LO16 - R_MICROMIPS_min },
+  /* There is no BFD reloc for R_MICROMIPS_GPREL7_S2.  */
+  /* There is no BFD reloc for R_MICROMIPS_PC23_S2.  */
 };
 /* Given a BFD reloc type, return a howto structure.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elf64-x86-64.c ./bfd/elf64-x86-64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elf64-x86-64.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/elf64-x86-64.c	2018-07-03 01:49:24.000000000 +0000
@@ -2431,8 +2431,13 @@ elf_x86_64_relocate_section (bfd *output
 	  continue;
 	}
 
+      r_symndx = htab->r_sym (rel->r_info);
       converted_reloc = (r_type & R_X86_64_converted_reloc_bit) != 0;
-      r_type &= ~R_X86_64_converted_reloc_bit;
+      if (converted_reloc)
+	{
+	  r_type &= ~R_X86_64_converted_reloc_bit;
+	  rel->r_info = htab->r_info (r_symndx, r_type);
+	}
 
       if (r_type >= (int) R_X86_64_standard)
 	return _bfd_unrecognized_reloc (input_bfd, input_section, r_type);
@@ -2443,7 +2448,6 @@ elf_x86_64_relocate_section (bfd *output
       else
 	howto = (x86_64_elf_howto_table
 		 + ARRAY_SIZE (x86_64_elf_howto_table) - 1);
-      r_symndx = htab->r_sym (rel->r_info);
       h = NULL;
       sym = NULL;
       sec = NULL;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elfn32-mips.c ./bfd/elfn32-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elfn32-mips.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/elfn32-mips.c	2018-07-03 01:49:25.000000000 +0000
@@ -2399,6 +2399,166 @@ static reloc_howto_type elf_micromips_ho
 	 0,			/* src_mask */
 	 0x00000000,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
+
+  /* Low 16 bits of symbol value.  Note that the high 16 bits of symbol values
+     must be zero.  This is used for relaxation.  */
+  HOWTO (R_MICROMIPS_HI0_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_HI0_LO16",/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (158),
+  EMPTY_HOWTO (159),
+  EMPTY_HOWTO (160),
+  EMPTY_HOWTO (161),
+
+  /* TLS general dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_GD,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GD",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_LDM,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_LDM",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_HI16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_LO16",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_GOTTPREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GOTTPREL",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (167),
+  EMPTY_HOWTO (168),
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_HI16", /* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_LO16", /* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (171),
+
+  /* GP- and PC-relative relocations.  */
+  HOWTO (R_MICROMIPS_GPREL7_S2,	/* type */
+	 2,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 7,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf32_gprel16_reloc, /* special_function */
+	 "R_MICROMIPS_GPREL7_S2",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x0000007f,		/* src_mask */
+	 0x0000007f,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_MICROMIPS_PC23_S2,	/* type */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 23,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_PC23_S2",	/* name */
+	 TRUE,			/* partial_inplace */
+	 0x007fffff,		/* src_mask */
+	 0x007fffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 };
 
 static reloc_howto_type elf_micromips_howto_table_rela[] =
@@ -2741,6 +2901,166 @@ static reloc_howto_type elf_micromips_ho
 	 0,			/* src_mask */
 	 0x00000000,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
+
+  /* Low 16 bits of symbol value.  Note that the high 16 bits of symbol values
+     must be zero.  This is used for relaxation.  */
+  HOWTO (R_MICROMIPS_HI0_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_HI0_LO16",/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (158),
+  EMPTY_HOWTO (159),
+  EMPTY_HOWTO (160),
+  EMPTY_HOWTO (161),
+
+  /* TLS general dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_GD,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GD",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic variable reference.  */
+  HOWTO (R_MICROMIPS_TLS_LDM,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_LDM",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_HI16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS local dynamic offset.  */
+  HOWTO (R_MICROMIPS_TLS_DTPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_DTPREL_LO16",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_GOTTPREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_GOTTPREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (167),
+  EMPTY_HOWTO (168),
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_HI16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_HI16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  /* TLS thread pointer offset.  */
+  HOWTO (R_MICROMIPS_TLS_TPREL_LO16,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_TLS_TPREL_LO16", /* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (171),
+
+  /* GP- and PC-relative relocations.  */
+  HOWTO (R_MICROMIPS_GPREL7_S2,	/* type */
+	 2,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 7,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf32_gprel16_reloc, /* special_function */
+	 "R_MICROMIPS_GPREL7_S2",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x0000007f,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_MICROMIPS_PC23_S2,	/* type */
+	 2,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 23,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed, /* complain_on_overflow */
+	 _bfd_mips_elf_generic_reloc, /* special_function */
+	 "R_MICROMIPS_PC23_S2",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0,			/* src_mask */
+	 0x007fffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 };
 
 /* GNU extension to record C++ vtable hierarchy */
@@ -3291,6 +3611,21 @@ static const struct elf_reloc_map microm
   { BFD_RELOC_MICROMIPS_CALL_LO16, R_MICROMIPS_CALL_LO16 - R_MICROMIPS_min },
   { BFD_RELOC_MICROMIPS_SCN_DISP, R_MICROMIPS_SCN_DISP - R_MICROMIPS_min },
   { BFD_RELOC_MICROMIPS_JALR, R_MICROMIPS_JALR - R_MICROMIPS_min },
+  /* There is no BFD reloc for R_MICROMIPS_HI0_LO16.  */
+  { BFD_RELOC_MICROMIPS_TLS_GD, R_MICROMIPS_TLS_GD - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_LDM, R_MICROMIPS_TLS_LDM - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16,
+    R_MICROMIPS_TLS_DTPREL_HI16 - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16,
+    R_MICROMIPS_TLS_DTPREL_LO16 - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_GOTTPREL,
+    R_MICROMIPS_TLS_GOTTPREL - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_TPREL_HI16,
+    R_MICROMIPS_TLS_TPREL_HI16 - R_MICROMIPS_min },
+  { BFD_RELOC_MICROMIPS_TLS_TPREL_LO16,
+    R_MICROMIPS_TLS_TPREL_LO16 - R_MICROMIPS_min },
+  /* There is no BFD reloc for R_MICROMIPS_GPREL7_S2.  */
+  /* There is no BFD reloc for R_MICROMIPS_PC23_S2.  */
 };
 
 /* Given a BFD reloc type, return a howto structure.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elfxx-mips.c ./bfd/elfxx-mips.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/elfxx-mips.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/elfxx-mips.c	2018-07-03 01:49:25.000000000 +0000
@@ -7844,6 +7844,7 @@ _bfd_mips_elf_create_dynamic_sections (b
 	    return FALSE;
 
 	  h = (struct elf_link_hash_entry *) bh;
+	  h->mark = 1;
 	  h->non_elf = 0;
 	  h->def_regular = 1;
 	  h->type = STT_SECTION;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/libbfd.h ./bfd/libbfd.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/libbfd.h	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/libbfd.h	2018-07-03 01:49:25.000000000 +0000
@@ -282,6 +282,7 @@ extern int bfd_generic_stat_arch_elt
 #define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup
 extern bfd_boolean _bfd_archive_close_and_cleanup
   (bfd *) ATTRIBUTE_HIDDEN;
+extern void _bfd_unlink_from_archive_parent (bfd *) ATTRIBUTE_HIDDEN;
 #define _bfd_generic_bfd_free_cached_info _bfd_bool_bfd_true
 extern bfd_boolean _bfd_generic_new_section_hook
   (bfd *, asection *) ATTRIBUTE_HIDDEN;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/libbfd-in.h ./bfd/libbfd-in.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/libbfd-in.h	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/libbfd-in.h	2018-07-03 01:49:25.000000000 +0000
@@ -277,6 +277,7 @@ extern int bfd_generic_stat_arch_elt
 #define _bfd_generic_close_and_cleanup _bfd_archive_close_and_cleanup
 extern bfd_boolean _bfd_archive_close_and_cleanup
   (bfd *) ATTRIBUTE_HIDDEN;
+extern void _bfd_unlink_from_archive_parent (bfd *) ATTRIBUTE_HIDDEN;
 #define _bfd_generic_bfd_free_cached_info _bfd_bool_bfd_true
 extern bfd_boolean _bfd_generic_new_section_hook
   (bfd *, asection *) ATTRIBUTE_HIDDEN;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/mach-o.c ./bfd/mach-o.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/mach-o.c	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/mach-o.c	2018-07-03 01:49:25.000000000 +0000
@@ -5532,6 +5532,13 @@ bfd_mach_o_fat_extract (bfd *abfd,
   return NULL;
 }
 
+static bfd_boolean
+bfd_mach_o_fat_close_and_cleanup (bfd *abfd)
+{
+  _bfd_unlink_from_archive_parent (abfd);
+  return TRUE;
+}
+
 int
 bfd_mach_o_lookup_command (bfd *abfd,
 			   bfd_mach_o_load_command_type type,
@@ -6026,7 +6033,7 @@ bfd_mach_o_free_cached_info (bfd *abfd)
 /* Not yet handled: creating an archive.  */
 #define bfd_mach_o_mkarchive			  _bfd_noarchive_mkarchive
 
-#define bfd_mach_o_close_and_cleanup		  _bfd_bool_bfd_true
+#define bfd_mach_o_close_and_cleanup		  bfd_mach_o_fat_close_and_cleanup
 
 /* Not used.  */
 #define bfd_mach_o_generic_stat_arch_elt	  bfd_mach_o_fat_stat_arch_elt
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/bfd/version.h	2018-07-02 01:49:42.000000000 +0000
+++ ./bfd/version.h	2018-07-03 01:49:25.000000000 +0000
@@ -16,7 +16,7 @@
 
    In releases, the date is not included in either version strings or
    sonames.  */
-#define BFD_VERSION_DATE 20180702
+#define BFD_VERSION_DATE 20180703
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/djunpack.bat	2018-07-02 01:54:14.000000000 +0000
+++ ./djunpack.bat	2018-07-03 01:53:59.000000000 +0000
@@ -17,8 +17,8 @@ Rem
 Rem The following 2 lines need to be changed with each new GDB release, to
 Rem be identical to the name of the top-level directory where the GDB
 Rem distribution unpacks itself.
-set GDBVER=$package-8.1.50.20180702
-if "%GDBVER%"=="$package-8.1.50.20180702" GoTo EnvOk
+set GDBVER=$package-8.1.50.20180703
+if "%GDBVER%"=="$package-8.1.50.20180703" GoTo EnvOk
 Rem If their environment space is too small, re-exec with a larger one
 command.com /e:4096 /c %0 %1
 GoTo End
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/arm-tdep.c ./gdb/arm-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/arm-tdep.c	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/arm-tdep.c	2018-07-03 01:49:26.000000000 +0000
@@ -9572,7 +9572,8 @@ _initialize_arm_tdep (void)
 
 
   arm_disassembler_options = xstrdup ("reg-names-std");
-  const disasm_options_t *disasm_options = disassembler_options_arm ();
+  const disasm_options_t *disasm_options
+    = &disassembler_options_arm ()->options;
   int num_disassembly_styles = 0;
   for (i = 0; disasm_options->name[i] != NULL; i++)
     if (CONST_STRNEQ (disasm_options->name[i], "reg-names-"))
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/ChangeLog	2018-07-02 01:49:44.000000000 +0000
+++ ./gdb/ChangeLog	2018-07-03 01:49:26.000000000 +0000
@@ -1,3 +1,44 @@
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+	    Simon Marchi  <simon.marchi@polymtl.ca>
+
+	PR tdep/8282
+	* disasm.h (gdb_disassembler): Add
+	`m_disassembler_options_holder'. member
+	* disasm.c (get_all_disassembler_options): New function.
+	(gdb_disassembler::gdb_disassembler): Use it.
+	(gdb_buffered_insn_length_init_dis): Likewise.
+	(gdb_buffered_insn_length): Adjust accordingly.
+	(set_disassembler_options): Handle options with arguments.
+	(show_disassembler_options_sfunc): Likewise.  Add a leading new
+	line if showing options with descriptions.
+	(disassembler_options_completer): Adapt to using the
+	`disasm_options_and_args_t' structure.
+	* mips-tdep.c (mips_disassembler_options): New variable.
+	(mips_disassembler_options_o32): Likewise.
+	(mips_disassembler_options_n32): Likewise.
+	(mips_disassembler_options_n64): Likewise.
+	(gdb_print_insn_mips): Don't set `disassembler_options'.
+	(gdb_print_insn_mips_n32, gdb_print_insn_mips_n64): Remove
+	functions.
+	(mips_gdbarch_init): Always set `gdbarch_print_insn' to
+	`gdb_print_insn_mips'.  Set `gdbarch_disassembler_options',
+	`gdbarch_disassembler_options_implicit' and
+	`gdbarch_valid_disassembler_options'.
+	* arm-tdep.c (_initialize_arm_tdep): Adapt to using the
+	`disasm_options_and_args_t' structure.
+	* gdbarch.sh (disassembler_options_implicit): New `gdbarch'
+	method.
+	(valid_disassembler_options): Switch from `disasm_options_t' to
+	the `disasm_options_and_args_t' structure.
+	* NEWS: Document `set disassembler-options' support for the MIPS
+	target.
+	* gdbarch.h: Regenerate.
+	* gdbarch.c: Regenerate.
+
+2018-07-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
+	* riscv-tdep.c (riscv_register_aliases): Swap "fp" and "s0" entries.
+
 2018-06-29  Joel Brobecker  <brobecker@adacore.com>
 
 	* amd64-darwin-tdep.c (x86_darwin_init_abi_64): Add missing
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/disasm.c ./gdb/disasm.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/disasm.c	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/disasm.c	2018-07-03 01:49:26.000000000 +0000
@@ -722,6 +722,31 @@ fprintf_disasm (void *stream, const char
   return 0;
 }
 
+/* Combine implicit and user disassembler options and return them
+   in a newly-created string.  */
+
+static std::string
+get_all_disassembler_options (struct gdbarch *gdbarch)
+{
+  const char *implicit = gdbarch_disassembler_options_implicit (gdbarch);
+  const char *options = get_disassembler_options (gdbarch);
+  const char *comma = ",";
+
+  if (implicit == nullptr)
+    {
+      implicit = "";
+      comma = "";
+    }
+
+  if (options == nullptr)
+    {
+      options = "";
+      comma = "";
+    }
+
+  return string_printf ("%s%s%s", implicit, comma, options);
+}
+
 gdb_disassembler::gdb_disassembler (struct gdbarch *gdbarch,
 				    struct ui_file *file,
 				    di_read_memory_ftype read_memory_func)
@@ -746,7 +771,9 @@ gdb_disassembler::gdb_disassembler (stru
   m_di.endian = gdbarch_byte_order (gdbarch);
   m_di.endian_code = gdbarch_byte_order_for_code (gdbarch);
   m_di.application_data = this;
-  m_di.disassembler_options = get_disassembler_options (gdbarch);
+  m_disassembler_options_holder = get_all_disassembler_options (gdbarch);
+  if (!m_disassembler_options_holder.empty ())
+    m_di.disassembler_options = m_disassembler_options_holder.c_str ();
   disassemble_init_for_target (&m_di);
 }
 
@@ -833,13 +860,16 @@ gdb_buffered_insn_length_fprintf (void *
   return 0;
 }
 
-/* Initialize a struct disassemble_info for gdb_buffered_insn_length.  */
+/* Initialize a struct disassemble_info for gdb_buffered_insn_length.
+   Upon return, *DISASSEMBLER_OPTIONS_HOLDER owns the string pointed
+   to by DI.DISASSEMBLER_OPTIONS.  */
 
 static void
 gdb_buffered_insn_length_init_dis (struct gdbarch *gdbarch,
 				   struct disassemble_info *di,
 				   const gdb_byte *insn, int max_len,
-				   CORE_ADDR addr)
+				   CORE_ADDR addr,
+				   std::string *disassembler_options_holder)
 {
   init_disassemble_info (di, NULL, gdb_buffered_insn_length_fprintf);
 
@@ -855,7 +885,9 @@ gdb_buffered_insn_length_init_dis (struc
   di->endian = gdbarch_byte_order (gdbarch);
   di->endian_code = gdbarch_byte_order_for_code (gdbarch);
 
-  di->disassembler_options = get_disassembler_options (gdbarch);
+  *disassembler_options_holder = get_all_disassembler_options (gdbarch);
+  if (!disassembler_options_holder->empty ())
+    di->disassembler_options = disassembler_options_holder->c_str ();
   disassemble_init_for_target (di);
 }
 
@@ -867,8 +899,10 @@ gdb_buffered_insn_length (struct gdbarch
 			  const gdb_byte *insn, int max_len, CORE_ADDR addr)
 {
   struct disassemble_info di;
+  std::string disassembler_options_holder;
 
-  gdb_buffered_insn_length_init_dis (gdbarch, &di, insn, max_len, addr);
+  gdb_buffered_insn_length_init_dis (gdbarch, &di, insn, max_len, addr,
+				     &disassembler_options_holder);
 
   return gdbarch_print_insn (gdbarch, addr, &di);
 }
@@ -887,6 +921,7 @@ set_disassembler_options (char *prospect
 {
   struct gdbarch *gdbarch = get_current_arch ();
   char **disassembler_options = gdbarch_disassembler_options (gdbarch);
+  const disasm_options_and_args_t *valid_options_and_args;
   const disasm_options_t *valid_options;
   char *options = remove_whitespace_and_extra_commas (prospective_options);
   const char *opt;
@@ -903,20 +938,42 @@ set_disassembler_options (char *prospect
       return;
     }
 
-  valid_options = gdbarch_valid_disassembler_options (gdbarch);
-  if (valid_options  == NULL)
+  valid_options_and_args = gdbarch_valid_disassembler_options (gdbarch);
+  if (valid_options_and_args == NULL)
     {
       fprintf_filtered (gdb_stdlog, _("\
 'set disassembler-options ...' is not supported on this architecture.\n"));
       return;
     }
 
+  valid_options = &valid_options_and_args->options;
+
   /* Verify we have valid disassembler options.  */
   FOR_EACH_DISASSEMBLER_OPTION (opt, options)
     {
       size_t i;
       for (i = 0; valid_options->name[i] != NULL; i++)
-	if (disassembler_options_cmp (opt, valid_options->name[i]) == 0)
+	if (valid_options->arg != NULL && valid_options->arg[i] != NULL)
+	  {
+	    size_t len = strlen (valid_options->name[i]);
+	    bool found = false;
+	    const char *arg;
+	    size_t j;
+
+	    if (memcmp (opt, valid_options->name[i], len) != 0)
+	      continue;
+	    arg = opt + len;
+	    for (j = 0; valid_options->arg[i]->values[j] != NULL; j++)
+	      if (disassembler_options_cmp
+		    (arg, valid_options->arg[i]->values[j]) == 0)
+		{
+		  found = true;
+		  break;
+		}
+	    if (found)
+	      break;
+	  }
+	else if (disassembler_options_cmp (opt, valid_options->name[i]) == 0)
 	  break;
       if (valid_options->name[i] == NULL)
 	{
@@ -943,6 +1000,8 @@ show_disassembler_options_sfunc (struct 
 				 struct cmd_list_element *c, const char *value)
 {
   struct gdbarch *gdbarch = get_current_arch ();
+  const disasm_options_and_args_t *valid_options_and_args;
+  const disasm_option_arg_t *valid_args;
   const disasm_options_t *valid_options;
 
   const char *options = get_disassembler_options (gdbarch);
@@ -952,11 +1011,13 @@ show_disassembler_options_sfunc (struct 
   fprintf_filtered (file, _("The current disassembler options are '%s'\n"),
 		    options);
 
-  valid_options = gdbarch_valid_disassembler_options (gdbarch);
+  valid_options_and_args = gdbarch_valid_disassembler_options (gdbarch);
 
-  if (valid_options == NULL)
+  if (valid_options_and_args == NULL)
     return;
 
+  valid_options = &valid_options_and_args->options;
+
   fprintf_filtered (file, _("\n\
 The following disassembler options are supported for use with the\n\
 'set disassembler-options <option>[,<option>...]' command:\n"));
@@ -965,10 +1026,15 @@ The following disassembler options are s
     {
       size_t i, max_len = 0;
 
+      fprintf_filtered (file, "\n");
+
       /* Compute the length of the longest option name.  */
       for (i = 0; valid_options->name[i] != NULL; i++)
 	{
 	  size_t len = strlen (valid_options->name[i]);
+
+	  if (valid_options->arg != NULL && valid_options->arg[i] != NULL)
+	    len += strlen (valid_options->arg[i]->name);
 	  if (max_len < len)
 	    max_len = len;
 	}
@@ -976,10 +1042,17 @@ The following disassembler options are s
       for (i = 0, max_len++; valid_options->name[i] != NULL; i++)
 	{
 	  fprintf_filtered (file, "  %s", valid_options->name[i]);
+	  if (valid_options->arg != NULL && valid_options->arg[i] != NULL)
+	    fprintf_filtered (file, "%s", valid_options->arg[i]->name);
 	  if (valid_options->description[i] != NULL)
-	    fprintf_filtered (file, "%*c %s",
-			      (int)(max_len - strlen (valid_options->name[i])), ' ',
-			      valid_options->description[i]);
+	    {
+	      size_t len = strlen (valid_options->name[i]);
+
+	      if (valid_options->arg != NULL && valid_options->arg[i] != NULL)
+		len += strlen (valid_options->arg[i]->name);
+	      fprintf_filtered (file, "%*c %s", (int) (max_len - len), ' ',
+				valid_options->description[i]);
+	    }
 	  fprintf_filtered (file, "\n");
 	}
     }
@@ -990,12 +1063,33 @@ The following disassembler options are s
       for (i = 0; valid_options->name[i] != NULL; i++)
 	{
 	  fprintf_filtered (file, "%s", valid_options->name[i]);
+	  if (valid_options->arg != NULL && valid_options->arg[i] != NULL)
+	    fprintf_filtered (file, "%s", valid_options->arg[i]->name);
 	  if (valid_options->name[i + 1] != NULL)
 	    fprintf_filtered (file, ", ");
 	  wrap_here ("  ");
 	}
       fprintf_filtered (file, "\n");
     }
+
+  valid_args = valid_options_and_args->args;
+  if (valid_args != NULL)
+    {
+      size_t i, j;
+
+      for (i = 0; valid_args[i].name != NULL; i++)
+	{
+	  fprintf_filtered (file, _("\n\
+  For the options above, the following values are supported for \"%s\":\n   "),
+			    valid_args[i].name);
+	  for (j = 0; valid_args[i].values[j] != NULL; j++)
+	    {
+	      fprintf_filtered (file, " %s", valid_args[i].values[j]);
+	      wrap_here ("   ");
+	    }
+	  fprintf_filtered (file, "\n");
+	}
+    }
 }
 
 /* A completion function for "set disassembler".  */
@@ -1006,10 +1100,13 @@ disassembler_options_completer (struct c
 				const char *text, const char *word)
 {
   struct gdbarch *gdbarch = get_current_arch ();
-  const disasm_options_t *opts = gdbarch_valid_disassembler_options (gdbarch);
+  const disasm_options_and_args_t *opts_and_args
+    = gdbarch_valid_disassembler_options (gdbarch);
 
-  if (opts != NULL)
+  if (opts_and_args != NULL)
     {
+      const disasm_options_t *opts = &opts_and_args->options;
+
       /* Only attempt to complete on the last option text.  */
       const char *separator = strrchr (text, ',');
       if (separator != NULL)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/disasm.h ./gdb/disasm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/disasm.h	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/disasm.h	2018-07-03 01:49:26.000000000 +0000
@@ -66,6 +66,11 @@ private:
   /* Stores data required for disassembling instructions in
      opcodes.  */
   struct disassemble_info m_di;
+
+  /* If we own the string in `m_di.disassembler_options', we do so
+     using this field.  */
+  std::string m_disassembler_options_holder;
+
   CORE_ADDR m_err_memaddr;
 
   static int dis_asm_read_memory (bfd_vma memaddr, gdb_byte *myaddr,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/ChangeLog	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/doc/ChangeLog	2018-07-03 01:49:26.000000000 +0000
@@ -1,3 +1,9 @@
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+
+	PR tdep/8282
+	* gdb.texinfo (Source and Machine Code): Document `set
+	disassembler-options' support for the MIPS target.
+
 2018-06-28  Petr Tesarik  <ptesarik@suse.cz>
 
 	* gdb.texinfo (Files): Document "add-symbol-file -o offset".
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gcore.1	2018-07-02 01:54:08.000000000 +0000
+++ ./gdb/doc/gcore.1	2018-07-03 01:53:52.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2018-07-02" "gdb-8.1.50.20180702-git" "GNU Development Tools"
+.TH GCORE 1 "2018-07-03" "gdb-8.1.50.20180703-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.1	2018-07-02 01:54:07.000000000 +0000
+++ ./gdb/doc/gdb.1	2018-07-03 01:53:52.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2018-07-02" "gdb-8.1.50.20180702-git" "GNU Development Tools"
+.TH GDB 1 "2018-07-03" "gdb-8.1.50.20180703-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb-add-index.1 ./gdb/doc/gdb-add-index.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb-add-index.1	2018-07-02 01:54:08.000000000 +0000
+++ ./gdb/doc/gdb-add-index.1	2018-07-03 01:53:53.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB-ADD-INDEX 1"
-.TH GDB-ADD-INDEX 1 "2018-07-02" "gdb-8.1.50.20180702-git" "GNU Development Tools"
+.TH GDB-ADD-INDEX 1 "2018-07-03" "gdb-8.1.50.20180703-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info	2018-07-02 01:54:04.000000000 +0000
+++ ./gdb/doc/gdb.info	2018-07-03 01:53:49.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -40,11 +40,11 @@ developing GNU and promoting software fr
 Indirect:
 gdb.info-1: 1716
 gdb.info-2: 301867
-gdb.info-3: 604504
-gdb.info-4: 905844
-gdb.info-5: 1206100
-gdb.info-6: 1501782
-gdb.info-7: 1803831
+gdb.info-3: 604510
+gdb.info-4: 905850
+gdb.info-5: 1206106
+gdb.info-6: 1501788
+gdb.info-7: 1803837
 
 Tag Table:
 (Indirect)
@@ -154,635 +154,635 @@ Node: Search301867
 Node: Source Path302675
 Ref: set substitute-path309041
 Node: Machine Code311261
-Node: Data321604
-Node: Expressions329337
-Node: Ambiguous Expressions331440
-Node: Variables334670
-Node: Arrays341268
-Node: Output Formats343799
-Ref: Output Formats-Footnote-1347172
-Node: Memory347329
-Ref: addressable memory unit353514
-Node: Auto Display355008
-Node: Print Settings359550
-Ref: set print entry-values367712
-Node: Pretty Printing379022
-Node: Pretty-Printer Introduction379536
-Node: Pretty-Printer Example381291
-Node: Pretty-Printer Commands382069
-Node: Value History384493
-Node: Convenience Vars386915
-Node: Convenience Funs393519
-Node: Registers399008
-Ref: standard registers400215
-Ref: Registers-Footnote-1405166
-Node: Floating Point Hardware405561
-Node: Vector Unit406093
-Node: OS Information406480
-Ref: linux info os infotypes408504
-Node: Memory Region Attributes413095
-Node: Dump/Restore Files417759
-Node: Core File Generation420162
-Ref: set use-coredump-filter421722
-Ref: set dump-excluded-mappings423170
-Node: Character Sets423452
-Node: Caching Target Data429817
-Ref: Caching Target Data-Footnote-1432545
-Node: Searching Memory432783
-Node: Value Sizes435926
-Node: Optimized Code437579
-Node: Inline Functions439256
-Node: Tail Call Frames441883
-Ref: set debug entry-values444020
-Node: Macros448082
-Ref: Macros-Footnote-1455658
-Node: Tracepoints455811
-Node: Set Tracepoints457873
-Node: Create and Delete Tracepoints460811
-Node: Enable and Disable Tracepoints467158
-Node: Tracepoint Passcounts468398
-Node: Tracepoint Conditions469809
-Node: Trace State Variables471503
-Node: Tracepoint Actions473698
-Node: Listing Tracepoints480481
-Node: Listing Static Tracepoint Markers482183
-Node: Starting and Stopping Trace Experiments484031
-Ref: disconnected tracing485776
-Node: Tracepoint Restrictions490196
-Node: Analyze Collected Data493965
-Node: tfind495271
-Node: tdump499753
-Node: save tracepoints502268
-Node: Tracepoint Variables502764
-Node: Trace Files503892
-Node: Overlays506268
-Node: How Overlays Work506988
-Ref: A code overlay509543
-Node: Overlay Commands512956
-Node: Automatic Overlay Debugging517138
-Node: Overlay Sample Program519277
-Node: Languages521014
-Node: Setting522177
-Node: Filenames523878
-Node: Manually524689
-Node: Automatically525898
-Node: Show526959
-Ref: show language527247
-Node: Checks528281
-Node: Type Checking529286
-Node: Range Checking531115
-Node: Supported Languages533516
-Node: C534853
-Node: C Operators535817
-Node: C Constants540156
-Node: C Plus Plus Expressions543035
-Node: C Defaults546395
-Node: C Checks547063
-Node: Debugging C547623
-Node: Debugging C Plus Plus548107
-Node: Decimal Floating Point552994
-Node: D554264
-Node: Go554522
-Node: Objective-C555616
-Node: Method Names in Commands556079
-Node: The Print Command with Objective-C557770
-Node: OpenCL C558421
-Node: OpenCL C Datatypes558696
-Node: OpenCL C Expressions559071
-Node: OpenCL C Operators559428
-Node: Fortran559660
-Node: Fortran Operators560381
-Node: Fortran Defaults561237
-Node: Special Fortran Commands561622
-Node: Pascal562128
-Node: Rust562639
-Node: Modula-2565726
-Node: M2 Operators566699
-Node: Built-In Func/Proc569697
-Node: M2 Constants572611
-Node: M2 Types574212
-Node: M2 Defaults577430
-Node: Deviations578031
-Node: M2 Checks579132
-Node: M2 Scope579949
-Node: GDB/M2580973
-Node: Ada581886
-Node: Ada Mode Intro583192
-Node: Omissions from Ada584694
-Node: Additions to Ada589049
-Node: Overloading support for Ada592977
-Node: Stopping Before Main Program594617
-Node: Ada Exceptions595164
-Node: Ada Tasks596363
-Node: Ada Tasks and Core Files604504
-Node: Ravenscar Profile605351
-Node: Ada Settings606422
-Node: Ada Glitches607844
-Node: Unsupported Languages611852
-Node: Symbols612542
-Ref: quoting names613145
-Node: Altering638894
-Node: Assignment639932
-Node: Jumping643038
-Node: Signaling645112
-Node: Returning648041
-Node: Calling651392
-Node: Patching656006
-Node: Compiling and Injecting Code657120
-Ref: set debug compile660577
-Node: GDB Files670578
-Node: Files671367
-Ref: Shared Libraries685084
-Ref: Files-Footnote-1697282
-Node: File Caching697411
-Node: Separate Debug Files698545
-Ref: debug-file-directory701655
-Node: MiniDebugInfo710270
-Node: Index Files712721
-Node: Symbol Errors715637
-Node: Data Files719253
-Node: Targets720209
-Node: Active Targets721689
-Node: Target Commands722763
-Ref: load727152
-Ref: flash-erase728345
-Node: Byte Order728405
-Node: Remote Debugging729844
-Node: Connecting731106
-Ref: --multi Option in Types of Remote Connnections733332
-Ref: Attaching in Types of Remote Connections734747
-Ref: Host and target files735248
-Node: File Transfer741723
-Node: Server742662
-Ref: Running gdbserver744238
-Ref: Attaching to a program746456
-Ref: Other Command-Line Arguments for gdbserver748981
-Ref: Monitor Commands for gdbserver752197
-Ref: Server-Footnote-1757453
-Node: Remote Configuration757573
-Ref: set remotebreak758833
-Ref: set remote hardware-watchpoint-limit760296
-Ref: set remote hardware-breakpoint-limit760296
-Ref: set remote hardware-watchpoint-length-limit760522
-Ref: set remote exec-file760937
-Node: Remote Stub772946
-Node: Stub Contents775841
-Node: Bootstrapping777948
-Node: Debug Session781763
-Node: Configurations783804
-Node: Native784573
-Node: BSD libkvm Interface785099
-Node: Process Information786151
-Node: DJGPP Native790390
-Node: Cygwin Native796944
-Node: Non-debug DLL Symbols801865
-Node: Hurd Native806104
-Node: Darwin811360
-Node: Embedded OS812621
-Node: Embedded Processors813032
-Node: ARC814022
-Node: ARM814569
-Node: M68K817116
-Node: MicroBlaze817289
-Node: MIPS Embedded818738
-Node: OpenRISC 1000820035
-Node: PowerPC Embedded820941
-Node: AVR824170
-Node: CRIS824542
-Node: Super-H825518
-Node: Architectures826577
-Node: AArch64827026
-Node: i386827432
-Ref: i386-Footnote-1831642
-Node: Alpha831728
-Node: MIPS831861
-Node: HPPA835755
-Node: SPU836273
-Node: PowerPC838459
-Node: Nios II839194
-Node: Sparc64839599
-Node: Controlling GDB841954
-Node: Prompt842850
-Node: Editing844568
-Node: Command History845511
-Node: Screen Size849817
-Node: Numbers851826
-Node: ABI853805
-Node: Auto-loading856978
-Ref: set auto-load off858353
-Ref: show auto-load858989
-Ref: info auto-load859768
-Node: Init File in the Current Directory862735
-Ref: set auto-load local-gdbinit863310
-Ref: show auto-load local-gdbinit863492
-Ref: info auto-load local-gdbinit863656
-Node: libthread_db.so.1 file863804
-Ref: set auto-load libthread-db864743
-Ref: show auto-load libthread-db864874
-Ref: info auto-load libthread-db865011
-Node: Auto-loading safe path865195
-Ref: set auto-load safe-path866501
-Ref: show auto-load safe-path867240
-Ref: add-auto-load-safe-path867363
-Node: Auto-loading verbose mode870265
-Ref: set debug auto-load871428
-Ref: show debug auto-load871529
-Node: Messages/Warnings871651
-Ref: confirmation requests873085
-Node: Debugging Output874289
-Node: Other Misc Settings884107
-Node: Extending GDB885131
-Node: Sequences886984
-Node: Define887645
-Node: Hooks891725
-Node: Command Files894091
-Node: Output899164
-Ref: eval903966
-Node: Auto-loading sequences905844
-Ref: set auto-load gdb-scripts906339
-Ref: show auto-load gdb-scripts906463
-Ref: info auto-load gdb-scripts906593
-Node: Python906824
-Node: Python Commands907997
-Node: Python API910325
-Node: Basic Python912930
-Ref: prompt_hook923517
-Node: Exception Handling924115
-Node: Values From Inferior926611
-Node: Types In Python939808
-Node: Pretty Printing API949668
-Node: Selecting Pretty-Printers953564
-Node: Writing a Pretty-Printer955897
-Node: Type Printing API961219
-Node: Frame Filter API963835
-Node: Frame Decorator API971116
-Ref: frame_args974700
-Node: Writing a Frame Filter978030
-Node: Unwinding Frames in Python989504
-Node: Xmethods In Python994960
-Node: Xmethod API997856
-Node: Writing an Xmethod1001668
-Node: Inferiors In Python1007503
-Node: Events In Python1010647
-Node: Threads In Python1019565
-Node: Recordings In Python1022452
-Node: Commands In Python1029786
-Node: Parameters In Python1039199
-Node: Functions In Python1045140
-Node: Progspaces In Python1047357
-Node: Objfiles In Python1050858
-Node: Frames In Python1056637
-Node: Blocks In Python1063480
-Node: Symbols In Python1067842
-Node: Symbol Tables In Python1075070
-Node: Line Tables In Python1078293
-Node: Breakpoints In Python1081130
-Ref: python_breakpoint_thread1087453
-Node: Finish Breakpoints in Python1090486
-Node: Lazy Strings In Python1092592
-Node: Architectures In Python1094822
-Node: Python Auto-loading1097011
-Ref: set auto-load python-scripts1097640
-Ref: show auto-load python-scripts1097740
-Ref: info auto-load python-scripts1097846
-Node: Python modules1098980
-Node: gdb.printing1099366
-Node: gdb.types1100793
-Node: gdb.prompt1103805
-Node: Guile1105454
-Node: Guile Introduction1106113
-Node: Guile Commands1106984
-Node: Guile API1108838
-Node: Basic Guile1110835
-Node: Guile Configuration1116517
-Node: GDB Scheme Data Types1117493
-Node: Guile Exception Handling1119325
-Node: Values From Inferior In Guile1123359
-Node: Arithmetic In Guile1138894
-Node: Types In Guile1140525
-Ref: Fields of a type in Guile1148466
-Node: Guile Pretty Printing API1149854
-Node: Selecting Guile Pretty-Printers1155456
-Node: Writing a Guile Pretty-Printer1157832
-Node: Commands In Guile1163017
-Node: Parameters In Guile1173797
-Ref: Parameters In Guile-Footnote-11180678
-Node: Progspaces In Guile1180794
-Node: Objfiles In Guile1183382
-Node: Frames In Guile1185663
-Node: Blocks In Guile1192241
-Node: Symbols In Guile1197049
-Node: Symbol Tables In Guile1206100
-Node: Breakpoints In Guile1209063
-Node: Lazy Strings In Guile1219324
-Node: Architectures In Guile1221615
-Node: Disassembly In Guile1225922
-Node: I/O Ports in Guile1229124
-Node: Memory Ports in Guile1229680
-Node: Iterators In Guile1232946
-Node: Guile Auto-loading1237235
-Ref: set auto-load guile-scripts1237858
-Ref: show auto-load guile-scripts1237956
-Ref: info auto-load guile-scripts1238060
-Node: Guile Modules1239019
-Node: Guile Printing Module1239341
-Node: Guile Types Module1240160
-Node: Auto-loading extensions1241453
-Node: objfile-gdbdotext file1242651
-Ref: set auto-load scripts-directory1244087
-Ref: with-auto-load-dir1244463
-Ref: show auto-load scripts-directory1245281
-Ref: add-auto-load-scripts-directory1245361
-Node: dotdebug_gdb_scripts section1245837
-Node: Which flavor to choose?1249587
-Node: Multiple Extension Languages1251408
-Node: Aliases1252472
-Node: Interpreters1255337
-Node: TUI1258430
-Node: TUI Overview1259428
-Node: TUI Keys1261861
-Node: TUI Single Key Mode1264165
-Node: TUI Commands1265172
-Node: TUI Configuration1269111
-Node: Emacs1270417
-Node: GDB/MI1275854
-Node: GDB/MI General Design1277828
-Node: Context management1280348
-Node: Asynchronous and non-stop modes1284135
-Node: Thread groups1287109
-Node: GDB/MI Command Syntax1289387
-Node: GDB/MI Input Syntax1289630
-Node: GDB/MI Output Syntax1291180
-Node: GDB/MI Compatibility with CLI1294765
-Node: GDB/MI Development and Front Ends1295502
-Node: GDB/MI Output Records1297156
-Node: GDB/MI Result Records1297562
-Node: GDB/MI Stream Records1298912
-Node: GDB/MI Async Records1300177
-Node: GDB/MI Breakpoint Information1310614
-Node: GDB/MI Frame Information1314565
-Node: GDB/MI Thread Information1315651
-Node: GDB/MI Ada Exception Information1317121
-Node: GDB/MI Simple Examples1317671
-Node: GDB/MI Command Description Format1319879
-Node: GDB/MI Breakpoint Commands1320759
-Ref: -break-insert1327867
-Node: GDB/MI Catchpoint Commands1341322
-Node: Shared Library GDB/MI Catchpoint Commands1341690
-Node: Ada Exception GDB/MI Catchpoint Commands1343348
-Node: GDB/MI Program Context1346849
-Node: GDB/MI Thread Commands1351117
-Node: GDB/MI Ada Tasking Commands1354380
-Node: GDB/MI Program Execution1356652
-Node: GDB/MI Stack Manipulation1368686
-Ref: -stack-list-arguments1370585
-Ref: -stack-list-frames1374290
-Ref: -stack-list-locals1378153
-Ref: -stack-list-variables1379643
-Node: GDB/MI Variable Objects1381177
-Ref: -var-set-format1391142
-Ref: -var-list-children1392523
-Ref: -var-update1401331
-Ref: -var-set-frozen1404329
-Ref: -var-set-update-range1405126
-Ref: -var-set-visualizer1405655
-Node: GDB/MI Data Manipulation1407145
-Node: GDB/MI Tracepoint Commands1427319
-Node: GDB/MI Symbol Query1439110
-Node: GDB/MI File Commands1439799
-Node: GDB/MI Target Manipulation1444233
-Node: GDB/MI File Transfer Commands1450891
-Node: GDB/MI Ada Exceptions Commands1452214
-Node: GDB/MI Support Commands1453567
-Node: GDB/MI Miscellaneous Commands1458140
-Ref: -interpreter-exec1468474
-Node: Annotations1470814
-Node: Annotations Overview1471733
-Node: Server Prefix1474196
-Node: Prompting1474930
-Node: Errors1476447
-Node: Invalidation1477343
-Node: Annotations for Running1477822
-Node: Source Annotations1479356
-Node: JIT Interface1480285
-Node: Declarations1482084
-Node: Registering Code1483471
-Node: Unregistering Code1484443
-Node: Custom Debug Info1485070
-Node: Using JIT Debug Info Readers1486366
-Node: Writing JIT Debug Info Readers1487378
-Node: In-Process Agent1489573
-Ref: Control Agent1491516
-Node: In-Process Agent Protocol1492383
-Node: IPA Protocol Objects1493174
-Ref: agent expression object1494172
-Ref: tracepoint action object1494377
-Ref: tracepoint object1494457
-Node: IPA Protocol Commands1496987
-Node: GDB Bugs1498457
-Node: Bug Criteria1499189
-Node: Bug Reporting1501782
-Node: Command Line Editing1509611
-Node: Introduction and Notation1510263
-Node: Readline Interaction1511884
-Node: Readline Bare Essentials1513073
-Node: Readline Movement Commands1514854
-Node: Readline Killing Commands1515812
-Node: Readline Arguments1517728
-Node: Searching1518770
-Node: Readline Init File1520920
-Node: Readline Init File Syntax1522071
-Node: Conditional Init Constructs1537170
-Node: Sample Init File1539693
-Node: Bindable Readline Commands1542807
-Node: Commands For Moving1543859
-Node: Commands For History1544717
-Node: Commands For Text1548112
-Node: Commands For Killing1550835
-Node: Numeric Arguments1552975
-Node: Commands For Completion1554111
-Node: Keyboard Macros1556077
-Node: Miscellaneous Commands1556645
-Node: Readline vi Mode1560493
-Node: Using History Interactively1561403
-Node: History Interaction1561918
-Node: Event Designators1563340
-Node: Word Designators1564477
-Node: Modifiers1566112
-Node: In Memoriam1567333
-Node: Formatting Documentation1568216
-Ref: Formatting Documentation-Footnote-11571592
-Node: Installing GDB1571688
-Node: Requirements1572260
-Ref: Expat1572829
-Ref: MPFR1573779
-Node: Running Configure1576170
-Node: Separate Objdir1579949
-Node: Config Names1582928
-Node: Configure Options1584405
-Node: System-wide configuration1586776
-Node: System-wide Configuration Scripts1588736
-Node: Maintenance Commands1589920
-Ref: maint info breakpoints1591575
-Ref: maint check libthread-db1600040
-Node: Remote Protocol1613036
-Node: Overview1613728
-Ref: Binary Data1616273
-Node: Packets1618798
-Ref: thread-id syntax1619698
-Ref: extended mode1621143
-Ref: ? packet1621401
-Ref: bc1622867
-Ref: bs1623077
-Ref: read registers packet1624694
-Ref: cycle step packet1626549
-Ref: write register packet1629260
-Ref: step with signal packet1630239
-Ref: vCont packet1631715
-Ref: vCtrlC packet1634948
-Ref: vKill packet1637366
-Ref: X packet1638899
-Ref: insert breakpoint or watchpoint packet1639268
-Node: Stop Reply Packets1643594
-Ref: swbreak stop reason1646845
-Ref: thread create event1650442
-Ref: thread exit event1651645
-Node: General Query Packets1653854
-Ref: qCRC packet1656684
-Ref: QEnvironmentHexEncoded1659837
-Ref: QEnvironmentUnset1661067
-Ref: QEnvironmentReset1662011
-Ref: QSetWorkingDir packet1662955
-Ref: QNonStop1669406
-Ref: QCatchSyscalls1670082
-Ref: QPassSignals1671619
-Ref: QProgramSignals1672826
-Ref: QThreadEvents1674393
-Ref: qSearch memory1676411
-Ref: QStartNoAckMode1676919
-Ref: qSupported1677450
-Ref: multiprocess extensions1693457
-Ref: install tracepoint in tracing1695487
-Ref: qXfer read1700010
-Ref: qXfer auxiliary vector read1701617
-Ref: qXfer btrace read1701965
-Ref: qXfer btrace-conf read1703030
-Ref: qXfer executable filename read1703381
-Ref: qXfer target description read1703996
-Ref: qXfer library list read1704430
-Ref: qXfer svr4 library list read1705086
-Ref: qXfer memory map read1706939
-Ref: qXfer sdata read1707326
-Ref: qXfer siginfo read1707792
-Ref: qXfer spu read1708189
-Ref: qXfer threads read1708713
-Ref: qXfer traceframe info read1709116
-Ref: qXfer unwind info block1709534
-Ref: qXfer fdpic loadmap read1709768
-Ref: qXfer osdata read1710184
-Ref: qXfer write1710338
-Ref: qXfer siginfo write1711430
-Ref: qXfer spu write1711827
-Ref: General Query Packets-Footnote-11714683
-Node: Architecture-Specific Protocol Details1715010
-Node: ARM-Specific Protocol Details1715519
-Node: ARM Breakpoint Kinds1715767
-Node: MIPS-Specific Protocol Details1716098
-Node: MIPS Register packet Format1716381
-Node: MIPS Breakpoint Kinds1717308
-Node: Tracepoint Packets1717726
-Ref: QTEnable1727040
-Ref: QTDisable1727236
-Ref: qTfSTM1732773
-Ref: qTsSTM1732773
-Ref: qTSTMat1733850
-Ref: QTBuffer-size1735001
-Node: Host I/O Packets1736974
-Node: Interrupts1742554
-Ref: interrupting remote targets1742698
-Node: Notification Packets1744866
-Node: Remote Non-Stop1750291
-Node: Packet Acknowledgment1753407
-Node: Examples1755522
-Node: File-I/O Remote Protocol Extension1756116
-Node: File-I/O Overview1756578
-Node: Protocol Basics1758777
-Node: The F Request Packet1761006
-Node: The F Reply Packet1761907
-Node: The Ctrl-C Message1762825
-Node: Console I/O1764451
-Node: List of Supported Calls1765667
-Node: open1766029
-Node: close1768537
-Node: read1768920
-Node: write1769529
-Node: lseek1770300
-Node: rename1771184
-Node: unlink1772591
-Node: stat/fstat1773538
-Node: gettimeofday1774431
-Node: isatty1774867
-Node: system1775463
-Node: Protocol-specific Representation of Datatypes1777005
-Node: Integral Datatypes1777382
-Node: Pointer Values1778189
-Node: Memory Transfer1778893
-Node: struct stat1779513
-Node: struct timeval1781715
-Node: Constants1782232
-Node: Open Flags1782681
-Node: mode_t Values1783022
-Node: Errno Values1783514
-Node: Lseek Flags1784324
-Node: Limits1784509
-Node: File-I/O Examples1784869
-Node: Library List Format1785957
-Node: Library List Format for SVR4 Targets1788739
-Node: Memory Map Format1791206
-Node: Thread List Format1793730
-Node: Traceframe Info Format1794734
-Node: Branch Trace Format1796420
-Node: Branch Trace Configuration Format1798120
-Node: Agent Expressions1799294
-Node: General Bytecode Design1803831
-Node: Bytecode Descriptions1808625
-Node: Using Agent Expressions1822092
-Node: Varying Target Capabilities1824069
-Node: Rationale1825230
-Node: Target Descriptions1832619
-Node: Retrieving Descriptions1834562
-Node: Target Description Format1835647
-Node: Predefined Target Types1845522
-Node: Enum Target Types1846950
-Node: Standard Target Features1847945
-Node: AArch64 Features1849909
-Node: ARC Features1850484
-Node: ARM Features1852545
-Node: i386 Features1854059
-Node: MicroBlaze Features1856274
-Node: MIPS Features1856851
-Node: M68K Features1858042
-Node: NDS32 Features1858703
-Node: Nios II Features1859727
-Node: OpenRISC 1000 Features1860132
-Node: PowerPC Features1860498
-Node: S/390 and System z Features1861829
-Node: Sparc Features1863974
-Node: TIC6x Features1864879
-Node: Operating System Information1865428
-Node: Process list1866263
-Node: Trace File Format1867326
-Node: Index Section Format1870540
-Node: Man Pages1878466
-Node: gdb man1878936
-Node: gdbserver man1884972
-Node: gcore man1892169
-Node: gdbinit man1893111
-Node: gdb-add-index man1894020
-Ref: gdb-add-index1894129
-Node: Copying1895003
-Node: GNU Free Documentation License1932564
-Node: Concept Index1957711
-Node: Command and Variable Index2095125
+Node: Data321610
+Node: Expressions329343
+Node: Ambiguous Expressions331446
+Node: Variables334676
+Node: Arrays341274
+Node: Output Formats343805
+Ref: Output Formats-Footnote-1347178
+Node: Memory347335
+Ref: addressable memory unit353520
+Node: Auto Display355014
+Node: Print Settings359556
+Ref: set print entry-values367718
+Node: Pretty Printing379028
+Node: Pretty-Printer Introduction379542
+Node: Pretty-Printer Example381297
+Node: Pretty-Printer Commands382075
+Node: Value History384499
+Node: Convenience Vars386921
+Node: Convenience Funs393525
+Node: Registers399014
+Ref: standard registers400221
+Ref: Registers-Footnote-1405172
+Node: Floating Point Hardware405567
+Node: Vector Unit406099
+Node: OS Information406486
+Ref: linux info os infotypes408510
+Node: Memory Region Attributes413101
+Node: Dump/Restore Files417765
+Node: Core File Generation420168
+Ref: set use-coredump-filter421728
+Ref: set dump-excluded-mappings423176
+Node: Character Sets423458
+Node: Caching Target Data429823
+Ref: Caching Target Data-Footnote-1432551
+Node: Searching Memory432789
+Node: Value Sizes435932
+Node: Optimized Code437585
+Node: Inline Functions439262
+Node: Tail Call Frames441889
+Ref: set debug entry-values444026
+Node: Macros448088
+Ref: Macros-Footnote-1455664
+Node: Tracepoints455817
+Node: Set Tracepoints457879
+Node: Create and Delete Tracepoints460817
+Node: Enable and Disable Tracepoints467164
+Node: Tracepoint Passcounts468404
+Node: Tracepoint Conditions469815
+Node: Trace State Variables471509
+Node: Tracepoint Actions473704
+Node: Listing Tracepoints480487
+Node: Listing Static Tracepoint Markers482189
+Node: Starting and Stopping Trace Experiments484037
+Ref: disconnected tracing485782
+Node: Tracepoint Restrictions490202
+Node: Analyze Collected Data493971
+Node: tfind495277
+Node: tdump499759
+Node: save tracepoints502274
+Node: Tracepoint Variables502770
+Node: Trace Files503898
+Node: Overlays506274
+Node: How Overlays Work506994
+Ref: A code overlay509549
+Node: Overlay Commands512962
+Node: Automatic Overlay Debugging517144
+Node: Overlay Sample Program519283
+Node: Languages521020
+Node: Setting522183
+Node: Filenames523884
+Node: Manually524695
+Node: Automatically525904
+Node: Show526965
+Ref: show language527253
+Node: Checks528287
+Node: Type Checking529292
+Node: Range Checking531121
+Node: Supported Languages533522
+Node: C534859
+Node: C Operators535823
+Node: C Constants540162
+Node: C Plus Plus Expressions543041
+Node: C Defaults546401
+Node: C Checks547069
+Node: Debugging C547629
+Node: Debugging C Plus Plus548113
+Node: Decimal Floating Point553000
+Node: D554270
+Node: Go554528
+Node: Objective-C555622
+Node: Method Names in Commands556085
+Node: The Print Command with Objective-C557776
+Node: OpenCL C558427
+Node: OpenCL C Datatypes558702
+Node: OpenCL C Expressions559077
+Node: OpenCL C Operators559434
+Node: Fortran559666
+Node: Fortran Operators560387
+Node: Fortran Defaults561243
+Node: Special Fortran Commands561628
+Node: Pascal562134
+Node: Rust562645
+Node: Modula-2565732
+Node: M2 Operators566705
+Node: Built-In Func/Proc569703
+Node: M2 Constants572617
+Node: M2 Types574218
+Node: M2 Defaults577436
+Node: Deviations578037
+Node: M2 Checks579138
+Node: M2 Scope579955
+Node: GDB/M2580979
+Node: Ada581892
+Node: Ada Mode Intro583198
+Node: Omissions from Ada584700
+Node: Additions to Ada589055
+Node: Overloading support for Ada592983
+Node: Stopping Before Main Program594623
+Node: Ada Exceptions595170
+Node: Ada Tasks596369
+Node: Ada Tasks and Core Files604510
+Node: Ravenscar Profile605357
+Node: Ada Settings606428
+Node: Ada Glitches607850
+Node: Unsupported Languages611858
+Node: Symbols612548
+Ref: quoting names613151
+Node: Altering638900
+Node: Assignment639938
+Node: Jumping643044
+Node: Signaling645118
+Node: Returning648047
+Node: Calling651398
+Node: Patching656012
+Node: Compiling and Injecting Code657126
+Ref: set debug compile660583
+Node: GDB Files670584
+Node: Files671373
+Ref: Shared Libraries685090
+Ref: Files-Footnote-1697288
+Node: File Caching697417
+Node: Separate Debug Files698551
+Ref: debug-file-directory701661
+Node: MiniDebugInfo710276
+Node: Index Files712727
+Node: Symbol Errors715643
+Node: Data Files719259
+Node: Targets720215
+Node: Active Targets721695
+Node: Target Commands722769
+Ref: load727158
+Ref: flash-erase728351
+Node: Byte Order728411
+Node: Remote Debugging729850
+Node: Connecting731112
+Ref: --multi Option in Types of Remote Connnections733338
+Ref: Attaching in Types of Remote Connections734753
+Ref: Host and target files735254
+Node: File Transfer741729
+Node: Server742668
+Ref: Running gdbserver744244
+Ref: Attaching to a program746462
+Ref: Other Command-Line Arguments for gdbserver748987
+Ref: Monitor Commands for gdbserver752203
+Ref: Server-Footnote-1757459
+Node: Remote Configuration757579
+Ref: set remotebreak758839
+Ref: set remote hardware-watchpoint-limit760302
+Ref: set remote hardware-breakpoint-limit760302
+Ref: set remote hardware-watchpoint-length-limit760528
+Ref: set remote exec-file760943
+Node: Remote Stub772952
+Node: Stub Contents775847
+Node: Bootstrapping777954
+Node: Debug Session781769
+Node: Configurations783810
+Node: Native784579
+Node: BSD libkvm Interface785105
+Node: Process Information786157
+Node: DJGPP Native790396
+Node: Cygwin Native796950
+Node: Non-debug DLL Symbols801871
+Node: Hurd Native806110
+Node: Darwin811366
+Node: Embedded OS812627
+Node: Embedded Processors813038
+Node: ARC814028
+Node: ARM814575
+Node: M68K817122
+Node: MicroBlaze817295
+Node: MIPS Embedded818744
+Node: OpenRISC 1000820041
+Node: PowerPC Embedded820947
+Node: AVR824176
+Node: CRIS824548
+Node: Super-H825524
+Node: Architectures826583
+Node: AArch64827032
+Node: i386827438
+Ref: i386-Footnote-1831648
+Node: Alpha831734
+Node: MIPS831867
+Node: HPPA835761
+Node: SPU836279
+Node: PowerPC838465
+Node: Nios II839200
+Node: Sparc64839605
+Node: Controlling GDB841960
+Node: Prompt842856
+Node: Editing844574
+Node: Command History845517
+Node: Screen Size849823
+Node: Numbers851832
+Node: ABI853811
+Node: Auto-loading856984
+Ref: set auto-load off858359
+Ref: show auto-load858995
+Ref: info auto-load859774
+Node: Init File in the Current Directory862741
+Ref: set auto-load local-gdbinit863316
+Ref: show auto-load local-gdbinit863498
+Ref: info auto-load local-gdbinit863662
+Node: libthread_db.so.1 file863810
+Ref: set auto-load libthread-db864749
+Ref: show auto-load libthread-db864880
+Ref: info auto-load libthread-db865017
+Node: Auto-loading safe path865201
+Ref: set auto-load safe-path866507
+Ref: show auto-load safe-path867246
+Ref: add-auto-load-safe-path867369
+Node: Auto-loading verbose mode870271
+Ref: set debug auto-load871434
+Ref: show debug auto-load871535
+Node: Messages/Warnings871657
+Ref: confirmation requests873091
+Node: Debugging Output874295
+Node: Other Misc Settings884113
+Node: Extending GDB885137
+Node: Sequences886990
+Node: Define887651
+Node: Hooks891731
+Node: Command Files894097
+Node: Output899170
+Ref: eval903972
+Node: Auto-loading sequences905850
+Ref: set auto-load gdb-scripts906345
+Ref: show auto-load gdb-scripts906469
+Ref: info auto-load gdb-scripts906599
+Node: Python906830
+Node: Python Commands908003
+Node: Python API910331
+Node: Basic Python912936
+Ref: prompt_hook923523
+Node: Exception Handling924121
+Node: Values From Inferior926617
+Node: Types In Python939814
+Node: Pretty Printing API949674
+Node: Selecting Pretty-Printers953570
+Node: Writing a Pretty-Printer955903
+Node: Type Printing API961225
+Node: Frame Filter API963841
+Node: Frame Decorator API971122
+Ref: frame_args974706
+Node: Writing a Frame Filter978036
+Node: Unwinding Frames in Python989510
+Node: Xmethods In Python994966
+Node: Xmethod API997862
+Node: Writing an Xmethod1001674
+Node: Inferiors In Python1007509
+Node: Events In Python1010653
+Node: Threads In Python1019571
+Node: Recordings In Python1022458
+Node: Commands In Python1029792
+Node: Parameters In Python1039205
+Node: Functions In Python1045146
+Node: Progspaces In Python1047363
+Node: Objfiles In Python1050864
+Node: Frames In Python1056643
+Node: Blocks In Python1063486
+Node: Symbols In Python1067848
+Node: Symbol Tables In Python1075076
+Node: Line Tables In Python1078299
+Node: Breakpoints In Python1081136
+Ref: python_breakpoint_thread1087459
+Node: Finish Breakpoints in Python1090492
+Node: Lazy Strings In Python1092598
+Node: Architectures In Python1094828
+Node: Python Auto-loading1097017
+Ref: set auto-load python-scripts1097646
+Ref: show auto-load python-scripts1097746
+Ref: info auto-load python-scripts1097852
+Node: Python modules1098986
+Node: gdb.printing1099372
+Node: gdb.types1100799
+Node: gdb.prompt1103811
+Node: Guile1105460
+Node: Guile Introduction1106119
+Node: Guile Commands1106990
+Node: Guile API1108844
+Node: Basic Guile1110841
+Node: Guile Configuration1116523
+Node: GDB Scheme Data Types1117499
+Node: Guile Exception Handling1119331
+Node: Values From Inferior In Guile1123365
+Node: Arithmetic In Guile1138900
+Node: Types In Guile1140531
+Ref: Fields of a type in Guile1148472
+Node: Guile Pretty Printing API1149860
+Node: Selecting Guile Pretty-Printers1155462
+Node: Writing a Guile Pretty-Printer1157838
+Node: Commands In Guile1163023
+Node: Parameters In Guile1173803
+Ref: Parameters In Guile-Footnote-11180684
+Node: Progspaces In Guile1180800
+Node: Objfiles In Guile1183388
+Node: Frames In Guile1185669
+Node: Blocks In Guile1192247
+Node: Symbols In Guile1197055
+Node: Symbol Tables In Guile1206106
+Node: Breakpoints In Guile1209069
+Node: Lazy Strings In Guile1219330
+Node: Architectures In Guile1221621
+Node: Disassembly In Guile1225928
+Node: I/O Ports in Guile1229130
+Node: Memory Ports in Guile1229686
+Node: Iterators In Guile1232952
+Node: Guile Auto-loading1237241
+Ref: set auto-load guile-scripts1237864
+Ref: show auto-load guile-scripts1237962
+Ref: info auto-load guile-scripts1238066
+Node: Guile Modules1239025
+Node: Guile Printing Module1239347
+Node: Guile Types Module1240166
+Node: Auto-loading extensions1241459
+Node: objfile-gdbdotext file1242657
+Ref: set auto-load scripts-directory1244093
+Ref: with-auto-load-dir1244469
+Ref: show auto-load scripts-directory1245287
+Ref: add-auto-load-scripts-directory1245367
+Node: dotdebug_gdb_scripts section1245843
+Node: Which flavor to choose?1249593
+Node: Multiple Extension Languages1251414
+Node: Aliases1252478
+Node: Interpreters1255343
+Node: TUI1258436
+Node: TUI Overview1259434
+Node: TUI Keys1261867
+Node: TUI Single Key Mode1264171
+Node: TUI Commands1265178
+Node: TUI Configuration1269117
+Node: Emacs1270423
+Node: GDB/MI1275860
+Node: GDB/MI General Design1277834
+Node: Context management1280354
+Node: Asynchronous and non-stop modes1284141
+Node: Thread groups1287115
+Node: GDB/MI Command Syntax1289393
+Node: GDB/MI Input Syntax1289636
+Node: GDB/MI Output Syntax1291186
+Node: GDB/MI Compatibility with CLI1294771
+Node: GDB/MI Development and Front Ends1295508
+Node: GDB/MI Output Records1297162
+Node: GDB/MI Result Records1297568
+Node: GDB/MI Stream Records1298918
+Node: GDB/MI Async Records1300183
+Node: GDB/MI Breakpoint Information1310620
+Node: GDB/MI Frame Information1314571
+Node: GDB/MI Thread Information1315657
+Node: GDB/MI Ada Exception Information1317127
+Node: GDB/MI Simple Examples1317677
+Node: GDB/MI Command Description Format1319885
+Node: GDB/MI Breakpoint Commands1320765
+Ref: -break-insert1327873
+Node: GDB/MI Catchpoint Commands1341328
+Node: Shared Library GDB/MI Catchpoint Commands1341696
+Node: Ada Exception GDB/MI Catchpoint Commands1343354
+Node: GDB/MI Program Context1346855
+Node: GDB/MI Thread Commands1351123
+Node: GDB/MI Ada Tasking Commands1354386
+Node: GDB/MI Program Execution1356658
+Node: GDB/MI Stack Manipulation1368692
+Ref: -stack-list-arguments1370591
+Ref: -stack-list-frames1374296
+Ref: -stack-list-locals1378159
+Ref: -stack-list-variables1379649
+Node: GDB/MI Variable Objects1381183
+Ref: -var-set-format1391148
+Ref: -var-list-children1392529
+Ref: -var-update1401337
+Ref: -var-set-frozen1404335
+Ref: -var-set-update-range1405132
+Ref: -var-set-visualizer1405661
+Node: GDB/MI Data Manipulation1407151
+Node: GDB/MI Tracepoint Commands1427325
+Node: GDB/MI Symbol Query1439116
+Node: GDB/MI File Commands1439805
+Node: GDB/MI Target Manipulation1444239
+Node: GDB/MI File Transfer Commands1450897
+Node: GDB/MI Ada Exceptions Commands1452220
+Node: GDB/MI Support Commands1453573
+Node: GDB/MI Miscellaneous Commands1458146
+Ref: -interpreter-exec1468480
+Node: Annotations1470820
+Node: Annotations Overview1471739
+Node: Server Prefix1474202
+Node: Prompting1474936
+Node: Errors1476453
+Node: Invalidation1477349
+Node: Annotations for Running1477828
+Node: Source Annotations1479362
+Node: JIT Interface1480291
+Node: Declarations1482090
+Node: Registering Code1483477
+Node: Unregistering Code1484449
+Node: Custom Debug Info1485076
+Node: Using JIT Debug Info Readers1486372
+Node: Writing JIT Debug Info Readers1487384
+Node: In-Process Agent1489579
+Ref: Control Agent1491522
+Node: In-Process Agent Protocol1492389
+Node: IPA Protocol Objects1493180
+Ref: agent expression object1494178
+Ref: tracepoint action object1494383
+Ref: tracepoint object1494463
+Node: IPA Protocol Commands1496993
+Node: GDB Bugs1498463
+Node: Bug Criteria1499195
+Node: Bug Reporting1501788
+Node: Command Line Editing1509617
+Node: Introduction and Notation1510269
+Node: Readline Interaction1511890
+Node: Readline Bare Essentials1513079
+Node: Readline Movement Commands1514860
+Node: Readline Killing Commands1515818
+Node: Readline Arguments1517734
+Node: Searching1518776
+Node: Readline Init File1520926
+Node: Readline Init File Syntax1522077
+Node: Conditional Init Constructs1537176
+Node: Sample Init File1539699
+Node: Bindable Readline Commands1542813
+Node: Commands For Moving1543865
+Node: Commands For History1544723
+Node: Commands For Text1548118
+Node: Commands For Killing1550841
+Node: Numeric Arguments1552981
+Node: Commands For Completion1554117
+Node: Keyboard Macros1556083
+Node: Miscellaneous Commands1556651
+Node: Readline vi Mode1560499
+Node: Using History Interactively1561409
+Node: History Interaction1561924
+Node: Event Designators1563346
+Node: Word Designators1564483
+Node: Modifiers1566118
+Node: In Memoriam1567339
+Node: Formatting Documentation1568222
+Ref: Formatting Documentation-Footnote-11571598
+Node: Installing GDB1571694
+Node: Requirements1572266
+Ref: Expat1572835
+Ref: MPFR1573785
+Node: Running Configure1576176
+Node: Separate Objdir1579955
+Node: Config Names1582934
+Node: Configure Options1584411
+Node: System-wide configuration1586782
+Node: System-wide Configuration Scripts1588742
+Node: Maintenance Commands1589926
+Ref: maint info breakpoints1591581
+Ref: maint check libthread-db1600046
+Node: Remote Protocol1613042
+Node: Overview1613734
+Ref: Binary Data1616279
+Node: Packets1618804
+Ref: thread-id syntax1619704
+Ref: extended mode1621149
+Ref: ? packet1621407
+Ref: bc1622873
+Ref: bs1623083
+Ref: read registers packet1624700
+Ref: cycle step packet1626555
+Ref: write register packet1629266
+Ref: step with signal packet1630245
+Ref: vCont packet1631721
+Ref: vCtrlC packet1634954
+Ref: vKill packet1637372
+Ref: X packet1638905
+Ref: insert breakpoint or watchpoint packet1639274
+Node: Stop Reply Packets1643600
+Ref: swbreak stop reason1646851
+Ref: thread create event1650448
+Ref: thread exit event1651651
+Node: General Query Packets1653860
+Ref: qCRC packet1656690
+Ref: QEnvironmentHexEncoded1659843
+Ref: QEnvironmentUnset1661073
+Ref: QEnvironmentReset1662017
+Ref: QSetWorkingDir packet1662961
+Ref: QNonStop1669412
+Ref: QCatchSyscalls1670088
+Ref: QPassSignals1671625
+Ref: QProgramSignals1672832
+Ref: QThreadEvents1674399
+Ref: qSearch memory1676417
+Ref: QStartNoAckMode1676925
+Ref: qSupported1677456
+Ref: multiprocess extensions1693463
+Ref: install tracepoint in tracing1695493
+Ref: qXfer read1700016
+Ref: qXfer auxiliary vector read1701623
+Ref: qXfer btrace read1701971
+Ref: qXfer btrace-conf read1703036
+Ref: qXfer executable filename read1703387
+Ref: qXfer target description read1704002
+Ref: qXfer library list read1704436
+Ref: qXfer svr4 library list read1705092
+Ref: qXfer memory map read1706945
+Ref: qXfer sdata read1707332
+Ref: qXfer siginfo read1707798
+Ref: qXfer spu read1708195
+Ref: qXfer threads read1708719
+Ref: qXfer traceframe info read1709122
+Ref: qXfer unwind info block1709540
+Ref: qXfer fdpic loadmap read1709774
+Ref: qXfer osdata read1710190
+Ref: qXfer write1710344
+Ref: qXfer siginfo write1711436
+Ref: qXfer spu write1711833
+Ref: General Query Packets-Footnote-11714689
+Node: Architecture-Specific Protocol Details1715016
+Node: ARM-Specific Protocol Details1715525
+Node: ARM Breakpoint Kinds1715773
+Node: MIPS-Specific Protocol Details1716104
+Node: MIPS Register packet Format1716387
+Node: MIPS Breakpoint Kinds1717314
+Node: Tracepoint Packets1717732
+Ref: QTEnable1727046
+Ref: QTDisable1727242
+Ref: qTfSTM1732779
+Ref: qTsSTM1732779
+Ref: qTSTMat1733856
+Ref: QTBuffer-size1735007
+Node: Host I/O Packets1736980
+Node: Interrupts1742560
+Ref: interrupting remote targets1742704
+Node: Notification Packets1744872
+Node: Remote Non-Stop1750297
+Node: Packet Acknowledgment1753413
+Node: Examples1755528
+Node: File-I/O Remote Protocol Extension1756122
+Node: File-I/O Overview1756584
+Node: Protocol Basics1758783
+Node: The F Request Packet1761012
+Node: The F Reply Packet1761913
+Node: The Ctrl-C Message1762831
+Node: Console I/O1764457
+Node: List of Supported Calls1765673
+Node: open1766035
+Node: close1768543
+Node: read1768926
+Node: write1769535
+Node: lseek1770306
+Node: rename1771190
+Node: unlink1772597
+Node: stat/fstat1773544
+Node: gettimeofday1774437
+Node: isatty1774873
+Node: system1775469
+Node: Protocol-specific Representation of Datatypes1777011
+Node: Integral Datatypes1777388
+Node: Pointer Values1778195
+Node: Memory Transfer1778899
+Node: struct stat1779519
+Node: struct timeval1781721
+Node: Constants1782238
+Node: Open Flags1782687
+Node: mode_t Values1783028
+Node: Errno Values1783520
+Node: Lseek Flags1784330
+Node: Limits1784515
+Node: File-I/O Examples1784875
+Node: Library List Format1785963
+Node: Library List Format for SVR4 Targets1788745
+Node: Memory Map Format1791212
+Node: Thread List Format1793736
+Node: Traceframe Info Format1794740
+Node: Branch Trace Format1796426
+Node: Branch Trace Configuration Format1798126
+Node: Agent Expressions1799300
+Node: General Bytecode Design1803837
+Node: Bytecode Descriptions1808631
+Node: Using Agent Expressions1822098
+Node: Varying Target Capabilities1824075
+Node: Rationale1825236
+Node: Target Descriptions1832625
+Node: Retrieving Descriptions1834568
+Node: Target Description Format1835653
+Node: Predefined Target Types1845528
+Node: Enum Target Types1846956
+Node: Standard Target Features1847951
+Node: AArch64 Features1849915
+Node: ARC Features1850490
+Node: ARM Features1852551
+Node: i386 Features1854065
+Node: MicroBlaze Features1856280
+Node: MIPS Features1856857
+Node: M68K Features1858048
+Node: NDS32 Features1858709
+Node: Nios II Features1859733
+Node: OpenRISC 1000 Features1860138
+Node: PowerPC Features1860504
+Node: S/390 and System z Features1861835
+Node: Sparc Features1863980
+Node: TIC6x Features1864885
+Node: Operating System Information1865434
+Node: Process list1866269
+Node: Trace File Format1867332
+Node: Index Section Format1870546
+Node: Man Pages1878472
+Node: gdb man1878942
+Node: gdbserver man1884978
+Node: gcore man1892175
+Node: gdbinit man1893117
+Node: gdb-add-index man1894026
+Ref: gdb-add-index1894135
+Node: Copying1895009
+Node: GNU Free Documentation License1932570
+Node: Concept Index1957717
+Node: Command and Variable Index2095131
 
 End Tag Table
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-1	2018-07-02 01:53:52.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2018-07-03 01:53:37.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -44,7 +44,7 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 8.1.50.20180702-git.
+   This is the Tenth Edition, for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -501,7 +501,7 @@ Let us use GDB to try to see what is goi
      There is absolutely no warranty for GDB; type "show warranty"
       for details.
 
-     GDB 8.1.50.20180702-git, Copyright 1999 Free Software Foundation, Inc...
+     GDB 8.1.50.20180703-git, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-2	2018-07-02 01:53:54.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2018-07-03 01:53:38.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -469,7 +469,7 @@ able to resolve these to actual function
      If it is necessary to specify more than one disassembler option,
      then multiple options can be placed together into a comma separated
      list.  Currently this command is only supported on targets ARM,
-     PowerPC and S/390.
+     MIPS, PowerPC and S/390.
 
 'show disassembler-options'
      Show the current setting of the disassembler options.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-3	2018-07-02 01:53:56.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2018-07-03 01:53:40.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-4	2018-07-02 01:53:58.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2018-07-03 01:53:43.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-5	2018-07-02 01:54:00.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2018-07-03 01:53:45.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-6	2018-07-02 01:54:02.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2018-07-03 01:53:47.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
@@ -1724,7 +1724,7 @@ and TeX (or 'texi2roff') to typeset the 
 
    GDB includes an already formatted copy of the on-line Info version of
 this manual in the 'gdb' subdirectory.  The main Info file is
-'gdb-8.1.50.20180702-git/gdb/gdb.info', and it refers to subordinate
+'gdb-8.1.50.20180703-git/gdb/gdb.info', and it refers to subordinate
 files matching 'gdb.info*' in the same directory.  If necessary, you can
 print out these files, or read them with any editor; but they are easier
 to read using the 'info' subsystem in GNU Emacs or the standalone 'info'
@@ -1734,8 +1734,8 @@ program, available as part of the GNU Te
 Info formatting programs, such as 'texinfo-format-buffer' or 'makeinfo'.
 
    If you have 'makeinfo' installed, and are in the top level GDB source
-directory ('gdb-8.1.50.20180702-git', in the case of version
-8.1.50.20180702-git), you can make the Info file by typing:
+directory ('gdb-8.1.50.20180703-git', in the case of version
+8.1.50.20180703-git), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -1760,7 +1760,7 @@ On its own, TeX cannot either read or ty
 
    If you have TeX and a DVI printer program installed, you can typeset
 and print this manual.  First switch to the 'gdb' subdirectory of the
-main source directory (for example, to 'gdb-8.1.50.20180702-git/gdb')
+main source directory (for example, to 'gdb-8.1.50.20180703-git/gdb')
 and type:
 
      make gdb.dvi
@@ -1769,8 +1769,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-8.1.50.20180702-git/gdb/refcard.ps' of the version
-8.1.50.20180702-git release.
+   (1) In 'gdb-8.1.50.20180703-git/gdb/refcard.ps' of the version
+8.1.50.20180703-git release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -1888,39 +1888,39 @@ preparing GDB for installation; you can 
 a single directory, whose name is usually composed by appending the
 version number to 'gdb'.
 
-   For example, the GDB version 8.1.50.20180702-git distribution is in
-the 'gdb-8.1.50.20180702-git' directory.  That directory contains:
+   For example, the GDB version 8.1.50.20180703-git distribution is in
+the 'gdb-8.1.50.20180703-git' directory.  That directory contains:
 
-'gdb-8.1.50.20180702-git/configure (and supporting files)'
+'gdb-8.1.50.20180703-git/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-8.1.50.20180702-git/gdb'
+'gdb-8.1.50.20180703-git/gdb'
      the source specific to GDB itself
 
-'gdb-8.1.50.20180702-git/bfd'
+'gdb-8.1.50.20180703-git/bfd'
      source for the Binary File Descriptor library
 
-'gdb-8.1.50.20180702-git/include'
+'gdb-8.1.50.20180703-git/include'
      GNU include files
 
-'gdb-8.1.50.20180702-git/libiberty'
+'gdb-8.1.50.20180703-git/libiberty'
      source for the '-liberty' free software library
 
-'gdb-8.1.50.20180702-git/opcodes'
+'gdb-8.1.50.20180703-git/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-8.1.50.20180702-git/readline'
+'gdb-8.1.50.20180703-git/readline'
      source for the GNU command-line interface
 
-'gdb-8.1.50.20180702-git/glob'
+'gdb-8.1.50.20180703-git/glob'
      source for the GNU filename pattern-matching subroutine
 
-'gdb-8.1.50.20180702-git/mmalloc'
+'gdb-8.1.50.20180703-git/mmalloc'
      source for the GNU memory-mapped malloc package
 
    The simplest way to configure and build GDB is to run 'configure'
 from the 'gdb-VERSION-NUMBER' source directory, which in this example is
-the 'gdb-8.1.50.20180702-git' directory.
+the 'gdb-8.1.50.20180703-git' directory.
 
    First switch to the 'gdb-VERSION-NUMBER' source directory if you are
 not already in it; then run 'configure'.  Pass the identifier for the
@@ -1928,7 +1928,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-8.1.50.20180702-git
+     cd gdb-8.1.50.20180703-git
      ./configure HOST
      make
 
@@ -1950,8 +1950,8 @@ need to run 'sh' on it explicitly:
 
    If you run 'configure' from a directory that contains source
 directories for multiple libraries or programs, such as the
-'gdb-8.1.50.20180702-git' source directory for version
-8.1.50.20180702-git, 'configure' creates configuration files for every
+'gdb-8.1.50.20180703-git' source directory for version
+8.1.50.20180703-git, 'configure' creates configuration files for every
 directory level underneath (unless you tell it not to, with the
 '--norecursion' option).
 
@@ -1991,13 +1991,13 @@ to specify a path to find 'configure' it
 directory.  If the path to 'configure' would be the same as the argument
 to '--srcdir', you can leave out the '--srcdir' option; it is assumed.)
 
-   For example, with version 8.1.50.20180702-git, you can build GDB in a
+   For example, with version 8.1.50.20180703-git, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-8.1.50.20180702-git
+     cd gdb-8.1.50.20180703-git
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-8.1.50.20180702-git/configure sun4
+     ../gdb-8.1.50.20180703-git/configure sun4
      make
 
    When 'configure' builds a configuration using a remote source
@@ -2008,7 +2008,7 @@ the example, you'd find the Sun 4 librar
 
    Make sure that your path to the 'configure' script has just one
 instance of 'gdb' in it.  If your path to 'configure' looks like
-'../gdb-8.1.50.20180702-git/gdb/configure', you are configuring only one
+'../gdb-8.1.50.20180703-git/gdb/configure', you are configuring only one
 subdirectory of GDB, not the whole package.  This leads to build errors
 about missing include files such as 'bfd/bfd.h'.
 
@@ -2024,8 +2024,8 @@ a configured directory--whatever directo
 
    The 'Makefile' that 'configure' generates in each source directory
 also runs recursively.  If you type 'make' in a source directory such as
-'gdb-8.1.50.20180702-git' (or in a separate configured directory
-configured with '--srcdir=DIRNAME/gdb-8.1.50.20180702-git'), you will
+'gdb-8.1.50.20180703-git' (or in a separate configured directory
+configured with '--srcdir=DIRNAME/gdb-8.1.50.20180703-git'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -2070,7 +2070,7 @@ you can use it to test your guesses on a
      Invalid configuration `i986v': machine `i986v' not recognized
 
 'config.sub' is also distributed in the GDB source directory
-('gdb-8.1.50.20180702-git', for version 8.1.50.20180702-git).
+('gdb-8.1.50.20180703-git', for version 8.1.50.20180703-git).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.info-7	2018-07-02 01:54:04.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2018-07-03 01:53:49.000000000 +0000
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    This file documents the GNU debugger GDB.
 
    This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180702-git.
+Source-Level Debugger' for GDB (GDB) Version 8.1.50.20180703-git.
 
    Copyright (C) 1988-2018 Free Software Foundation, Inc.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdbinit.5	2018-07-02 01:54:08.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2018-07-03 01:53:53.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2018-07-02" "gdb-8.1.50.20180702-git" "GNU Development Tools"
+.TH GDBINIT 5 "2018-07-03" "gdb-8.1.50.20180703-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdbserver.1	2018-07-02 01:54:07.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2018-07-03 01:53:52.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2018-07-02" "gdb-8.1.50.20180702-git" "GNU Development Tools"
+.TH GDBSERVER 1 "2018-07-03" "gdb-8.1.50.20180703-git" "GNU Development Tools"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/doc/gdb.texinfo	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2018-07-03 01:49:26.000000000 +0000
@@ -8759,7 +8759,7 @@ The default value is the empty string.
 
 If it is necessary to specify more than one disassembler option, then
 multiple options can be placed together into a comma separated list.
-Currently this command is only supported on targets ARM, PowerPC
+Currently this command is only supported on targets ARM, MIPS, PowerPC
 and S/390.
 
 @kindex show disassembler-options
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/gdbarch.c ./gdb/gdbarch.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/gdbarch.c	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/gdbarch.c	2018-07-03 01:49:27.000000000 +0000
@@ -350,8 +350,9 @@ struct gdbarch
   gdbarch_gcc_target_options_ftype *gcc_target_options;
   gdbarch_gnu_triplet_regexp_ftype *gnu_triplet_regexp;
   gdbarch_addressable_memory_unit_size_ftype *addressable_memory_unit_size;
+  const char * disassembler_options_implicit;
   char ** disassembler_options;
-  const disasm_options_t * valid_disassembler_options;
+  const disasm_options_and_args_t * valid_disassembler_options;
   gdbarch_type_align_ftype *type_align;
 };
 
@@ -707,6 +708,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
   /* Skip verify of gcc_target_options, invalid_p == 0 */
   /* Skip verify of gnu_triplet_regexp, invalid_p == 0 */
   /* Skip verify of addressable_memory_unit_size, invalid_p == 0 */
+  /* Skip verify of disassembler_options_implicit, invalid_p == 0 */
   /* Skip verify of disassembler_options, invalid_p == 0 */
   /* Skip verify of valid_disassembler_options, invalid_p == 0 */
   /* Skip verify of type_align, invalid_p == 0 */
@@ -902,6 +904,9 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "gdbarch_dump: disassembler_options = %s\n",
                       pstring_ptr (gdbarch->disassembler_options));
   fprintf_unfiltered (file,
+                      "gdbarch_dump: disassembler_options_implicit = %s\n",
+                      pstring (gdbarch->disassembler_options_implicit));
+  fprintf_unfiltered (file,
                       "gdbarch_dump: gdbarch_displaced_step_copy_insn_p() = %d\n",
                       gdbarch_displaced_step_copy_insn_p (gdbarch));
   fprintf_unfiltered (file,
@@ -5044,6 +5049,23 @@ set_gdbarch_addressable_memory_unit_size
   gdbarch->addressable_memory_unit_size = addressable_memory_unit_size;
 }
 
+const char *
+gdbarch_disassembler_options_implicit (struct gdbarch *gdbarch)
+{
+  gdb_assert (gdbarch != NULL);
+  /* Skip verify of disassembler_options_implicit, invalid_p == 0 */
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_disassembler_options_implicit called\n");
+  return gdbarch->disassembler_options_implicit;
+}
+
+void
+set_gdbarch_disassembler_options_implicit (struct gdbarch *gdbarch,
+                                           const char * disassembler_options_implicit)
+{
+  gdbarch->disassembler_options_implicit = disassembler_options_implicit;
+}
+
 char **
 gdbarch_disassembler_options (struct gdbarch *gdbarch)
 {
@@ -5061,7 +5083,7 @@ set_gdbarch_disassembler_options (struct
   gdbarch->disassembler_options = disassembler_options;
 }
 
-const disasm_options_t *
+const disasm_options_and_args_t *
 gdbarch_valid_disassembler_options (struct gdbarch *gdbarch)
 {
   gdb_assert (gdbarch != NULL);
@@ -5073,7 +5095,7 @@ gdbarch_valid_disassembler_options (stru
 
 void
 set_gdbarch_valid_disassembler_options (struct gdbarch *gdbarch,
-                                        const disasm_options_t * valid_disassembler_options)
+                                        const disasm_options_and_args_t * valid_disassembler_options)
 {
   gdbarch->valid_disassembler_options = valid_disassembler_options;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/gdbarch.h ./gdb/gdbarch.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/gdbarch.h	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/gdbarch.h	2018-07-03 01:49:27.000000000 +0000
@@ -1549,11 +1549,14 @@ extern void set_gdbarch_addressable_memo
 
 /* Functions for allowing a target to modify its disassembler options. */
 
+extern const char * gdbarch_disassembler_options_implicit (struct gdbarch *gdbarch);
+extern void set_gdbarch_disassembler_options_implicit (struct gdbarch *gdbarch, const char * disassembler_options_implicit);
+
 extern char ** gdbarch_disassembler_options (struct gdbarch *gdbarch);
 extern void set_gdbarch_disassembler_options (struct gdbarch *gdbarch, char ** disassembler_options);
 
-extern const disasm_options_t * gdbarch_valid_disassembler_options (struct gdbarch *gdbarch);
-extern void set_gdbarch_valid_disassembler_options (struct gdbarch *gdbarch, const disasm_options_t * valid_disassembler_options);
+extern const disasm_options_and_args_t * gdbarch_valid_disassembler_options (struct gdbarch *gdbarch);
+extern void set_gdbarch_valid_disassembler_options (struct gdbarch *gdbarch, const disasm_options_and_args_t * valid_disassembler_options);
 
 /* Type alignment. */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/gdbarch.sh ./gdb/gdbarch.sh
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/gdbarch.sh	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/gdbarch.sh	2018-07-03 01:49:27.000000000 +0000
@@ -1157,8 +1157,9 @@ m;const char *;gnu_triplet_regexp;void;;
 m;int;addressable_memory_unit_size;void;;;default_addressable_memory_unit_size;;0
 
 # Functions for allowing a target to modify its disassembler options.
+v;const char *;disassembler_options_implicit;;;0;0;;0;pstring (gdbarch->disassembler_options_implicit)
 v;char **;disassembler_options;;;0;0;;0;pstring_ptr (gdbarch->disassembler_options)
-v;const disasm_options_t *;valid_disassembler_options;;;0;0;;0;host_address_to_string (gdbarch->valid_disassembler_options)
+v;const disasm_options_and_args_t *;valid_disassembler_options;;;0;0;;0;host_address_to_string (gdbarch->valid_disassembler_options)
 
 # Type alignment.
 m;ULONGEST;type_align;struct type *type;type;;default_type_align;;0
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/mips-tdep.c ./gdb/mips-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/mips-tdep.c	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/mips-tdep.c	2018-07-03 01:49:27.000000000 +0000
@@ -214,6 +214,18 @@ static unsigned int mips_debug = 0;
 struct target_desc *mips_tdesc_gp32;
 struct target_desc *mips_tdesc_gp64;
 
+/* The current set of options to be passed to the disassembler.  */
+static char *mips_disassembler_options;
+
+/* Implicit disassembler options for individual ABIs.  These tell
+   libopcodes to use general-purpose register names corresponding
+   to the ABI we have selected, perhaps via a `set mips abi ...'
+   override, rather than ones inferred from the ABI set in the ELF
+   headers of the binary file selected for debugging.  */
+static const char mips_disassembler_options_o32[] = "gpr-names=32";
+static const char mips_disassembler_options_n32[] = "gpr-names=n32";
+static const char mips_disassembler_options_n64[] = "gpr-names=64";
+
 const struct mips_regnum *
 mips_regnum (struct gdbarch *gdbarch)
 {
@@ -6990,40 +7002,9 @@ gdb_print_insn_mips (bfd_vma memaddr, st
   memaddr &= (info->mach == bfd_mach_mips16
 	      || info->mach == bfd_mach_mips_micromips) ? ~1 : ~3;
 
-  /* Set the disassembler options.  */
-  if (!info->disassembler_options)
-    /* This string is not recognized explicitly by the disassembler,
-       but it tells the disassembler to not try to guess the ABI from
-       the bfd elf headers, such that, if the user overrides the ABI
-       of a program linked as NewABI, the disassembly will follow the
-       register naming conventions specified by the user.  */
-    info->disassembler_options = "gpr-names=32";
-
   return default_print_insn (memaddr, info);
 }
 
-static int
-gdb_print_insn_mips_n32 (bfd_vma memaddr, struct disassemble_info *info)
-{
-  /* Set up the disassembler info, so that we get the right
-     register names from libopcodes.  */
-  info->disassembler_options = "gpr-names=n32";
-  info->flavour = bfd_target_elf_flavour;
-
-  return gdb_print_insn_mips (memaddr, info);
-}
-
-static int
-gdb_print_insn_mips_n64 (bfd_vma memaddr, struct disassemble_info *info)
-{
-  /* Set up the disassembler info, so that we get the right
-     register names from libopcodes.  */
-  info->disassembler_options = "gpr-names=64";
-  info->flavour = bfd_target_elf_flavour;
-
-  return gdb_print_insn_mips (memaddr, info);
-}
-
 /* Implement the breakpoint_kind_from_pc gdbarch method.  */
 
 static int
@@ -8727,12 +8708,19 @@ mips_gdbarch_init (struct gdbarch_info i
 
   set_gdbarch_print_registers_info (gdbarch, mips_print_registers_info);
 
-  if (mips_abi == MIPS_ABI_N32)
-    set_gdbarch_print_insn (gdbarch, gdb_print_insn_mips_n32);
-  else if (mips_abi == MIPS_ABI_N64)
-    set_gdbarch_print_insn (gdbarch, gdb_print_insn_mips_n64);
-  else
-    set_gdbarch_print_insn (gdbarch, gdb_print_insn_mips);
+  set_gdbarch_print_insn (gdbarch, gdb_print_insn_mips);
+  if (mips_abi == MIPS_ABI_N64)
+    set_gdbarch_disassembler_options_implicit
+      (gdbarch, (const char *) mips_disassembler_options_n64);
+  else if (mips_abi == MIPS_ABI_N32)
+    set_gdbarch_disassembler_options_implicit
+      (gdbarch, (const char *) mips_disassembler_options_n32);
+  else
+    set_gdbarch_disassembler_options_implicit
+      (gdbarch, (const char *) mips_disassembler_options_o32);
+  set_gdbarch_disassembler_options (gdbarch, &mips_disassembler_options);
+  set_gdbarch_valid_disassembler_options (gdbarch,
+					  disassembler_options_mips ());
 
   /* FIXME: cagney/2003-08-29: The macros target_have_steppable_watchpoint,
      HAVE_NONSTEPPABLE_WATCHPOINT, and target_have_continuable_watchpoint
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/NEWS	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/NEWS	2018-07-03 01:49:26.000000000 +0000
@@ -3,6 +3,9 @@
 
 *** Changes since GDB 8.1
 
+* The 'set disassembler-options' command now supports specifying options
+  for the MIPS target.
+
 * The 'symbol-file' command now accepts an '-o' option to add a relative
   offset to all sections.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/po/gdb.pot	2018-07-02 01:53:38.000000000 +0000
+++ ./gdb/po/gdb.pot	2018-07-03 01:53:26.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-07-02 01:53+0000\n"
+"POT-Creation-Date: 2018-07-03 01:53+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -183,7 +183,7 @@ msgid "When on, AArch64 specific debuggi
 msgstr ""
 
 #. We need to save SPSR value, which is not yet done.
-#: aarch64-tdep.c:4151 arm-tdep.c:11115 arm-tdep.c:12134
+#: aarch64-tdep.c:4151 arm-tdep.c:11116 arm-tdep.c:12135
 #, possible-c-format
 msgid "Process record does not support instruction 0x%0x at address %s.\n"
 msgstr ""
@@ -1444,15 +1444,15 @@ msgid ""
 "(more likely) you have encountered a bug in GDB.\n"
 msgstr ""
 
-#: alpha-tdep.c:1866 mips-tdep.c:9062
+#: alpha-tdep.c:1866 mips-tdep.c:9050
 msgid "Set the distance searched for the start of a function."
 msgstr ""
 
-#: alpha-tdep.c:1867 mips-tdep.c:9063
+#: alpha-tdep.c:1867 mips-tdep.c:9051
 msgid "Show the distance searched for the start of a function."
 msgstr ""
 
-#: alpha-tdep.c:1868 mips-tdep.c:9064
+#: alpha-tdep.c:1868 mips-tdep.c:9052
 msgid ""
 "If you are debugging a stripped executable, GDB needs to search through the\n"
 "program for the start of a function.  This command sets the distance of the\n"
@@ -1950,43 +1950,43 @@ msgstr ""
 msgid "Various ARM-specific commands."
 msgstr ""
 
-#: arm-tdep.c:9600
+#: arm-tdep.c:9601
 msgid "The valid values are:\n"
 msgstr ""
 
-#: arm-tdep.c:9602
+#: arm-tdep.c:9603
 msgid "The default is \"std\"."
 msgstr ""
 
-#: arm-tdep.c:9606
+#: arm-tdep.c:9607
 msgid "Set the disassembly style."
 msgstr ""
 
-#: arm-tdep.c:9607
+#: arm-tdep.c:9608
 msgid "Show the disassembly style."
 msgstr ""
 
-#: arm-tdep.c:9614
+#: arm-tdep.c:9615
 msgid "Set usage of ARM 32-bit mode."
 msgstr ""
 
-#: arm-tdep.c:9615
+#: arm-tdep.c:9616
 msgid "Show usage of ARM 32-bit mode."
 msgstr ""
 
-#: arm-tdep.c:9616
+#: arm-tdep.c:9617
 msgid "When off, a 26-bit PC will be used."
 msgstr ""
 
-#: arm-tdep.c:9624
+#: arm-tdep.c:9625
 msgid "Set the floating point type."
 msgstr ""
 
-#: arm-tdep.c:9625
+#: arm-tdep.c:9626
 msgid "Show the floating point type."
 msgstr ""
 
-#: arm-tdep.c:9626
+#: arm-tdep.c:9627
 msgid ""
 "auto - Determine the FP typefrom the OS-ABI.\n"
 "softfpa - Software FP, mixed-endian doubles on little-endian ARMs.\n"
@@ -1995,47 +1995,47 @@ msgid ""
 "vfp - VFP co-processor."
 msgstr ""
 
-#: arm-tdep.c:9636
+#: arm-tdep.c:9637
 msgid "Set the ABI."
 msgstr ""
 
-#: arm-tdep.c:9637
+#: arm-tdep.c:9638
 msgid "Show the ABI."
 msgstr ""
 
-#: arm-tdep.c:9645
+#: arm-tdep.c:9646
 msgid "Set the mode assumed when symbols are unavailable."
 msgstr ""
 
-#: arm-tdep.c:9646
+#: arm-tdep.c:9647
 msgid "Show the mode assumed when symbols are unavailable."
 msgstr ""
 
-#: arm-tdep.c:9651
+#: arm-tdep.c:9652
 msgid "Set the mode assumed even when symbols are available."
 msgstr ""
 
-#: arm-tdep.c:9652
+#: arm-tdep.c:9653
 msgid "Show the mode assumed even when symbols are available."
 msgstr ""
 
-#: arm-tdep.c:9658
+#: arm-tdep.c:9659
 msgid "Set ARM debugging."
 msgstr ""
 
-#: arm-tdep.c:9659
+#: arm-tdep.c:9660
 msgid "Show ARM debugging."
 msgstr ""
 
-#: arm-tdep.c:9660
+#: arm-tdep.c:9661
 msgid "When on, arm-specific debugging is enabled."
 msgstr ""
 
-#: arm-tdep.c:11702 arm-tdep.c:12225 rs6000-tdep.c:5537 s390-tdep.c:3060
+#: arm-tdep.c:11703 arm-tdep.c:12226 rs6000-tdep.c:5537 s390-tdep.c:3060
 msgid "no syscall record support\n"
 msgstr ""
 
-#: arm-tdep.c:13136 arm-tdep.c:13351
+#: arm-tdep.c:13137 arm-tdep.c:13352
 #, possible-c-format
 msgid "Process record: error reading memory at addr %s len = %d.\n"
 msgstr ""
@@ -6309,8 +6309,8 @@ msgstr ""
 #: cli/cli-script.c:1477 common/common-exceptions.c:145
 #: common/common-exceptions.c:161 common/common-exceptions.c:177
 #: hppa-tdep.c:3138 hppa-tdep.c:3151 infcall.c:970 infcmd.c:1651
-#: language.c:466 mi/mi-out.c:213 mi/mi-out.c:233 mips-tdep.c:295
-#: mips-tdep.c:499 mips-tdep.c:2207 mips-tdep.c:5728 mips-tdep.c:6895
+#: language.c:466 mi/mi-out.c:213 mi/mi-out.c:233 mips-tdep.c:307
+#: mips-tdep.c:511 mips-tdep.c:2219 mips-tdep.c:5740 mips-tdep.c:6907
 #: mn10300-tdep.c:127 reggroups.c:272 remote.c:2110 remote.c:8707
 #: remote.c:9970 utils.c:432 utils.c:460
 msgid "bad switch"
@@ -9140,28 +9140,36 @@ msgstr ""
 msgid "--- no source info for this pc ---\n"
 msgstr ""
 
-#: disasm.c:909
+#: disasm.c:944
 msgid "'set disassembler-options ...' is not supported on this architecture.\n"
 msgstr ""
 
-#: disasm.c:924
+#: disasm.c:981
 #, possible-c-format
 msgid "Invalid disassembler option value: '%s'.\n"
 msgstr ""
 
-#: disasm.c:952
+#: disasm.c:1011
 #, possible-c-format
 msgid "The current disassembler options are '%s'\n"
 msgstr ""
 
-#: disasm.c:960
+#: disasm.c:1021
 msgid ""
 "\n"
 "The following disassembler options are supported for use with the\n"
 "'set disassembler-options <option>[,<option>...]' command:\n"
 msgstr ""
 
-#: disasm.c:1032
+#: disasm.c:1082
+#, possible-c-format
+msgid ""
+"\n"
+"  For the options above, the following values are supported for \"%s\":\n"
+"   "
+msgstr ""
+
+#: disasm.c:1129
 msgid ""
 "Set the disassembler options.\n"
 "Usage: set disassembler-options OPTION [,OPTION]...\n"
@@ -9169,7 +9177,7 @@ msgid ""
 "See: 'show disassembler-options' for valid option values.\n"
 msgstr ""
 
-#: disasm.c:1035
+#: disasm.c:1132
 msgid "Show the disassembler options."
 msgstr ""
 
@@ -12232,34 +12240,34 @@ msgstr ""
 msgid "Architecture debugging is %s.\n"
 msgstr ""
 
-#: gdbarch.c:715
+#: gdbarch.c:717
 #, possible-c-format
 msgid "verify_gdbarch: the following are invalid ...%s"
 msgstr ""
 
-#: gdbarch.c:5261
+#: gdbarch.c:5283
 msgid "gdbarch_architecture_names: multi-arch unknown"
 msgstr ""
 
-#: gdbarch.c:5287
+#: gdbarch.c:5309
 #, possible-c-format
 msgid "gdbarch: Attempt to register unknown architecture (%d)"
 msgstr ""
 
-#: gdbarch.c:5298
+#: gdbarch.c:5320
 #, possible-c-format
 msgid "gdbarch: Duplicate registration of architecture (%s)"
 msgstr ""
 
-#: gdbarch.c:5493
+#: gdbarch.c:5515
 msgid "Set architecture debugging."
 msgstr ""
 
-#: gdbarch.c:5494
+#: gdbarch.c:5516
 msgid "Show architecture debugging."
 msgstr ""
 
-#: gdbarch.c:5495
+#: gdbarch.c:5517
 msgid "When non-zero, architecture debugging is enabled."
 msgstr ""
 
@@ -19554,112 +19562,112 @@ msgstr ""
 msgid "Error reading symbol table: %s"
 msgstr ""
 
-#: mips-tdep.c:663
+#: mips-tdep.c:675
 #, possible-c-format
 msgid "mips_register_name: bad register number %d"
 msgstr ""
 
-#: mips-tdep.c:764 mips-tdep.c:793 mips-tdep.c:833
+#: mips-tdep.c:776 mips-tdep.c:805 mips-tdep.c:845
 msgid "bad register size"
 msgstr ""
 
-#: mips-tdep.c:865
+#: mips-tdep.c:877
 msgid "32-bit compatibility mode not supported"
 msgstr ""
 
-#: mips-tdep.c:945
+#: mips-tdep.c:957
 msgid "mips_register_to_value: unrecognized case"
 msgstr ""
 
-#: mips-tdep.c:993
+#: mips-tdep.c:1005
 msgid "mips_value_to_register: unrecognized case"
 msgstr ""
 
-#: mips-tdep.c:1139
+#: mips-tdep.c:1151
 msgid "mips_mask_address_p: bad switch"
 msgstr ""
 
-#: mips-tdep.c:1165
+#: mips-tdep.c:1177
 msgid "show_mask_address: bad switch"
 msgstr ""
 
-#: mips-tdep.c:1449 mips-tdep.c:1533
+#: mips-tdep.c:1461 mips-tdep.c:1545
 msgid "invalid ISA"
 msgstr ""
 
-#: mips-tdep.c:2707
+#: mips-tdep.c:2719
 msgid "Invalid number of argument registers encoded in SAVE."
 msgstr ""
 
-#: mips-tdep.c:2712
+#: mips-tdep.c:2724
 msgid "Invalid number of static registers encoded in SAVE."
 msgstr ""
 
-#: mips-tdep.c:4226
+#: mips-tdep.c:4238
 #, possible-c-format
 msgid "GDB can't find the start of the function at %s."
 msgstr ""
 
-#: mips-tdep.c:6184 mips-tdep.c:6221
+#: mips-tdep.c:6196 mips-tdep.c:6233
 #, possible-c-format
 msgid "can't read register %d (%s)"
 msgstr ""
 
-#: mips-tdep.c:6230
+#: mips-tdep.c:6242
 msgid "mips_read_fp_register_double: bad access to odd-numbered FP register"
 msgstr ""
 
-#: mips-tdep.c:6563 riscv-tdep.c:838
+#: mips-tdep.c:6575 riscv-tdep.c:838
 msgid "Not a valid register for the current processor type"
 msgstr ""
 
-#: mips-tdep.c:6926 mips-tdep.c:6940 mips-tdep.c:6954
+#: mips-tdep.c:6938 mips-tdep.c:6952 mips-tdep.c:6966
 msgid "set mipsfpu failed"
 msgstr ""
 
-#: mips-tdep.c:7998
+#: mips-tdep.c:7979
 #, possible-c-format
 msgid "unsupported ABI %s."
 msgstr ""
 
-#: mips-tdep.c:8012
+#: mips-tdep.c:7993
 msgid "unrecognized .gcc_compiled_longXX"
 msgstr ""
 
-#: mips-tdep.c:8024
+#: mips-tdep.c:8005
 msgid "unknown ABI string"
 msgstr ""
 
-#: mips-tdep.c:8041
+#: mips-tdep.c:8022
 msgid "unknown compressed ISA string"
 msgstr ""
 
-#: mips-tdep.c:8605 mips-tdep.c:8654
+#: mips-tdep.c:8586 mips-tdep.c:8635
 msgid "unknown ABI in switch"
 msgstr ""
 
-#: mips-tdep.c:8885
+#: mips-tdep.c:8873
 #, possible-c-format
 msgid "The compressed ISA encoding used is %s.\n"
 msgstr ""
 
-#: mips-tdep.c:8974
+#: mips-tdep.c:8962
 msgid "mips_abi_strings out of sync"
 msgstr ""
 
-#: mips-tdep.c:8990 mips-tdep.c:8994
+#: mips-tdep.c:8978 mips-tdep.c:8982
 msgid "Various MIPS specific commands."
 msgstr ""
 
-#: mips-tdep.c:8999
+#: mips-tdep.c:8987
 msgid "Set the MIPS ABI used by this program."
 msgstr ""
 
-#: mips-tdep.c:9000
+#: mips-tdep.c:8988
 msgid "Show the MIPS ABI used by this program."
 msgstr ""
 
-#: mips-tdep.c:9001
+#: mips-tdep.c:8989
 msgid ""
 "This option can be set to one of:\n"
 "  auto  - the default ABI associated with the current binary\n"
@@ -19671,15 +19679,15 @@ msgid ""
 "  eabi64"
 msgstr ""
 
-#: mips-tdep.c:9019
+#: mips-tdep.c:9007
 msgid "Set the compressed ISA encoding used by MIPS code."
 msgstr ""
 
-#: mips-tdep.c:9020
+#: mips-tdep.c:9008
 msgid "Show the compressed ISA encoding used by MIPS code."
 msgstr ""
 
-#: mips-tdep.c:9021
+#: mips-tdep.c:9009
 msgid ""
 "Select the compressed ISA encoding used in functions that have no symbol\n"
 "information available.  The encoding can be set to either of:\n"
@@ -19688,70 +19696,70 @@ msgid ""
 "and is updated automatically from ELF file flags if available."
 msgstr ""
 
-#: mips-tdep.c:9035
+#: mips-tdep.c:9023
 msgid "Set use of MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9038
+#: mips-tdep.c:9026
 msgid "Select single-precision MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9041
+#: mips-tdep.c:9029
 msgid "Select double-precision MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9047
+#: mips-tdep.c:9035
 msgid "Select no MIPS floating-point coprocessor."
 msgstr ""
 
-#: mips-tdep.c:9052
+#: mips-tdep.c:9040
 msgid "Select MIPS floating-point coprocessor automatically."
 msgstr ""
 
-#: mips-tdep.c:9055
+#: mips-tdep.c:9043
 msgid "Show current use of MIPS floating-point coprocessor target."
 msgstr ""
 
-#: mips-tdep.c:9076
+#: mips-tdep.c:9064
 msgid "Set zeroing of upper 32 bits of 64-bit addresses."
 msgstr ""
 
-#: mips-tdep.c:9077
+#: mips-tdep.c:9065
 msgid "Show zeroing of upper 32 bits of 64-bit addresses."
 msgstr ""
 
-#: mips-tdep.c:9078
+#: mips-tdep.c:9066
 msgid ""
 "Use \"on\" to enable the masking, \"off\" to disable it and \"auto\" to\n"
 "allow GDB to determine the correct value."
 msgstr ""
 
-#: mips-tdep.c:9087
+#: mips-tdep.c:9075
 msgid ""
 "Set compatibility with 64-bit MIPS target that transfers 32-bit quantities."
 msgstr ""
 
-#: mips-tdep.c:9089
+#: mips-tdep.c:9077
 msgid ""
 "Show compatibility with 64-bit MIPS target that transfers 32-bit quantities."
 msgstr ""
 
-#: mips-tdep.c:9091
+#: mips-tdep.c:9079
 msgid ""
 "Use \"on\" to enable backward compatibility with older MIPS 64 GDB+target\n"
 "that would transfer 32 bits for some registers (e.g. SR, FSR) and\n"
 "64 bits for others.  Use \"off\" to disable compatibility mode"
 msgstr ""
 
-#: mips-tdep.c:9103
+#: mips-tdep.c:9091
 msgid "Set mips debugging."
 msgstr ""
 
-#: mips-tdep.c:9104
+#: mips-tdep.c:9092
 msgid "Show mips debugging."
 msgstr ""
 
-#: mips-tdep.c:9105
+#: mips-tdep.c:9093
 msgid "When non-zero, mips specific debugging is enabled."
 msgstr ""
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/riscv-tdep.c ./gdb/riscv-tdep.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/riscv-tdep.c	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/riscv-tdep.c	2018-07-03 01:49:27.000000000 +0000
@@ -128,8 +128,8 @@ static const struct register_alias riscv
   { "t0", 5 },
   { "t1", 6 },
   { "t2", 7 },
-  { "fp", 8 },
   { "s0", 8 },
+  { "fp", 8 },
   { "s1", 9 },
   { "a0", 10 },
   { "a1", 11 },
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/testsuite/ChangeLog	2018-07-02 01:49:45.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2018-07-03 01:49:27.000000000 +0000
@@ -1,3 +1,9 @@
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+
+	PR tdep/8282
+	* gdb.arch/mips-disassembler-options.exp: New test.
+	* gdb.arch/mips-disassembler-options.s: New test source.
+
 2018-06-29  Pedro Alves  <palves@redhat.com>
 
 	* gdb.threads/names.exp: Adjust expected "info threads" output.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/testsuite/gdb.arch/mips-disassembler-options.exp ./gdb/testsuite/gdb.arch/mips-disassembler-options.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/testsuite/gdb.arch/mips-disassembler-options.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips-disassembler-options.exp	2018-07-03 01:49:27.000000000 +0000
@@ -0,0 +1,58 @@
+# Copyright 2018 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Test MIPS disassembler options.
+
+if { ![istarget "mips*-*-*"] } then {
+    verbose "Skipping MIPS disassembler option tests."
+    return
+}
+
+standard_testfile .s
+set objfile [standard_output_file ${testfile}.o]
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {}] \
+     != "" } {
+    return
+}
+
+clean_restart ${objfile}
+
+proc mips_disassemble_test { func insn mesg } {
+    gdb_test "disassemble $func" \
+	"Dump of assembler code for function\
+	 $func:\r\n\[^:\]+:\t$insn\r\nEnd of assembler dump\." \
+	$mesg
+}
+
+# Verify defaults.
+mips_disassemble_test foo "move\tv0,v1" "disassemble default"
+
+# Verify option overrides.
+gdb_test "set disassembler-options gpr-names=numeric"
+mips_disassemble_test foo "move\t\\\$2,\\\$3" "disassemble numeric, gpr-names"
+# Check multiple options too.
+gdb_test "set disassembler-options msa,reg-names=numeric,reg-names=r3000"
+mips_disassemble_test foo "move\t\\\$2,\\\$3" "disassemble numeric, reg-names"
+
+# Verify ABI overrides.
+mips_disassemble_test bar "move\t\\\$2,\\\$8" "disassemble ABI, numeric"
+gdb_test "set disassembler-options"
+gdb_test "set mips abi o32"
+mips_disassemble_test bar "move\tv0,t0" "disassemble ABI, o32"
+gdb_test "set mips abi n32"
+mips_disassemble_test bar "move\tv0,a4" "disassemble ABI, n32"
+gdb_test "set mips abi n64"
+mips_disassemble_test bar "move\tv0,a4" "disassemble ABI, n64"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/testsuite/gdb.arch/mips-disassembler-options.s ./gdb/testsuite/gdb.arch/mips-disassembler-options.s
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/gdb/testsuite/gdb.arch/mips-disassembler-options.s	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/mips-disassembler-options.s	2018-07-03 01:49:27.000000000 +0000
@@ -0,0 +1,30 @@
+#  This test is part of GDB, the GNU debugger.
+#
+#  Copyright 2018 Free Software Foundation, Inc.
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation; either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Note: this is meant to be buildable as MIPS16 or microMIPS code too.
+
+	.globl	foo
+	.ent	foo
+foo:
+	move	$2, $3
+	.end	foo
+
+	.globl	bar
+	.ent	bar
+bar:
+	move	$2, $8
+	.end	bar
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/include/ChangeLog ./include/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/include/ChangeLog	2018-07-02 01:49:46.000000000 +0000
+++ ./include/ChangeLog	2018-07-03 01:49:28.000000000 +0000
@@ -1,3 +1,13 @@
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+
+	PR tdep/8282
+	* dis-asm.h (disasm_option_arg_t): New typedef.
+	(disasm_options_and_args_t): Likewise.
+	(disasm_options_t): Add `arg' member, document members.
+	(disassembler_options_mips): New prototype.
+	(disassembler_options_arm, disassembler_options_powerpc)
+	(disassembler_options_s390): Update prototypes.
+
 2018-06-29  Tamar Christina  <tamar.christina@arm.com>
 
 	PR binutils/23192
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/include/dis-asm.h ./include/dis-asm.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/include/dis-asm.h	2018-07-02 01:49:46.000000000 +0000
+++ ./include/dis-asm.h	2018-07-03 01:49:28.000000000 +0000
@@ -222,16 +222,53 @@ typedef struct disassemble_info
 
 } disassemble_info;
 
-/* This struct is used to pass information about valid disassembler options
-   and their descriptions from the target to the generic GDB functions that
-   set and display them.  */
+/* This struct is used to pass information about valid disassembler
+   option arguments from the target to the generic GDB functions
+   that set and display them.  */
 
 typedef struct
 {
+  /* Option argument name to use in descriptions.  */
+  const char *name;
+
+  /* Vector of acceptable option argument values, NULL-terminated.  */
+  const char **values;
+} disasm_option_arg_t;
+
+/* This struct is used to pass information about valid disassembler
+   options, their descriptions and arguments from the target to the
+   generic GDB functions that set and display them.  Options are
+   defined by tuples of vector entries at each index.  */
+
+typedef struct
+{
+  /* Vector of option names, NULL-terminated.  */
   const char **name;
+
+  /* Vector of option descriptions or NULL if none to be shown.  */
   const char **description;
+
+  /* Vector of option argument information pointers or NULL if no
+     option accepts an argument.  NULL entries denote individual
+     options that accept no argument.  */
+  const disasm_option_arg_t **arg;
 } disasm_options_t;
 
+/* This struct is used to pass information about valid disassembler
+   options and arguments from the target to the generic GDB functions
+   that set and display them.  */
+
+typedef struct
+{
+  /* Valid disassembler options.  Individual options that support
+     an argument will refer to entries in the ARGS vector.  */
+  disasm_options_t options;
+
+  /* Vector of acceptable option arguments, NULL-terminated.  This
+     collects all possible option argument choices, some of which
+     may be shared by different options from the OPTIONS member.  */
+  disasm_option_arg_t *args;
+} disasm_options_and_args_t;
 
 /* Standard disassemblers.  Disassemble one instruction at the given
    target address.  Return number of octets processed.  */
@@ -266,9 +303,10 @@ extern bfd_boolean arm_symbol_is_valid (
 extern void disassemble_init_powerpc (struct disassemble_info *);
 extern void disassemble_init_s390 (struct disassemble_info *);
 extern void disassemble_init_wasm32 (struct disassemble_info *);
-extern const disasm_options_t *disassembler_options_powerpc (void);
-extern const disasm_options_t *disassembler_options_arm (void);
-extern const disasm_options_t *disassembler_options_s390 (void);
+extern const disasm_options_and_args_t *disassembler_options_arm (void);
+extern const disasm_options_and_args_t *disassembler_options_mips (void);
+extern const disasm_options_and_args_t *disassembler_options_powerpc (void);
+extern const disasm_options_and_args_t *disassembler_options_s390 (void);
 
 /* Fetch the disassembler for a given architecture ARC, endianess (big
    endian if BIG is true), bfd_mach value MACH, and ABFD, if that support
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/md5.sum	2018-07-02 01:54:14.000000000 +0000
+++ ./md5.sum	2018-07-03 01:53:59.000000000 +0000
@@ -2,12 +2,12 @@
 d97c22f1847bc426423f25d424963e22  bfd/tekhex.c
 78ce78fa28cf232414d83246ab90d588  bfd/reloc.c
 ee3114f8ce9affe325750d74287dede8  bfd/dwarf2.c
-2a92d37bafdcaf27a4851f1bc83ab267  bfd/libbfd.h
+d75882d62ad7e48e82de5b3d1cbe7cde  bfd/libbfd.h
 f1e932eb1c19f2763afafa12ca09e210  bfd/cpu-nds32.c
 69dc19cbef8cc9c9e991c11695a26e5b  bfd/vaxnetbsd.c
 2e8db6d8c7852c6004bdb5766d26511f  bfd/elf64-ppc.c
 a55098a6da3d5c87e49e5e7073007a16  bfd/elf32-mcore.c
-ecb07798c4f8090973a730cb18df8b32  bfd/archures.c
+833e0e3715a0baec02e08b11642d3129  bfd/archures.c
 e457dca9153e4353fda68aef59d0a95a  bfd/i386lynx.c
 f9e11089341bcb38290cff4cc0fa2583  bfd/bfdwin.c
 e41bf4306979bec62eb8430fb41df6a5  bfd/ChangeLog-2013
@@ -34,9 +34,9 @@ bb45f17458fbd361569bfb2067575c7f  bfd/cp
 30b3c2b0347be7d1bd27e6683a86ce5f  bfd/xtensa-modules.c
 f1d3d3b2e2ce3d9c8c6f9ceab9502966  bfd/elfcore.h
 aca9b8a230aca9041fb5c04b5d2a65a4  bfd/wasm-module.c
-306baaf0ea55df8e2288fc88ab166b7b  bfd/elf64-mips.c
+295cb120314ba3e0ecbc4719acbcb5e0  bfd/elf64-mips.c
 32c1c2c183f56bd2b5af2fb9c3ca94af  bfd/cpu-m9s12x.c
-84fd06d53e5279847ab29d3fb520bb9d  bfd/version.h
+ca5ad097dd8f88e972f61ba6971a74e9  bfd/version.h
 25cd4c1378787d5bb9fa74b13a55098a  bfd/cpu-tilegx.c
 cfcd2011881a504922bee6bf40ce6898  bfd/coff-mcore.c
 836b9de6d0ea1914f82c0ec0fa0341ef  bfd/cpu-avr.c
@@ -50,7 +50,7 @@ a234904ba807a47151853822151464d3  bfd/el
 f00c43a4a52e541de728e1bcc410a246  bfd/coff-bfd.h
 3beec24af9b9d914b871310c18b1b60b  bfd/ecoff.c
 41566a7e839f4531bb42eb82a1d48f81  bfd/cpu-moxie.c
-c77643214893c302819022a175401515  bfd/mach-o.c
+6e5c7f6ad4176a5f32ba0f666f0ee005  bfd/mach-o.c
 0ce9f7ff437329c4d4633d925047a62c  bfd/elf32-vax.c
 11cb6591044cc250a9d953cbc698db58  bfd/pe-arm-wince.c
 1235bb127d7ff16d04fc597513e48510  bfd/cpu-rx.c
@@ -60,8 +60,8 @@ bf291948e17b61b2c2dc2513dda2a95a  bfd/el
 3b7896273f52ee7f290ad9d51d246647  bfd/libaout.h
 1874b2f447ec006abacb463ef451ce4f  bfd/elfxx-aarch64.h
 d4f19e72e13657f50aa7d6429711e53d  bfd/elf-vxworks.c
-df42d038359e256ae2cb9d092439cb47  bfd/elfxx-mips.c
-931f45afff62aa04862a6710951fad91  bfd/archive.c
+92da52f0529721e9c65e532e876f101a  bfd/elfxx-mips.c
+ffd8fa2afd05fb78b494379e6a3bb353  bfd/archive.c
 c65250570f63c8c3a91088f8fa23f340  bfd/aix5ppc-core.c
 f08f49553df4594e5541c9e1e8c5aa50  bfd/pei-ppc.c
 6a48d8541f761c8ca3de98975acbbcce  bfd/elfxx-ia64.c
@@ -139,7 +139,7 @@ fd2f709ee318221e7dea29c072e9b7b4  bfd/cp
 f5c52bcaa7aee0b94d3235a445978953  bfd/configure.host
 01cc63fbebf1a8868f057dc2eb38b909  bfd/cpu-aarch64.c
 19c63b604f6f33790f92e2b86cff1b46  bfd/elf32-ft32.c
-a7e9133f111b24a15b05b09e56535718  bfd/bfd-in2.h
+c5fa2ed62feb85e971ec3c53e8f6bafe  bfd/bfd-in2.h
 12e16cab684c810195a06be8ac3baa73  bfd/cpu-nfp.c
 57d5dcb50a5921ea4198d2d218f5e88b  bfd/cpu-k1om.c
 6f46335aa43d4e6293804a34ad7ab22a  bfd/cpu-lm32.c
@@ -199,13 +199,13 @@ f32b11f47b666164ab1aa78183a50b1e  bfd/do
 8fb520aca88741f76639eb33a22a2937  bfd/doc/bfdver.texi
 3d524b7e195fb38eb168045e4a2d18aa  bfd/doc/coffcode.texi
 0f03c268d81adcd8078ba07561413b06  bfd/doc/makefile.vms
-a2f1c3fa668cfb935e6b86973edb18e1  bfd/doc/bfd.info
+4c8d1453d608fddaa206adea6d6c9d8a  bfd/doc/bfd.info
 0099d1d7b0f7fbea1244c30268db03b7  bfd/doc/bfdt.texi
 e67d8b07516154c4ddbee2e3bab3d75e  bfd/doc/doc.str
 9a6e644c9e94d7b18073f5cc6ef4395a  bfd/doc/header.sed
 fceb179f1a1bc85df44ec0ae3b917c1c  bfd/doc/archive.texi
-a5bd12fd08a643bc23e2ab032922d0c0  bfd/doc/bfdint.texi
-3c5a429f7a282fb688ec15a4deea289e  bfd/doc/archures.texi
+2986e377ab05ed88328818fafcec4030  bfd/doc/bfdint.texi
+249d207f927bee9cbcc74c5e3eacaf65  bfd/doc/archures.texi
 51139f6af786e74446d01ec49807fc28  bfd/doc/elf.texi
 06c6f483903efef1756b3c24fe4507ad  bfd/doc/bfd.texi
 f9f7717174d0c1f08360e1265f05a8c1  bfd/doc/Makefile.am
@@ -215,7 +215,7 @@ d9f7fec3dee69a6c3084e6d4cfd88371  bfd/do
 0b9681af947fd0895c1aad2ccdead74c  bfd/doc/linker.texi
 db9e2773d58e296725715d0e3494d54a  bfd/doc/chew.c
 001da3c839b048ad82102ca4c5598743  bfd/doc/webassembly.texi
-94d48548d3b9000a294a766b7367d7a0  bfd/doc/bfdsumm.texi
+a25c28d97d53ddc1213a753abd5a594f  bfd/doc/bfdsumm.texi
 d41d8cd98f00b204e9800998ecf8427e  bfd/doc/elfcode.texi
 d7a37304ccd7b245f93df4be02797477  bfd/doc/proto.str
 2fcb7fad5bee8e2df5992b3f8505b94b  bfd/doc/aoutx.texi
@@ -322,7 +322,7 @@ a939bdd818ca9a692a3ab42a01f0cfde  bfd/ar
 56aba66db3209da983fda2af58bbbe2f  bfd/cpu-arc.c
 3c0a070a98b24ef6248946e499503da9  bfd/acinclude.m4
 0a75b5298728144078cbc6aa317c1bdf  bfd/configure
-dbf334f4617a6b35eec2128a26ca1e8f  bfd/cpu-arm.c
+9fb0db4073853e3c1f62ff2e333c0dca  bfd/cpu-arm.c
 025aa3797bf17bef5676e940d48728ec  bfd/elf64-ppc.h
 61447ed7c1d3528f6aad8ef4cb3a214d  bfd/merge.c
 9ab78ef96af9ec62abe769b7b24b9f9e  bfd/elf32-sparc.c
@@ -392,7 +392,7 @@ a98b6da27a6fa8c18cd48ad2762cc1ad  bfd/el
 8d4d744508f1954a1e84207976a9ed1f  bfd/elfxx-ia64.h
 a32a11a90e680d848c563a7664389067  bfd/elf32-or1k.c
 2074a9dac470cf61aaaecc2f61f057b8  bfd/targets.c
-30d0a1d37b581b7ed0bb22455fa96887  bfd/ChangeLog
+e3eeeb2727ea07657ad25178ca797935  bfd/ChangeLog
 76a54b57696d4946a2fc04746941130b  bfd/section.c
 78ae11600c2227f680fd167903e41c28  bfd/elf-s390-common.c
 4cd053ce6a3075cc43ac05bbf8fc60cb  bfd/elf32-lm32.c
@@ -413,7 +413,7 @@ e9698c9141c0aee24395d33862a533b4  bfd/el
 48097790cbee8800147ba96a6dd07fc8  bfd/ChangeLog-0203
 b97f9a1ec3d2381f31403c94e269fc89  bfd/cpu-tic30.c
 ab5581d8ad05ad4b50a8ae717693e30e  bfd/cpu-m32r.c
-8af7e816d13947783bc81112a066c265  bfd/elf32-arm.c
+497b2a21f6400c6d41244ba3e5b0124b  bfd/elf32-arm.c
 1cd74a83f7736c428e3aab587ab64e2b  bfd/elf32-ppc.h
 2f3717840f1c319ab980200dfc5c4084  bfd/cpu-msp430.c
 f8be9b0bb44bce2fe2c60c0b865b63d1  bfd/cpu-fr30.c
@@ -435,14 +435,14 @@ f79a027cb8e8f875a841a9f354933f5f  bfd/el
 669791745e8a64f1a721d0f8837c4e22  bfd/cpu-riscv.c
 153ffbad09abbe9d71f46064ba7b9774  bfd/cpu-microblaze.c
 31b5a14536c0f02552823cc396ffec22  bfd/coff-bfd.c
-7483c50eea7166f858f8b943efd80286  bfd/libbfd-in.h
+60e597a516ae068faca04ea0d7c293ae  bfd/libbfd-in.h
 2fd63da4280736f626869c01f96e7282  bfd/cpu-m10200.c
 62f2a04737d2f229e9bc2b07bcd84ddc  bfd/cpu-tilepro.c
 1616089974633cf0fb24b7e9152a7f47  bfd/ChangeLog-2008
 3ff9852513b6eb08185c0614170e2a62  bfd/cpu-mt.c
 6812c4fc3f87f39c5180a119c700fded  bfd/version.m4
 8f0b819df5c31fe95d83945d4f54c86f  bfd/cpu-dlx.c
-890b21ceccbc2d8156f57b7d9cf9e056  bfd/elfn32-mips.c
+79b1e4db1fbddaf589f24a9d567856ed  bfd/elfn32-mips.c
 430b1e965b34c857511196434fcb35e8  bfd/cpu-tic4x.c
 918e9e0117dfc570bab13e1ee12bd37a  bfd/cpu-ia64.c
 6474afde93f8e964e3d6dddffde3c41e  bfd/ChangeLog-0001
@@ -493,7 +493,7 @@ deb331f75b126fadfb6d8f2b65a26392  bfd/cp
 014e3529df2456de66491a46d89ec438  bfd/libpei.h
 56f0f0d6630830f39ea8953e7dcb3793  bfd/aix386-core.c
 1650f83cf27bd08604ce84648518719b  bfd/elf64-nfp.c
-ac347bd0229f19d18985465b1fc95478  bfd/elf64-x86-64.c
+80870247918b8f3f9ddfd43dd19c7051  bfd/elf64-x86-64.c
 27b9737926107462828661b15e4826cd  bfd/cpu-tic54x.c
 98095d09201981dd12e79fc6871de30b  bfd/pe-i386.c
 aa6d52e59ff7525011ec7ae374bae793  bfd/cpu-m9s12xg.c
@@ -974,7 +974,7 @@ c601365d4ac0b5a469da071dc5fc3405  gdb/py
 346d070b867a3a09fff763698da9d9d6  gdb/target.h
 c149c9d0681d8b3c7df56c934f678289  gdb/obsd-nat.h
 f6fbb67606fbf88afe1e2cbe837f6779  gdb/frame-base.c
-776077256ae474436b6df27be4e15304  gdb/riscv-tdep.c
+25aa63e3ce1bbe67d89f4867a3238e69  gdb/riscv-tdep.c
 7fa05adbfa4c24cbab8d63bf5cf76f6a  gdb/fork-child.c
 48a5c946ec056dc7f478bf3635b9e7f9  gdb/spu-multiarch.c
 5da919ce66c0ef3636a4a43058180cb8  gdb/ax-general.c
@@ -1077,7 +1077,7 @@ a48ad78ce6fbf2dc7747795c1ca3870e  gdb/pp
 a1512b718c996b716de80b043ce95916  gdb/utils.c
 90e56dea65beb67443d6c83cbc5fed7f  gdb/ChangeLog-1997
 d9585f56d83238ff517da78a9ec82fbd  gdb/trad-frame.h
-78fc494c2d7f64400a168f5417e976db  gdb/arm-tdep.c
+721561287713a2cc35ab69114bf62dd5  gdb/arm-tdep.c
 4ed7f92eda0e9ddabcc4ff9a5fa525cb  gdb/aarch64-fbsd-tdep.c
 8c43648bb19784c4688d7bf96c1391ee  gdb/cris-tdep.c
 c1f27b92411ea186e3c433970c04cc9d  gdb/dictionary.c
@@ -1130,7 +1130,7 @@ c44719e943c63d6a2080c39a80ed7c04  gdb/am
 424b4fdaa027f9abf9702c54f517dbf4  gdb/README
 08193c552ff2cba48e95810ac883afef  gdb/fbsd-nat.h
 783e4920ae8f7eae2da5af0849785671  gdb/inferior.c
-bc61cf5cb75086c360f993326940d08f  gdb/mips-tdep.c
+a76f35d8e27ff5d9a93686cbb3af5f0a  gdb/mips-tdep.c
 209ebf519095c34cafb76a963d12acb2  gdb/solib-dsbt.c
 3841829a96a933bfc06fbdb58af7e1fa  gdb/minsyms.c
 e9e73ead1f67643a58e783be0b57284d  gdb/i386-darwin-tdep.c
@@ -1269,7 +1269,7 @@ dbbb62e3f15e0a463f16521f5641f345  gdb/c-
 dbeb7ed60c2a8516b5ba18758fa20340  gdb/m32r-linux-nat.c
 4f759babbd4e92af19d46831bf38b162  gdb/sparc64-nbsd-nat.c
 5bf55e318a32620260f5f79896f75edc  gdb/gdb_bfd.c
-4c1aa7ddfb8cb9c99bac8c10c693fdb5  gdb/NEWS
+4d4e1c918fbd5c875da660fad8e3fd4a  gdb/NEWS
 0b63e43dcd7479215ada2f221ebae180  gdb/x86-nat.c
 19f44a8aa6ca362a0a0418a344afa316  gdb/dcache.c
 7a46561e7dee652558e7454750d05a7b  gdb/ada-lex.l
@@ -1297,7 +1297,7 @@ fc71efca03535915fb34279829bf093c  gdb/ps
 aaaa6f1f7fc6fb08e48575717e97f93c  gdb/stack.h
 da71c479b68a4d95a79d36640b93c9c3  gdb/ChangeLog-2000
 23a5c9c3444c28c89aed5d3bab864bba  gdb/tic6x-linux-tdep.c
-59c4cd8318369757586dc469c68c3216  gdb/gdbarch.c
+ddc6735224937542a16ad8c8a448f6c2  gdb/gdbarch.c
 ac3684c4a3658e1fd2ef5be5f457ec12  gdb/CONTRIBUTE
 289cf4a8613664f7744dc12d8cbfb4a4  gdb/mep-tdep.c
 642426c650d1ca27f541c6f4e3437160  gdb/opencl-lang.c
@@ -3668,6 +3668,7 @@ f1cb2e19690caab837d9e3c128ebbe16  gdb/te
 28f4d30212845fee182918caeb04dd49  gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
 8b20e028ec74384a9f73f93d7f33c7e3  gdb/testsuite/gdb.arch/arc-decode-insn.exp
 e851eefbbcccee753df36f2884a6b643  gdb/testsuite/gdb.arch/powerpc-prologue-frame.S
+795f0d1db725bd4461fb2b90eeb8fdf9  gdb/testsuite/gdb.arch/mips-disassembler-options.s
 63d0ecb1b8eb512bbbcc5699515cbfbb  gdb/testsuite/gdb.arch/i386-float.S
 c9296c9f9da2bd9e11d31a4061cb98a2  gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c
 a33dc88a3c9d6324f4aa099154b88953  gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
@@ -3779,6 +3780,7 @@ e961d534371ec8af08e82e3bda1d1fb2  gdb/te
 7abc6a4809567dc201f86b800420e6c0  gdb/testsuite/gdb.arch/powerpc-vsx.exp
 e8696216f6cf75fe8d8747b2381bde35  gdb/testsuite/gdb.arch/i386-avx512.c
 b2992d1cbb7d2761dbb4ccd07cf875ee  gdb/testsuite/gdb.arch/mips-fpregset-core.exp
+a9317c3c40490a4bb662a8392016a079  gdb/testsuite/gdb.arch/mips-disassembler-options.exp
 ada84db15b35e73ad48a14a0cc9b64af  gdb/testsuite/gdb.arch/i386-mpx-simple_segv.c
 2f7812746218262a6c37e0373c5e7ded  gdb/testsuite/gdb.arch/spu-info.exp
 7963f9de6fae6e5d9c71a97dfe721dad  gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
@@ -4306,7 +4308,7 @@ d44d1fe2176806ee76348b558b3a67ab  gdb/te
 de055987af9fd672f5e6aa5280e504cf  gdb/testsuite/gdb.go/integers.exp
 68d17058fa82304a192749f0eadc138d  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-2eeb7916b9099a526a91e230a102cfc6  gdb/testsuite/ChangeLog
+334b173ed8798b1044585916ac247d92  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
 14f9e33160bd01242a862c5c90513000  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
@@ -5055,43 +5057,43 @@ fffc5b8392be874e48a25586da651b0e  gdb/sy
 29209f0a84f981d84f100e8fc4c3a84b  gdb/f-valprint.c
 b6bbbfc248f90052ce30fda420c5916f  gdb/gdb_curses.h
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-2fae8ed464060110bd4eee62268f3020  gdb/doc/gdb.info-3
-1714db8c2c70336e1e2799b2fcb7d8ef  gdb/doc/gdb.info-4
+02b53652b445533e6519bdf59c0e7670  gdb/doc/gdb.info-3
+3454f609b2c98e8cec055ba4a88af4a6  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 7293ab6b8a4482a4fb58806f78e27fd9  gdb/doc/Makefile.in
-87b34eb6ab8c78aaa5c5cef05d293e7e  gdb/doc/gdb.info-7
-4ac43ede50f2146f0b8562ca3d2ff91a  gdb/doc/gdbserver.1
+ee136f18c514ca1067f154d79cc45cbe  gdb/doc/gdb.info-7
+8ae629336966aff38fbc515a1cb14d28  gdb/doc/gdbserver.1
 8a3211e1c1b6c1a9ae823c3c469675e8  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 319d74c658533df2b0bedcca97af4d94  gdb/doc/stabs.info
-1003a06d0aa4a1af68eb63630308535b  gdb/doc/gdb.info-5
+871c01bdff799b2d2046efcebb78b721  gdb/doc/gdb.info-5
 19abe6cc6d5cc545f19b7c7703223589  gdb/doc/agentexpr.texi
 66674dc351ba95941f422dc18cae24bb  gdb/doc/.gitignore
-0b643d0f15e0e06d3be20cc17c08b0b9  gdb/doc/gdb.info-1
+ee37e3189e7d4386a3b76e9a2cbb7432  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-b393c6945ab1c52f8b52dde6d1c6ca3a  gdb/doc/gdb.info-6
-ef2f9a3da69eb7015f215dcc439714eb  gdb/doc/gdb.texinfo
-256758cb1cd418cc69dd625aa7b15c8f  gdb/doc/gdb-add-index.1
+6bbfaca002c4ca9d5373f36a9f7183e8  gdb/doc/gdb.info-6
+c4f137eb4e230b7ee5413b2714846554  gdb/doc/gdb.texinfo
+f786448c9d97e10623519d4a106682b2  gdb/doc/gdb-add-index.1
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
 6eef6173ced7b929f5142c1577f2189a  gdb/doc/Doxyfile-gdb-api.in
 26a572acbe3a2b351c0d3c0a2790b07d  gdb/doc/annotate.info
-d5f08ff9400130d4399f8299a902c02a  gdb/doc/gdb.info-2
+f5e0d60999fde287d427623bbe742c4a  gdb/doc/gdb.info-2
 0e44f6ffe6996c2827630e31909c3e1e  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-ebd932a0f96f3d05da84ef74f09312eb  gdb/doc/gdb.info
+cfc095ee19ee61ddfa6481fe92832a82  gdb/doc/gdb.info
 65a7709429887bbf3a2d4cc49bfe2a38  gdb/doc/python.texi
 c3feb7ddebdf77fd82e65fc406bc2f23  gdb/doc/stabs.texinfo
-5deee12286b9a5f72ffb3fb633a8e046  gdb/doc/ChangeLog
-82c2a87347870045d4e20617786b3ff5  gdb/doc/gdb.1
-54bfef27b2a64ab648ae0ee3d5a8d1b8  gdb/doc/gcore.1
+1734c16e75b7b00ef42f9968d9856563  gdb/doc/ChangeLog
+1d11fecf5aa1510a61dfa5dbb20b5413  gdb/doc/gdb.1
+edc372856176c046e2e96e59b2191a63  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 2ad37190a4e38a8186d90bc76fc4e551  gdb/doc/Doxyfile-base.in
 3e12b16a85438bdf1fd7355cd397282a  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-4a3b897dd4e48938e13bdfa7852cf445  gdb/doc/gdbinit.5
+4592d8df2469f232e6814490ad51fb88  gdb/doc/gdbinit.5
 78d7bd07699d6e1b53e552cc3a1c16ef  gdb/doc/Doxyfile-gdb-xref.in
 d398b8cec3d96f0f3267dac6b8fe64bb  gdb/doc/annotate.texinfo
 5863a78c1571978dc97dccb25e481134  gdb/doc/doxy-index.in
@@ -5137,7 +5139,7 @@ bfd47f8ede612cee378d330d7a05cc7f  gdb/mi
 f938c4acf318107341963ec003678b1a  gdb/ctf.h
 63e4c8e662e1b40c2a4bd525088cf119  gdb/varobj-iter.h
 7f0d3b75a0a4f1ae08e0bc490b8b7331  gdb/mn10300-linux-tdep.c
-8dbe01a0d17c6063d8553a0d8e9081e3  gdb/gdbarch.sh
+16eef871a90a1e0a96a7a9cdbd9b1863  gdb/gdbarch.sh
 8c54cd86200b7e75829e6f820d5940ae  gdb/skip.h
 d87f8f330dda7f736350ea5dcff5b709  gdb/ChangeLog-2006
 b5f6fcbd46151cfd186f9b1eb2fdc939  gdb/location.c
@@ -5588,7 +5590,7 @@ a9395d09415322faea2304f9a1d7d9e2  gdb/co
 c8ad35fbed9ae9f7955517bb9dfddaf3  gdb/std-regs.c
 f18eaf82079c22fefde0df5f1a87e1e7  gdb/go-lang.h
 08acbfe7a6b5373b372b4cbe252da59c  gdb/i386-windows-nat.c
-12e39a029948f84949d68caefbf91db0  gdb/po/gdb.pot
+15a5acab729e2e492a303496e3c0d948  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
 0f52c2a584933e0bf3b982ada452c462  gdb/break-catch-syscall.c
 54c4454b0473cd46460ddd4a1d8697a6  gdb/ada-lang.c
@@ -5602,7 +5604,7 @@ ed568d3dbe515b1e243694d5548a0e48  gdb/gd
 e5551628e587bd1b05b7e32b07c2890a  gdb/annotate.h
 ef7edcbe999ec6e6cba3c12e8198e630  gdb/ppc-fbsd-tdep.h
 7424f11b9a409536167509de345b3531  gdb/parser-defs.h
-7a9e6140e892fd8bd4df079cd91ce2d0  gdb/disasm.c
+e262870cc0cc4fde3fdb441d39c8a44c  gdb/disasm.c
 bd0152672997c677164efd55ea54bf13  gdb/memattr.h
 727f14500d8b295f85408c90ac1a1c73  gdb/moxie-tdep.h
 8799c0c6668fbeeb67579e3053b501f3  gdb/tic6x-tdep.h
@@ -5620,7 +5622,7 @@ f539f4273565a74911411b6f401d41e5  gdb/nb
 3c9961cb6c84271cfbbde613a1c7962d  gdb/i386-fbsd-nat.c
 22b7bd034786740f2c39f2e5011e6265  gdb/mipsread.c
 a9a6ddae1b01457074654fa044ccd35f  gdb/amd64-darwin-tdep.c
-d340a7243f73862fb4da31e1fa2f0173  gdb/ChangeLog
+b80e6d3682bbb6742bfd2eb36e29b08e  gdb/ChangeLog
 59570a0bc164919d36efd6a8d2ef0c89  gdb/go-typeprint.c
 fc2f696609dae162343590eeb57eda62  gdb/score-tdep.c
 c75bca55efb6a051ca94c96437efc365  gdb/xml-support.h
@@ -6378,7 +6380,7 @@ aaed4a2b4da7446db37f7613e2211d05  gdb/i3
 4b06b14e71b6d0f9b8ee9c0b7402aff9  gdb/configure.nat
 e06153bfef7073a2c89603bff272d6e7  gdb/memattr.c
 70d670ddae817062224e4eac1e06c1bf  gdb/event-top.h
-6d1c6b10918a0cf8d9e32ff559a66c9b  gdb/gdbarch.h
+e3f5eb4571511f560bb0bf59cd3bf8d6  gdb/gdbarch.h
 9198f7b1807c968098814aa2a3901aee  gdb/gdb.gdb
 f3f2261b3941220c82b4dfcd6c94e585  gdb/gdbcmd.h
 cb58e8c3acb98ee0568c8b65d6ffaa1a  gdb/sparc64-obsd-tdep.c
@@ -6499,7 +6501,7 @@ d3bb97e47dabf4141766c1d4d50329af  gdb/un
 3b5eeda6e0cdc1734ac9d02b826e85c4  gdb/unittests/array-view-selftests.c
 a3c6341d22e31ac2d9149d4969e2a0e9  gdb/unittests/string_view-selftests.c
 ff193cc850cefb47da6fd5ebe54ed4cd  gdb/unittests/lookup_name_info-selftests.c
-f092e3b5be79c57d290e77f669acb19b  gdb/disasm.h
+a63e4a2e216a818854523153dc2e6767  gdb/disasm.h
 1b4dad655c46022688b993df2c00c4f9  gdb/i386-linux-nat.c
 2473f072b54d2d1dc3e12b495675a2bb  include/safe-ctype.h
 53bdfdb5cd3c0c7831611602041cda52  include/xregex.h
@@ -6706,8 +6708,8 @@ d2ad036f25b58cfe8d97a28e90381e79  includ
 ffcfe0cb01c0a38af7417bc9aa775e94  include/gdb/callback.h
 810af656d62bf4d126e8ac209c33fb19  include/hashtab.h
 e8bf8dd17f26a9cf31a3a56106772180  include/gcc-interface.h
-7cde026fa0c52269ba627ca030c38ef6  include/ChangeLog
-4c9f22255d779f166ad28a10abb00b25  include/dis-asm.h
+52184450866bddfb519d8d33c52de413  include/ChangeLog
+1fdc20333253d4d7142d700310678265  include/dis-asm.h
 dba6f24691254ca1333ae3aa858af9b2  include/splay-tree.h
 1cc64c7ec7b7065e8ae4a879369655e4  include/filenames.h
 853f8c73e25aebb37bee7ecfef2008aa  include/symcat.h
@@ -7188,7 +7190,7 @@ a93240b751c036e59763e911c8b4eff9  opcode
 cfb39cb1b14926c382dc5ea6f035914d  opcodes/cgen-asm.in
 ec33d1bb43b1bd061b68f5c3d9c2a4a6  opcodes/riscv-dis.c
 8a2797464fdecb8bf95286ccf928cfa2  opcodes/moxie-opc.c
-d663fdc053947e553f3bd80299bac1a9  opcodes/arm-dis.c
+731ca0eab4658fd17ec58481066f9f3f  opcodes/arm-dis.c
 fb621c8e62a92d32d0d4d5421a8dc902  opcodes/aarch64-opc-2.c
 ddabcb5158e34cafcdbcdceae5448923  opcodes/fr30-opc.h
 b816345c4d16a5f1dc433e5be816b401  opcodes/m68k-opc.c
@@ -7234,7 +7236,7 @@ bb424e3a2ee38459a9f75d99abce1ea2  opcode
 a1b3a4246e87835bf133249810ff30c3  opcodes/mt-desc.c
 8fc82052d6025052b65f72866f4e665a  opcodes/mmix-opc.c
 e32fd275834e61fc50e974f6cd1bafc5  opcodes/i386-init.h
-c0fa11ec91981badb3a0713f22517540  opcodes/s390-dis.c
+c22ba8c94bf79c34d8601a12f1eb2d21  opcodes/s390-dis.c
 296d5635584317333fb203dad13fe908  opcodes/sh-dis.c
 7fb045bff404a46c9268001c8870c3c0  opcodes/i386-dis.c
 8d13a8b5d6954e0cf6c6417608c241c3  opcodes/disassemble.h
@@ -7266,7 +7268,7 @@ d524f4a0cd4542179d5a284d249b319d  opcode
 5d59a42c21124038ea803dd5d3d9a9f4  opcodes/spu-opc.c
 ee01fad59f67dea5eab12740108fe62e  opcodes/m32r-desc.h
 9e67198055cfcfb148ddc4c2f12528e5  opcodes/xgate-opc.c
-176b2591147d6174c5bb03c1c86fc2fe  opcodes/ppc-dis.c
+4f931d3d23fb8140512e62bb0977b966  opcodes/ppc-dis.c
 17b0496e42cf4f1858838775040c23c6  opcodes/ia64-dis.c
 f2616521db4a304874512281de0301da  opcodes/ft32-dis.c
 7b2e4e2d5b9cac852f1830ce6f299ed5  opcodes/z80-dis.c
@@ -7274,7 +7276,7 @@ f2616521db4a304874512281de0301da  opcode
 821e9a6001b4eb57520735c46bac278f  opcodes/lm32-desc.c
 25a3af05d7d778bca89625965576ce1b  opcodes/xstormy16-dis.c
 5902a935d9fe9dbe0ff5d8236a72c6db  opcodes/cgen-dis.in
-9184d73d2368c6c72f744b641e54d846  opcodes/mips-dis.c
+3f15d27ffd1ba0d284814b0eaa8c2f6a  opcodes/mips-dis.c
 91892bef65d868299ec34b488b4a171e  opcodes/s12z.h
 cfaba148fee5c371656a8ec50375d07a  opcodes/arc-regs.h
 87f4c82677e7cda39f65f9ef3470c98b  opcodes/msp430-decode.opc
@@ -7364,7 +7366,7 @@ b794098718c76a1fcf348fe2412c42c3  opcode
 3e1b56af946bc90309b854236c01f6d5  opcodes/m10300-dis.c
 395f7184aa40f80b8a109ee7f116439f  opcodes/nds32-opc.h
 c81f896bb87c1b3093fbe39e0807501d  opcodes/aarch64-opc.h
-a0c0df4dcdfc3245f2e966e6cf4bece0  opcodes/ChangeLog
+85276e17b473e001c5176b0ebd495a91  opcodes/ChangeLog
 327cf11f5c08b578f3b0cdb7f3923280  opcodes/ia64-raw.tbl
 23baa51211f26d956af9bce5ff49852c  opcodes/frv-dis.c
 3c239897390c6d034d306335d407054f  opcodes/aarch64-opc.c
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/arm-dis.c ./opcodes/arm-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/arm-dis.c	2018-07-02 01:49:47.000000000 +0000
+++ ./opcodes/arm-dis.c	2018-07-03 01:49:29.000000000 +0000
@@ -6387,7 +6387,7 @@ mapping_symbol_for_insn (bfd_vma pc, str
 
 /* Given a bfd_mach_arm_XXX value, this function fills in the fields
    of the supplied arm_feature_set structure with bitmasks indicating
-   the support base architectures and coprocessor extensions.
+   the supported base architectures and coprocessor extensions.
 
    FIXME: This could more efficiently implemented as a constant array,
    although it would also be less robust.  */
@@ -6396,40 +6396,69 @@ static void
 select_arm_features (unsigned long mach,
 		     arm_feature_set * features)
 {
+  arm_feature_set arch_fset;
+  const arm_feature_set fpu_any = FPU_ANY;
+
 #undef ARM_SET_FEATURES
 #define ARM_SET_FEATURES(FSET) \
   {							\
     const arm_feature_set fset = FSET;			\
-    arm_feature_set tmp = ARM_FEATURE (0, 0, FPU_FPA) ;	\
-    ARM_MERGE_FEATURE_SETS (*features, tmp, fset);	\
+    arch_fset = fset;					\
   }
 
+  /* When several architecture versions share the same bfd_mach_arm_XXX value
+     the most featureful is chosen.  */
   switch (mach)
     {
-    case bfd_mach_arm_2:       ARM_SET_FEATURES (ARM_ARCH_V2); break;
-    case bfd_mach_arm_2a:      ARM_SET_FEATURES (ARM_ARCH_V2S); break;
-    case bfd_mach_arm_3:       ARM_SET_FEATURES (ARM_ARCH_V3); break;
-    case bfd_mach_arm_3M:      ARM_SET_FEATURES (ARM_ARCH_V3M); break;
-    case bfd_mach_arm_4:       ARM_SET_FEATURES (ARM_ARCH_V4); break;
-    case bfd_mach_arm_4T:      ARM_SET_FEATURES (ARM_ARCH_V4T); break;
-    case bfd_mach_arm_5:       ARM_SET_FEATURES (ARM_ARCH_V5); break;
-    case bfd_mach_arm_5T:      ARM_SET_FEATURES (ARM_ARCH_V5T); break;
-    case bfd_mach_arm_5TE:     ARM_SET_FEATURES (ARM_ARCH_V5TE); break;
-    case bfd_mach_arm_XScale:  ARM_SET_FEATURES (ARM_ARCH_XSCALE); break;
+    case bfd_mach_arm_2:	 ARM_SET_FEATURES (ARM_ARCH_V2); break;
+    case bfd_mach_arm_2a:	 ARM_SET_FEATURES (ARM_ARCH_V2S); break;
+    case bfd_mach_arm_3:	 ARM_SET_FEATURES (ARM_ARCH_V3); break;
+    case bfd_mach_arm_3M:	 ARM_SET_FEATURES (ARM_ARCH_V3M); break;
+    case bfd_mach_arm_4:	 ARM_SET_FEATURES (ARM_ARCH_V4); break;
+    case bfd_mach_arm_4T:	 ARM_SET_FEATURES (ARM_ARCH_V4T); break;
+    case bfd_mach_arm_5:	 ARM_SET_FEATURES (ARM_ARCH_V5); break;
+    case bfd_mach_arm_5T:	 ARM_SET_FEATURES (ARM_ARCH_V5T); break;
+    case bfd_mach_arm_5TE:	 ARM_SET_FEATURES (ARM_ARCH_V5TE); break;
+    case bfd_mach_arm_XScale:	 ARM_SET_FEATURES (ARM_ARCH_XSCALE); break;
     case bfd_mach_arm_ep9312:
-      ARM_SET_FEATURES (ARM_FEATURE_LOW (ARM_AEXT_V4T,
-					 ARM_CEXT_MAVERICK | FPU_MAVERICK));
+	ARM_SET_FEATURES (ARM_FEATURE_LOW (ARM_AEXT_V4T,
+					   ARM_CEXT_MAVERICK | FPU_MAVERICK));
        break;
-    case bfd_mach_arm_iWMMXt:  ARM_SET_FEATURES (ARM_ARCH_IWMMXT); break;
-    case bfd_mach_arm_iWMMXt2: ARM_SET_FEATURES (ARM_ARCH_IWMMXT2); break;
-      /* If the machine type is unknown allow all
-	 architecture types and all extensions.  */
-    case bfd_mach_arm_unknown: ARM_SET_FEATURES (ARM_FEATURE_ALL); break;
+    case bfd_mach_arm_iWMMXt:	 ARM_SET_FEATURES (ARM_ARCH_IWMMXT); break;
+    case bfd_mach_arm_iWMMXt2:	 ARM_SET_FEATURES (ARM_ARCH_IWMMXT2); break;
+    case bfd_mach_arm_5TEJ:	 ARM_SET_FEATURES (ARM_ARCH_V5TEJ); break;
+    case bfd_mach_arm_6:	 ARM_SET_FEATURES (ARM_ARCH_V6); break;
+    case bfd_mach_arm_6KZ:	 ARM_SET_FEATURES (ARM_ARCH_V6KZ); break;
+    case bfd_mach_arm_6T2:	 ARM_SET_FEATURES (ARM_ARCH_V6KZT2); break;
+    case bfd_mach_arm_6K:	 ARM_SET_FEATURES (ARM_ARCH_V6K); break;
+    case bfd_mach_arm_7:	 ARM_SET_FEATURES (ARM_ARCH_V7VE); break;
+    case bfd_mach_arm_6M:	 ARM_SET_FEATURES (ARM_ARCH_V6M); break;
+    case bfd_mach_arm_6SM:	 ARM_SET_FEATURES (ARM_ARCH_V6SM); break;
+    case bfd_mach_arm_7EM:	 ARM_SET_FEATURES (ARM_ARCH_V7EM); break;
+    case bfd_mach_arm_8:
+	{
+	  /* Add bits for extensions that Armv8.4-A recognizes.  */
+	  arm_feature_set armv8_4_ext_fset
+	    = ARM_FEATURE_CORE_HIGH (ARM_EXT2_FP16_INST | ARM_EXT2_FP16_FML);
+	  ARM_SET_FEATURES (ARM_ARCH_V8_4A);
+	  ARM_MERGE_FEATURE_SETS (arch_fset, arch_fset, armv8_4_ext_fset);
+	  break;
+	}
+    case bfd_mach_arm_8R:	 ARM_SET_FEATURES (ARM_ARCH_V8R); break;
+    case bfd_mach_arm_8M_BASE:	 ARM_SET_FEATURES (ARM_ARCH_V8M_BASE); break;
+    case bfd_mach_arm_8M_MAIN:	 ARM_SET_FEATURES (ARM_ARCH_V8M_MAIN); break;
+      /* If the machine type is unknown allow all architecture types and all
+	 extensions.  */
+    case bfd_mach_arm_unknown:	 ARM_SET_FEATURES (ARM_FEATURE_ALL); break;
     default:
       abort ();
     }
-
 #undef ARM_SET_FEATURES
+
+  /* None of the feature bits related to -mfpu have an impact on Tag_CPU_arch
+     and thus on bfd_mach_arm_XXX value.  Therefore for a given
+     bfd_mach_arm_XXX value all coprocessor feature bits should be allowed.  */
+  ARM_MERGE_FEATURE_SETS (*features, arch_fset, fpu_any);
 }
 
 
@@ -6821,17 +6850,23 @@ print_insn_little_arm (bfd_vma pc, struc
   return print_insn (pc, info, TRUE);
 }
 
-const disasm_options_t *
+const disasm_options_and_args_t *
 disassembler_options_arm (void)
 {
-  static disasm_options_t *opts = NULL;
+  static disasm_options_and_args_t *opts_and_args;
 
-  if (opts == NULL)
+  if (opts_and_args == NULL)
     {
+      disasm_options_t *opts;
       unsigned int i;
-      opts = XNEW (disasm_options_t);
+
+      opts_and_args = XNEW (disasm_options_and_args_t);
+      opts_and_args->args = NULL;
+
+      opts = &opts_and_args->options;
       opts->name = XNEWVEC (const char *, NUM_ARM_OPTIONS + 1);
       opts->description = XNEWVEC (const char *, NUM_ARM_OPTIONS + 1);
+      opts->arg = NULL;
       for (i = 0; i < NUM_ARM_OPTIONS; i++)
 	{
 	  opts->name[i] = regnames[i].name;
@@ -6845,7 +6880,7 @@ disassembler_options_arm (void)
       opts->description[i] = NULL;
     }
 
-  return opts;
+  return opts_and_args;
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/ChangeLog ./opcodes/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/ChangeLog	2018-07-02 01:49:47.000000000 +0000
+++ ./opcodes/ChangeLog	2018-07-03 01:49:29.000000000 +0000
@@ -1,3 +1,24 @@
+2018-07-02  Maciej W. Rozycki  <macro@mips.com>
+
+	PR tdep/8282
+	* mips-dis.c (mips_option_arg_t): New enumeration.
+	(mips_options): New variable.
+	(disassembler_options_mips): New function.
+	(print_mips_disassembler_options): Reimplement in terms of
+	`disassembler_options_mips'.
+	* arm-dis.c (disassembler_options_arm): Adapt to using the
+	`disasm_options_and_args_t' structure.
+	* ppc-dis.c (disassembler_options_powerpc): Likewise.
+	* s390-dis.c (disassembler_options_s390): Likewise.
+
+2018-07-02  Thomas Preud'homme  <thomas.preudhomme@arm.com>
+
+	* testsuite/ld-arm/tls-descrelax-be8.d: Add architecture version in
+	expected result.
+	* testsuite/ld-arm/tls-descrelax-v7.d: Likewise.
+	* testsuite/ld-arm/tls-longplt-lib.d: Likewise.
+	* testsuite/ld-arm/tls-longplt.d: Likewise.
+
 2018-06-29  Tamar Christina  <tamar.christina@arm.com>
 
 	PR binutils/23192
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/mips-dis.c ./opcodes/mips-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/mips-dis.c	2018-07-02 01:49:48.000000000 +0000
+++ ./opcodes/mips-dis.c	2018-07-03 01:49:29.000000000 +0000
@@ -2552,72 +2552,178 @@ print_insn_little_mips (bfd_vma memaddr,
   return _print_insn_mips (memaddr, info, BFD_ENDIAN_LITTLE);
 }
 
-void
-print_mips_disassembler_options (FILE *stream)
+/* Indices into option argument vector for options accepting an argument.
+   Use MIPS_OPTION_ARG_NONE for options accepting no argument.  */
+typedef enum
 {
-  unsigned int i;
-
-  fprintf (stream, _("\n\
-The following MIPS specific disassembler options are supported for use\n\
-with the -M switch (multiple options should be separated by commas):\n"));
-
-  fprintf (stream, _("\n\
-  no-aliases               Use canonical instruction forms.\n"));
-
-  fprintf (stream, _("\n\
-  msa                      Recognize MSA instructions.\n"));
-
-  fprintf (stream, _("\n\
-  virt                     Recognize the virtualization ASE instructions.\n"));
-
-  fprintf (stream, _("\n\
-  xpa                      Recognize the eXtended Physical Address (XPA)\n\
-                           ASE instructions.\n"));
-
-  fprintf (stream, _("\n\
-  ginv                     Recognize the Global INValidate (GINV) ASE\n\
-                           instructions.\n"));
-
-  fprintf (stream, _("\n\
-  gpr-names=ABI            Print GPR names according to specified ABI.\n\
-                           Default: based on binary being disassembled.\n"));
+  MIPS_OPTION_ARG_NONE = -1,
+  MIPS_OPTION_ARG_ABI,
+  MIPS_OPTION_ARG_ARCH,
+  MIPS_OPTION_ARG_SIZE
+} mips_option_arg_t;
 
-  fprintf (stream, _("\n\
-  fpr-names=ABI            Print FPR names according to specified ABI.\n\
-                           Default: numeric.\n"));
+/* Valid MIPS disassembler options.  */
+static struct
+{
+  const char *name;
+  const char *description;
+  mips_option_arg_t arg;
+} mips_options[] =
+{
+  { "no-aliases", N_("Use canonical instruction forms.\n"),
+		  MIPS_OPTION_ARG_NONE },
+  { "msa",        N_("Recognize MSA instructions.\n"),
+		  MIPS_OPTION_ARG_NONE },
+  { "virt",       N_("Recognize the virtualization ASE instructions.\n"),
+		  MIPS_OPTION_ARG_NONE },
+  { "xpa",        N_("Recognize the eXtended Physical Address (XPA) ASE\n\
+                  instructions.\n"),
+		  MIPS_OPTION_ARG_NONE },
+  { "ginv",       N_("Recognize the Global INValidate (GINV) ASE "
+		     "instructions.\n"),
+		  MIPS_OPTION_ARG_NONE },
+  { "gpr-names=", N_("Print GPR names according to specified ABI.\n\
+                  Default: based on binary being disassembled.\n"),
+		  MIPS_OPTION_ARG_ABI },
+  { "fpr-names=", N_("Print FPR names according to specified ABI.\n\
+                  Default: numeric.\n"),
+		  MIPS_OPTION_ARG_ABI },
+  { "cp0-names=", N_("Print CP0 register names according to specified "
+		     "architecture.\n\
+                  Default: based on binary being disassembled.\n"),
+		  MIPS_OPTION_ARG_ARCH },
+  { "hwr-names=", N_("Print HWR names according to specified architecture.\n\
+                  Default: based on binary being disassembled.\n"),
+		  MIPS_OPTION_ARG_ARCH },
+  { "reg-names=", N_("Print GPR and FPR names according to specified ABI.\n"),
+		  MIPS_OPTION_ARG_ABI },
+  { "reg-names=", N_("Print CP0 register and HWR names according to "
+		     "specified\n\
+                  architecture."),
+		  MIPS_OPTION_ARG_ARCH }
+};
+
+/* Build the structure representing valid MIPS disassembler options.
+   This is done dynamically for maintenance ease purpose; a static
+   initializer would be unreadable.  */
 
-  fprintf (stream, _("\n\
-  cp0-names=ARCH           Print CP0 register names according to\n\
-                           specified architecture.\n\
-                           Default: based on binary being disassembled.\n"));
+const disasm_options_and_args_t *
+disassembler_options_mips (void)
+{
+  static disasm_options_and_args_t *opts_and_args;
 
-  fprintf (stream, _("\n\
-  hwr-names=ARCH           Print HWR names according to specified \n\
-                           architecture.\n\
-                           Default: based on binary being disassembled.\n"));
+  if (opts_and_args == NULL)
+    {
+      size_t num_options = ARRAY_SIZE (mips_options);
+      size_t num_args = MIPS_OPTION_ARG_SIZE;
+      disasm_option_arg_t *args;
+      disasm_options_t *opts;
+      size_t i;
+      size_t j;
+
+      args = XNEWVEC (disasm_option_arg_t, num_args + 1);
+
+      args[MIPS_OPTION_ARG_ABI].name = "ABI";
+      args[MIPS_OPTION_ARG_ABI].values
+	= XNEWVEC (const char *, ARRAY_SIZE (mips_abi_choices) + 1);
+      for (i = 0; i < ARRAY_SIZE (mips_abi_choices); i++)
+	args[MIPS_OPTION_ARG_ABI].values[i] = mips_abi_choices[i].name;
+      /* The array we return must be NULL terminated.  */
+      args[MIPS_OPTION_ARG_ABI].values[i] = NULL;
+
+      args[MIPS_OPTION_ARG_ARCH].name = "ARCH";
+      args[MIPS_OPTION_ARG_ARCH].values
+	= XNEWVEC (const char *, ARRAY_SIZE (mips_arch_choices) + 1);
+      for (i = 0, j = 0; i < ARRAY_SIZE (mips_arch_choices); i++)
+	if (*mips_arch_choices[i].name != '\0')
+	  args[MIPS_OPTION_ARG_ARCH].values[j++] = mips_arch_choices[i].name;
+      /* The array we return must be NULL terminated.  */
+      args[MIPS_OPTION_ARG_ARCH].values[j] = NULL;
+
+      /* The array we return must be NULL terminated.  */
+      args[MIPS_OPTION_ARG_SIZE].name = NULL;
+      args[MIPS_OPTION_ARG_SIZE].values = NULL;
+
+      opts_and_args = XNEW (disasm_options_and_args_t);
+      opts_and_args->args = args;
+
+      opts = &opts_and_args->options;
+      opts->name = XNEWVEC (const char *, num_options + 1);
+      opts->description = XNEWVEC (const char *, num_options + 1);
+      opts->arg = XNEWVEC (const disasm_option_arg_t *, num_options + 1);
+      for (i = 0; i < num_options; i++)
+	{
+	  opts->name[i] = mips_options[i].name;
+	  opts->description[i] = _(mips_options[i].description);
+	  if (mips_options[i].arg != MIPS_OPTION_ARG_NONE)
+	    opts->arg[i] = &args[mips_options[i].arg];
+	  else
+	    opts->arg[i] = NULL;
+	}
+      /* The array we return must be NULL terminated.  */
+      opts->name[i] = NULL;
+      opts->description[i] = NULL;
+      opts->arg[i] = NULL;
+    }
 
-  fprintf (stream, _("\n\
-  reg-names=ABI            Print GPR and FPR names according to\n\
-                           specified ABI.\n"));
+  return opts_and_args;
+}
 
-  fprintf (stream, _("\n\
-  reg-names=ARCH           Print CP0 register and HWR names according to\n\
-                           specified architecture.\n"));
+void
+print_mips_disassembler_options (FILE *stream)
+{
+  const disasm_options_and_args_t *opts_and_args;
+  const disasm_option_arg_t *args;
+  const disasm_options_t *opts;
+  size_t max_len = 0;
+  size_t i;
+  size_t j;
+
+  opts_and_args = disassembler_options_mips ();
+  opts = &opts_and_args->options;
+  args = opts_and_args->args;
 
   fprintf (stream, _("\n\
-  For the options above, the following values are supported for \"ABI\":\n\
-   "));
-  for (i = 0; i < ARRAY_SIZE (mips_abi_choices); i++)
-    fprintf (stream, " %s", mips_abi_choices[i].name);
-  fprintf (stream, _("\n"));
+The following MIPS specific disassembler options are supported for use\n\
+with the -M switch (multiple options should be separated by commas):\n\n"));
 
-  fprintf (stream, _("\n\
-  For the options above, The following values are supported for \"ARCH\":\n\
-   "));
-  for (i = 0; i < ARRAY_SIZE (mips_arch_choices); i++)
-    if (*mips_arch_choices[i].name != '\0')
-      fprintf (stream, " %s", mips_arch_choices[i].name);
-  fprintf (stream, _("\n"));
+  /* Compute the length of the longest option name.  */
+  for (i = 0; opts->name[i] != NULL; i++)
+    {
+      size_t len = strlen (opts->name[i]);
+
+      if (opts->arg[i] != NULL)
+	len += strlen (opts->arg[i]->name);
+      if (max_len < len)
+	max_len = len;
+    }
+
+  for (i = 0, max_len++; opts->name[i] != NULL; i++)
+    {
+      fprintf (stream, "  %s", opts->name[i]);
+      if (opts->arg[i] != NULL)
+	fprintf (stream, "%s", opts->arg[i]->name);
+      if (opts->description[i] != NULL)
+	{
+	  size_t len = strlen (opts->name[i]);
+
+	  if (opts->arg[i] != NULL)
+	    len += strlen (opts->arg[i]->name);
+	  fprintf (stream,
+		   "%*c %s", (int) (max_len - len), ' ', opts->description[i]);
+	}
+      fprintf (stream, _("\n"));
+    }
+
+  for (i = 0; args[i].name != NULL; i++)
+    {
+      fprintf (stream, _("\n\
+  For the options above, the following values are supported for \"%s\":\n   "),
+	       args[i].name);
+      for (j = 0; args[i].values[j] != NULL; j++)
+	fprintf (stream, " %s", args[i].values[j]);
+      fprintf (stream, _("\n"));
+    }
 
   fprintf (stream, _("\n"));
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/ppc-dis.c ./opcodes/ppc-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/ppc-dis.c	2018-07-02 01:49:48.000000000 +0000
+++ ./opcodes/ppc-dis.c	2018-07-03 01:49:29.000000000 +0000
@@ -810,24 +810,30 @@ print_insn_powerpc (bfd_vma memaddr,
   return 4;
 }
 
-const disasm_options_t *
+const disasm_options_and_args_t *
 disassembler_options_powerpc (void)
 {
-  static disasm_options_t *opts = NULL;
+  static disasm_options_and_args_t *opts_and_args;
 
-  if (opts == NULL)
+  if (opts_and_args == NULL)
     {
       size_t i, num_options = ARRAY_SIZE (ppc_opts);
-      opts = XNEW (disasm_options_t);
+      disasm_options_t *opts;
+
+      opts_and_args = XNEW (disasm_options_and_args_t);
+      opts_and_args->args = NULL;
+
+      opts = &opts_and_args->options;
       opts->name = XNEWVEC (const char *, num_options + 1);
+      opts->description = NULL;
+      opts->arg = NULL;
       for (i = 0; i < num_options; i++)
 	opts->name[i] = ppc_opts[i].opt;
       /* The array we return must be NULL terminated.  */
       opts->name[i] = NULL;
-      opts->description = NULL;
     }
 
-  return opts;
+  return opts_and_args;
 }
 
 void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/s390-dis.c ./opcodes/s390-dis.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-8.1.50.20180702/opcodes/s390-dis.c	2018-07-02 01:49:48.000000000 +0000
+++ ./opcodes/s390-dis.c	2018-07-03 01:49:29.000000000 +0000
@@ -379,17 +379,23 @@ print_insn_s390 (bfd_vma memaddr, struct
   return 0;
 }
 
-const disasm_options_t *
+const disasm_options_and_args_t *
 disassembler_options_s390 (void)
 {
-  static disasm_options_t *opts = NULL;
+  static disasm_options_and_args_t *opts_and_args;
 
-  if (opts == NULL)
+  if (opts_and_args == NULL)
     {
       size_t i, num_options = ARRAY_SIZE (options);
-      opts = XNEW (disasm_options_t);
+      disasm_options_t *opts;
+
+      opts_and_args = XNEW (disasm_options_and_args_t);
+      opts_and_args->args = NULL;
+
+      opts = &opts_and_args->options;
       opts->name = XNEWVEC (const char *, num_options + 1);
       opts->description = XNEWVEC (const char *, num_options + 1);
+      opts->arg = NULL;
       for (i = 0; i < num_options; i++)
 	{
 	  opts->name[i] = options[i].name;
@@ -400,7 +406,7 @@ disassembler_options_s390 (void)
       opts->description[i] = NULL;
     }
 
-  return opts;
+  return opts_and_args;
 }
 
 void
