diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/ChangeLog ./bfd/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/ChangeLog	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/ChangeLog	2015-01-13 01:48:36.000000000 +0000
@@ -1,3 +1,68 @@
+2015-01-12  Terry Guo  <terry.guo@arm.com>
+
+	* elflink.c (_bfd_elf_gc_mark_debug_special_section_group): New
+	function.
+	(_bfd_elf_gc_mark_extra_sections): Use it.
+
+2015-01-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR ld/17827
+	* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): For PIE,
+	only discard space for pc-relative relocs symbols which turn
+	out to need copy relocs.
+
+2015-01-09  Nick Clifton  <nickc@redhat.com>
+
+	* tekhex.c (getvalue): Fix thinko in test for correct extraction
+	of value.
+	(getsym): Return false if there was not enough data to extract the
+	symbol.
+
+2015-01-09  Anthony Green  <green@moxielogic.com>
+
+	* elf32-moxie.c (ELF_MACHINE_ALT1): Define.
+
+2015-01-08  Nick Clifton  <nickc@redhat.com>
+
+	* elf32-msp430.c (msp430_elf_relax_section): Add relaxation of
+	16-bit absolute BR instructions to 10-bit pc-relative JMP
+	instructions.
+
+2015-01-08  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/17512
+	* coffcode.h (coff_slurp_symbol_table): Return false if we failed
+	to load the line table.
+	* elf.c (_bfd_elf_map_sections_to_segments): Enforce a minimum
+	maxpagesize of 1.
+	* peXXigen.c (_bfd_XX_bfd_copy_private_bfd_data_common): Fail if
+	the Data Directory Size is too large.
+
+2015-01-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/17512
+	* elf32-i386.c (elf_i386_get_plt_sym_val): Skip unknown relocation.
+	* elf64-x86-64.c (elf_x86_64_get_plt_sym_val): Likewise.
+
+2015-01-06  Nick Clifton  <nickc@redhat.com>
+
+	PR binutils/17512
+	* mach-o.c (bfd_mach_o_read_symtab_strtab): Zero terminate the
+	string table.
+
+	* reloc.c (bfd_get_reloc_size): Handle a reloc size of -1.
+	(bfd_perform_relocation): Include the size of the reloc in the
+	test for an out of range relocation.
+	(bfd_generic_get_relocated_section_contents): Remove reloc range
+	test.
+
+	* coff-i860.c (CALC_ADDEND): Always set an addend value.
+	* tekhex.c (getvalue): Add an end pointer parameter.  Use it to
+	avoid reading off the end of the buffer.
+	(getsym): Likewise.
+	(first_phase): Likewise.
+	(pass_over): Pass an end pointer to the invoked function.
+
 2015-01-05  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR binutils/17512
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/coffcode.h ./bfd/coffcode.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/coffcode.h	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/coffcode.h	2015-01-13 01:48:36.000000000 +0000
@@ -5012,13 +5012,13 @@ coff_slurp_symbol_table (bfd * abfd)
 #if defined(TIC80COFF) || defined(TICOFF)
 	    case C_UEXT:	/* Tentative external definition.  */
 #endif
-	    case C_EXTLAB:	/* External load time label.  */
-	    case C_HIDDEN:	/* Ext symbol in dmert public lib.  */
 	    default:
 	      (*_bfd_error_handler)
 		(_("%B: Unrecognized storage class %d for %s symbol `%s'"),
 		 abfd, src->u.syment.n_sclass,
 		 dst->symbol.section->name, dst->symbol.name);
+	    case C_EXTLAB:	/* External load time label.  */
+	    case C_HIDDEN:	/* Ext symbol in dmert public lib.  */
 	      dst->symbol.flags = BSF_DEBUGGING;
 	      dst->symbol.value = (src->u.syment.n_value);
 	      break;
@@ -5046,7 +5046,8 @@ coff_slurp_symbol_table (bfd * abfd)
     p = abfd->sections;
     while (p)
       {
-	coff_slurp_line_table (abfd, p);
+	if (! coff_slurp_line_table (abfd, p))
+	  return FALSE;
 	p = p->next;
       }
   }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/coff-i860.c ./bfd/coff-i860.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/coff-i860.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/coff-i860.c	2015-01-13 01:48:36.000000000 +0000
@@ -467,7 +467,10 @@ static reloc_howto_type howto_table[] =
    FIXME: This macro refers to symbols and asect; these are from the
    calling function, not the macro arguments.  */
 
-#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr)
+/* PR 17512: file: 0a38fb7c
+   Set an addend value, even if it is not going to be used.  A tool
+   like coffdump might be used to print out the contents of the reloc.  */
+#define CALC_ADDEND(abfd, ptr, reloc, cache_ptr) (cache_ptr)->addend = 0
 
 /* We use the special COFF backend linker.  */
 #define coff_relocate_section _bfd_coff_generic_relocate_section
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/doc/ChangeLog ./bfd/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/doc/ChangeLog	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/doc/ChangeLog	2015-01-13 01:48:36.000000000 +0000
@@ -1,3 +1,17 @@
+2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
+	    Alan Modra  <amodra@gmail.com>
+
+	PR 17817
+	* Makefile.am (aoutx.stamp): cp -p $srcdir/aoutx.texi to keep
+	timestamps so that makeinfo need not be installed.
+	(archive.stamp, archures.stamp, bfdt.stamp, cache.stamp,
+	coffcode.stamp, core.stamp, elf.stamp, elfcode.stamp, mmo.stamp,
+	format.stamp, libbfd.stamp, bfdio.stamp, bfdwin.stamp,
+	opncls.stamp, reloc.stamp, section.stamp, syms.stamp, targets.stamp,
+	init.stamp, hash.stamp, linker.stamp): Similarly.
+	(bfdver.texi): Use test rather than [ ] in commands.
+	* Makefile.in: Regenerate.
+
 2014-08-05  Doug Evans  <dje@google.com>
 
 	* chew.c (skip_past_newline_1): New function.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/doc/Makefile.am ./bfd/doc/Makefile.am
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/doc/Makefile.am	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/doc/Makefile.am	2015-01-13 01:48:36.000000000 +0000
@@ -97,18 +97,21 @@ protos: libbfd.h libcoff.h bfd.h
 aoutx.texi: aoutx.stamp ; @true
 aoutx.stamp: $(srcdir)/../aoutx.h $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >aoutx.tmp
+	test -e aoutx.texi || test ! -f $(srcdir)/aoutx.texi || cp -p $(srcdir)/aoutx.texi .
 	$(SHELL) $(srcdir)/../../move-if-change aoutx.tmp aoutx.texi
 	touch $@
 
 archive.texi: archive.stamp ; @true
 archive.stamp: $(srcdir)/../archive.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >archive.tmp
+	test -e archive.texi || test ! -f $(srcdir)/archive.texi || cp -p $(srcdir)/archive.texi .
 	$(SHELL) $(srcdir)/../../move-if-change archive.tmp archive.texi
 	touch $@
 
 archures.texi: archures.stamp ; @true
 archures.stamp: $(srcdir)/../archures.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >archures.tmp
+	test -e archures.texi || test ! -f $(srcdir)/archures.texi || cp -p $(srcdir)/archures.texi .
 	$(SHELL) $(srcdir)/../../move-if-change archures.tmp archures.texi
 	touch $@
 
@@ -117,114 +120,133 @@ archures.stamp: $(srcdir)/../archures.c 
 bfdt.texi: bfdt.stamp ; @true
 bfdt.stamp: $(srcdir)/../bfd.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >bfd.tmp
+	test -e bfdt.texi || test ! -f $(srcdir)/bfdt.texi || cp -p $(srcdir)/bfdt.texi .
 	$(SHELL) $(srcdir)/../../move-if-change bfd.tmp bfdt.texi
 	touch $@
 
 cache.texi: cache.stamp ; @true
 cache.stamp: $(srcdir)/../cache.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >cache.tmp
+	test -e cache.texi || test ! -f $(srcdir)/cache.texi || cp -p $(srcdir)/cache.texi .
 	$(SHELL) $(srcdir)/../../move-if-change cache.tmp cache.texi
 	touch $@
 
 coffcode.texi: coffcode.stamp ; @true
 coffcode.stamp: $(srcdir)/../coffcode.h $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >coffcode.tmp
+	test -e coffcode.texi || test ! -f $(srcdir)/coffcode.texi || cp -p $(srcdir)/coffcode.texi .
 	$(SHELL) $(srcdir)/../../move-if-change coffcode.tmp coffcode.texi
 	touch $@
 
 core.texi: core.stamp ; @true
 core.stamp: $(srcdir)/../corefile.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >core.tmp
+	test -e core.texi || test ! -f $(srcdir)/core.texi || cp -p $(srcdir)/core.texi .
 	$(SHELL) $(srcdir)/../../move-if-change core.tmp core.texi
 	touch $@
 
 elf.texi: elf.stamp ; @true
 elf.stamp: $(srcdir)/../elf.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >elf.tmp
+	test -e elf.texi || test ! -f $(srcdir)/elf.texi || cp -p $(srcdir)/elf.texi .
 	$(SHELL) $(srcdir)/../../move-if-change elf.tmp elf.texi
 	touch $@
 
 elfcode.texi: elfcode.stamp ; @true
 elfcode.stamp: $(srcdir)/../elfcode.h $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >elfcode.tmp
+	test -e elfcode.texi || test ! -f $(srcdir)/elfcode.texi || cp -p $(srcdir)/elfcode.texi .
 	$(SHELL) $(srcdir)/../../move-if-change elfcode.tmp elfcode.texi
 	touch $@
 
 mmo.texi: mmo.stamp ; @true
 mmo.stamp: $(srcdir)/../mmo.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >mmo.tmp
+	test -e mmo.texi || test ! -f $(srcdir)/mmo.texi || cp -p $(srcdir)/mmo.texi .
 	$(SHELL) $(srcdir)/../../move-if-change mmo.tmp mmo.texi
 	touch $@
 
 format.texi: format.stamp ; @true
 format.stamp: $(srcdir)/../format.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >format.tmp
+	test -e format.texi || test ! -f $(srcdir)/format.texi || cp -p $(srcdir)/format.texi .
 	$(SHELL) $(srcdir)/../../move-if-change format.tmp format.texi
 	touch $@
 
 libbfd.texi: libbfd.stamp ; @true
 libbfd.stamp: $(srcdir)/../libbfd.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >libbfd.tmp
+	test -e libbfd.texi || test ! -f $(srcdir)/libbfd.texi || cp -p $(srcdir)/libbfd.texi .
 	$(SHELL) $(srcdir)/../../move-if-change libbfd.tmp libbfd.texi
 	touch $@
 
 bfdio.texi: bfdio.stamp ; @true
 bfdio.stamp: $(srcdir)/../bfdio.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >bfdio.tmp
+	test -e bfdio.texi || test ! -f $(srcdir)/bfdio.texi || cp -p $(srcdir)/bfdio.texi .
 	$(SHELL) $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi
 	touch $@
 
 bfdwin.texi: bfdwin.stamp ; @true
 bfdwin.stamp: $(srcdir)/../bfdwin.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >bfdwin.tmp
+	test -e bfdwin.texi || test ! -f $(srcdir)/bfdwin.texi || cp -p $(srcdir)/bfdwin.texi .
 	$(SHELL) $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi
 	touch $@
 
 opncls.texi: opncls.stamp ; @true
 opncls.stamp: $(srcdir)/../opncls.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >opncls.tmp
+	test -e opncls.texi || test ! -f $(srcdir)/opncls.texi || cp -p $(srcdir)/opncls.texi .
 	$(SHELL) $(srcdir)/../../move-if-change opncls.tmp opncls.texi
 	touch $@
 
 reloc.texi: reloc.stamp ; @true
 reloc.stamp: $(srcdir)/../reloc.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >reloc.tmp
+	test -e reloc.texi || test ! -f $(srcdir)/reloc.texi || cp -p $(srcdir)/reloc.texi .
 	$(SHELL) $(srcdir)/../../move-if-change reloc.tmp reloc.texi
 	touch $@
 
 section.texi: section.stamp ; @true
 section.stamp: $(srcdir)/../section.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >section.tmp
+	test -e section.texi || test ! -f $(srcdir)/section.texi || cp -p $(srcdir)/section.texi .
 	$(SHELL) $(srcdir)/../../move-if-change section.tmp section.texi
 	touch $@
 
 syms.texi: syms.stamp ; @true
 syms.stamp: $(srcdir)/../syms.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >syms.tmp
+	test -e syms.texi || test ! -f $(srcdir)/syms.texi || cp -p $(srcdir)/syms.texi .
 	$(SHELL) $(srcdir)/../../move-if-change syms.tmp syms.texi
 	touch $@
 
 targets.texi: targets.stamp ; @true
 targets.stamp: $(srcdir)/../targets.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >targets.tmp
+	test -e targets.texi || test ! -f $(srcdir)/targets.texi || cp -p $(srcdir)/targets.texi .
 	$(SHELL) $(srcdir)/../../move-if-change targets.tmp targets.texi
 	touch $@
 
 init.texi: init.stamp ; @true
 init.stamp: $(srcdir)/../init.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >init.tmp
+	test -e init.texi || test ! -f $(srcdir)/init.texi || cp -p $(srcdir)/init.texi .
 	$(SHELL) $(srcdir)/../../move-if-change init.tmp init.texi
 	touch $@
 
 hash.texi: hash.stamp ; @true
 hash.stamp: $(srcdir)/../hash.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >hash.tmp
+	test -e hash.texi || test ! -f $(srcdir)/hash.texi || cp -p $(srcdir)/hash.texi .
 	$(SHELL) $(srcdir)/../../move-if-change hash.tmp hash.texi
 	touch $@
 
 linker.texi: linker.stamp ; @true
 linker.stamp: $(srcdir)/../linker.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >linker.tmp
+	test -e linker.texi || test ! -f $(srcdir)/linker.texi || cp -p $(srcdir)/linker.texi .
 	$(SHELL) $(srcdir)/../../move-if-change linker.tmp linker.texi
 	touch $@
 
@@ -316,11 +338,11 @@ bfd.h: $(BFD_H_DEP)
 bfdver.texi: $(srcdir)/Makefile.in
 	@echo "creating $@"; \
 	echo "@set VERSION $(VERSION)" > bfdver.texi; \
-	if [ -n "$(PKGVERSION)" ]; then \
+	if test -n "$(PKGVERSION)"; then \
 	  echo "@set VERSION_PACKAGE $(PKGVERSION)" >> bfdver.texi; \
 	fi; \
 	echo "@set UPDATED `date '+%B %Y'`" >> bfdver.texi; \
-	if [ -n "$(REPORT_BUGS_TEXI)" ]; then \
+	if test -n "$(REPORT_BUGS_TEXI)"; then \
 	  echo "@set BUGURL $(REPORT_BUGS_TEXI)" >> bfdver.texi; \
 	fi
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/doc/Makefile.in ./bfd/doc/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/doc/Makefile.in	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/doc/Makefile.in	2015-01-13 01:48:36.000000000 +0000
@@ -796,18 +796,21 @@ protos: libbfd.h libcoff.h bfd.h
 aoutx.texi: aoutx.stamp ; @true
 aoutx.stamp: $(srcdir)/../aoutx.h $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >aoutx.tmp
+	test -e aoutx.texi || test ! -f $(srcdir)/aoutx.texi || cp -p $(srcdir)/aoutx.texi .
 	$(SHELL) $(srcdir)/../../move-if-change aoutx.tmp aoutx.texi
 	touch $@
 
 archive.texi: archive.stamp ; @true
 archive.stamp: $(srcdir)/../archive.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >archive.tmp
+	test -e archive.texi || test ! -f $(srcdir)/archive.texi || cp -p $(srcdir)/archive.texi .
 	$(SHELL) $(srcdir)/../../move-if-change archive.tmp archive.texi
 	touch $@
 
 archures.texi: archures.stamp ; @true
 archures.stamp: $(srcdir)/../archures.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >archures.tmp
+	test -e archures.texi || test ! -f $(srcdir)/archures.texi || cp -p $(srcdir)/archures.texi .
 	$(SHELL) $(srcdir)/../../move-if-change archures.tmp archures.texi
 	touch $@
 
@@ -816,114 +819,133 @@ archures.stamp: $(srcdir)/../archures.c 
 bfdt.texi: bfdt.stamp ; @true
 bfdt.stamp: $(srcdir)/../bfd.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >bfd.tmp
+	test -e bfdt.texi || test ! -f $(srcdir)/bfdt.texi || cp -p $(srcdir)/bfdt.texi .
 	$(SHELL) $(srcdir)/../../move-if-change bfd.tmp bfdt.texi
 	touch $@
 
 cache.texi: cache.stamp ; @true
 cache.stamp: $(srcdir)/../cache.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >cache.tmp
+	test -e cache.texi || test ! -f $(srcdir)/cache.texi || cp -p $(srcdir)/cache.texi .
 	$(SHELL) $(srcdir)/../../move-if-change cache.tmp cache.texi
 	touch $@
 
 coffcode.texi: coffcode.stamp ; @true
 coffcode.stamp: $(srcdir)/../coffcode.h $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >coffcode.tmp
+	test -e coffcode.texi || test ! -f $(srcdir)/coffcode.texi || cp -p $(srcdir)/coffcode.texi .
 	$(SHELL) $(srcdir)/../../move-if-change coffcode.tmp coffcode.texi
 	touch $@
 
 core.texi: core.stamp ; @true
 core.stamp: $(srcdir)/../corefile.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >core.tmp
+	test -e core.texi || test ! -f $(srcdir)/core.texi || cp -p $(srcdir)/core.texi .
 	$(SHELL) $(srcdir)/../../move-if-change core.tmp core.texi
 	touch $@
 
 elf.texi: elf.stamp ; @true
 elf.stamp: $(srcdir)/../elf.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >elf.tmp
+	test -e elf.texi || test ! -f $(srcdir)/elf.texi || cp -p $(srcdir)/elf.texi .
 	$(SHELL) $(srcdir)/../../move-if-change elf.tmp elf.texi
 	touch $@
 
 elfcode.texi: elfcode.stamp ; @true
 elfcode.stamp: $(srcdir)/../elfcode.h $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >elfcode.tmp
+	test -e elfcode.texi || test ! -f $(srcdir)/elfcode.texi || cp -p $(srcdir)/elfcode.texi .
 	$(SHELL) $(srcdir)/../../move-if-change elfcode.tmp elfcode.texi
 	touch $@
 
 mmo.texi: mmo.stamp ; @true
 mmo.stamp: $(srcdir)/../mmo.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >mmo.tmp
+	test -e mmo.texi || test ! -f $(srcdir)/mmo.texi || cp -p $(srcdir)/mmo.texi .
 	$(SHELL) $(srcdir)/../../move-if-change mmo.tmp mmo.texi
 	touch $@
 
 format.texi: format.stamp ; @true
 format.stamp: $(srcdir)/../format.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >format.tmp
+	test -e format.texi || test ! -f $(srcdir)/format.texi || cp -p $(srcdir)/format.texi .
 	$(SHELL) $(srcdir)/../../move-if-change format.tmp format.texi
 	touch $@
 
 libbfd.texi: libbfd.stamp ; @true
 libbfd.stamp: $(srcdir)/../libbfd.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >libbfd.tmp
+	test -e libbfd.texi || test ! -f $(srcdir)/libbfd.texi || cp -p $(srcdir)/libbfd.texi .
 	$(SHELL) $(srcdir)/../../move-if-change libbfd.tmp libbfd.texi
 	touch $@
 
 bfdio.texi: bfdio.stamp ; @true
 bfdio.stamp: $(srcdir)/../bfdio.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >bfdio.tmp
+	test -e bfdio.texi || test ! -f $(srcdir)/bfdio.texi || cp -p $(srcdir)/bfdio.texi .
 	$(SHELL) $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi
 	touch $@
 
 bfdwin.texi: bfdwin.stamp ; @true
 bfdwin.stamp: $(srcdir)/../bfdwin.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >bfdwin.tmp
+	test -e bfdwin.texi || test ! -f $(srcdir)/bfdwin.texi || cp -p $(srcdir)/bfdwin.texi .
 	$(SHELL) $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi
 	touch $@
 
 opncls.texi: opncls.stamp ; @true
 opncls.stamp: $(srcdir)/../opncls.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >opncls.tmp
+	test -e opncls.texi || test ! -f $(srcdir)/opncls.texi || cp -p $(srcdir)/opncls.texi .
 	$(SHELL) $(srcdir)/../../move-if-change opncls.tmp opncls.texi
 	touch $@
 
 reloc.texi: reloc.stamp ; @true
 reloc.stamp: $(srcdir)/../reloc.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >reloc.tmp
+	test -e reloc.texi || test ! -f $(srcdir)/reloc.texi || cp -p $(srcdir)/reloc.texi .
 	$(SHELL) $(srcdir)/../../move-if-change reloc.tmp reloc.texi
 	touch $@
 
 section.texi: section.stamp ; @true
 section.stamp: $(srcdir)/../section.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >section.tmp
+	test -e section.texi || test ! -f $(srcdir)/section.texi || cp -p $(srcdir)/section.texi .
 	$(SHELL) $(srcdir)/../../move-if-change section.tmp section.texi
 	touch $@
 
 syms.texi: syms.stamp ; @true
 syms.stamp: $(srcdir)/../syms.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >syms.tmp
+	test -e syms.texi || test ! -f $(srcdir)/syms.texi || cp -p $(srcdir)/syms.texi .
 	$(SHELL) $(srcdir)/../../move-if-change syms.tmp syms.texi
 	touch $@
 
 targets.texi: targets.stamp ; @true
 targets.stamp: $(srcdir)/../targets.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >targets.tmp
+	test -e targets.texi || test ! -f $(srcdir)/targets.texi || cp -p $(srcdir)/targets.texi .
 	$(SHELL) $(srcdir)/../../move-if-change targets.tmp targets.texi
 	touch $@
 
 init.texi: init.stamp ; @true
 init.stamp: $(srcdir)/../init.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >init.tmp
+	test -e init.texi || test ! -f $(srcdir)/init.texi || cp -p $(srcdir)/init.texi .
 	$(SHELL) $(srcdir)/../../move-if-change init.tmp init.texi
 	touch $@
 
 hash.texi: hash.stamp ; @true
 hash.stamp: $(srcdir)/../hash.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >hash.tmp
+	test -e hash.texi || test ! -f $(srcdir)/hash.texi || cp -p $(srcdir)/hash.texi .
 	$(SHELL) $(srcdir)/../../move-if-change hash.tmp hash.texi
 	touch $@
 
 linker.texi: linker.stamp ; @true
 linker.stamp: $(srcdir)/../linker.c $(srcdir)/doc.str $(MKDOC)
 	./$(MKDOC) -f $(srcdir)/doc.str < $< >linker.tmp
+	test -e linker.texi || test ! -f $(srcdir)/linker.texi || cp -p $(srcdir)/linker.texi .
 	$(SHELL) $(srcdir)/../../move-if-change linker.tmp linker.texi
 	touch $@
 
@@ -970,11 +992,11 @@ bfd.h: $(BFD_H_DEP)
 bfdver.texi: $(srcdir)/Makefile.in
 	@echo "creating $@"; \
 	echo "@set VERSION $(VERSION)" > bfdver.texi; \
-	if [ -n "$(PKGVERSION)" ]; then \
+	if test -n "$(PKGVERSION)"; then \
 	  echo "@set VERSION_PACKAGE $(PKGVERSION)" >> bfdver.texi; \
 	fi; \
 	echo "@set UPDATED `date '+%B %Y'`" >> bfdver.texi; \
-	if [ -n "$(REPORT_BUGS_TEXI)" ]; then \
+	if test -n "$(REPORT_BUGS_TEXI)"; then \
 	  echo "@set BUGURL $(REPORT_BUGS_TEXI)" >> bfdver.texi; \
 	fi
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf32-i386.c ./bfd/elf32-i386.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf32-i386.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/elf32-i386.c	2015-01-13 01:48:36.000000000 +0000
@@ -5194,9 +5194,9 @@ bad_return:
     {
       long reloc_index;
 
-      /* PR 17512: file: bc9d6cf5.  */
+      /* Skip unknown relocation.  PR 17512: file: bc9d6cf5.  */
       if (p->howto == NULL)
-	goto bad_return;
+	continue;
 
       if (p->howto->type != R_386_JUMP_SLOT
 	  && p->howto->type != R_386_IRELATIVE)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf32-moxie.c ./bfd/elf32-moxie.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf32-moxie.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/elf32-moxie.c	2015-01-13 01:48:36.000000000 +0000
@@ -371,6 +371,7 @@ moxie_elf_check_relocs (bfd *abfd,
 
 #define ELF_ARCH		bfd_arch_moxie
 #define ELF_MACHINE_CODE	EM_MOXIE
+#define ELF_MACHINE_ALT1        EM_MOXIE_OLD
 #define ELF_MAXPAGESIZE		0x1
 
 #define TARGET_BIG_SYM          moxie_elf32_be_vec
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf32-msp430.c ./bfd/elf32-msp430.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf32-msp430.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/elf32-msp430.c	2015-01-13 01:48:36.000000000 +0000
@@ -1768,7 +1768,6 @@ msp430_elf_relax_section (bfd * abfd, as
   bfd_byte *          contents = NULL;
   Elf_Internal_Sym *  isymbuf = NULL;
 
-
   /* Assume nothing changes.  */
   *again = FALSE;
 
@@ -1966,10 +1965,6 @@ msp430_elf_relax_section (bfd * abfd, as
       *again = TRUE;
     }
 
-  if (! uses_msp430x_relocs (abfd))
-    /* Now perform the relocations that shrink the code size.
-       We only do this for non msp430x as gas only generates the RL
-       reloc for the msp430.  */
     for (irel = internal_relocs; irel < irelend; irel++)
       {
 	bfd_vma symval;
@@ -2048,7 +2043,8 @@ msp430_elf_relax_section (bfd * abfd, as
 	/* Try to turn a 16bit pc-relative branch into a 10bit pc-relative
 	   branch.  */
 	/* Paranoia? paranoia...  */      
-	if (ELF32_R_TYPE (irel->r_info) == (int) R_MSP430_RL_PCREL)
+	if (! uses_msp430x_relocs (abfd)
+	    && ELF32_R_TYPE (irel->r_info) == (int) R_MSP430_RL_PCREL)
 	  {
 	    bfd_vma value = symval;
 
@@ -2158,6 +2154,62 @@ msp430_elf_relax_section (bfd * abfd, as
 		*again = TRUE;
 	      }
 	  }
+
+	/* Try to turn a 16-bit absolute branch into a 10-bit pc-relative
+	   branch.  */
+	if (uses_msp430x_relocs (abfd)
+	    && ELF32_R_TYPE (irel->r_info) == R_MSP430X_ABS16)
+	  {
+	    bfd_vma value = symval;
+
+	    value -= irel->r_offset;
+	    value += irel->r_addend;
+	   
+	    /* See if the value will fit in 10 bits, note the high value is
+	       1016 as the target will be two bytes closer if we are
+	       able to relax.  */
+	    if ((long) value < 1016 && (long) value > -1016)
+	      {
+		int code2;
+
+		/* Get the opcode.  */
+		code2 = bfd_get_16 (abfd, contents + irel->r_offset - 2);
+		if (code2 != 0x4030)
+		  continue;
+		/* FIXME: check r4 and r3 ? */
+		/* FIXME: Handle 0x4010 as well ?  */
+
+		/* Note that we've changed the relocs, section contents, etc.  */
+		elf_section_data (sec)->relocs = internal_relocs;
+		elf_section_data (sec)->this_hdr.contents = contents;
+		symtab_hdr->contents = (unsigned char *) isymbuf;
+
+		/* Fix the relocation's type.  */
+		if (uses_msp430x_relocs (abfd))
+		  {
+		    irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+						 R_MSP430X_10_PCREL);
+		  }
+		else
+		  {
+		    irel->r_info = ELF32_R_INFO (ELF32_R_SYM (irel->r_info),
+						 R_MSP430_10_PCREL);
+		  }
+
+		/* Fix the opcode right way.  */
+		bfd_put_16 (abfd, 0x3c00, contents + irel->r_offset - 2);
+		irel->r_offset -= 2;
+
+		/* Delete bytes.  */
+		if (!msp430_elf_relax_delete_bytes (abfd, sec,
+						    irel->r_offset + 2, 2))
+		  goto error_return;
+
+		/* That will change things, so, we should relax again.
+		   Note that this is not required, and it may be slow.  */
+		*again = TRUE;
+	      }
+	  }
       }
 
   if (isymbuf != NULL && symtab_hdr->contents != (unsigned char *) isymbuf)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf64-x86-64.c ./bfd/elf64-x86-64.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf64-x86-64.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/elf64-x86-64.c	2015-01-13 01:48:36.000000000 +0000
@@ -2742,13 +2742,23 @@ elf_x86_64_allocate_dynrelocs (struct el
 		       && ! bfd_elf_link_record_dynamic_symbol (info, h))
 		return FALSE;
 	    }
-	  /* For PIE, discard space for relocs against symbols which
-	     turn out to need copy relocs.  */
+	  /* For PIE, discard space for pc-relative relocs against
+	     symbols which turn out to need copy relocs.  */
 	  else if (info->executable
 		   && (h->needs_copy || eh->needs_copy)
 		   && h->def_dynamic
 		   && !h->def_regular)
-	    eh->dyn_relocs = NULL;
+	    {
+	      struct elf_dyn_relocs **pp;
+
+	      for (pp = &eh->dyn_relocs; (p = *pp) != NULL; )
+		{
+		  if (p->pc_count != 0)
+		    *pp = p->next;
+		  else
+		    pp = &p->next;
+		}
+	    }
 	}
     }
   else if (ELIMINATE_COPY_RELOCS)
@@ -5559,8 +5569,9 @@ bad_return:
     {
       long reloc_index;
 
+      /* Skip unknown relocation.  */
       if (p->howto == NULL)
-	goto bad_return;
+	continue;
 
       if (p->howto->type != R_X86_64_JUMP_SLOT
 	  && p->howto->type != R_X86_64_IRELATIVE)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf.c ./bfd/elf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elf.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/elf.c	2015-01-13 01:48:36.000000000 +0000
@@ -4011,6 +4011,11 @@ _bfd_elf_map_sections_to_segments (bfd *
       last_size = 0;
       phdr_index = 0;
       maxpagesize = bed->maxpagesize;
+      /* PR 17512: file: c8455299.
+	 Avoid divide-by-zero errors later on.
+	 FIXME: Should we abort if the maxpagesize is zero ?  */
+      if (maxpagesize == 0)
+	maxpagesize = 1;
       writable = FALSE;
       dynsec = bfd_get_section_by_name (abfd, ".dynamic");
       if (dynsec != NULL
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elflink.c ./bfd/elflink.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/elflink.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/elflink.c	2015-01-13 01:48:36.000000000 +0000
@@ -11971,6 +11971,47 @@ _bfd_elf_gc_mark (struct bfd_link_info *
   return ret;
 }
 
+/* Scan and mark sections in a special or debug section group.  */
+
+static void
+_bfd_elf_gc_mark_debug_special_section_group (asection *grp)
+{
+  /* Point to first section of section group.  */
+  asection *ssec;
+  /* Used to iterate the section group.  */
+  asection *msec;
+
+  bfd_boolean is_special_grp = TRUE;
+  bfd_boolean is_debug_grp = TRUE;
+
+  /* First scan to see if group contains any section other than debug
+     and special section.  */
+  ssec = msec = elf_next_in_group (grp);
+  do
+    {
+      if ((msec->flags & SEC_DEBUGGING) == 0)
+	is_debug_grp = FALSE;
+
+      if ((msec->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) != 0)
+	is_special_grp = FALSE;
+
+      msec = elf_next_in_group (msec);
+    }
+  while (msec != ssec);
+
+  /* If this is a pure debug section group or pure special section group,
+     keep all sections in this group.  */
+  if (is_debug_grp || is_special_grp)
+    {
+      do
+	{
+	  msec->gc_mark = 1;
+	  msec = elf_next_in_group (msec);
+	}
+      while (msec != ssec);
+    }
+}
+
 /* Keep debug and special sections.  */
 
 bfd_boolean
@@ -12011,13 +12052,17 @@ _bfd_elf_gc_mark_extra_sections (struct 
 	continue;
 
       /* Keep debug and special sections like .comment when they are
-	 not part of a group, or when we have single-member groups.  */
+	 not part of a group.  Also keep section groups that contain
+	 just debug sections or special sections.  */
       for (isec = ibfd->sections; isec != NULL; isec = isec->next)
-	if ((elf_next_in_group (isec) == NULL
-	     || elf_next_in_group (isec) == isec)
-	    && ((isec->flags & SEC_DEBUGGING) != 0
-		|| (isec->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0))
-	  isec->gc_mark = 1;
+	{
+	  if ((isec->flags & SEC_GROUP) != 0)
+	    _bfd_elf_gc_mark_debug_special_section_group (isec);
+	  else if (((isec->flags & SEC_DEBUGGING) != 0
+		    || (isec->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
+		   && elf_next_in_group (isec) == NULL)
+	    isec->gc_mark = 1;
+	}
 
       if (! debug_frag_seen)
 	continue;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/mach-o.c ./bfd/mach-o.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/mach-o.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/mach-o.c	2015-01-13 01:48:36.000000000 +0000
@@ -3675,7 +3675,7 @@ bfd_mach_o_read_symtab_strtab (bfd *abfd
     }
   else
     {
-      sym->strtab = bfd_alloc (abfd, sym->strsize);
+      sym->strtab = bfd_alloc (abfd, sym->strsize + 1);
       if (sym->strtab == NULL)
         return FALSE;
 
@@ -3688,6 +3688,8 @@ bfd_mach_o_read_symtab_strtab (bfd *abfd
           bfd_set_error (bfd_error_file_truncated);
           return FALSE;
         }
+      /* Zero terminate the string table.  */
+      sym->strtab[sym->strsize] = 0;
     }
 
   return TRUE;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/peXXigen.c ./bfd/peXXigen.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/peXXigen.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/peXXigen.c	2015-01-13 01:48:36.000000000 +0000
@@ -2930,6 +2930,16 @@ _bfd_XX_bfd_copy_private_bfd_data_common
           struct external_IMAGE_DEBUG_DIRECTORY *dd =
 	    (struct external_IMAGE_DEBUG_DIRECTORY *)(data + (addr - section->vma));
 
+	  /* PR 17512: file: 0f15796a.  */
+	  if (ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size + (addr - section->vma)
+	      > bfd_get_section_size (section))
+	    {
+	      _bfd_error_handler (_("%A: Data Directory size (%lx) exceeds space left in section (%lx)"),
+				  obfd, ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size,
+				  bfd_get_section_size (section) - (addr - section->vma));
+	      return FALSE;
+	    }
+
           for (i = 0; i < ope->pe_opthdr.DataDirectory[PE_DEBUG_DATA].Size
 		 / sizeof (struct external_IMAGE_DEBUG_DIRECTORY); i++)
             {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/reloc.c ./bfd/reloc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/reloc.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/reloc.c	2015-01-13 01:48:36.000000000 +0000
@@ -437,6 +437,7 @@ bfd_get_reloc_size (reloc_howto_type *ho
     case 3: return 0;
     case 4: return 8;
     case 8: return 16;
+    case -1: return 2;
     case -2: return 4;
     default: abort ();
     }
@@ -618,7 +619,11 @@ bfd_perform_relocation (bfd *abfd,
     }
 
   /* Is the address of the relocation really within the section?  */
-  if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
+  if (reloc_entry->address > bfd_get_section_limit (abfd, input_section)
+      /* PR 17512: file: c146ab8b.
+	 PR 17512: file: 46dff27f.
+	 Include the size of the reloc in the test for out of range addresses.  */
+      - bfd_get_reloc_size (howto))
     return bfd_reloc_outofrange;
 
   /* Work out which section the relocation is targeted at and the
@@ -7623,10 +7628,6 @@ bfd_generic_get_relocated_section_conten
 	      (*parent)->howto = &none_howto;
 	      r = bfd_reloc_ok;
 	    }
-	  /* PR 17512: file: c146ab8b.  */
-	  else if ((*parent)->address * bfd_octets_per_byte (abfd)
-		   >= bfd_get_section_size (input_section))
-	    r = bfd_reloc_outofrange;
 	  else
 	    r = bfd_perform_relocation (input_bfd,
 					*parent,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/tekhex.c ./bfd/tekhex.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/tekhex.c	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/tekhex.c	2015-01-13 01:48:36.000000000 +0000
@@ -267,7 +267,7 @@ typedef struct tekhex_data_struct
 #define enda(x) (x->vma + x->size)
 
 static bfd_boolean
-getvalue (char **srcp, bfd_vma *valuep)
+getvalue (char **srcp, bfd_vma *valuep, char * endp)
 {
   char *src = *srcp;
   bfd_vma value = 0;
@@ -279,7 +279,7 @@ getvalue (char **srcp, bfd_vma *valuep)
   len = hex_value (*src++);
   if (len == 0)
     len = 16;
-  while (len--)
+  while (len-- && src < endp)
     {
       if (!ISHEX (*src))
 	return FALSE;
@@ -288,11 +288,11 @@ getvalue (char **srcp, bfd_vma *valuep)
 
   *srcp = src;
   *valuep = value;
-  return TRUE;
+  return len == -1U;
 }
 
 static bfd_boolean
-getsym (char *dstp, char **srcp, unsigned int *lenp)
+getsym (char *dstp, char **srcp, unsigned int *lenp, char * endp)
 {
   char *src = *srcp;
   unsigned int i;
@@ -304,12 +304,12 @@ getsym (char *dstp, char **srcp, unsigne
   len = hex_value (*src++);
   if (len == 0)
     len = 16;
-  for (i = 0; i < len; i++)
+  for (i = 0; i < len && src < endp; i++)
     dstp[i] = src[i];
   dstp[i] = 0;
   *srcp = src + i;
   *lenp = len;
-  return TRUE;
+  return i == len;
 }
 
 static struct data_struct *
@@ -354,7 +354,7 @@ insert_byte (bfd *abfd, int value, bfd_v
   how big the data is.  */
 
 static bfd_boolean
-first_phase (bfd *abfd, int type, char *src)
+first_phase (bfd *abfd, int type, char *src, char * src_end)
 {
   asection *section, *alt_section;
   unsigned int len;
@@ -368,21 +368,21 @@ first_phase (bfd *abfd, int type, char *
       {
 	bfd_vma addr;
 
-	if (!getvalue (&src, &addr))
+	if (!getvalue (&src, &addr, src_end))
 	  return FALSE;
 
-	while (*src)
+	while (*src && src < src_end - 1)
 	  {
 	    insert_byte (abfd, HEX (src), addr);
 	    src += 2;
 	    addr++;
 	  }
+	return TRUE;
       }
 
-      return TRUE;
     case '3':
       /* Symbol record, read the segment.  */
-      if (!getsym (sym, &src, &len))
+      if (!getsym (sym, &src, &len, src_end))
 	return FALSE;
       section = bfd_get_section_by_name (abfd, sym);
       if (section == NULL)
@@ -403,9 +403,9 @@ first_phase (bfd *abfd, int type, char *
 	    {
 	    case '1':		/* Section range.  */
 	      src++;
-	      if (!getvalue (&src, &section->vma))
+	      if (!getvalue (&src, &section->vma, src_end))
 		return FALSE;
-	      if (!getvalue (&src, &val))
+	      if (!getvalue (&src, &val, src_end))
 		return FALSE;
 	      section->size = val - section->vma;
 	      section->flags = SEC_HAS_CONTENTS | SEC_LOAD | SEC_ALLOC;
@@ -432,7 +432,7 @@ first_phase (bfd *abfd, int type, char *
 		abfd->flags |= HAS_SYMS;
 		new_symbol->prev = abfd->tdata.tekhex_data->symbols;
 		abfd->tdata.tekhex_data->symbols = new_symbol;
-		if (!getsym (sym, &src, &len))
+		if (!getsym (sym, &src, &len, src_end))
 		  return FALSE;
 		new_symbol->symbol.name = (const char *)
                     bfd_alloc (abfd, (bfd_size_type) len + 1);
@@ -480,7 +480,7 @@ first_phase (bfd *abfd, int type, char *
 			new_symbol->symbol.section = alt_section;
 		      }
 		  }
-		if (!getvalue (&src, &val))
+		if (!getvalue (&src, &val, src_end))
 		  return FALSE;
 		new_symbol->symbol.value = val - section->vma;
 		break;
@@ -498,7 +498,7 @@ first_phase (bfd *abfd, int type, char *
    record.  */
 
 static bfd_boolean
-pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *))
+pass_over (bfd *abfd, bfd_boolean (*func) (bfd *, int, char *, char *))
 {
   unsigned int chars_on_line;
   bfd_boolean is_eof = FALSE;
@@ -539,8 +539,7 @@ pass_over (bfd *abfd, bfd_boolean (*func
 
       /* Put a null at the end.  */
       src[chars_on_line] = 0;
-
-      if (!func (abfd, type, src))
+      if (!func (abfd, type, src, src + chars_on_line))
 	return FALSE;
     }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/bfd/version.h	2015-01-06 01:48:29.000000000 +0000
+++ ./bfd/version.h	2015-01-13 01:48:36.000000000 +0000
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20150106
+#define BFD_VERSION_DATE 20150113
 #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-7.8.50.20150106/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/djunpack.bat	2015-01-06 01:51:29.000000000 +0000
+++ ./djunpack.bat	2015-01-13 01:53:22.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-7.8.50.20150106
-if "%GDBVER%"=="$package-7.8.50.20150106" GoTo EnvOk
+set GDBVER=$package-7.8.50.20150113
+if "%GDBVER%"=="$package-7.8.50.20150113" 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-7.8.50.20150106/gdb/breakpoint.c ./gdb/breakpoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/breakpoint.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/breakpoint.c	2015-01-13 01:48:38.000000000 +0000
@@ -4226,29 +4226,45 @@ moribund_breakpoint_here_p (struct addre
   return 0;
 }
 
+/* Returns non-zero iff BL is inserted at PC, in address space
+   ASPACE.  */
+
+static int
+bp_location_inserted_here_p (struct bp_location *bl,
+			     struct address_space *aspace, CORE_ADDR pc)
+{
+  if (bl->inserted
+      && breakpoint_address_match (bl->pspace->aspace, bl->address,
+				   aspace, pc))
+    {
+      if (overlay_debugging
+	  && section_is_overlay (bl->section)
+	  && !section_is_mapped (bl->section))
+	return 0;		/* unmapped overlay -- can't be a match */
+      else
+	return 1;
+    }
+  return 0;
+}
+
 /* Returns non-zero iff there's a breakpoint inserted at PC.  */
 
 int
 breakpoint_inserted_here_p (struct address_space *aspace, CORE_ADDR pc)
 {
-  struct bp_location *bl, **blp_tmp;
+  struct bp_location **blp, **blp_tmp = NULL;
+  struct bp_location *bl;
 
-  ALL_BP_LOCATIONS (bl, blp_tmp)
+  ALL_BP_LOCATIONS_AT_ADDR (blp, blp_tmp, pc)
     {
+      struct bp_location *bl = *blp;
+
       if (bl->loc_type != bp_loc_software_breakpoint
 	  && bl->loc_type != bp_loc_hardware_breakpoint)
 	continue;
 
-      if (bl->inserted
-	  && breakpoint_location_address_match (bl, aspace, pc))
-	{
-	  if (overlay_debugging 
-	      && section_is_overlay (bl->section)
-	      && !section_is_mapped (bl->section))
-	    continue;		/* unmapped overlay -- can't be a match */
-	  else
-	    return 1;
-	}
+      if (bp_location_inserted_here_p (bl, aspace, pc))
+	return 1;
     }
   return 0;
 }
@@ -4260,24 +4276,41 @@ int
 software_breakpoint_inserted_here_p (struct address_space *aspace,
 				     CORE_ADDR pc)
 {
-  struct bp_location *bl, **blp_tmp;
+  struct bp_location **blp, **blp_tmp = NULL;
+  struct bp_location *bl;
 
-  ALL_BP_LOCATIONS (bl, blp_tmp)
+  ALL_BP_LOCATIONS_AT_ADDR (blp, blp_tmp, pc)
     {
+      struct bp_location *bl = *blp;
+
       if (bl->loc_type != bp_loc_software_breakpoint)
 	continue;
 
-      if (bl->inserted
-	  && breakpoint_address_match (bl->pspace->aspace, bl->address,
-				       aspace, pc))
-	{
-	  if (overlay_debugging 
-	      && section_is_overlay (bl->section)
-	      && !section_is_mapped (bl->section))
-	    continue;		/* unmapped overlay -- can't be a match */
-	  else
-	    return 1;
-	}
+      if (bp_location_inserted_here_p (bl, aspace, pc))
+	return 1;
+    }
+
+  return 0;
+}
+
+/* See breakpoint.h.  */
+
+int
+hardware_breakpoint_inserted_here_p (struct address_space *aspace,
+				     CORE_ADDR pc)
+{
+  struct bp_location **blp, **blp_tmp = NULL;
+  struct bp_location *bl;
+
+  ALL_BP_LOCATIONS_AT_ADDR (blp, blp_tmp, pc)
+    {
+      struct bp_location *bl = *blp;
+
+      if (bl->loc_type != bp_loc_hardware_breakpoint)
+	continue;
+
+      if (bp_location_inserted_here_p (bl, aspace, pc))
+	return 1;
     }
 
   return 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/breakpoint.h ./gdb/breakpoint.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/breakpoint.h	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/breakpoint.h	2015-01-13 01:48:38.000000000 +0000
@@ -1130,6 +1130,11 @@ extern int regular_breakpoint_inserted_h
 extern int software_breakpoint_inserted_here_p (struct address_space *, 
 						CORE_ADDR);
 
+/* Return non-zero iff there is a hardware breakpoint inserted at
+   PC.  */
+extern int hardware_breakpoint_inserted_here_p (struct address_space *,
+						CORE_ADDR);
+
 /* Check whether any location of BP is inserted at PC.  */
 
 extern int breakpoint_has_location_inserted_here (struct breakpoint *bp,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/ChangeLog	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/ChangeLog	2015-01-13 01:48:38.000000000 +0000
@@ -1,3 +1,247 @@
+2015-01-12  Patrick Palka  <patrick@parcs.ath.cx>
+
+	* top.h (gdb_add_history): Declare.
+	* top.c (command_count): New variable.
+	(gdb_add_history): New function.
+	(gdb_safe_append_history): New static function.
+	(quit_force): Call it.
+	(command_line_input): Use gdb_add_history instead of
+	add_history.
+	* event-top.c (command_line_handler): Likewise.
+
+2015-01-12  James Clarke  <jrtc27@jrtc27.com>  (tiny patch)
+
+	PR gdb/17046
+	* darwin-nat.c: Replace <machine/setjmp.h> #include by
+	<setjmp.h> #include.
+
+2015-01-11  Doug Evans  <xdje42@gmail.com>
+
+	* dwarf2read.c (compute_delayed_physnames): Use TYPE_FN_FIELD_PHYSNAME.
+
+2015-01-11  Doug Evans  <xdje42@gmail.com>
+
+	PR gdb/15830
+	* NEWS: The "maint demangle" command is renamed as "demangle".
+	* demangle.c: #include cli/cli-utils.h, language.h.
+	(demangle_command): New function.
+	(_initialize_demangle): Add new command "demangle".
+	* maint.c (maintenance_demangle): Stub out.
+	(_initialize_maint_cmds): Update help text for "maint demangle",
+	and mark as deprecated.
+
+2015-01-11  Mark Kettenis  <kettenis@gnu.org>
+
+	* inf-ptrace.c (inf_ptrace_follow_fork): Adjust now that
+	inferior_thread is a function.
+
+2015-01-09  Patrick Palka  <patrick@parcs.ath.cx>
+
+	* Makefile.in (.y.c): Don't munge yacc's #line
+	directives.
+
+2015-01-09  Patrick Palka  <patrick@parcs.ath.cx>
+
+	* utils.c (defaulted_query): Rewrite to use gdb_readline_wrapper
+	to prompt for input.
+	* tui/tui-hooks.c (tui_query_hook): Remove.
+	(tui_install_hooks): Don't set deprecated_query_hook.
+	* tui/tui-io.c (tui_redisplay_readline): Fix off-by-one error in
+	height calculation.  Always update the command window's cur_line.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (hardware_breakpoint_inserted_here_p): New
+	function.
+	* breakpoint.h (hardware_breakpoint_inserted_here_p): New
+	declaration.
+	* linux-nat.c (linux_nat_status_is_event): Move higher up in file.
+	(linux_resume_one_lwp): Store the thread's PC.  Adjust to clear
+	stop_reason.
+	(check_stopped_by_watchpoint): New function.
+	(save_sigtrap): Reimplement.
+	(linux_nat_stopped_by_watchpoint): Adjust.
+	(linux_nat_lp_status_is_event): Delete.
+	(stop_wait_callback): Only call save_sigtrap after storing the
+	pending status.
+	(status_callback): If the thread had been stopped for a breakpoint
+	that has since been removed, discard the event and resume the LWP.
+	(count_events_callback, select_event_lwp_callback): Use
+	lwp_status_pending_p instead of linux_nat_lp_status_is_event.
+	(cancel_breakpoint): Rename to ...
+	(check_stopped_by_breakpoint): ... this.  Record whether the LWP
+	stopped for a software breakpoint or hardware breakpoint.
+	(select_event_lwp): Only give preference to the stepping LWP in
+	all-stop mode.  Adjust comments.
+	(stop_and_resume_callback): Remove references to new_pending_p.
+	(linux_nat_filter_event): Likewise.  Leave exit events of the
+	leader thread pending here.  Handle signal short circuiting here.
+	Only call save_sigtrap after storing the pending waitstatus.
+	(linux_nat_wait_1): Remove 'retry' label.  Remove references to
+	new_pending.  Don't handle leaving events the caller is not
+	interested in pending here, nor handle signal short-circuiting
+	here.  Also give equal priority to all LWPs that have had events
+	in non-stop mode.  If reporting a software breakpoint event,
+	unadjust the LWP's PC.
+	* linux-nat.h (enum lwp_stop_reason): New.
+	(struct lwp_info) <stop_pc>: New field.
+	(struct lwp_info) <stopped_by_watchpoint>: Delete field.
+	(struct lwp_info) <stop_reason>: New field.
+	* x86-linux-nat.c (x86_linux_prepare_to_resume): Adjust.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-nat.c (linux_handle_extended_wait) <PTRACE_EVENT_EXEC>:
+	Set the LWP's 'resumed' flag.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-nat.c (linux_resume_one_lwp): New function.
+	(resume_lwp): Use lwp_status_pending_p and linux_resume_one_lwp.
+	(linux_nat_resume): Use lwp_status_pending_p and
+	linux_resume_one_lwp.
+	(linux_handle_syscall_trap): Use linux_resume_one_lwp.
+	(linux_handle_extended_wait): Use linux_resume_one_lwp.
+	(status_callback, running_callback): Use lwp_status_pending_p.
+	(lwp_status_pending_p): New function.
+	(stop_and_resume_callback): Use lwp_status_pending_p.
+	(linux_nat_filter_event): Use linux_resume_one_lwp.
+	(linux_nat_wait_1): Always use status_callback to look for an LWP
+	with a pending status.  Use linux_resume_one_lwp.
+	(resume_stopped_resumed_lwps): Use lwp_status_pending_p and
+	linux_resume_one_lwp.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* breakpoint.c (bp_location_inserted_here_p): New function,
+	factored out from ...
+	(breakpoint_inserted_here_p): ... here.  Use
+	ALL_BP_LOCATIONS_AT_ADDR.
+	(software_breakpoint_inserted_here_p): Use
+	bp_location_inserted_here_p and ALL_BP_LOCATIONS_AT_ADDR.
+
+2014-01-09  Pedro Alves  <palves@redhat.com>
+
+	Skip enabling event reporting if the kernel supports
+	PTRACE_EVENT_CLONE.
+	* linux-thread-db.c: Include "nat/linux-ptrace.h".
+	(thread_db_use_events): New function.
+	(try_thread_db_load_1): Check thread_db_use_events before enabling
+	event reporting.
+	(update_thread_state): New function.
+	(attach_thread): Use it.  Check thread_db_use_events before
+	enabling event reporting.
+	(thread_db_detach): Check thread_db_use_events before disabling
+	event reporting.
+	(find_new_threads_callback): Check thread_db_use_events before
+	enabling event reporting.  Update the thread's state if not using
+	libthread_db events.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-nat.c (lin_lwp_attach_lwp): Assert that the lwp id we're
+	about to wait for is > 0.
+	* linux-thread-db.c (find_new_threads_callback): Ignore thread if
+	the kernel thread ID is -1.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-nat.c (attach_proc_task_lwp_callback): New function.
+	(linux_nat_attach): Use linux_proc_attach_tgid_threads.
+	(wait_lwp, linux_nat_filter_event): If not set yet, set the lwp's
+	ptrace option flags.
+	* linux-nat.h (struct lwp_info) <must_set_ptrace_flags>: New
+	field.
+	* nat/linux-procfs.c: Include <dirent.h>.
+	(linux_proc_get_int): New parameter "warn".  Handle it.
+	(linux_proc_get_tgid): Adjust.
+	(linux_proc_get_tracerpid): Rename to ...
+	(linux_proc_get_tracerpid_nowarn): ... this.
+	(linux_proc_pid_get_state): New function, factored out from
+	(linux_proc_pid_has_state): ... this.  Add new parameter "warn"
+	and handle it.
+	(linux_proc_pid_is_gone): New function.
+	(linux_proc_pid_is_stopped): Adjust.
+	(linux_proc_pid_is_zombie_maybe_warn)
+	(linux_proc_pid_is_zombie_nowarn): New functions.
+	(linux_proc_pid_is_zombie): Use
+	linux_proc_pid_is_zombie_maybe_warn.
+	(linux_proc_attach_tgid_threads): New function.
+	* nat/linux-procfs.h (linux_proc_get_tgid): Update comment.
+	(linux_proc_get_tracerpid): Rename to ...
+	(linux_proc_get_tracerpid_nowarn): ... this, and update comment.
+	(linux_proc_pid_is_gone): New declaration.
+	(linux_proc_pid_is_zombie): Update comment.
+	(linux_proc_pid_is_zombie_nowarn): New declaration.
+	(linux_proc_attach_lwp_func): New typedef.
+	(linux_proc_attach_tgid_threads): New declaration.
+	* nat/linux-ptrace.c (linux_ptrace_attach_fail_reason): Adjust to
+	use nowarn functions.
+	(linux_ptrace_attach_fail_reason_string): Move here from
+	gdbserver/linux-low.c and rename.
+	(ptrace_supports_feature): If the current ptrace options are not
+	known yet, check them now, instead of asserting.
+	* nat/linux-ptrace.h (linux_ptrace_attach_fail_reason_string):
+	Declare.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-thread-db.c (thread_db_find_new_threads_silently)
+	(try_thread_db_load_1, try_thread_db_load, thread_db_load_search)
+	(find_new_threads_once): Print debug output on gdb_stdlog.
+
+2015-01-09  Chen Gang  <gang.chen.5i5j@gmail.com>
+	    Pedro Alves  <palves@redhat.com>
+
+	* compile/compile.c: Include "gdb_wait.h".
+	(do_rmdir): Check return value, and free 'zap'.
+
+2015-01-08  Pedro Alves  <palves@redhat.com>
+	    Yao Qi  <yao@codesourcery.com>
+
+	* dwarf2loc.c (indirect_pieced_value): Don't call
+	gdb_sign_extend.  Call extract_signed_integer instead.
+	* utils.c (gdb_sign_extend): Remove.
+	* utils.h (gdb_sign_extend): Remove declaration.
+
+2015-01-07  Pierre Muller  <muller@sourceware.org>
+
+	PR symtab/17811
+	* stabsread.c (define_symbol): Set language for C++ special symbols.
+
+2015-01-07  Patrick Palka  <patrick@parcs.ath.cx>
+
+	* inflow.c (initial_gdb_ttystate): Tweak comment.
+
+2015-01-07  Joel Brobecker  <brobecker@adacore.com>
+
+	* inflow.c (set_initial_gdb_ttystate): Add empty line after
+	comment documenting function.
+
+2015-01-07  Patrick Palka  <patrick@parcs.ath.cx>
+
+	* terminal.h (set_initial_gdb_ttystate): Declare.
+	* inflow.c (initial_gdb_ttystate): New static variable.
+	(set_initial_gdb_ttystate): New setter.
+	(child_terminal_init_with_pgrp): Copy initial_gdb_ttystate
+	instead of our current terminal state.
+	* top.c (gdb_init): Call set_initial_gdb_ttystate.
+
+2015-01-07  Joel Brobecker  <brobecker@adacore.com>
+
+	* guile/scm-type.c (tyscm_array_1): Add comment.
+	* python/py-type.c (typy_array_1): Add comment.
+
+2015-01-06  Joel Brobecker  <brobecker@adacore.com>
+
+	* guile/scm-type.c (tyscm_array_1): Do not raise out-of-range
+	error if N2 is equal to N1 - 1.
+
+2015-01-06  Joel Brobecker  <brobecker@adacore.com>
+
+	* python/py-type.c (typy_array_1): Do not raise negative-length
+	exception if N2 is equal to N1 - 1.
+
 2015-01-03  Doug Evans  <xdje42@gmail.com>
 
 	* c-exp.y: Whitespace cleanup.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/compile/compile.c ./gdb/compile/compile.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/compile/compile.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/compile/compile.c	2015-01-13 01:48:38.000000000 +0000
@@ -37,6 +37,7 @@
 #include "filestuff.h"
 #include "target.h"
 #include "osabi.h"
+#include "gdb_wait.h"
 
 
 
@@ -169,10 +170,14 @@ do_rmdir (void *arg)
 {
   const char *dir = arg;
   char *zap;
-  
+  int wstat;
+
   gdb_assert (strncmp (dir, TMP_PREFIX, strlen (TMP_PREFIX)) == 0);
   zap = concat ("rm -rf ", dir, (char *) NULL);
-  system (zap);
+  wstat = system (zap);
+  if (wstat == -1 || !WIFEXITED (wstat) || WEXITSTATUS (wstat) != 0)
+    warning (_("Could not remove temporary directory %s"), dir);
+  XDELETEVEC (zap);
 }
 
 /* Return the name of the temporary directory to use for .o files, and
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/darwin-nat.c ./gdb/darwin-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/darwin-nat.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/darwin-nat.c	2015-01-13 01:48:39.000000000 +0000
@@ -41,7 +41,7 @@
 
 #include <sys/ptrace.h>
 #include <sys/signal.h>
-#include <machine/setjmp.h>
+#include <setjmp.h>
 #include <sys/types.h>
 #include <unistd.h>
 #include <signal.h>
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/demangle.c ./gdb/demangle.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/demangle.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/demangle.c	2015-01-13 01:48:39.000000000 +0000
@@ -24,10 +24,13 @@
    to a styles of demangling, and GDB specific.  */
 
 #include "defs.h"
+#include "cli/cli-utils.h" /* for skip_to_space */
 #include "command.h"
 #include "gdbcmd.h"
 #include "demangle.h"
 #include "gdb-demangle.h"
+#include "language.h"
+
 /* Select the default C++ demangling style to use.  The default is "auto",
    which allows gdb to attempt to pick an appropriate demangling style for
    the executable it has loaded.  It can be set to a specific style ("gnu",
@@ -40,6 +43,8 @@
 #define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
 #endif
 
+static void demangle_command (char *, int);
+
 /* See documentation in gdb-demangle.h.  */
 int demangle = 1;
 
@@ -151,6 +156,77 @@ is_cplus_marker (int c)
   return c && strchr (cplus_markers, c) != NULL;
 }
 
+/* Demangle the given string in the current language.  */
+
+static void
+demangle_command (char *args, int from_tty)
+{
+  char *demangled, *name, *lang_name = NULL;
+  char *arg_buf, *arg_start;
+  int processing_args = 1;
+  const struct language_defn *lang;
+  struct cleanup *cleanups;
+
+  arg_buf = xstrdup (args != NULL ? args : "");
+  cleanups = make_cleanup (xfree, arg_buf);
+  arg_start = arg_buf;
+
+  while (processing_args
+	 && *arg_start == '-')
+    {
+      char *p = skip_to_space (arg_start);
+
+      if (strncmp (arg_start, "-l", p - arg_start) == 0)
+	{
+	  char *lang_name_end;
+
+	  lang_name = skip_spaces (p);
+	  lang_name_end = skip_to_space (lang_name);
+	  lang_name = savestring (lang_name, lang_name_end - lang_name);
+	  make_cleanup (xfree, lang_name);
+	  p = lang_name_end;
+	}
+      else if (strncmp (arg_start, "--", p - arg_start) == 0)
+	processing_args = 0;
+      else
+	{
+	  *p = '\0';
+	  error (_("Unrecognized option '%s' to demangle command.  "
+		   "Try \"help demangle\"."), arg_start);
+	}
+
+      arg_start = skip_spaces (p);
+    }
+
+  name = arg_start;
+
+  if (*name == '\0')
+    error (_("Usage: demangle [-l language] [--] name"));
+
+  if (lang_name != NULL)
+    {
+      enum language lang_enum;
+
+      lang_enum = language_enum (lang_name);
+      if (lang_enum == language_unknown)
+	error (_("Unknown language \"%s\""), lang_name);
+      lang = language_def (lang_enum);
+    }
+  else
+    lang = current_language;
+
+  demangled = language_demangle (lang, name, DMGL_ANSI | DMGL_PARAMS);
+  if (demangled != NULL)
+    {
+      printf_filtered ("%s\n", demangled);
+      xfree (demangled);
+    }
+  else
+    error (_("Can't demangle \"%s\""), name);
+
+  do_cleanups (cleanups);
+}
+
 extern initialize_file_ftype _initialize_demangler; /* -Wmissing-prototypes */
 
 void
@@ -200,4 +276,10 @@ Use `set demangle-style' without argumen
 			set_demangling_command,
 			show_demangling_style_names,
 			&setlist, &showlist);
+
+  add_cmd ("demangle", class_support, demangle_command, _("\
+Demangle a mangled name.\n\
+Usage: demangle [-l language] [--] name\n\
+If LANGUAGE is not specified, NAME is demangled in the current language."),
+	   &cmdlist);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/ChangeLog ./gdb/doc/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/ChangeLog	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/doc/ChangeLog	2015-01-13 01:48:39.000000000 +0000
@@ -1,3 +1,10 @@
+2015-01-11  Doug Evans  <xdje42@gmail.com>
+
+	PR gdb/15830
+	* gdb.texinfo (Debugging C Plus Plus): Mention "demangle".
+	(Symbols): Ditto.
+	(Maintenance Commands): Delete docs for "maint demangle".
+
 2014-12-31  Joel Brobecker  <brobecker@adacore.com>
 
 	* gdb.texinfo (Files): Remove documentation of the
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gcore.1	2015-01-06 01:51:22.000000000 +0000
+++ ./gdb/doc/gcore.1	2015-01-13 01:52:17.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2015-01-06" "gdb-7.8.50.20150106-cvs" "GNU Development Tools"
+.TH GCORE 1 "2015-01-13" "gdb-7.8.50.20150113-cvs" "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-7.8.50.20150106/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.1	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.1	2015-01-13 01:52:17.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2015-01-06" "gdb-7.8.50.20150106-cvs" "GNU Development Tools"
+.TH GDB 1 "2015-01-13" "gdb-7.8.50.20150113-cvs" "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-7.8.50.20150106/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -41,12 +41,12 @@ developing GNU and promoting software fr
 Indirect:
 gdb.info-1: 1723
 gdb.info-2: 300342
-gdb.info-3: 599991
-gdb.info-4: 896453
-gdb.info-5: 1195686
-gdb.info-6: 1501817
-gdb.info-7: 1782168
-gdb.info-8: 1936329
+gdb.info-3: 599413
+gdb.info-4: 896989
+gdb.info-5: 1196222
+gdb.info-6: 1502281
+gdb.info-7: 1782632
+gdb.info-8: 1937003
 
 Tag Table:
 (Indirect)
@@ -224,516 +224,516 @@ Node: C Defaults507885
 Node: C Checks508553
 Node: Debugging C509113
 Node: Debugging C Plus Plus509597
-Node: Decimal Floating Point513071
-Node: D514340
-Node: Go514597
-Node: Objective-C515691
-Node: Method Names in Commands516154
-Node: The Print Command with Objective-C517849
-Node: OpenCL C518500
-Node: OpenCL C Datatypes518775
-Node: OpenCL C Expressions519150
-Node: OpenCL C Operators519507
-Node: Fortran519739
-Node: Fortran Operators520461
-Node: Fortran Defaults521317
-Node: Special Fortran Commands521702
-Node: Pascal522208
-Node: Modula-2522723
-Node: M2 Operators523698
-Node: Built-In Func/Proc526697
-Node: M2 Constants529612
-Node: M2 Types531213
-Node: M2 Defaults534432
-Node: Deviations535032
-Node: M2 Checks536133
-Node: M2 Scope536951
-Node: GDB/M2537975
-Node: Ada538887
-Node: Ada Mode Intro539997
-Node: Omissions from Ada541907
-Node: Additions to Ada546261
-Node: Stopping Before Main Program550191
-Node: Ada Exceptions550725
-Node: Ada Tasks551922
-Node: Ada Tasks and Core Files558338
-Node: Ravenscar Profile559183
-Node: Ada Glitches560253
-Node: Unsupported Languages564268
-Node: Symbols564958
-Node: Altering583249
-Node: Assignment584287
-Node: Jumping587392
-Node: Signaling589553
-Node: Returning592482
-Node: Calling595834
-Node: Patching598877
-Node: Compiling and Injecting Code599991
-Node: GDB Files608921
-Node: Files609641
-Ref: Shared Libraries622731
-Ref: Files-Footnote-1634365
-Node: Separate Debug Files634540
-Ref: debug-file-directory637647
-Node: MiniDebugInfo646245
-Node: Index Files648696
-Node: Symbol Errors650758
-Node: Data Files654371
-Node: Targets655327
-Node: Active Targets656807
-Node: Target Commands657881
-Ref: load662265
-Node: Byte Order663246
-Node: Remote Debugging664223
-Node: Connecting665485
-Node: File Transfer670427
-Node: Server671367
-Ref: Other Command-Line Arguments for gdbserver678959
-Ref: Monitor Commands for gdbserver682075
-Ref: Server-Footnote-1687246
-Node: Remote Configuration687366
-Ref: set remotebreak688392
-Ref: set remote hardware-watchpoint-limit689856
-Ref: set remote hardware-breakpoint-limit689856
-Ref: set remote hardware-watchpoint-length-limit690082
-Ref: set remote exec-file690497
-Node: Remote Stub697855
-Node: Stub Contents700752
-Node: Bootstrapping702859
-Node: Debug Session706673
-Node: Configurations708715
-Node: Native709484
-Node: HP-UX710053
-Node: BSD libkvm Interface710342
-Node: SVR4 Process Information711413
-Node: DJGPP Native715188
-Node: Cygwin Native721768
-Node: Non-debug DLL Symbols725577
-Node: Hurd Native729722
-Node: Darwin734983
-Node: Embedded OS736244
-Node: Embedded Processors736655
-Node: ARM737788
-Node: M32R/D741922
-Node: M68K743624
-Node: MicroBlaze743917
-Node: MIPS Embedded745367
-Node: PowerPC Embedded750308
-Node: PA754089
-Node: Sparclet754373
-Node: Sparclet File755842
-Node: Sparclet Connection756722
-Node: Sparclet Download757200
-Node: Sparclet Execution758249
-Node: Sparclite758840
-Node: Z8000759213
-Node: AVR760597
-Node: CRIS760960
-Node: Super-H761938
-Node: Architectures762998
-Node: AArch64763435
-Node: i386763842
-Ref: i386-Footnote-1766074
-Node: Alpha766160
-Node: MIPS766293
-Node: HPPA770186
-Node: SPU770705
-Node: PowerPC772893
-Node: Nios II773627
-Node: Controlling GDB774016
-Node: Prompt774913
-Node: Editing776632
-Node: Command History777575
-Node: Screen Size781105
-Node: Numbers783038
-Node: ABI785023
-Node: Auto-loading788197
-Ref: set auto-load off789572
-Ref: show auto-load790208
-Ref: info auto-load790987
-Node: Init File in the Current Directory794021
-Ref: set auto-load local-gdbinit794596
-Ref: show auto-load local-gdbinit794778
-Ref: info auto-load local-gdbinit794942
-Node: libthread_db.so.1 file795090
-Ref: set auto-load libthread-db796029
-Ref: show auto-load libthread-db796160
-Ref: info auto-load libthread-db796297
-Node: Auto-loading safe path796481
-Ref: set auto-load safe-path797787
-Ref: show auto-load safe-path798526
-Ref: add-auto-load-safe-path798649
-Node: Auto-loading verbose mode801551
-Ref: set debug auto-load802714
-Ref: show debug auto-load802815
-Node: Messages/Warnings802937
-Ref: confirmation requests804372
-Node: Debugging Output805579
-Node: Other Misc Settings814342
-Node: Extending GDB815371
-Node: Sequences817225
-Node: Define817886
-Node: Hooks821705
-Node: Command Files824072
-Node: Output829142
-Node: Auto-loading sequences834106
-Ref: set auto-load gdb-scripts834601
-Ref: show auto-load gdb-scripts834725
-Ref: info auto-load gdb-scripts834855
-Node: Python835086
-Node: Python Commands836259
-Node: Python API838594
-Node: Basic Python841077
-Ref: prompt_hook849738
-Node: Exception Handling850335
-Node: Values From Inferior852831
-Node: Types In Python865732
-Node: Pretty Printing API875000
-Node: Selecting Pretty-Printers878893
-Node: Writing a Pretty-Printer881226
-Node: Type Printing API886547
-Node: Frame Filter API889168
-Node: Frame Decorator API896453
-Ref: frame_args900032
-Node: Writing a Frame Filter903359
-Node: Xmethods In Python914826
-Node: Xmethod API917715
-Node: Writing an Xmethod921238
-Node: Inferiors In Python926824
-Node: Events In Python929704
-Node: Threads In Python936787
-Node: Commands In Python939230
-Node: Parameters In Python948649
-Node: Functions In Python954110
-Node: Progspaces In Python956332
-Node: Objfiles In Python959833
-Node: Frames In Python965227
-Node: Blocks In Python971765
-Node: Symbols In Python976128
-Node: Symbol Tables In Python983355
-Node: Line Tables In Python986585
-Node: Breakpoints In Python989422
-Node: Finish Breakpoints in Python997414
-Node: Lazy Strings In Python999521
-Node: Architectures In Python1001756
-Node: Python Auto-loading1003943
-Ref: set auto-load python-scripts1004572
-Ref: show auto-load python-scripts1004672
-Ref: info auto-load python-scripts1004778
-Node: Python modules1005802
-Node: gdb.printing1006188
-Node: gdb.types1007615
-Node: gdb.prompt1010628
-Node: Guile1012277
-Node: Guile Introduction1012936
-Node: Guile Commands1013807
-Node: Guile API1015676
-Node: Basic Guile1017673
-Node: Guile Configuration1023386
-Node: GDB Scheme Data Types1024362
-Node: Guile Exception Handling1026202
-Node: Values From Inferior In Guile1030253
-Node: Arithmetic In Guile1045798
-Node: Types In Guile1047429
-Ref: Fields of a type in Guile1055376
-Node: Guile Pretty Printing API1056777
-Node: Selecting Guile Pretty-Printers1062373
-Node: Writing a Guile Pretty-Printer1064752
-Node: Commands In Guile1069936
-Node: Parameters In Guile1080740
-Ref: Parameters In Guile-Footnote-11087622
-Node: Progspaces In Guile1087749
-Node: Objfiles In Guile1090337
-Node: Frames In Guile1092409
-Node: Blocks In Guile1098827
-Node: Symbols In Guile1103635
-Node: Symbol Tables In Guile1110967
-Node: Breakpoints In Guile1113930
-Node: Lazy Strings In Guile1124152
-Node: Architectures In Guile1126446
-Node: Disassembly In Guile1130752
-Node: I/O Ports in Guile1133952
-Node: Memory Ports in Guile1134508
-Node: Iterators In Guile1137680
-Node: Guile Auto-loading1141968
-Ref: set auto-load guile-scripts1142591
-Ref: show auto-load guile-scripts1142689
-Ref: info auto-load guile-scripts1142793
-Node: Guile Modules1143752
-Node: Guile Printing Module1144074
-Node: Guile Types Module1144894
-Node: Auto-loading extensions1146186
-Node: objfile-gdbdotext file1147384
-Ref: set auto-load scripts-directory1148828
-Ref: with-auto-load-dir1149204
-Ref: show auto-load scripts-directory1150022
-Ref: add-auto-load-scripts-directory1150102
-Node: dotdebug_gdb_scripts section1150578
-Node: Which flavor to choose?1152424
-Node: Multiple Extension Languages1154245
-Node: Aliases1155309
-Node: Interpreters1158174
-Node: TUI1160273
-Node: TUI Overview1161220
-Node: TUI Keys1163653
-Node: TUI Single Key Mode1165957
-Node: TUI Commands1166832
-Node: TUI Configuration1169216
-Node: Emacs1170512
-Node: GDB/MI1175986
-Node: GDB/MI General Design1177960
-Node: Context management1180483
-Node: Asynchronous and non-stop modes1184311
-Node: Thread groups1187287
-Node: GDB/MI Command Syntax1189565
-Node: GDB/MI Input Syntax1189808
-Node: GDB/MI Output Syntax1191362
-Node: GDB/MI Compatibility with CLI1194949
-Node: GDB/MI Development and Front Ends1195686
-Node: GDB/MI Output Records1197343
-Node: GDB/MI Result Records1197749
-Node: GDB/MI Stream Records1199099
-Node: GDB/MI Async Records1200364
-Node: GDB/MI Breakpoint Information1209994
-Node: GDB/MI Frame Information1213946
-Node: GDB/MI Thread Information1215033
-Node: GDB/MI Ada Exception Information1216012
-Node: GDB/MI Simple Examples1216435
-Node: GDB/MI Command Description Format1218643
-Node: GDB/MI Breakpoint Commands1219523
-Node: GDB/MI Catchpoint Commands1239394
-Node: Shared Library GDB/MI Catchpoint Commands1239762
-Node: Ada Exception GDB/MI Catchpoint Commands1241420
-Node: GDB/MI Program Context1243830
-Node: GDB/MI Thread Commands1248100
-Node: GDB/MI Ada Tasking Commands1252056
-Node: GDB/MI Program Execution1254310
-Node: GDB/MI Stack Manipulation1266347
-Ref: -stack-list-arguments1268246
-Ref: -stack-list-frames1271951
-Ref: -stack-list-locals1275820
-Ref: -stack-list-variables1277310
-Node: GDB/MI Variable Objects1278844
-Ref: -var-set-format1288747
-Ref: -var-list-children1289865
-Ref: -var-update1298654
-Ref: -var-set-frozen1301649
-Ref: -var-set-update-range1302445
-Ref: -var-set-visualizer1302975
-Node: GDB/MI Data Manipulation1304466
-Node: GDB/MI Tracepoint Commands1324031
-Node: GDB/MI Symbol Query1335624
-Node: GDB/MI File Commands1336313
-Node: GDB/MI Target Manipulation1339609
-Node: GDB/MI File Transfer Commands1345831
-Node: GDB/MI Ada Exceptions Commands1347154
-Node: GDB/MI Support Commands1348508
-Node: GDB/MI Miscellaneous Commands1353093
-Ref: -interpreter-exec1363326
-Node: Annotations1365662
-Node: Annotations Overview1366581
-Node: Server Prefix1369044
-Node: Prompting1369778
-Node: Errors1371295
-Node: Invalidation1372191
-Node: Annotations for Running1372668
-Node: Source Annotations1374202
-Node: JIT Interface1375131
-Node: Declarations1376931
-Node: Registering Code1378318
-Node: Unregistering Code1379290
-Node: Custom Debug Info1379917
-Node: Using JIT Debug Info Readers1381213
-Node: Writing JIT Debug Info Readers1382226
-Node: In-Process Agent1384423
-Ref: Control Agent1386366
-Node: In-Process Agent Protocol1387233
-Node: IPA Protocol Objects1388025
-Ref: agent expression object1389027
-Ref: tracepoint action object1389233
-Ref: tracepoint object1389314
-Node: IPA Protocol Commands1392270
-Node: GDB Bugs1393743
-Node: Bug Criteria1394475
-Node: Bug Reporting1395352
-Node: Command Line Editing1403183
-Node: Introduction and Notation1403835
-Node: Readline Interaction1405455
-Node: Readline Bare Essentials1406644
-Node: Readline Movement Commands1408431
-Node: Readline Killing Commands1409394
-Node: Readline Arguments1411312
-Node: Searching1412354
-Node: Readline Init File1414503
-Node: Readline Init File Syntax1415654
-Node: Conditional Init Constructs1430712
-Node: Sample Init File1433243
-Node: Bindable Readline Commands1436358
-Node: Commands For Moving1437413
-Node: Commands For History1438272
-Node: Commands For Text1441674
-Node: Commands For Killing1444398
-Node: Numeric Arguments1446538
-Node: Commands For Completion1447675
-Node: Keyboard Macros1449642
-Node: Miscellaneous Commands1450211
-Node: Readline vi Mode1454065
-Node: Using History Interactively1454975
-Node: History Interaction1455518
-Node: Event Designators1456940
-Node: Word Designators1458080
-Node: Modifiers1459717
-Node: In Memoriam1460940
-Node: Formatting Documentation1461823
-Ref: Formatting Documentation-Footnote-11465200
-Node: Installing GDB1465296
-Node: Requirements1465868
-Ref: Expat1466437
-Node: Running Configure1469009
-Node: Separate Objdir1472788
-Node: Config Names1475768
-Node: Configure Options1477245
-Node: System-wide configuration1479615
-Node: System-wide Configuration Scripts1481575
-Node: Maintenance Commands1482759
-Ref: maint info breakpoints1484414
-Node: Remote Protocol1501817
-Node: Overview1502471
-Ref: Binary Data1505033
-Node: Packets1507556
-Ref: thread-id syntax1508456
-Ref: extended mode1509901
-Ref: ? packet1510158
-Ref: bc1511622
-Ref: bs1511832
-Ref: read registers packet1513448
-Ref: cycle step packet1515384
-Ref: write register packet1517984
-Ref: step with signal packet1518962
-Ref: vCont packet1520436
-Ref: vKill packet1525333
-Ref: X packet1526266
-Ref: insert breakpoint or watchpoint packet1526576
-Node: Stop Reply Packets1530611
-Node: General Query Packets1535383
-Ref: qCRC packet1538214
-Ref: QNonStop1546024
-Ref: QPassSignals1546683
-Ref: QProgramSignals1547887
-Ref: qSearch memory1550398
-Ref: QStartNoAckMode1550905
-Ref: qSupported1551435
-Ref: multiprocess extensions1561925
-Ref: install tracepoint in tracing1563954
-Ref: qXfer read1567334
-Ref: qXfer auxiliary vector read1567828
-Ref: qXfer btrace read1568175
-Ref: qXfer target description read1569238
-Ref: qXfer library list read1569682
-Ref: qXfer svr4 library list read1570337
-Ref: qXfer memory map read1572189
-Ref: qXfer sdata read1572575
-Ref: qXfer siginfo read1573039
-Ref: qXfer spu read1573435
-Ref: qXfer threads read1573958
-Ref: qXfer traceframe info read1574360
-Ref: qXfer unwind info block1574776
-Ref: qXfer fdpic loadmap read1575008
-Ref: qXfer osdata read1575423
-Ref: qXfer write1576681
-Ref: qXfer siginfo write1577247
-Ref: qXfer spu write1577643
-Ref: General Query Packets-Footnote-11580179
-Node: Architecture-Specific Protocol Details1580506
-Node: ARM-Specific Protocol Details1581015
-Node: ARM Breakpoint Kinds1581263
-Node: MIPS-Specific Protocol Details1581595
-Node: MIPS Register packet Format1581878
-Node: MIPS Breakpoint Kinds1582807
-Node: Tracepoint Packets1583226
-Ref: QTEnable1592221
-Ref: QTDisable1592417
-Ref: qTfSTM1597939
-Ref: qTsSTM1597939
-Ref: qTSTMat1599015
-Ref: QTBuffer-size1600166
-Node: Host I/O Packets1602140
-Node: Interrupts1606759
-Node: Notification Packets1608662
-Node: Remote Non-Stop1614050
-Node: Packet Acknowledgment1616339
-Node: Examples1618454
-Node: File-I/O Remote Protocol Extension1619080
-Node: File-I/O Overview1619542
-Node: Protocol Basics1621739
-Node: The F Request Packet1623971
-Node: The F Reply Packet1624872
-Node: The Ctrl-C Message1625790
-Node: Console I/O1627419
-Node: List of Supported Calls1628636
-Node: open1628998
-Node: close1631492
-Node: read1631874
-Node: write1632481
-Node: lseek1633248
-Node: rename1634126
-Node: unlink1635522
-Node: stat/fstat1636461
-Node: gettimeofday1637348
-Node: isatty1637783
-Node: system1638379
-Node: Protocol-specific Representation of Datatypes1639921
-Node: Integral Datatypes1640298
-Node: Pointer Values1641105
-Node: Memory Transfer1641813
-Node: struct stat1642433
-Node: struct timeval1644635
-Node: Constants1645152
-Node: Open Flags1645601
-Node: mode_t Values1645942
-Node: Errno Values1646434
-Node: Lseek Flags1647245
-Node: Limits1647430
-Node: File-I/O Examples1647790
-Node: Library List Format1648906
-Node: Library List Format for SVR4 Targets1651689
-Node: Memory Map Format1654159
-Node: Thread List Format1656736
-Node: Traceframe Info Format1657554
-Node: Branch Trace Format1659241
-Node: Agent Expressions1660587
-Node: General Bytecode Design1663408
-Node: Bytecode Descriptions1668208
-Node: Using Agent Expressions1681644
-Node: Varying Target Capabilities1683622
-Node: Rationale1684784
-Node: Target Descriptions1692170
-Node: Retrieving Descriptions1694046
-Node: Target Description Format1695131
-Node: Predefined Target Types1704175
-Node: Standard Target Features1705560
-Node: AArch64 Features1707448
-Node: ARM Features1707871
-Node: i386 Features1709388
-Node: MicroBlaze Features1711340
-Node: MIPS Features1711917
-Node: M68K Features1713107
-Node: Nios II Features1713770
-Node: PowerPC Features1714167
-Node: S/390 and System z Features1715490
-Node: TIC6x Features1716955
-Node: Operating System Information1717517
-Node: Process list1718355
-Node: Trace File Format1719417
-Node: Index Section Format1721411
-Node: Man Pages1729391
-Node: gdb man1729797
-Node: gdbserver man1735839
-Node: gcore man1743047
-Node: gdbinit man1743704
-Node: Copying1744589
-Node: GNU Free Documentation License1782168
-Node: Concept Index1807334
-Node: Command and Variable Index1936329
+Node: Decimal Floating Point513190
+Node: D514459
+Node: Go514716
+Node: Objective-C515810
+Node: Method Names in Commands516273
+Node: The Print Command with Objective-C517968
+Node: OpenCL C518619
+Node: OpenCL C Datatypes518894
+Node: OpenCL C Expressions519269
+Node: OpenCL C Operators519626
+Node: Fortran519858
+Node: Fortran Operators520580
+Node: Fortran Defaults521436
+Node: Special Fortran Commands521821
+Node: Pascal522327
+Node: Modula-2522842
+Node: M2 Operators523817
+Node: Built-In Func/Proc526816
+Node: M2 Constants529731
+Node: M2 Types531332
+Node: M2 Defaults534551
+Node: Deviations535151
+Node: M2 Checks536252
+Node: M2 Scope537070
+Node: GDB/M2538094
+Node: Ada539006
+Node: Ada Mode Intro540116
+Node: Omissions from Ada542026
+Node: Additions to Ada546380
+Node: Stopping Before Main Program550310
+Node: Ada Exceptions550844
+Node: Ada Tasks552041
+Node: Ada Tasks and Core Files558457
+Node: Ravenscar Profile559302
+Node: Ada Glitches560372
+Node: Unsupported Languages564387
+Node: Symbols565077
+Node: Altering583785
+Node: Assignment584823
+Node: Jumping587928
+Node: Signaling590089
+Node: Returning593018
+Node: Calling596370
+Node: Patching599413
+Node: Compiling and Injecting Code600527
+Node: GDB Files609457
+Node: Files610177
+Ref: Shared Libraries623267
+Ref: Files-Footnote-1634901
+Node: Separate Debug Files635076
+Ref: debug-file-directory638183
+Node: MiniDebugInfo646781
+Node: Index Files649232
+Node: Symbol Errors651294
+Node: Data Files654907
+Node: Targets655863
+Node: Active Targets657343
+Node: Target Commands658417
+Ref: load662801
+Node: Byte Order663782
+Node: Remote Debugging664759
+Node: Connecting666021
+Node: File Transfer670963
+Node: Server671903
+Ref: Other Command-Line Arguments for gdbserver679495
+Ref: Monitor Commands for gdbserver682611
+Ref: Server-Footnote-1687782
+Node: Remote Configuration687902
+Ref: set remotebreak688928
+Ref: set remote hardware-watchpoint-limit690392
+Ref: set remote hardware-breakpoint-limit690392
+Ref: set remote hardware-watchpoint-length-limit690618
+Ref: set remote exec-file691033
+Node: Remote Stub698391
+Node: Stub Contents701288
+Node: Bootstrapping703395
+Node: Debug Session707209
+Node: Configurations709251
+Node: Native710020
+Node: HP-UX710589
+Node: BSD libkvm Interface710878
+Node: SVR4 Process Information711949
+Node: DJGPP Native715724
+Node: Cygwin Native722304
+Node: Non-debug DLL Symbols726113
+Node: Hurd Native730258
+Node: Darwin735519
+Node: Embedded OS736780
+Node: Embedded Processors737191
+Node: ARM738324
+Node: M32R/D742458
+Node: M68K744160
+Node: MicroBlaze744453
+Node: MIPS Embedded745903
+Node: PowerPC Embedded750844
+Node: PA754625
+Node: Sparclet754909
+Node: Sparclet File756378
+Node: Sparclet Connection757258
+Node: Sparclet Download757736
+Node: Sparclet Execution758785
+Node: Sparclite759376
+Node: Z8000759749
+Node: AVR761133
+Node: CRIS761496
+Node: Super-H762474
+Node: Architectures763534
+Node: AArch64763971
+Node: i386764378
+Ref: i386-Footnote-1766610
+Node: Alpha766696
+Node: MIPS766829
+Node: HPPA770722
+Node: SPU771241
+Node: PowerPC773429
+Node: Nios II774163
+Node: Controlling GDB774552
+Node: Prompt775449
+Node: Editing777168
+Node: Command History778111
+Node: Screen Size781641
+Node: Numbers783574
+Node: ABI785559
+Node: Auto-loading788733
+Ref: set auto-load off790108
+Ref: show auto-load790744
+Ref: info auto-load791523
+Node: Init File in the Current Directory794557
+Ref: set auto-load local-gdbinit795132
+Ref: show auto-load local-gdbinit795314
+Ref: info auto-load local-gdbinit795478
+Node: libthread_db.so.1 file795626
+Ref: set auto-load libthread-db796565
+Ref: show auto-load libthread-db796696
+Ref: info auto-load libthread-db796833
+Node: Auto-loading safe path797017
+Ref: set auto-load safe-path798323
+Ref: show auto-load safe-path799062
+Ref: add-auto-load-safe-path799185
+Node: Auto-loading verbose mode802087
+Ref: set debug auto-load803250
+Ref: show debug auto-load803351
+Node: Messages/Warnings803473
+Ref: confirmation requests804908
+Node: Debugging Output806115
+Node: Other Misc Settings814878
+Node: Extending GDB815907
+Node: Sequences817761
+Node: Define818422
+Node: Hooks822241
+Node: Command Files824608
+Node: Output829678
+Node: Auto-loading sequences834642
+Ref: set auto-load gdb-scripts835137
+Ref: show auto-load gdb-scripts835261
+Ref: info auto-load gdb-scripts835391
+Node: Python835622
+Node: Python Commands836795
+Node: Python API839130
+Node: Basic Python841613
+Ref: prompt_hook850274
+Node: Exception Handling850871
+Node: Values From Inferior853367
+Node: Types In Python866268
+Node: Pretty Printing API875536
+Node: Selecting Pretty-Printers879429
+Node: Writing a Pretty-Printer881762
+Node: Type Printing API887083
+Node: Frame Filter API889704
+Node: Frame Decorator API896989
+Ref: frame_args900568
+Node: Writing a Frame Filter903895
+Node: Xmethods In Python915362
+Node: Xmethod API918251
+Node: Writing an Xmethod921774
+Node: Inferiors In Python927360
+Node: Events In Python930240
+Node: Threads In Python937323
+Node: Commands In Python939766
+Node: Parameters In Python949185
+Node: Functions In Python954646
+Node: Progspaces In Python956868
+Node: Objfiles In Python960369
+Node: Frames In Python965763
+Node: Blocks In Python972301
+Node: Symbols In Python976664
+Node: Symbol Tables In Python983891
+Node: Line Tables In Python987121
+Node: Breakpoints In Python989958
+Node: Finish Breakpoints in Python997950
+Node: Lazy Strings In Python1000057
+Node: Architectures In Python1002292
+Node: Python Auto-loading1004479
+Ref: set auto-load python-scripts1005108
+Ref: show auto-load python-scripts1005208
+Ref: info auto-load python-scripts1005314
+Node: Python modules1006338
+Node: gdb.printing1006724
+Node: gdb.types1008151
+Node: gdb.prompt1011164
+Node: Guile1012813
+Node: Guile Introduction1013472
+Node: Guile Commands1014343
+Node: Guile API1016212
+Node: Basic Guile1018209
+Node: Guile Configuration1023922
+Node: GDB Scheme Data Types1024898
+Node: Guile Exception Handling1026738
+Node: Values From Inferior In Guile1030789
+Node: Arithmetic In Guile1046334
+Node: Types In Guile1047965
+Ref: Fields of a type in Guile1055912
+Node: Guile Pretty Printing API1057313
+Node: Selecting Guile Pretty-Printers1062909
+Node: Writing a Guile Pretty-Printer1065288
+Node: Commands In Guile1070472
+Node: Parameters In Guile1081276
+Ref: Parameters In Guile-Footnote-11088158
+Node: Progspaces In Guile1088285
+Node: Objfiles In Guile1090873
+Node: Frames In Guile1092945
+Node: Blocks In Guile1099363
+Node: Symbols In Guile1104171
+Node: Symbol Tables In Guile1111503
+Node: Breakpoints In Guile1114466
+Node: Lazy Strings In Guile1124688
+Node: Architectures In Guile1126982
+Node: Disassembly In Guile1131288
+Node: I/O Ports in Guile1134488
+Node: Memory Ports in Guile1135044
+Node: Iterators In Guile1138216
+Node: Guile Auto-loading1142504
+Ref: set auto-load guile-scripts1143127
+Ref: show auto-load guile-scripts1143225
+Ref: info auto-load guile-scripts1143329
+Node: Guile Modules1144288
+Node: Guile Printing Module1144610
+Node: Guile Types Module1145430
+Node: Auto-loading extensions1146722
+Node: objfile-gdbdotext file1147920
+Ref: set auto-load scripts-directory1149364
+Ref: with-auto-load-dir1149740
+Ref: show auto-load scripts-directory1150558
+Ref: add-auto-load-scripts-directory1150638
+Node: dotdebug_gdb_scripts section1151114
+Node: Which flavor to choose?1152960
+Node: Multiple Extension Languages1154781
+Node: Aliases1155845
+Node: Interpreters1158710
+Node: TUI1160809
+Node: TUI Overview1161756
+Node: TUI Keys1164189
+Node: TUI Single Key Mode1166493
+Node: TUI Commands1167368
+Node: TUI Configuration1169752
+Node: Emacs1171048
+Node: GDB/MI1176522
+Node: GDB/MI General Design1178496
+Node: Context management1181019
+Node: Asynchronous and non-stop modes1184847
+Node: Thread groups1187823
+Node: GDB/MI Command Syntax1190101
+Node: GDB/MI Input Syntax1190344
+Node: GDB/MI Output Syntax1191898
+Node: GDB/MI Compatibility with CLI1195485
+Node: GDB/MI Development and Front Ends1196222
+Node: GDB/MI Output Records1197879
+Node: GDB/MI Result Records1198285
+Node: GDB/MI Stream Records1199635
+Node: GDB/MI Async Records1200900
+Node: GDB/MI Breakpoint Information1210530
+Node: GDB/MI Frame Information1214482
+Node: GDB/MI Thread Information1215569
+Node: GDB/MI Ada Exception Information1216548
+Node: GDB/MI Simple Examples1216971
+Node: GDB/MI Command Description Format1219179
+Node: GDB/MI Breakpoint Commands1220059
+Node: GDB/MI Catchpoint Commands1239930
+Node: Shared Library GDB/MI Catchpoint Commands1240298
+Node: Ada Exception GDB/MI Catchpoint Commands1241956
+Node: GDB/MI Program Context1244366
+Node: GDB/MI Thread Commands1248636
+Node: GDB/MI Ada Tasking Commands1252592
+Node: GDB/MI Program Execution1254846
+Node: GDB/MI Stack Manipulation1266883
+Ref: -stack-list-arguments1268782
+Ref: -stack-list-frames1272487
+Ref: -stack-list-locals1276356
+Ref: -stack-list-variables1277846
+Node: GDB/MI Variable Objects1279380
+Ref: -var-set-format1289283
+Ref: -var-list-children1290401
+Ref: -var-update1299190
+Ref: -var-set-frozen1302185
+Ref: -var-set-update-range1302981
+Ref: -var-set-visualizer1303511
+Node: GDB/MI Data Manipulation1305002
+Node: GDB/MI Tracepoint Commands1324567
+Node: GDB/MI Symbol Query1336160
+Node: GDB/MI File Commands1336849
+Node: GDB/MI Target Manipulation1340145
+Node: GDB/MI File Transfer Commands1346367
+Node: GDB/MI Ada Exceptions Commands1347690
+Node: GDB/MI Support Commands1349044
+Node: GDB/MI Miscellaneous Commands1353629
+Ref: -interpreter-exec1363862
+Node: Annotations1366198
+Node: Annotations Overview1367117
+Node: Server Prefix1369580
+Node: Prompting1370314
+Node: Errors1371831
+Node: Invalidation1372727
+Node: Annotations for Running1373204
+Node: Source Annotations1374738
+Node: JIT Interface1375667
+Node: Declarations1377467
+Node: Registering Code1378854
+Node: Unregistering Code1379826
+Node: Custom Debug Info1380453
+Node: Using JIT Debug Info Readers1381749
+Node: Writing JIT Debug Info Readers1382762
+Node: In-Process Agent1384959
+Ref: Control Agent1386902
+Node: In-Process Agent Protocol1387769
+Node: IPA Protocol Objects1388561
+Ref: agent expression object1389563
+Ref: tracepoint action object1389769
+Ref: tracepoint object1389850
+Node: IPA Protocol Commands1392806
+Node: GDB Bugs1394279
+Node: Bug Criteria1395011
+Node: Bug Reporting1395888
+Node: Command Line Editing1403719
+Node: Introduction and Notation1404371
+Node: Readline Interaction1405991
+Node: Readline Bare Essentials1407180
+Node: Readline Movement Commands1408967
+Node: Readline Killing Commands1409930
+Node: Readline Arguments1411848
+Node: Searching1412890
+Node: Readline Init File1415039
+Node: Readline Init File Syntax1416190
+Node: Conditional Init Constructs1431248
+Node: Sample Init File1433779
+Node: Bindable Readline Commands1436894
+Node: Commands For Moving1437949
+Node: Commands For History1438808
+Node: Commands For Text1442210
+Node: Commands For Killing1444934
+Node: Numeric Arguments1447074
+Node: Commands For Completion1448211
+Node: Keyboard Macros1450178
+Node: Miscellaneous Commands1450747
+Node: Readline vi Mode1454601
+Node: Using History Interactively1455511
+Node: History Interaction1456054
+Node: Event Designators1457476
+Node: Word Designators1458616
+Node: Modifiers1460253
+Node: In Memoriam1461476
+Node: Formatting Documentation1462359
+Ref: Formatting Documentation-Footnote-11465736
+Node: Installing GDB1465832
+Node: Requirements1466404
+Ref: Expat1466973
+Node: Running Configure1469545
+Node: Separate Objdir1473324
+Node: Config Names1476304
+Node: Configure Options1477781
+Node: System-wide configuration1480151
+Node: System-wide Configuration Scripts1482111
+Node: Maintenance Commands1483295
+Ref: maint info breakpoints1484950
+Node: Remote Protocol1502281
+Node: Overview1502935
+Ref: Binary Data1505497
+Node: Packets1508020
+Ref: thread-id syntax1508920
+Ref: extended mode1510365
+Ref: ? packet1510622
+Ref: bc1512086
+Ref: bs1512296
+Ref: read registers packet1513912
+Ref: cycle step packet1515848
+Ref: write register packet1518448
+Ref: step with signal packet1519426
+Ref: vCont packet1520900
+Ref: vKill packet1525797
+Ref: X packet1526730
+Ref: insert breakpoint or watchpoint packet1527040
+Node: Stop Reply Packets1531075
+Node: General Query Packets1535847
+Ref: qCRC packet1538678
+Ref: QNonStop1546488
+Ref: QPassSignals1547147
+Ref: QProgramSignals1548351
+Ref: qSearch memory1550862
+Ref: QStartNoAckMode1551369
+Ref: qSupported1551899
+Ref: multiprocess extensions1562389
+Ref: install tracepoint in tracing1564418
+Ref: qXfer read1567798
+Ref: qXfer auxiliary vector read1568292
+Ref: qXfer btrace read1568639
+Ref: qXfer target description read1569702
+Ref: qXfer library list read1570146
+Ref: qXfer svr4 library list read1570801
+Ref: qXfer memory map read1572653
+Ref: qXfer sdata read1573039
+Ref: qXfer siginfo read1573503
+Ref: qXfer spu read1573899
+Ref: qXfer threads read1574422
+Ref: qXfer traceframe info read1574824
+Ref: qXfer unwind info block1575240
+Ref: qXfer fdpic loadmap read1575472
+Ref: qXfer osdata read1575887
+Ref: qXfer write1577145
+Ref: qXfer siginfo write1577711
+Ref: qXfer spu write1578107
+Ref: General Query Packets-Footnote-11580643
+Node: Architecture-Specific Protocol Details1580970
+Node: ARM-Specific Protocol Details1581479
+Node: ARM Breakpoint Kinds1581727
+Node: MIPS-Specific Protocol Details1582059
+Node: MIPS Register packet Format1582342
+Node: MIPS Breakpoint Kinds1583271
+Node: Tracepoint Packets1583690
+Ref: QTEnable1592685
+Ref: QTDisable1592881
+Ref: qTfSTM1598403
+Ref: qTsSTM1598403
+Ref: qTSTMat1599479
+Ref: QTBuffer-size1600630
+Node: Host I/O Packets1602604
+Node: Interrupts1607223
+Node: Notification Packets1609126
+Node: Remote Non-Stop1614514
+Node: Packet Acknowledgment1616803
+Node: Examples1618918
+Node: File-I/O Remote Protocol Extension1619544
+Node: File-I/O Overview1620006
+Node: Protocol Basics1622203
+Node: The F Request Packet1624435
+Node: The F Reply Packet1625336
+Node: The Ctrl-C Message1626254
+Node: Console I/O1627883
+Node: List of Supported Calls1629100
+Node: open1629462
+Node: close1631956
+Node: read1632338
+Node: write1632945
+Node: lseek1633712
+Node: rename1634590
+Node: unlink1635986
+Node: stat/fstat1636925
+Node: gettimeofday1637812
+Node: isatty1638247
+Node: system1638843
+Node: Protocol-specific Representation of Datatypes1640385
+Node: Integral Datatypes1640762
+Node: Pointer Values1641569
+Node: Memory Transfer1642277
+Node: struct stat1642897
+Node: struct timeval1645099
+Node: Constants1645616
+Node: Open Flags1646065
+Node: mode_t Values1646406
+Node: Errno Values1646898
+Node: Lseek Flags1647709
+Node: Limits1647894
+Node: File-I/O Examples1648254
+Node: Library List Format1649370
+Node: Library List Format for SVR4 Targets1652153
+Node: Memory Map Format1654623
+Node: Thread List Format1657200
+Node: Traceframe Info Format1658018
+Node: Branch Trace Format1659705
+Node: Agent Expressions1661051
+Node: General Bytecode Design1663872
+Node: Bytecode Descriptions1668672
+Node: Using Agent Expressions1682108
+Node: Varying Target Capabilities1684086
+Node: Rationale1685248
+Node: Target Descriptions1692634
+Node: Retrieving Descriptions1694510
+Node: Target Description Format1695595
+Node: Predefined Target Types1704639
+Node: Standard Target Features1706024
+Node: AArch64 Features1707912
+Node: ARM Features1708335
+Node: i386 Features1709852
+Node: MicroBlaze Features1711804
+Node: MIPS Features1712381
+Node: M68K Features1713571
+Node: Nios II Features1714234
+Node: PowerPC Features1714631
+Node: S/390 and System z Features1715954
+Node: TIC6x Features1717419
+Node: Operating System Information1717981
+Node: Process list1718819
+Node: Trace File Format1719881
+Node: Index Section Format1721875
+Node: Man Pages1729855
+Node: gdb man1730261
+Node: gdbserver man1736303
+Node: gcore man1743511
+Node: gdbinit man1744168
+Node: Copying1745053
+Node: GNU Free Documentation License1782632
+Node: Concept Index1807798
+Node: Command and Variable Index1937003
 
 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-7.8.50.20150106/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-1	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -45,7 +45,7 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 7.8.50.20150106-cvs.
+   This is the Tenth Edition, for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -494,7 +494,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 7.8.50.20150106-cvs, Copyright 1999 Free Software Foundation, Inc...
+     GDB 7.8.50.20150113-cvs, 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-7.8.50.20150106/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-2	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -5273,6 +5273,10 @@ designed specifically for use with C++. 
      per virtual table; there may be multiple virtual tables when
      multiple inheritance is in use.
 
+`demangle NAME'
+     Demangle NAME.  *Note Symbols::, for a more complete description
+     of the `demangle' command.
+
 `set print demangle'
 `show print demangle'
 `set print asm-demangle'
@@ -6884,6 +6888,17 @@ looks up the value of `x' in the scope o
           (gdb) info symbol 0x2aaaac2811cf
           __read_nocancel + 6 in section .text of /usr/lib64/libc.so.6
 
+`demangle [-l LANGUAGE] [-] NAME'
+     Demangle NAME.  If LANGUAGE is provided it is the name of the
+     language to demangle NAME in.  Otherwise NAME is demangled in the
+     current language.
+
+     The `--' option specifies the end of options, and is useful when
+     NAME begins with a dash.
+
+     The parameter `demangle-style' specifies how to interpret the kind
+     of mangling used. *Note Print Settings::.
+
 `whatis[/FLAGS] [ARG]'
      Print the data type of ARG, which can be either an expression or a
      name of a data type.  With no argument, print the data type of
@@ -7568,32 +7583,3 @@ causes GDB to call the inferior function
 called function will function erroneously and may even crash.  A
 solution to that is to use the name of the aliased function instead.
 
-
-File: gdb.info,  Node: Patching,  Next: Compiling and Injecting Code,  Prev: Calling,  Up: Altering
-
-17.6 Patching Programs
-======================
-
-By default, GDB opens the file containing your program's executable
-code (or the corefile) read-only.  This prevents accidental alterations
-to machine code; but it also prevents you from intentionally patching
-your program's binary.
-
-   If you'd like to be able to patch the binary, you can specify that
-explicitly with the `set write' command.  For example, you might want
-to turn on internal debugging flags, or even to make emergency repairs.
-
-`set write on'
-`set write off'
-     If you specify `set write on', GDB opens executable and core files
-     for both reading and writing; if you specify `set write off' (the
-     default), GDB opens them read-only.
-
-     If you have already loaded a file, you must load it again (using
-     the `exec-file' or `core-file' command) after changing `set
-     write', for your new setting to take effect.
-
-`show write'
-     Display whether executable files and core files are opened for
-     writing as well as reading.
-
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-3	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -38,6 +38,35 @@ this GNU Manual.  Buying copies from GNU
 developing GNU and promoting software freedom."
 
 
+File: gdb.info,  Node: Patching,  Next: Compiling and Injecting Code,  Prev: Calling,  Up: Altering
+
+17.6 Patching Programs
+======================
+
+By default, GDB opens the file containing your program's executable
+code (or the corefile) read-only.  This prevents accidental alterations
+to machine code; but it also prevents you from intentionally patching
+your program's binary.
+
+   If you'd like to be able to patch the binary, you can specify that
+explicitly with the `set write' command.  For example, you might want
+to turn on internal debugging flags, or even to make emergency repairs.
+
+`set write on'
+`set write off'
+     If you specify `set write on', GDB opens executable and core files
+     for both reading and writing; if you specify `set write off' (the
+     default), GDB opens them read-only.
+
+     If you have already loaded a file, you must load it again (using
+     the `exec-file' or `core-file' command) after changing `set
+     write', for your new setting to take effect.
+
+`show write'
+     Display whether executable files and core files are opened for
+     writing as well as reading.
+
+
 File: gdb.info,  Node: Compiling and Injecting Code,  Prev: Patching,  Up: Altering
 
 17.7 Compiling and injecting code in GDB
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-4	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 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-7.8.50.20150106/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-5	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -8107,7 +8107,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-7.8.50.20150106-cvs/gdb/gdb.info', and it refers to subordinate
+`gdb-7.8.50.20150113-cvs/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
@@ -8118,8 +8118,8 @@ distribution.
 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-7.8.50.20150106-cvs', in the case of version
-7.8.50.20150106-cvs), you can make the Info file by typing:
+source directory (`gdb-7.8.50.20150113-cvs', in the case of version
+7.8.50.20150113-cvs), you can make the Info file by typing:
 
      cd gdb
      make gdb.info
@@ -8144,7 +8144,7 @@ format.  On its own, TeX cannot either r
 
    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-7.8.50.20150106-cvs/gdb')
+main source directory (for example, to `gdb-7.8.50.20150113-cvs/gdb')
 and type:
 
      make gdb.dvi
@@ -8153,8 +8153,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In `gdb-7.8.50.20150106-cvs/gdb/refcard.ps' of the version
-7.8.50.20150106-cvs release.
+   (1) In `gdb-7.8.50.20150113-cvs/gdb/refcard.ps' of the version
+7.8.50.20150113-cvs release.
 
 
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -8263,39 +8263,39 @@ preparing GDB for installation; you can 
 in a single directory, whose name is usually composed by appending the
 version number to `gdb'.
 
-   For example, the GDB version 7.8.50.20150106-cvs distribution is in
-the `gdb-7.8.50.20150106-cvs' directory.  That directory contains:
+   For example, the GDB version 7.8.50.20150113-cvs distribution is in
+the `gdb-7.8.50.20150113-cvs' directory.  That directory contains:
 
-`gdb-7.8.50.20150106-cvs/configure (and supporting files)'
+`gdb-7.8.50.20150113-cvs/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-`gdb-7.8.50.20150106-cvs/gdb'
+`gdb-7.8.50.20150113-cvs/gdb'
      the source specific to GDB itself
 
-`gdb-7.8.50.20150106-cvs/bfd'
+`gdb-7.8.50.20150113-cvs/bfd'
      source for the Binary File Descriptor library
 
-`gdb-7.8.50.20150106-cvs/include'
+`gdb-7.8.50.20150113-cvs/include'
      GNU include files
 
-`gdb-7.8.50.20150106-cvs/libiberty'
+`gdb-7.8.50.20150113-cvs/libiberty'
      source for the `-liberty' free software library
 
-`gdb-7.8.50.20150106-cvs/opcodes'
+`gdb-7.8.50.20150113-cvs/opcodes'
      source for the library of opcode tables and disassemblers
 
-`gdb-7.8.50.20150106-cvs/readline'
+`gdb-7.8.50.20150113-cvs/readline'
      source for the GNU command-line interface
 
-`gdb-7.8.50.20150106-cvs/glob'
+`gdb-7.8.50.20150113-cvs/glob'
      source for the GNU filename pattern-matching subroutine
 
-`gdb-7.8.50.20150106-cvs/mmalloc'
+`gdb-7.8.50.20150113-cvs/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-7.8.50.20150106-cvs' directory.
+is the `gdb-7.8.50.20150113-cvs' 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
@@ -8303,7 +8303,7 @@ platform on which GDB will run as an arg
 
    For example:
 
-     cd gdb-7.8.50.20150106-cvs
+     cd gdb-7.8.50.20150113-cvs
      ./configure HOST
      make
 
@@ -8325,8 +8325,8 @@ you may need to run `sh' on it explicitl
 
    If you run `configure' from a directory that contains source
 directories for multiple libraries or programs, such as the
-`gdb-7.8.50.20150106-cvs' source directory for version
-7.8.50.20150106-cvs, `configure' creates configuration files for every
+`gdb-7.8.50.20150113-cvs' source directory for version
+7.8.50.20150113-cvs, `configure' creates configuration files for every
 directory level underneath (unless you tell it not to, with the
 `--norecursion' option).
 
@@ -8367,13 +8367,13 @@ directory.  If the path to `configure' w
 argument to `--srcdir', you can leave out the `--srcdir' option; it is
 assumed.)
 
-   For example, with version 7.8.50.20150106-cvs, you can build GDB in a
+   For example, with version 7.8.50.20150113-cvs, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-7.8.50.20150106-cvs
+     cd gdb-7.8.50.20150113-cvs
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-7.8.50.20150106-cvs/configure sun4
+     ../gdb-7.8.50.20150113-cvs/configure sun4
      make
 
    When `configure' builds a configuration using a remote source
@@ -8384,7 +8384,7 @@ directory `gdb-sun4/libiberty', and GDB 
 
    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-7.8.50.20150106-cvs/gdb/configure', you are configuring only
+`../gdb-7.8.50.20150113-cvs/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'.
 
@@ -8400,8 +8400,8 @@ called `configure' (or one of its subdir
 
    The `Makefile' that `configure' generates in each source directory
 also runs recursively.  If you type `make' in a source directory such
-as `gdb-7.8.50.20150106-cvs' (or in a separate configured directory
-configured with `--srcdir=DIRNAME/gdb-7.8.50.20150106-cvs'), you will
+as `gdb-7.8.50.20150113-cvs' (or in a separate configured directory
+configured with `--srcdir=DIRNAME/gdb-7.8.50.20150113-cvs'), you will
 build all the required libraries, and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -8446,7 +8446,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-7.8.50.20150106-cvs', for version 7.8.50.20150106-cvs).
+(`gdb-7.8.50.20150113-cvs', for version 7.8.50.20150113-cvs).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
@@ -8701,9 +8701,6 @@ Debugging Output::.)
 `maint cplus namespace'
      Print the list of possible C++ namespaces.
 
-`maint demangle NAME'
-     Demangle a C++ or Objective-C mangled NAME.
-
 `maint deprecate COMMAND [REPLACEMENT]'
 `maint undeprecate COMMAND'
      Deprecate or undeprecate the named COMMAND.  Deprecated commands
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-6	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 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-7.8.50.20150106/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-7	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -741,7 +741,7 @@ Concept Index
                                                              (line   21)
 * bc packet:                             Packets.            (line   97)
 * bcache statistics:                     Maintenance Commands.
-                                                             (line  269)
+                                                             (line  266)
 * bits in remote address:                Remote Configuration.
                                                              (line   12)
 * blocks in guile:                       Blocks In Guile.    (line    6)
@@ -809,13 +809,15 @@ Concept Index
 * C++:                                   C.                  (line   10)
 * C++ compilers:                         C Plus Plus Expressions.
                                                              (line    8)
+* C++ demangling:                        Debugging C Plus Plus.
+                                                             (line   36)
 * C++ exception handling:                Debugging C Plus Plus.
                                                              (line   20)
 * C++ overload debugging info:           Debugging Output.   (line  167)
 * C++ scope resolution:                  Variables.          (line   90)
 * C++ symbol decoding style:             Print Settings.     (line  429)
 * C++ symbol display:                    Debugging C Plus Plus.
-                                                             (line   36)
+                                                             (line   40)
 * caching data of targets:               Caching Target Data.
                                                              (line    6)
 * call dummy stack unwinding:            Calling.            (line   36)
@@ -985,11 +987,12 @@ Concept Index
 * deleting breakpoints, watchpoints, catchpoints: Delete Breaks.
                                                              (line    6)
 * deliver a signal to a program:         Signaling.          (line    6)
+* demangle:                              Symbols.            (line  104)
 * demangler crashes:                     Maintenance Commands.
                                                              (line  102)
 * demangling C++ names:                  Print Settings.     (line  410)
 * deprecated commands:                   Maintenance Commands.
-                                                             (line  119)
+                                                             (line  116)
 * derived type of an object, printing:   Print Settings.     (line  462)
 * descriptor tables display:             DJGPP Native.       (line   24)
 * detach from task, GNU Hurd:            Hurd Native.        (line   60)
@@ -1037,7 +1040,7 @@ Concept Index
 * dump/restore files:                    Dump/Restore Files. (line    6)
 * DVC register:                          PowerPC Embedded.   (line    6)
 * DWARF 2 compilation units cache:       Maintenance Commands.
-                                                             (line  327)
+                                                             (line  324)
 * DWARF-2 CFI and CRIS:                  CRIS.               (line   18)
 * DWARF2 DIEs:                           Debugging Output.   (line   70)
 * DWARF2 Reading:                        Debugging Output.   (line   77)
@@ -1154,7 +1157,7 @@ Concept Index
 * free memory information (MS-DOS):      DJGPP Native.       (line   19)
 * fstat, file-i/o system call:           stat/fstat.         (line    6)
 * Fujitsu:                               Remote Stub.        (line   69)
-* full symbol tables, listing GDB's internal: Symbols.       (line  386)
+* full symbol tables, listing GDB's internal: Symbols.       (line  397)
 * function call arguments, optimized out: Backtrace.         (line   83)
 * function entry/exit, wrong values of variables: Variables. (line  106)
 * functions without line info, and stepping: Continuing and Stepping.
@@ -1167,7 +1170,7 @@ Concept Index
                                                              (line    8)
 * GDB bugs, reporting:                   Bug Reporting.      (line    6)
 * GDB internal error:                    Maintenance Commands.
-                                                             (line  155)
+                                                             (line  152)
 * gdb module:                            Basic Python.       (line   28)
 * gdb objects:                           GDB Scheme Data Types.
                                                              (line    6)
@@ -1255,7 +1258,7 @@ Concept Index
 * handling signals:                      Signals.            (line   27)
 * hardware breakpoints:                  Set Breaks.         (line   62)
 * hardware debug registers:              Maintenance Commands.
-                                                             (line  353)
+                                                             (line  350)
 * hardware watchpoints:                  Set Watchpoints.    (line   31)
 * hash mark while downloading:           Target Commands.    (line   99)
 * heuristic-fence-post (Alpha, MIPS):    MIPS.               (line   14)
@@ -1286,7 +1289,7 @@ Concept Index
 * ignore count (of breakpoint):          Conditions.         (line   79)
 * in-process agent protocol:             In-Process Agent Protocol.
                                                              (line    6)
-* incomplete type:                       Symbols.            (line  207)
+* incomplete type:                       Symbols.            (line  218)
 * indentation in structure display:      Print Settings.     (line  331)
 * index files:                           Index Files.        (line    6)
 * index section format:                  Index Section Format.
@@ -1301,9 +1304,9 @@ Concept Index
                                                              (line    6)
 * infinite recursion in user-defined commands: Define.       (line   79)
 * info for known .debug_gdb_scripts-loaded scripts: Maintenance Commands.
-                                                             (line  262)
+                                                             (line  259)
 * info for known object files:           Maintenance Commands.
-                                                             (line  247)
+                                                             (line  244)
 * info proc cmdline:                     SVR4 Process Information.
                                                              (line   35)
 * info proc cwd:                         SVR4 Process Information.
@@ -1338,7 +1341,7 @@ Concept Index
 * internal commands:                     Maintenance Commands.
                                                              (line    6)
 * internal errors, control of GDB behavior: Maintenance Commands.
-                                                             (line  155)
+                                                             (line  152)
 * internal GDB breakpoints:              Set Breaks.         (line  376)
 * interrupt:                             Quitting GDB.       (line   13)
 * interrupt debuggee on MS-Windows:      Cygwin Native.      (line    9)
@@ -1401,13 +1404,13 @@ Concept Index
 * list output in GDB/MI:                 GDB/MI Output Syntax.
                                                              (line  117)
 * list, how many lines to display:       List.               (line   30)
-* listing GDB's internal symbol tables:  Symbols.            (line  386)
+* listing GDB's internal symbol tables:  Symbols.            (line  397)
 * listing machine instructions:          Machine Code.       (line   36)
 * listing mapped overlays:               Overlay Commands.   (line   60)
 * load address, overlay's:               How Overlays Work.  (line    6)
 * load shared library:                   Files.              (line  334)
 * load symbols from memory:              Files.              (line  183)
-* local variables:                       Symbols.            (line  251)
+* local variables:                       Symbols.            (line  262)
 * locate address:                        Output Formats.     (line   35)
 * lock scheduler:                        All-Stop Mode.      (line   37)
 * log output in GDB/MI:                  GDB/MI Output Syntax.
@@ -1456,7 +1459,7 @@ Concept Index
 * memory tracing:                        Breakpoints.        (line   20)
 * memory transfer, in file-i/o protocol: Memory Transfer.    (line    6)
 * memory used by commands:               Maintenance Commands.
-                                                             (line  415)
+                                                             (line  412)
 * memory used for symbol tables:         Files.              (line  322)
 * memory, alignment and size of remote accesses: Packets.    (line  251)
 * memory, viewing as typed object:       Expressions.        (line   43)
@@ -1465,7 +1468,7 @@ Concept Index
 * mi2 interpreter:                       Interpreters.       (line   31)
 * minimal language:                      Unsupported Languages.
                                                              (line    6)
-* minimal symbol dump:                   Symbols.            (line  367)
+* minimal symbol dump:                   Symbols.            (line  378)
 * Minimal symbols and DLLs:              Non-debug DLL Symbols.
                                                              (line    6)
 * MIPS addresses, masking:               MIPS.               (line   86)
@@ -1536,7 +1539,7 @@ Concept Index
 * numbers for breakpoints:               Breakpoints.        (line   41)
 * object files, relocatable, reading symbols from: Files.    (line  133)
 * Objective-C:                           Objective-C.        (line    6)
-* Objective-C, classes and selectors:    Symbols.            (line  318)
+* Objective-C, classes and selectors:    Symbols.            (line  329)
 * Objective-C, print objects:            The Print Command with Objective-C.
                                                              (line    6)
 * OBJFILE-gdb.gdb:                       objfile-gdbdotext file.
@@ -1550,7 +1553,7 @@ Concept Index
 * observer debugging info:               Debugging Output.   (line  160)
 * octal escapes in strings:              Print Settings.     (line  355)
 * online documentation:                  Help.               (line    6)
-* opaque data types:                     Symbols.            (line  330)
+* opaque data types:                     Symbols.            (line  341)
 * open flags, in file-i/o protocol:      Open Flags.         (line    6)
 * open, file-i/o system call:            open.               (line    6)
 * OpenCL C:                              OpenCL C.           (line    6)
@@ -1586,7 +1589,7 @@ Concept Index
 * overloaded functions, calling:         C Plus Plus Expressions.
                                                              (line   26)
 * overloaded functions, overload resolution: Debugging C Plus Plus.
-                                                             (line   55)
+                                                             (line   59)
 * overloading in C++:                    Debugging C Plus Plus.
                                                              (line   15)
 * P packet:                              Packets.            (line  292)
@@ -1606,8 +1609,8 @@ Concept Index
                                                              (line    6)
 * parameters in python:                  Parameters In Python.
                                                              (line    6)
-* partial symbol dump:                   Symbols.            (line  367)
-* partial symbol tables, listing GDB's internal: Symbols.    (line  386)
+* partial symbol dump:                   Symbols.            (line  378)
+* partial symbol tables, listing GDB's internal: Symbols.    (line  397)
 * Pascal:                                Summary.            (line   35)
 * Pascal objects, static members display: Print Settings.    (line  491)
 * Pascal support in GDB, limitations:    Pascal.             (line    6)
@@ -1653,7 +1656,7 @@ Concept Index
 * print messages on inferior start and exit: Inferiors and Programs.
                                                              (line  117)
 * print messages on thread start and exit: Threads.          (line  156)
-* print messages when symbols are loaded: Symbols.           (line  348)
+* print messages when symbols are loaded: Symbols.           (line  359)
 * print settings:                        Print Settings.     (line    6)
 * print structures in indented form:     Print Settings.     (line  331)
 * print/don't print memory addresses:    Print Settings.     (line   13)
@@ -1679,7 +1682,7 @@ Concept Index
 * procfs API calls:                      SVR4 Process Information.
                                                              (line   68)
 * profiling GDB:                         Maintenance Commands.
-                                                             (line  337)
+                                                             (line  334)
 * program counter register:              Registers.          (line   26)
 * program entry point:                   Backtrace.          (line  105)
 * programming in guile:                  Guile API.          (line    6)
@@ -1877,7 +1880,7 @@ Concept Index
 * reprint the last value:                Data.               (line   23)
 * reset SDI connection, M32R:            M32R/D.             (line   44)
 * resources used by commands:            Maintenance Commands.
-                                                             (line  377)
+                                                             (line  374)
 * response time, MIPS debugging:         MIPS.               (line   10)
 * restart:                               Checkpoint/Restart. (line    6)
 * restore data from a file:              Dump/Restore Files. (line    6)
@@ -1980,7 +1983,7 @@ Concept Index
 * signals the inferior may see, remote request: General Query Packets.
                                                              (line  312)
 * SIGQUIT signal, dump core of GDB:      Maintenance Commands.
-                                                             (line  128)
+                                                             (line  125)
 * simulator, Z8000:                      Z8000.              (line    6)
 * size of remote memory accesses:        Packets.            (line  251)
 * size of screen:                        Screen Size.        (line    6)
@@ -2060,7 +2063,7 @@ Concept Index
 * switching threads:                     Threads.            (line    6)
 * switching threads automatically:       All-Stop Mode.      (line   28)
 * symbol decoding style, C++:            Print Settings.     (line  429)
-* symbol dump:                           Symbols.            (line  367)
+* symbol dump:                           Symbols.            (line  378)
 * symbol file functions:                 Debugging Output.   (line  216)
 * symbol from address:                   Symbols.            (line   84)
 * symbol lookup:                         Debugging Output.   (line  207)
@@ -2073,7 +2076,7 @@ Concept Index
                                                              (line    6)
 * symbol tables in python:               Symbol Tables In Python.
                                                              (line    6)
-* symbol tables, listing GDB's internal: Symbols.            (line  386)
+* symbol tables, listing GDB's internal: Symbols.            (line  397)
 * symbol, source file and line:          Print Settings.     (line   51)
 * symbols in guile:                      Symbols In Guile.   (line    6)
 * symbols in python:                     Symbols In Python.  (line    6)
@@ -2127,7 +2130,7 @@ Concept Index
                                                              (line  110)
 * target remote:                         Connecting.         (line   11)
 * target stack description:              Maintenance Commands.
-                                                             (line  282)
+                                                             (line  279)
 * target-assisted range stepping:        Continuing and Stepping.
                                                              (line  213)
 * task attributes (GNU Hurd):            Hurd Native.        (line   49)
@@ -2163,9 +2166,9 @@ Concept Index
 * threads, continuing:                   Thread Stops.       (line    6)
 * threads, stopped:                      Thread Stops.       (line    6)
 * time of command execution:             Maintenance Commands.
-                                                             (line  419)
+                                                             (line  416)
 * timeout for commands:                  Maintenance Commands.
-                                                             (line  441)
+                                                             (line  438)
 * timeout for serial communications:     Remote Configuration.
                                                              (line   65)
 * timeout, for remote target connection: Remote Configuration.
@@ -2211,7 +2214,7 @@ Concept Index
                                                              (line    6)
 * type casting memory:                   Expressions.        (line   43)
 * type chain of a data type:             Maintenance Commands.
-                                                             (line  294)
+                                                             (line  291)
 * type checking:                         Checks.             (line   24)
 * type conversions in C++:               C Plus Plus Expressions.
                                                              (line   26)
@@ -2237,7 +2240,7 @@ Concept Index
                                                              (line   47)
 * use only software watchpoints:         Set Watchpoints.    (line  108)
 * user registers:                        Maintenance Commands.
-                                                             (line  253)
+                                                             (line  250)
 * user-defined command:                  Define.             (line    6)
 * user-defined macros:                   Macros.             (line   59)
 * user-defined variables:                Convenience Vars.   (line    6)
@@ -2273,7 +2276,7 @@ Concept Index
 * vStopped packet:                       Packets.            (line  537)
 * VTBL display:                          Print Settings.     (line  502)
 * watchdog timer:                        Maintenance Commands.
-                                                             (line  441)
+                                                             (line  438)
 * watchpoints:                           Breakpoints.        (line   20)
 * watchpoints and threads:               Set Watchpoints.    (line  180)
 * weak alias functions:                  Calling.            (line   59)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-8 ./gdb/doc/gdb.info-8
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.info-8	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdb.info-8	2015-01-13 01:52:16.000000000 +0000
@@ -22,7 +22,7 @@ developing GNU and promoting software fr
    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 7.8.50.20150106-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.50.20150113-cvs.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -710,6 +710,7 @@ Command, Variable, and Function Index
                                                               (line  39)
 * delete-horizontal-space ():            Commands For Killing.
                                                               (line  37)
+* demangle:                              Symbols.             (line 104)
 * detach:                                Attach.              (line  36)
 * detach (remote):                       Connecting.          (line  91)
 * detach inferiors INFNO...:             Inferiors and Programs.
@@ -728,7 +729,7 @@ Command, Variable, and Function Index
                                                               (line  20)
 * disable tracepoint:                    Enable and Disable Tracepoints.
                                                               (line   9)
-* disable type-printer:                  Symbols.             (line 246)
+* disable type-printer:                  Symbols.             (line 257)
 * disable-completion:                    Readline Init File Syntax.
                                                               (line  93)
 * disassemble:                           Machine Code.        (line  36)
@@ -771,7 +772,7 @@ Command, Variable, and Function Index
                                                               (line  25)
 * enable tracepoint:                     Enable and Disable Tracepoints.
                                                               (line  19)
-* enable type-printer:                   Symbols.             (line 246)
+* enable type-printer:                   Symbols.             (line 257)
 * enable-keypad:                         Readline Init File Syntax.
                                                               (line 109)
 * enabled <1>:                           Xmethod API.         (line  19)
@@ -841,7 +842,7 @@ Command, Variable, and Function Index
                                                               (line  39)
 * flush_i_cache:                         Bootstrapping.       (line  60)
 * flushregs:                             Maintenance Commands.
-                                                              (line 244)
+                                                              (line 241)
 * fo (forward-search):                   Search.              (line   9)
 * focus:                                 TUI Commands.        (line  40)
 * forward-backward-delete-char ():       Commands For Text.   (line  15)
@@ -1156,7 +1157,7 @@ Command, Variable, and Function Index
 * info auxv:                             OS Information.      (line  21)
 * info breakpoints:                      Set Breaks.          (line 128)
 * info checkpoints:                      Checkpoint/Restart.  (line  31)
-* info classes:                          Symbols.             (line 318)
+* info classes:                          Symbols.             (line 329)
 * info common:                           Special Fortran Commands.
                                                               (line   9)
 * info copying:                          Help.                (line 137)
@@ -1174,7 +1175,7 @@ Command, Variable, and Function Index
 * info frame, show the source language:  Show.                (line  15)
 * info frame-filter:                     Frame Filter Management.
                                                               (line  12)
-* info functions:                        Symbols.             (line 297)
+* info functions:                        Symbols.             (line 308)
 * info handle:                           Signals.             (line  33)
 * info inferiors:                        Inferiors and Programs.
                                                               (line  25)
@@ -1210,8 +1211,8 @@ Command, Variable, and Function Index
 * info record:                           Process Record and Replay.
                                                               (line 193)
 * info registers:                        Registers.           (line  11)
-* info scope:                            Symbols.             (line 251)
-* info selectors:                        Symbols.             (line 324)
+* info scope:                            Symbols.             (line 262)
+* info selectors:                        Symbols.             (line 335)
 * info serial:                           DJGPP Native.        (line 142)
 * info set:                              Help.                (line 120)
 * info share:                            Files.               (line 337)
@@ -1219,9 +1220,9 @@ Command, Variable, and Function Index
 * info signals:                          Signals.             (line  33)
 * info skip:                             Skipping Over Functions and Files.
                                                               (line  56)
-* info source:                           Symbols.             (line 272)
+* info source:                           Symbols.             (line 283)
 * info source, show the source language: Show.                (line  21)
-* info sources:                          Symbols.             (line 291)
+* info sources:                          Symbols.             (line 302)
 * info spu:                              SPU.                 (line  10)
 * info stack:                            Backtrace.           (line  46)
 * info static-tracepoint-markers:        Listing Static Tracepoint Markers.
@@ -1236,9 +1237,9 @@ Command, Variable, and Function Index
 * info tracepoints [N...]:               Listing Tracepoints. (line   6)
 * info tvariables:                       Trace State Variables.
                                                               (line  37)
-* info type-printers:                    Symbols.             (line 238)
-* info types:                            Symbols.             (line 224)
-* info variables:                        Symbols.             (line 309)
+* info type-printers:                    Symbols.             (line 249)
+* info types:                            Symbols.             (line 235)
+* info variables:                        Symbols.             (line 320)
 * info vector:                           Vector Unit.         (line   9)
 * info w32:                              Cygwin Native.       (line  19)
 * info warranty:                         Help.                (line 141)
@@ -1362,14 +1363,12 @@ Command, Variable, and Function Index
                                                               (line 110)
 * maint cplus namespace:                 Maintenance Commands.
                                                               (line 113)
-* maint demangle:                        Maintenance Commands.
-                                                              (line 116)
 * maint demangler-warning:               Maintenance Commands.
-                                                              (line 132)
+                                                              (line 129)
 * maint deprecate:                       Maintenance Commands.
-                                                              (line 119)
+                                                              (line 116)
 * maint dump-me:                         Maintenance Commands.
-                                                              (line 127)
+                                                              (line 124)
 * maint expand-symtabs:                  Maintenance Commands.
                                                               (line  98)
 * maint info bfds:                       Maintenance Commands.
@@ -1378,102 +1377,102 @@ Command, Variable, and Function Index
                                                               (line  33)
 * maint info program-spaces:             Inferiors and Programs.
                                                               (line 138)
-* maint info psymtabs:                   Symbols.             (line 386)
+* maint info psymtabs:                   Symbols.             (line 397)
 * maint info sections:                   Files.               (line 211)
 * maint info sol-threads:                Threads.             (line  98)
-* maint info symtabs:                    Symbols.             (line 386)
+* maint info symtabs:                    Symbols.             (line 397)
 * maint internal-error:                  Maintenance Commands.
-                                                              (line 132)
+                                                              (line 129)
 * maint internal-warning:                Maintenance Commands.
-                                                              (line 132)
+                                                              (line 129)
 * maint packet:                          Maintenance Commands.
-                                                              (line 178)
+                                                              (line 175)
 * maint print architecture:              Maintenance Commands.
-                                                              (line 184)
+                                                              (line 181)
 * maint print c-tdesc:                   Maintenance Commands.
-                                                              (line 188)
+                                                              (line 185)
 * maint print cooked-registers:          Maintenance Commands.
-                                                              (line 209)
+                                                              (line 206)
 * maint print dummy-frames:              Maintenance Commands.
-                                                              (line 193)
-* maint print msymbols:                  Symbols.             (line 367)
+                                                              (line 190)
+* maint print msymbols:                  Symbols.             (line 378)
 * maint print objfiles:                  Maintenance Commands.
-                                                              (line 247)
-* maint print psymbols:                  Symbols.             (line 367)
+                                                              (line 244)
+* maint print psymbols:                  Symbols.             (line 378)
 * maint print raw-registers:             Maintenance Commands.
-                                                              (line 209)
+                                                              (line 206)
 * maint print reggroups:                 Maintenance Commands.
-                                                              (line 228)
+                                                              (line 225)
 * maint print register-groups:           Maintenance Commands.
-                                                              (line 209)
+                                                              (line 206)
 * maint print registers:                 Maintenance Commands.
-                                                              (line 209)
+                                                              (line 206)
 * maint print remote-registers:          Maintenance Commands.
-                                                              (line 209)
+                                                              (line 206)
 * maint print section-scripts:           Maintenance Commands.
-                                                              (line 262)
+                                                              (line 259)
 * maint print statistics:                Maintenance Commands.
-                                                              (line 269)
-* maint print symbols:                   Symbols.             (line 367)
+                                                              (line 266)
+* maint print symbols:                   Symbols.             (line 378)
 * maint print target-stack:              Maintenance Commands.
-                                                              (line 282)
+                                                              (line 279)
 * maint print type:                      Maintenance Commands.
-                                                              (line 294)
+                                                              (line 291)
 * maint print unwind, HPPA:              HPPA.                (line  17)
 * maint print user-registers:            Maintenance Commands.
-                                                              (line 253)
+                                                              (line 250)
 * maint set catch-demangler-crashes:     Maintenance Commands.
                                                               (line 102)
 * maint set demangler-warning:           Maintenance Commands.
-                                                              (line 155)
+                                                              (line 152)
 * maint set dwarf2 always-disassemble:   Maintenance Commands.
-                                                              (line 301)
+                                                              (line 298)
 * maint set dwarf2 max-cache-age:        Maintenance Commands.
-                                                              (line 323)
+                                                              (line 320)
 * maint set internal-error:              Maintenance Commands.
-                                                              (line 155)
+                                                              (line 152)
 * maint set internal-warning:            Maintenance Commands.
-                                                              (line 155)
+                                                              (line 152)
 * maint set per-command:                 Maintenance Commands.
-                                                              (line 375)
+                                                              (line 372)
 * maint set profile:                     Maintenance Commands.
-                                                              (line 337)
+                                                              (line 334)
 * maint set show-all-tib:                Maintenance Commands.
-                                                              (line 361)
+                                                              (line 358)
 * maint set show-debug-regs:             Maintenance Commands.
-                                                              (line 353)
+                                                              (line 350)
 * maint set target-async:                Maintenance Commands.
-                                                              (line 367)
+                                                              (line 364)
 * maint show catch-demangler-crashes:    Maintenance Commands.
                                                               (line 102)
 * maint show demangler-warning:          Maintenance Commands.
-                                                              (line 155)
+                                                              (line 152)
 * maint show dwarf2 always-disassemble:  Maintenance Commands.
-                                                              (line 301)
+                                                              (line 298)
 * maint show dwarf2 max-cache-age:       Maintenance Commands.
-                                                              (line 323)
+                                                              (line 320)
 * maint show internal-error:             Maintenance Commands.
-                                                              (line 155)
+                                                              (line 152)
 * maint show internal-warning:           Maintenance Commands.
-                                                              (line 155)
+                                                              (line 152)
 * maint show per-command:                Maintenance Commands.
-                                                              (line 375)
+                                                              (line 372)
 * maint show profile:                    Maintenance Commands.
-                                                              (line 337)
+                                                              (line 334)
 * maint show show-all-tib:               Maintenance Commands.
-                                                              (line 361)
+                                                              (line 358)
 * maint show show-debug-regs:            Maintenance Commands.
-                                                              (line 353)
+                                                              (line 350)
 * maint show target-async:               Maintenance Commands.
-                                                              (line 367)
+                                                              (line 364)
 * maint space:                           Maintenance Commands.
-                                                              (line 415)
+                                                              (line 412)
 * maint time:                            Maintenance Commands.
-                                                              (line 419)
+                                                              (line 416)
 * maint translate-address:               Maintenance Commands.
-                                                              (line 423)
+                                                              (line 420)
 * maint undeprecate:                     Maintenance Commands.
-                                                              (line 119)
+                                                              (line 116)
 * make:                                  Shell Commands.      (line  21)
 * make-block-symbols-iterator:           Blocks In Guile.     (line 106)
 * make-breakpoint:                       Breakpoints In Guile.
@@ -1695,7 +1694,7 @@ Command, Variable, and Function Index
 * progspaces:                            Progspaces In Guile. (line  32)
 * prompt annotation:                     Prompting.           (line  24)
 * prompt-for-continue annotation:        Prompting.           (line  40)
-* ptype:                                 Symbols.             (line 159)
+* ptype:                                 Symbols.             (line 170)
 * putDebugChar:                          Bootstrapping.       (line  20)
 * pwd:                                   Working Directory.   (line  20)
 * py:                                    Python Commands.     (line  23)
@@ -1955,11 +1954,11 @@ Command, Variable, and Function Index
 * set new-console:                       Cygwin Native.       (line  50)
 * set new-group:                         Cygwin Native.       (line  59)
 * set non-stop:                          Non-Stop Mode.       (line  35)
-* set opaque-type-resolution:            Symbols.             (line 330)
+* set opaque-type-resolution:            Symbols.             (line 341)
 * set osabi:                             ABI.                 (line  11)
 * set output-radix:                      Numbers.             (line  31)
 * set overload-resolution:               Debugging C Plus Plus.
-                                                              (line  55)
+                                                              (line  59)
 * set pagination:                        Screen Size.         (line  40)
 * set powerpc:                           PowerPC Embedded.    (line  51)
 * set print:                             Print Settings.      (line  11)
@@ -1967,7 +1966,7 @@ Command, Variable, and Function Index
 * set print frame-arguments:             Print Settings.      (line 155)
 * set print inferior-events:             Inferiors and Programs.
                                                               (line 117)
-* set print symbol-loading:              Symbols.             (line 348)
+* set print symbol-loading:              Symbols.             (line 359)
 * set print thread-events:               Threads.             (line 156)
 * set print type methods:                Symbols.             (line  44)
 * set print type typedefs:               Symbols.             (line  58)
@@ -2048,7 +2047,7 @@ Command, Variable, and Function Index
 * set variable:                          Assignment.          (line  16)
 * set verbose:                           Messages/Warnings.   (line  15)
 * set watchdog:                          Maintenance Commands.
-                                                              (line 441)
+                                                              (line 438)
 * set width:                             Screen Size.         (line  21)
 * set write:                             Patching.            (line  15)
 * set-breakpoint-condition!:             Breakpoints In Guile.
@@ -2200,17 +2199,17 @@ Command, Variable, and Function Index
 * show new-console:                      Cygwin Native.       (line  55)
 * show new-group:                        Cygwin Native.       (line  64)
 * show non-stop:                         Non-Stop Mode.       (line  39)
-* show opaque-type-resolution:           Symbols.             (line 345)
+* show opaque-type-resolution:           Symbols.             (line 356)
 * show osabi:                            ABI.                 (line  11)
 * show output-radix:                     Numbers.             (line  39)
 * show overload-resolution:              Debugging C Plus Plus.
-                                                              (line  72)
+                                                              (line  76)
 * show pagination:                       Screen Size.         (line  46)
 * show paths:                            Environment.         (line  29)
 * show print:                            Print Settings.      (line  39)
 * show print inferior-events:            Inferiors and Programs.
                                                               (line 125)
-* show print symbol-loading:             Symbols.             (line 363)
+* show print symbol-loading:             Symbols.             (line 374)
 * show print thread-events:              Threads.             (line 166)
 * show print type methods:               Symbols.             (line  54)
 * show print type typedefs:              Symbols.             (line  70)
@@ -2745,7 +2744,7 @@ Command, Variable, and Function Index
 * watch:                                 Set Watchpoints.     (line  42)
 * watchpoint annotation:                 Annotations for Running.
                                                               (line  50)
-* whatis:                                Symbols.             (line 104)
+* whatis:                                Symbols.             (line 115)
 * where:                                 Backtrace.           (line  46)
 * while:                                 Command Files.       (line  86)
 * while-stepping (tracepoints):          Tracepoint Actions.  (line 118)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdbinit.5	2015-01-06 01:51:22.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2015-01-13 01:52:17.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2015-01-06" "gdb-7.8.50.20150106-cvs" "GNU Development Tools"
+.TH GDBINIT 5 "2015-01-13" "gdb-7.8.50.20150113-cvs" "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-7.8.50.20150106/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdbserver.1	2015-01-06 01:51:21.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2015-01-13 01:52:17.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2015-01-06" "gdb-7.8.50.20150106-cvs" "GNU Development Tools"
+.TH GDBSERVER 1 "2015-01-13" "gdb-7.8.50.20150113-cvs" "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-7.8.50.20150106/gdb/doc/gdb.texinfo ./gdb/doc/gdb.texinfo
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/doc/gdb.texinfo	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/doc/gdb.texinfo	2015-01-13 01:48:39.000000000 +0000
@@ -14215,6 +14215,11 @@ method tables of the object computed by 
 one entry per virtual table; there may be multiple virtual tables when
 multiple inheritance is in use.
 
+@cindex C@t{++} demangling
+@item demangle @var{name}
+Demangle @var{name}.
+@xref{Symbols}, for a more complete description of the @code{demangle} command.
+
 @cindex C@t{++} symbol display
 @item set print demangle
 @itemx show print demangle
@@ -16070,6 +16075,19 @@ _start + 5 in section .text of /tmp/a.ou
 __read_nocancel + 6 in section .text of /usr/lib64/libc.so.6
 @end smallexample
 
+@kindex demangle
+@cindex demangle
+@item demangle @r{[}-l @var{language}@r{]} @r{[}@var{--}@r{]} @var{name}
+Demangle @var{name}.
+If @var{language} is provided it is the name of the language to demangle
+@var{name} in.  Otherwise @var{name} is demangled in the current language.
+
+The @samp{--} option specifies the end of options,
+and is useful when @var{name} begins with a dash.
+
+The parameter @code{demangle-style} specifies how to interpret the kind
+of mangling used. @xref{Print Settings}.
+
 @kindex whatis
 @item whatis[/@var{flags}] [@var{arg}]
 Print the data type of @var{arg}, which can be either an expression
@@ -33470,10 +33488,6 @@ Print the first C@t{++} class/namespace 
 @item maint cplus namespace
 Print the list of possible C@t{++} namespaces.
 
-@kindex maint demangle
-@item maint demangle @var{name}
-Demangle a C@t{++} or Objective-C mangled @var{name}.
-
 @kindex maint deprecate
 @kindex maint undeprecate
 @cindex deprecated commands
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/dwarf2loc.c ./gdb/dwarf2loc.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/dwarf2loc.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/dwarf2loc.c	2015-01-13 01:48:39.000000000 +0000
@@ -2012,6 +2012,7 @@ indirect_pieced_value (struct value *val
   int i, bit_offset, bit_length;
   struct dwarf_expr_piece *piece = NULL;
   LONGEST byte_offset;
+  enum bfd_endian byte_order;
 
   type = check_typedef (value_type (value));
   if (TYPE_CODE (type) != TYPE_CODE_PTR)
@@ -2056,11 +2057,16 @@ indirect_pieced_value (struct value *val
   /* This is an offset requested by GDB, such as value subscripts.
      However, due to how synthetic pointers are implemented, this is
      always presented to us as a pointer type.  This means we have to
-     sign-extend it manually as appropriate.  */
-  byte_offset = value_as_address (value);
-  if (TYPE_LENGTH (value_type (value)) < sizeof (LONGEST))
-    byte_offset = gdb_sign_extend (byte_offset,
-				   8 * TYPE_LENGTH (value_type (value)));
+     sign-extend it manually as appropriate.  Use raw
+     extract_signed_integer directly rather than value_as_address and
+     sign extend afterwards on architectures that would need it
+     (mostly everywhere except MIPS, which has signed addresses) as
+     the later would go through gdbarch_pointer_to_address and thus
+     return a CORE_ADDR with high bits set on architectures that
+     encode address spaces and other things in CORE_ADDR.  */
+  byte_order = gdbarch_byte_order (get_frame_arch (frame));
+  byte_offset = extract_signed_integer (value_contents (value),
+					TYPE_LENGTH (type), byte_order);
   byte_offset += piece->v.ptr.offset;
 
   gdb_assert (piece);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/dwarf2read.c ./gdb/dwarf2read.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/dwarf2read.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/dwarf2read.c	2015-01-13 01:48:39.000000000 +0000
@@ -7704,7 +7704,8 @@ compute_delayed_physnames (struct dwarf2
       struct fn_fieldlist *fn_flp
 	= &TYPE_FN_FIELDLIST (mi->type, mi->fnfield_index);
       physname = dwarf2_physname (mi->name, mi->die, cu);
-      fn_flp->fn_fields[mi->index].physname = physname ? physname : "";
+      TYPE_FN_FIELD_PHYSNAME (fn_flp->fn_fields, mi->index)
+	= physname ? physname : "";
     }
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/event-top.c ./gdb/event-top.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/event-top.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/event-top.c	2015-01-13 01:48:39.000000000 +0000
@@ -667,7 +667,7 @@ command_line_handler (char *rl)
 
   /* Add line to history if appropriate.  */
   if (*linebuffer && input_from_terminal_p ())
-    add_history (linebuffer);
+    gdb_add_history (linebuffer);
 
   /* Note: lines consisting solely of comments are added to the command
      history.  This is useful when you type a command, and then
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/ChangeLog ./gdb/gdbserver/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/ChangeLog	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/ChangeLog	2015-01-13 01:48:39.000000000 +0000
@@ -1,3 +1,79 @@
+2015-01-10  Joel Brobecker  <brobecker@adacore.com>
+
+	* i387-fp.c (i387_cache_to_xsave): In look over
+	num_avx512_zmmh_high_registers, replace use of struct i387_xsave
+	zmmh_low_space field by use of zmmh_high_space.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-low.c (step_over_bkpt): Move higher up in the file.
+	(handle_extended_wait): Don't store the stop_pc here.
+	(get_stop_pc): Adjust comments and rename to ...
+	(check_stopped_by_breakpoint): ... this.  Record whether the LWP
+	stopped for a software breakpoint or hardware breakpoint.
+	(thread_still_has_status_pending_p): New function.
+	(status_pending_p_callback): Use
+	thread_still_has_status_pending_p.  If the event is no longer
+	interesting, resume the LWP.
+	(handle_tracepoints): Add assert.
+	(maybe_move_out_of_jump_pad): Remove cancel_breakpoints call.
+	(wstatus_maybe_breakpoint): New function.
+	(cancel_breakpoint): Delete function.
+	(check_stopped_by_watchpoint): New function, factored out from
+	linux_low_filter_event.
+	(lp_status_maybe_breakpoint): Delete function.
+	(linux_low_filter_event): Remove filter_ptid argument.
+	Leave thread group exits pending here.	Store the LWP's stop PC.
+	Always leave events pending.
+	(linux_wait_for_event_filtered): Pull all events out of the
+	kernel, and leave them all pending.
+	(count_events_callback, select_event_lwp_callback): Consider all
+	events.
+	(cancel_breakpoints_callback, linux_cancel_breakpoints): Delete.
+	(select_event_lwp): Only give preference to the stepping LWP in
+	all-stop mode.	Adjust comments.
+	(ignore_event): New function.
+	(linux_wait_1): Delete 'retry' label.  Use ignore_event.  Remove
+	references to cancel_breakpoints.  Adjust to renames.  Also give
+	equal priority to all LWPs that have had events in non-stop mode.
+	If reporting a software breakpoint event, unadjust the LWP's PC.
+	(linux_wait): If linux_wait_1 returned an ignored event, retry.
+	(stuck_in_jump_pad_callback, move_out_of_jump_pad_callback):
+	Adjust.
+	(linux_resume_one_lwp): Store the LWP's PC.  Adjust.
+	(resume_status_pending_p): Use thread_still_has_status_pending_p.
+	(linux_stopped_by_watchpoint): Adjust.
+	(linux_target_ops): Remove reference to linux_cancel_breakpoints.
+	* linux-low.h (enum lwp_stop_reason): New.
+	(struct lwp_info) <stop_pc>: Adjust comment.
+	<stopped_by_watchpoint>: Delete field.
+	<stop_reason>: New field.
+	* linux-x86-low.c (x86_linux_prepare_to_resume): Adjust.
+	* mem-break.c (software_breakpoint_inserted_here)
+	(hardware_breakpoint_inserted_here): New function.
+	* mem-break.h (software_breakpoint_inserted_here)
+	(hardware_breakpoint_inserted_here): Declare.
+	* target.h (struct target_ops) <cancel_breakpoints>: Remove field.
+	(cancel_breakpoints): Delete.
+	* tracepoint.c (clear_installed_tracepoints, stop_tracing)
+	(upload_fast_traceframes): Remove references to
+	cancel_breakpoints.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* thread-db.c (find_new_threads_callback): Ignore thread if the
+	kernel thread ID is -1.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* linux-low.c (linux_attach_fail_reason_string): Move to
+	nat/linux-ptrace.c, and rename.
+	(linux_attach_lwp): Update comment.
+	(attach_proc_task_lwp_callback): New function.
+	(linux_attach): Adjust to rename and use
+	linux_proc_attach_tgid_threads.
+	(linux_attach_fail_reason_string): Delete declaration.
+
 2015-01-01  Joel Brobecker  <brobecker@adacore.com>
 
 	* gdbreplay.c (gdbreplay_version): Update copyright year to 2015.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/i387-fp.c ./gdb/gdbserver/i387-fp.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/i387-fp.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/i387-fp.c	2015-01-13 01:48:39.000000000 +0000
@@ -454,7 +454,7 @@ i387_cache_to_xsave (struct regcache *re
       for (i = 0; i < num_avx512_zmmh_high_registers; i++)
 	{
 	  collect_register (regcache, i + zmm16h_regnum, raw);
-	  p = ((char *) &fp->zmmh_low_space[0]) + 32 + i * 64;
+	  p = ((char *) &fp->zmmh_high_space[0]) + 32 + i * 64;
 	  if (memcmp (raw, p, 32) != 0)
 	    {
 	      xstate_bv |= X86_XSTATE_ZMM;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/linux-low.c ./gdb/gdbserver/linux-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/linux-low.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/linux-low.c	2015-01-13 01:48:39.000000000 +0000
@@ -218,9 +218,12 @@ static int linux_stopped_by_watchpoint (
 static void mark_lwp_dead (struct lwp_info *lwp, int wstat);
 static void proceed_all_lwps (void);
 static int finish_step_over (struct lwp_info *lwp);
-static CORE_ADDR get_stop_pc (struct lwp_info *lwp);
 static int kill_lwp (unsigned long lwpid, int signo);
 
+/* When the event-loop is doing a step-over, this points at the thread
+   being stepped.  */
+ptid_t step_over_bkpt;
+
 /* True if the low target can hardware single-step.  Such targets
    don't need a BREAKPOINT_REINSERT_ADDR callback.  */
 
@@ -363,6 +366,8 @@ linux_add_process (int pid, int attached
   return proc;
 }
 
+static CORE_ADDR get_pc (struct lwp_info *lwp);
+
 /* Handle a GNU/Linux extended wait response.  If we see a clone
    event, we need to add the new LWP to our list (and not report the
    trap to higher layers).  */
@@ -423,9 +428,7 @@ handle_extended_wait (struct lwp_info *e
 	 If we do get another signal, be sure not to lose it.  */
       if (WSTOPSIG (status) == SIGSTOP)
 	{
-	  if (stopping_threads != NOT_STOPPING_THREADS)
-	    new_lwp->stop_pc = get_stop_pc (new_lwp);
-	  else
+	  if (stopping_threads == NOT_STOPPING_THREADS)
 	    linux_resume_one_lwp (new_lwp, 0, 0, NULL);
 	}
       else
@@ -434,7 +437,6 @@ handle_extended_wait (struct lwp_info *e
 
 	  if (stopping_threads != NOT_STOPPING_THREADS)
 	    {
-	      new_lwp->stop_pc = get_stop_pc (new_lwp);
 	      new_lwp->status_pending_p = 1;
 	      new_lwp->status_pending = status;
 	    }
@@ -481,44 +483,96 @@ get_pc (struct lwp_info *lwp)
    The SIGTRAP could mean several things.
 
    On i386, where decr_pc_after_break is non-zero:
-   If we were single-stepping this process using PTRACE_SINGLESTEP,
-   we will get only the one SIGTRAP (even if the instruction we
-   stepped over was a breakpoint).  The value of $eip will be the
-   next instruction.
+
+   If we were single-stepping this process using PTRACE_SINGLESTEP, we
+   will get only the one SIGTRAP.  The value of $eip will be the next
+   instruction.  If the instruction we stepped over was a breakpoint,
+   we need to decrement the PC.
+
    If we continue the process using PTRACE_CONT, we will get a
    SIGTRAP when we hit a breakpoint.  The value of $eip will be
    the instruction after the breakpoint (i.e. needs to be
    decremented).  If we report the SIGTRAP to GDB, we must also
-   report the undecremented PC.  If we cancel the SIGTRAP, we
+   report the undecremented PC.  If the breakpoint is removed, we
    must resume at the decremented PC.
 
-   (Presumably, not yet tested) On a non-decr_pc_after_break machine
-   with hardware or kernel single-step:
-   If we single-step over a breakpoint instruction, our PC will
-   point at the following instruction.  If we continue and hit a
-   breakpoint instruction, our PC will point at the breakpoint
+   On a non-decr_pc_after_break machine with hardware or kernel
+   single-step:
+
+   If we either single-step a breakpoint instruction, or continue and
+   hit a breakpoint instruction, our PC will point at the breakpoint
    instruction.  */
 
-static CORE_ADDR
-get_stop_pc (struct lwp_info *lwp)
+static int
+check_stopped_by_breakpoint (struct lwp_info *lwp)
 {
-  CORE_ADDR stop_pc;
+  CORE_ADDR pc;
+  CORE_ADDR sw_breakpoint_pc;
+  struct thread_info *saved_thread;
 
   if (the_low_target.get_pc == NULL)
     return 0;
 
-  stop_pc = get_pc (lwp);
+  pc = get_pc (lwp);
+  sw_breakpoint_pc = pc - the_low_target.decr_pc_after_break;
 
-  if (WSTOPSIG (lwp->last_status) == SIGTRAP
-      && !lwp->stepping
-      && !lwp->stopped_by_watchpoint
-      && !linux_is_extended_waitstatus (lwp->last_status))
-    stop_pc -= the_low_target.decr_pc_after_break;
+  /* breakpoint_at reads from the current thread.  */
+  saved_thread = current_thread;
+  current_thread = get_lwp_thread (lwp);
 
-  if (debug_threads)
-    debug_printf ("stop pc is 0x%lx\n", (long) stop_pc);
+  /* We may have just stepped a breakpoint instruction.  E.g., in
+     non-stop mode, GDB first tells the thread A to step a range, and
+     then the user inserts a breakpoint inside the range.  In that
+     case, we need to report the breakpoint PC.  But, when we're
+     trying to step past one of our own breakpoints, that happens to
+     have been placed on top of a permanent breakpoint instruction, we
+     shouldn't adjust the PC, otherwise the program would keep
+     trapping the permanent breakpoint forever.  */
+  if ((!lwp->stepping
+       || (!ptid_equal (ptid_of (current_thread), step_over_bkpt)
+	   && lwp->stop_pc == sw_breakpoint_pc))
+      && (*the_low_target.breakpoint_at) (sw_breakpoint_pc))
+    {
+      if (debug_threads)
+	{
+	  struct thread_info *thr = get_lwp_thread (lwp);
+
+	  debug_printf ("CSBB: %s stopped by software breakpoint\n",
+			target_pid_to_str (ptid_of (thr)));
+	}
 
-  return stop_pc;
+      /* Back up the PC if necessary.  */
+      if (pc != sw_breakpoint_pc)
+        {
+	  struct regcache *regcache
+	    = get_thread_regcache (current_thread, 1);
+	  (*the_low_target.set_pc) (regcache, sw_breakpoint_pc);
+	}
+
+      lwp->stop_pc = sw_breakpoint_pc;
+      lwp->stop_reason = LWP_STOPPED_BY_SW_BREAKPOINT;
+      current_thread = saved_thread;
+      return 1;
+    }
+
+  if (hardware_breakpoint_inserted_here (pc))
+    {
+      if (debug_threads)
+	{
+	  struct thread_info *thr = get_lwp_thread (lwp);
+
+	  debug_printf ("CSBB: %s stopped by hardware breakpoint\n",
+			target_pid_to_str (ptid_of (thr)));
+	}
+
+      lwp->stop_pc = pc;
+      lwp->stop_reason = LWP_STOPPED_BY_HW_BREAKPOINT;
+      current_thread = saved_thread;
+      return 1;
+    }
+
+  current_thread = saved_thread;
+  return 0;
 }
 
 static struct lwp_info *
@@ -631,31 +685,8 @@ linux_create_inferior (char *program, ch
   return pid;
 }
 
-char *
-linux_attach_fail_reason_string (ptid_t ptid, int err)
-{
-  static char *reason_string;
-  struct buffer buffer;
-  char *warnings;
-  long lwpid = ptid_get_lwp (ptid);
-
-  xfree (reason_string);
-
-  buffer_init (&buffer);
-  linux_ptrace_attach_fail_reason (lwpid, &buffer);
-  buffer_grow_str0 (&buffer, "");
-  warnings = buffer_finish (&buffer);
-  if (warnings[0] != '\0')
-    reason_string = xstrprintf ("%s (%d), %s",
-				strerror (err), err, warnings);
-  else
-    reason_string = xstrprintf ("%s (%d)",
-				strerror (err), err);
-  xfree (warnings);
-  return reason_string;
-}
-
-/* Attach to an inferior process.  */
+/* Attach to an inferior process.  Returns 0 on success, ERRNO on
+   error.  */
 
 int
 linux_attach_lwp (ptid_t ptid)
@@ -739,6 +770,50 @@ linux_attach_lwp (ptid_t ptid)
   return 0;
 }
 
+/* Callback for linux_proc_attach_tgid_threads.  Attach to PTID if not
+   already attached.  Returns true if a new LWP is found, false
+   otherwise.  */
+
+static int
+attach_proc_task_lwp_callback (ptid_t ptid)
+{
+  /* Is this a new thread?  */
+  if (find_thread_ptid (ptid) == NULL)
+    {
+      int lwpid = ptid_get_lwp (ptid);
+      int err;
+
+      if (debug_threads)
+	debug_printf ("Found new lwp %d\n", lwpid);
+
+      err = linux_attach_lwp (ptid);
+
+      /* Be quiet if we simply raced with the thread exiting.  EPERM
+	 is returned if the thread's task still exists, and is marked
+	 as exited or zombie, as well as other conditions, so in that
+	 case, confirm the status in /proc/PID/status.  */
+      if (err == ESRCH
+	  || (err == EPERM && linux_proc_pid_is_gone (lwpid)))
+	{
+	  if (debug_threads)
+	    {
+	      debug_printf ("Cannot attach to lwp %d: "
+			    "thread is gone (%d: %s)\n",
+			    lwpid, err, strerror (err));
+	    }
+	}
+      else if (err != 0)
+	{
+	  warning (_("Cannot attach to lwp %d: %s"),
+		   lwpid,
+		   linux_ptrace_attach_fail_reason_string (ptid, err));
+	}
+
+      return 1;
+    }
+  return 0;
+}
+
 /* Attach to PID.  If PID is the tgid, attach to it and all
    of its threads.  */
 
@@ -753,7 +828,7 @@ linux_attach (unsigned long pid)
   err = linux_attach_lwp (ptid);
   if (err != 0)
     error ("Cannot attach to process %ld: %s",
-	   pid, linux_attach_fail_reason_string (ptid, err));
+	   pid, linux_ptrace_attach_fail_reason_string (ptid, err));
 
   linux_add_process (pid, 1);
 
@@ -767,75 +842,16 @@ linux_attach (unsigned long pid)
       thread->last_resume_kind = resume_stop;
     }
 
-  if (linux_proc_get_tgid (pid) == pid)
-    {
-      DIR *dir;
-      char pathname[128];
-
-      sprintf (pathname, "/proc/%ld/task", pid);
-
-      dir = opendir (pathname);
-
-      if (!dir)
-	{
-	  fprintf (stderr, "Could not open /proc/%ld/task.\n", pid);
-	  fflush (stderr);
-	}
-      else
-	{
-	  /* At this point we attached to the tgid.  Scan the task for
-	     existing threads.  */
-	  int new_threads_found;
-	  int iterations = 0;
-
-	  while (iterations < 2)
-	    {
-	      struct dirent *dp;
-
-	      new_threads_found = 0;
-	      /* Add all the other threads.  While we go through the
-		 threads, new threads may be spawned.  Cycle through
-		 the list of threads until we have done two iterations without
-		 finding new threads.  */
-	      while ((dp = readdir (dir)) != NULL)
-		{
-		  unsigned long lwp;
-		  ptid_t ptid;
-
-		  /* Fetch one lwp.  */
-		  lwp = strtoul (dp->d_name, NULL, 10);
-
-		  ptid = ptid_build (pid, lwp, 0);
-
-		  /* Is this a new thread?  */
-		  if (lwp != 0 && find_thread_ptid (ptid) == NULL)
-		    {
-		      int err;
-
-		      if (debug_threads)
-			debug_printf ("Found new lwp %ld\n", lwp);
-
-		      err = linux_attach_lwp (ptid);
-		      if (err != 0)
-			warning ("Cannot attach to lwp %ld: %s",
-				 lwp,
-				 linux_attach_fail_reason_string (ptid, err));
-
-		      new_threads_found++;
-		    }
-		}
-
-	      if (!new_threads_found)
-		iterations++;
-	      else
-		iterations = 0;
-
-	      rewinddir (dir);
-	    }
-	  closedir (dir);
-	}
-    }
-
+  /* We must attach to every LWP.  If /proc is mounted, use that to
+     find them now.  On the one hand, the inferior may be using raw
+     clone instead of using pthreads.  On the other hand, even if it
+     is using pthreads, GDB may not be connected yet (thread_db needs
+     to do symbol lookups, through qSymbol).  Also, thread_db walks
+     structures in the inferior's address space to find the list of
+     threads/LWPs, and those structures may well be corrupted.  Note
+     that once thread_db is loaded, we'll still use it to list threads
+     and associate pthread info with each LWP.  */
+  linux_proc_attach_tgid_threads (pid, attach_proc_task_lwp_callback);
   return 0;
 }
 
@@ -1235,12 +1251,83 @@ linux_thread_alive (ptid_t ptid)
     return 0;
 }
 
+/* Return 1 if this lwp still has an interesting status pending.  If
+   not (e.g., it had stopped for a breakpoint that is gone), return
+   false.  */
+
+static int
+thread_still_has_status_pending_p (struct thread_info *thread)
+{
+  struct lwp_info *lp = get_thread_lwp (thread);
+
+  if (!lp->status_pending_p)
+    return 0;
+
+  /* If we got a `vCont;t', but we haven't reported a stop yet, do
+     report any status pending the LWP may have.  */
+  if (thread->last_resume_kind == resume_stop
+      && thread->last_status.kind != TARGET_WAITKIND_IGNORE)
+    return 0;
+
+  if (thread->last_resume_kind != resume_stop
+      && (lp->stop_reason == LWP_STOPPED_BY_SW_BREAKPOINT
+	  || lp->stop_reason == LWP_STOPPED_BY_HW_BREAKPOINT))
+    {
+      struct thread_info *saved_thread;
+      CORE_ADDR pc;
+      int discard = 0;
+
+      gdb_assert (lp->last_status != 0);
+
+      pc = get_pc (lp);
+
+      saved_thread = current_thread;
+      current_thread = thread;
+
+      if (pc != lp->stop_pc)
+	{
+	  if (debug_threads)
+	    debug_printf ("PC of %ld changed\n",
+			  lwpid_of (thread));
+	  discard = 1;
+	}
+      else if (lp->stop_reason == LWP_STOPPED_BY_SW_BREAKPOINT
+	       && !(*the_low_target.breakpoint_at) (pc))
+	{
+	  if (debug_threads)
+	    debug_printf ("previous SW breakpoint of %ld gone\n",
+			  lwpid_of (thread));
+	  discard = 1;
+	}
+      else if (lp->stop_reason == LWP_STOPPED_BY_HW_BREAKPOINT
+	       && !hardware_breakpoint_inserted_here (pc))
+	{
+	  if (debug_threads)
+	    debug_printf ("previous HW breakpoint of %ld gone\n",
+			  lwpid_of (thread));
+	  discard = 1;
+	}
+
+      current_thread = saved_thread;
+
+      if (discard)
+	{
+	  if (debug_threads)
+	    debug_printf ("discarding pending breakpoint status\n");
+	  lp->status_pending_p = 0;
+	  return 0;
+	}
+    }
+
+  return 1;
+}
+
 /* Return 1 if this lwp has an interesting status pending.  */
 static int
 status_pending_p_callback (struct inferior_list_entry *entry, void *arg)
 {
   struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lwp = get_thread_lwp (thread);
+  struct lwp_info *lp = get_thread_lwp (thread);
   ptid_t ptid = * (ptid_t *) arg;
 
   /* Check if we're only interested in events from a specific process
@@ -1249,13 +1336,14 @@ status_pending_p_callback (struct inferi
       && ptid_get_pid (ptid) != ptid_get_pid (thread->entry.id))
     return 0;
 
-  /* If we got a `vCont;t', but we haven't reported a stop yet, do
-     report any status pending the LWP may have.  */
-  if (thread->last_resume_kind == resume_stop
-      && thread->last_status.kind != TARGET_WAITKIND_IGNORE)
-    return 0;
+  if (lp->status_pending_p
+      && !thread_still_has_status_pending_p (thread))
+    {
+      linux_resume_one_lwp (lp, lp->stepping, GDB_SIGNAL_0, NULL);
+      return 0;
+    }
 
-  return lwp->status_pending_p;
+  return lp->status_pending_p;
 }
 
 static int
@@ -1401,6 +1489,8 @@ handle_tracepoints (struct lwp_info *lwp
   struct thread_info *tinfo = get_lwp_thread (lwp);
   int tpoint_related_event = 0;
 
+  gdb_assert (lwp->suspended == 0);
+
   /* If this tracepoint hit causes a tracing stop, we'll immediately
      uninsert tracepoints.  To do this, we temporarily pause all
      threads, unpatch away, and then unpause threads.  We need to make
@@ -1566,7 +1656,6 @@ maybe_move_out_of_jump_pad (struct lwp_i
 			      "stopping all threads momentarily.\n");
 
 	      stop_all_lwps (1, lwp);
-	      cancel_breakpoints ();
 
 	      delete_breakpoint (lwp->exit_jump_pad_bkpt);
 	      lwp->exit_jump_pad_bkpt = NULL;
@@ -1692,65 +1781,59 @@ dequeue_one_deferred_signal (struct lwp_
   return 0;
 }
 
-/* Arrange for a breakpoint to be hit again later.  We don't keep the
-   SIGTRAP status and don't forward the SIGTRAP signal to the LWP.  We
-   will handle the current event, eventually we will resume this LWP,
-   and this breakpoint will trap again.  */
+/* Return true if the event in LP may be caused by breakpoint.  */
 
 static int
-cancel_breakpoint (struct lwp_info *lwp)
+wstatus_maybe_breakpoint (int wstatus)
 {
-  struct thread_info *saved_thread;
+  return (WIFSTOPPED (wstatus)
+	  && (WSTOPSIG (wstatus) == SIGTRAP
+	      /* SIGILL and SIGSEGV are also treated as traps in case a
+		 breakpoint is inserted at the current PC.  */
+	      || WSTOPSIG (wstatus) == SIGILL
+	      || WSTOPSIG (wstatus) == SIGSEGV));
+}
 
-  /* There's nothing to do if we don't support breakpoints.  */
-  if (!supports_breakpoints ())
-    return 0;
+/* Fetch the possibly triggered data watchpoint info and store it in
+   CHILD.
 
-  /* breakpoint_at reads from current inferior.  */
-  saved_thread = current_thread;
-  current_thread = get_lwp_thread (lwp);
+   On some archs, like x86, that use debug registers to set
+   watchpoints, it's possible that the way to know which watched
+   address trapped, is to check the register that is used to select
+   which address to watch.  Problem is, between setting the watchpoint
+   and reading back which data address trapped, the user may change
+   the set of watchpoints, and, as a consequence, GDB changes the
+   debug registers in the inferior.  To avoid reading back a stale
+   stopped-data-address when that happens, we cache in LP the fact
+   that a watchpoint trapped, and the corresponding data address, as
+   soon as we see CHILD stop with a SIGTRAP.  If GDB changes the debug
+   registers meanwhile, we have the cached data we can rely on.  */
 
-  if ((*the_low_target.breakpoint_at) (lwp->stop_pc))
+static int
+check_stopped_by_watchpoint (struct lwp_info *child)
+{
+  if (the_low_target.stopped_by_watchpoint != NULL)
     {
-      if (debug_threads)
-	debug_printf ("CB: Push back breakpoint for %s\n",
-		      target_pid_to_str (ptid_of (current_thread)));
+      struct thread_info *saved_thread;
 
-      /* Back up the PC if necessary.  */
-      if (the_low_target.decr_pc_after_break)
+      saved_thread = current_thread;
+      current_thread = get_lwp_thread (child);
+
+      if (the_low_target.stopped_by_watchpoint ())
 	{
-	  struct regcache *regcache
-	    = get_thread_regcache (current_thread, 1);
-	  (*the_low_target.set_pc) (regcache, lwp->stop_pc);
+	  child->stop_reason = LWP_STOPPED_BY_WATCHPOINT;
+
+	  if (the_low_target.stopped_data_address != NULL)
+	    child->stopped_data_address
+	      = the_low_target.stopped_data_address ();
+	  else
+	    child->stopped_data_address = 0;
 	}
 
       current_thread = saved_thread;
-      return 1;
-    }
-  else
-    {
-      if (debug_threads)
-	debug_printf ("CB: No breakpoint found at %s for [%s]\n",
-		      paddress (lwp->stop_pc),
-		      target_pid_to_str (ptid_of (current_thread)));
     }
 
-  current_thread = saved_thread;
-  return 0;
-}
-
-/* Return true if the event in LP may be caused by breakpoint.  */
-
-static int
-lp_status_maybe_breakpoint (struct lwp_info *lp)
-{
-  return (lp->status_pending_p
-	  && WIFSTOPPED (lp->status_pending)
-	  && (WSTOPSIG (lp->status_pending) == SIGTRAP
-	      /* SIGILL and SIGSEGV are also treated as traps in case a
-		 breakpoint is inserted at the current PC.  */
-	      || WSTOPSIG (lp->status_pending) == SIGILL
-	      || WSTOPSIG (lp->status_pending) == SIGSEGV));
+  return child->stop_reason == LWP_STOPPED_BY_WATCHPOINT;
 }
 
 /* Do low-level handling of the event, and check if we should go on
@@ -1758,10 +1841,11 @@ lp_status_maybe_breakpoint (struct lwp_i
    NULL otherwise.  */
 
 static struct lwp_info *
-linux_low_filter_event (ptid_t filter_ptid, int lwpid, int wstat)
+linux_low_filter_event (int lwpid, int wstat)
 {
   struct lwp_info *child;
   struct thread_info *thread;
+  int have_stop_pc = 0;
 
   child = find_lwp_pid (pid_to_ptid (lwpid));
 
@@ -1783,6 +1867,35 @@ linux_low_filter_event (ptid_t filter_pt
 
   child->last_status = wstat;
 
+  /* Check if the thread has exited.  */
+  if ((WIFEXITED (wstat) || WIFSIGNALED (wstat)))
+    {
+      if (debug_threads)
+	debug_printf ("LLFE: %d exited.\n", lwpid);
+      if (num_lwps (pid_of (thread)) > 1)
+	{
+
+	  /* If there is at least one more LWP, then the exit signal was
+	     not the end of the debugged application and should be
+	     ignored.  */
+	  delete_lwp (child);
+	  return NULL;
+	}
+      else
+	{
+	  /* This was the last lwp in the process.  Since events are
+	     serialized to GDB core, and we can't report this one
+	     right now, but GDB core and the other target layers will
+	     want to be notified about the exit code/signal, leave the
+	     status pending for the next time we're able to report
+	     it.  */
+	  mark_lwp_dead (child, wstat);
+	  return child;
+	}
+    }
+
+  gdb_assert (WIFSTOPPED (wstat));
+
   if (WIFSTOPPED (wstat))
     {
       struct process_info *proc;
@@ -1807,75 +1920,6 @@ linux_low_filter_event (ptid_t filter_pt
 	}
     }
 
-  /* Store the STOP_PC, with adjustment applied.  This depends on the
-     architecture being defined already (so that CHILD has a valid
-     regcache), and on LAST_STATUS being set (to check for SIGTRAP or
-     not).  */
-  if (WIFSTOPPED (wstat))
-    {
-      if (debug_threads
-	  && the_low_target.get_pc != NULL)
-	{
-	  struct thread_info *saved_thread;
-	  struct regcache *regcache;
-	  CORE_ADDR pc;
-
-	  saved_thread = current_thread;
-	  current_thread = thread;
-	  regcache = get_thread_regcache (current_thread, 1);
-	  pc = (*the_low_target.get_pc) (regcache);
-	  debug_printf ("linux_low_filter_event: pc is 0x%lx\n", (long) pc);
-	  current_thread = saved_thread;
-	}
-
-      child->stop_pc = get_stop_pc (child);
-    }
-
-  /* Fetch the possibly triggered data watchpoint info and store it in
-     CHILD.
-
-     On some archs, like x86, that use debug registers to set
-     watchpoints, it's possible that the way to know which watched
-     address trapped, is to check the register that is used to select
-     which address to watch.  Problem is, between setting the
-     watchpoint and reading back which data address trapped, the user
-     may change the set of watchpoints, and, as a consequence, GDB
-     changes the debug registers in the inferior.  To avoid reading
-     back a stale stopped-data-address when that happens, we cache in
-     LP the fact that a watchpoint trapped, and the corresponding data
-     address, as soon as we see CHILD stop with a SIGTRAP.  If GDB
-     changes the debug registers meanwhile, we have the cached data we
-     can rely on.  */
-
-  if (WIFSTOPPED (wstat) && WSTOPSIG (wstat) == SIGTRAP)
-    {
-      if (the_low_target.stopped_by_watchpoint == NULL)
-	{
-	  child->stopped_by_watchpoint = 0;
-	}
-      else
-	{
-	  struct thread_info *saved_thread;
-
-	  saved_thread = current_thread;
-	  current_thread = thread;
-
-	  child->stopped_by_watchpoint
-	    = the_low_target.stopped_by_watchpoint ();
-
-	  if (child->stopped_by_watchpoint)
-	    {
-	      if (the_low_target.stopped_data_address != NULL)
-		child->stopped_data_address
-		  = the_low_target.stopped_data_address ();
-	      else
-		child->stopped_data_address = 0;
-	    }
-
-	  current_thread = saved_thread;
-	}
-    }
-
   if (WIFSTOPPED (wstat) && child->must_set_ptrace_flags)
     {
       struct process_info *proc = find_process_pid (pid_of (thread));
@@ -1884,13 +1928,28 @@ linux_low_filter_event (ptid_t filter_pt
       child->must_set_ptrace_flags = 0;
     }
 
+  /* Be careful to not overwrite stop_pc until
+     check_stopped_by_breakpoint is called.  */
   if (WIFSTOPPED (wstat) && WSTOPSIG (wstat) == SIGTRAP
       && linux_is_extended_waitstatus (wstat))
     {
+      child->stop_pc = get_pc (child);
       handle_extended_wait (child, wstat);
       return NULL;
     }
 
+  if (WIFSTOPPED (wstat) && WSTOPSIG (wstat) == SIGTRAP
+      && check_stopped_by_watchpoint (child))
+    ;
+  else if (WIFSTOPPED (wstat) && wstatus_maybe_breakpoint (wstat))
+    {
+      if (check_stopped_by_breakpoint (child))
+	have_stop_pc = 1;
+    }
+
+  if (!have_stop_pc)
+    child->stop_pc = get_pc (child);
+
   if (WIFSTOPPED (wstat) && WSTOPSIG (wstat) == SIGSTOP
       && child->stop_expected)
     {
@@ -1906,7 +1965,7 @@ linux_low_filter_event (ptid_t filter_pt
       else if (stopping_threads != NOT_STOPPING_THREADS)
 	{
 	  /* Stopping threads.  We don't want this SIGSTOP to end up
-	     pending in the FILTER_PTID handling below.  */
+	     pending.  */
 	  return NULL;
 	}
       else
@@ -1917,79 +1976,11 @@ linux_low_filter_event (ptid_t filter_pt
 	}
     }
 
-    /* Check if the thread has exited.  */
-  if ((WIFEXITED (wstat) || WIFSIGNALED (wstat))
-      && num_lwps (pid_of (thread)) > 1)
-    {
-      if (debug_threads)
-	debug_printf ("LLW: %d exited.\n", lwpid);
-
-	 /* If there is at least one more LWP, then the exit signal
-	    was not the end of the debugged application and should be
-	    ignored.  */
-      delete_lwp (child);
-      return NULL;
-    }
-
-  if (!ptid_match (ptid_of (thread), filter_ptid))
-    {
-      if (debug_threads)
-	debug_printf ("LWP %d got an event %06x, leaving pending.\n",
-		      lwpid, wstat);
-
-      if (WIFSTOPPED (wstat))
-	{
-	  child->status_pending_p = 1;
-	  child->status_pending = wstat;
-
-	  if (WSTOPSIG (wstat) != SIGSTOP)
-	    {
-	      /* Cancel breakpoint hits.  The breakpoint may be
-		 removed before we fetch events from this process to
-		 report to the core.  It is best not to assume the
-		 moribund breakpoints heuristic always handles these
-		 cases --- it could be too many events go through to
-		 the core before this one is handled.  All-stop always
-		 cancels breakpoint hits in all threads.  */
-	      if (non_stop
-		  && lp_status_maybe_breakpoint (child)
-		  && cancel_breakpoint (child))
-		{
-		  /* Throw away the SIGTRAP.  */
-		  child->status_pending_p = 0;
-
-		  if (debug_threads)
-		    debug_printf ("LLW: LWP %d hit a breakpoint while"
-				  " waiting for another process;"
-				  " cancelled it\n", lwpid);
-		}
-	    }
-	}
-      else if (WIFEXITED (wstat) || WIFSIGNALED (wstat))
-	{
-	  if (debug_threads)
-	    debug_printf ("LLWE: process %d exited while fetching "
-			  "event from another LWP\n", lwpid);
-
-	  /* This was the last lwp in the process.  Since events are
-	     serialized to GDB core, and we can't report this one
-	     right now, but GDB core and the other target layers will
-	     want to be notified about the exit code/signal, leave the
-	     status pending for the next time we're able to report
-	     it.  */
-	  mark_lwp_dead (child, wstat);
-	}
-
-      return NULL;
-    }
-
+  child->status_pending_p = 1;
+  child->status_pending = wstat;
   return child;
 }
 
-/* When the event-loop is doing a step-over, this points at the thread
-   being stepped.  */
-ptid_t step_over_bkpt;
-
 /* Wait for an event from child(ren) WAIT_PTID, and return any that
    match FILTER_PTID (leaving others pending).  The PTIDs can be:
    minus_one_ptid, to specify any child; a pid PTID, specifying all
@@ -2079,6 +2070,9 @@ linux_wait_for_event_filtered (ptid_t wa
   sigfillset (&block_mask);
   sigprocmask (SIG_BLOCK, &block_mask, &prev_mask);
 
+  /* Always pull all events out of the kernel.  We'll randomly select
+     an event LWP out of all that have events, to prevent
+     starvation.  */
   while (event_child == NULL)
     {
       pid_t ret = 0;
@@ -2111,20 +2105,28 @@ linux_wait_for_event_filtered (ptid_t wa
 			    (long) ret, status_to_str (*wstatp));
 	    }
 
-	  event_child = linux_low_filter_event (filter_ptid,
-						ret, *wstatp);
-	  if (event_child != NULL)
-	    {
-	      /* We got an event to report to the core.  */
-	      event_thread = get_lwp_thread (event_child);
-	      break;
-	    }
-
+	  /* Filter all events.  IOW, leave all events pending.  We'll
+	     randomly select an event LWP out of all that have events
+	     below.  */
+	  linux_low_filter_event (ret, *wstatp);
 	  /* Retry until nothing comes out of waitpid.  A single
 	     SIGCHLD can indicate more than one child stopped.  */
 	  continue;
 	}
 
+      /* Now that we've pulled all events out of the kernel, check if
+	 there's any LWP with a status to report to the core.  */
+      event_thread = (struct thread_info *)
+	find_inferior (&all_threads, status_pending_p_callback, &filter_ptid);
+      if (event_thread != NULL)
+	{
+	  event_child = get_thread_lwp (event_thread);
+	  *wstatp = event_child->status_pending;
+	  event_child->status_pending_p = 0;
+	  event_child->status_pending = 0;
+	  break;
+	}
+
       /* Check for zombie thread group leaders.  Those can't be reaped
 	 until all other threads in the thread group are.  */
       check_zombie_leaders ();
@@ -2204,17 +2206,14 @@ static int
 count_events_callback (struct inferior_list_entry *entry, void *data)
 {
   struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lp = get_thread_lwp (thread);
   int *count = data;
 
   gdb_assert (count != NULL);
 
-  /* Count only resumed LWPs that have a SIGTRAP event pending that
-     should be reported to GDB.  */
+  /* Count only resumed LWPs that have an event pending. */
   if (thread->last_status.kind == TARGET_WAITKIND_IGNORE
       && thread->last_resume_kind != resume_stop
-      && lp_status_maybe_breakpoint (lp)
-      && !breakpoint_inserted_here (lp->stop_pc))
+      && thread->status_pending_p)
     (*count)++;
 
   return 0;
@@ -2243,62 +2242,20 @@ static int
 select_event_lwp_callback (struct inferior_list_entry *entry, void *data)
 {
   struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lp = get_thread_lwp (thread);
   int *selector = data;
 
   gdb_assert (selector != NULL);
 
-  /* Select only resumed LWPs that have a SIGTRAP event pending. */
+  /* Select only resumed LWPs that have an event pending. */
   if (thread->last_resume_kind != resume_stop
       && thread->last_status.kind == TARGET_WAITKIND_IGNORE
-      && lp_status_maybe_breakpoint (lp)
-      && !breakpoint_inserted_here (lp->stop_pc))
+      && thread->status_pending_p)
     if ((*selector)-- == 0)
       return 1;
 
   return 0;
 }
 
-static int
-cancel_breakpoints_callback (struct inferior_list_entry *entry, void *data)
-{
-  struct thread_info *thread = (struct thread_info *) entry;
-  struct lwp_info *lp = get_thread_lwp (thread);
-  struct lwp_info *event_lp = data;
-
-  /* Leave the LWP that has been elected to receive a SIGTRAP alone.  */
-  if (lp == event_lp)
-    return 0;
-
-  /* If a LWP other than the LWP that we're reporting an event for has
-     hit a GDB breakpoint (as opposed to some random trap signal),
-     then just arrange for it to hit it again later.  We don't keep
-     the SIGTRAP status and don't forward the SIGTRAP signal to the
-     LWP.  We will handle the current event, eventually we will resume
-     all LWPs, and this one will get its breakpoint trap again.
-
-     If we do not do this, then we run the risk that the user will
-     delete or disable the breakpoint, but the LWP will have already
-     tripped on it.  */
-
-  if (thread->last_resume_kind != resume_stop
-      && thread->last_status.kind == TARGET_WAITKIND_IGNORE
-      && lp_status_maybe_breakpoint (lp)
-      && !lp->stepping
-      && !lp->stopped_by_watchpoint
-      && cancel_breakpoint (lp))
-    /* Throw away the SIGTRAP.  */
-    lp->status_pending_p = 0;
-
-  return 0;
-}
-
-static void
-linux_cancel_breakpoints (void)
-{
-  find_inferior (&all_threads, cancel_breakpoints_callback, NULL);
-}
-
 /* Select one LWP out of those that have events pending.  */
 
 static void
@@ -2306,20 +2263,30 @@ select_event_lwp (struct lwp_info **orig
 {
   int num_events = 0;
   int random_selector;
-  struct thread_info *event_thread;
+  struct thread_info *event_thread = NULL;
 
-  /* Give preference to any LWP that is being single-stepped.  */
-  event_thread
-    = (struct thread_info *) find_inferior (&all_threads,
-					    select_singlestep_lwp_callback,
-					    NULL);
-  if (event_thread != NULL)
+  /* In all-stop, give preference to the LWP that is being
+     single-stepped.  There will be at most one, and it's the LWP that
+     the core is most interested in.  If we didn't do this, then we'd
+     have to handle pending step SIGTRAPs somehow in case the core
+     later continues the previously-stepped thread, otherwise we'd
+     report the pending SIGTRAP, and the core, not having stepped the
+     thread, wouldn't understand what the trap was for, and therefore
+     would report it to the user as a random signal.  */
+  if (!non_stop)
     {
-      if (debug_threads)
-	debug_printf ("SEL: Select single-step %s\n",
-		      target_pid_to_str (ptid_of (event_thread)));
+      event_thread
+	= (struct thread_info *) find_inferior (&all_threads,
+						select_singlestep_lwp_callback,
+						NULL);
+      if (event_thread != NULL)
+	{
+	  if (debug_threads)
+	    debug_printf ("SEL: Select single-step %s\n",
+			  target_pid_to_str (ptid_of (event_thread)));
+	}
     }
-  else
+  if (event_thread == NULL)
     {
       /* No single-stepping LWP.  Select one at random, out of those
          which have had SIGTRAP events.  */
@@ -2486,6 +2453,23 @@ linux_stabilize_threads (void)
     }
 }
 
+static void async_file_mark (void);
+
+/* Convenience function that is called when the kernel reports an
+   event that is not passed out to GDB.  */
+
+static ptid_t
+ignore_event (struct target_waitstatus *ourstatus)
+{
+  /* If we got an event, there may still be others, as a single
+     SIGCHLD can indicate more than one child stopped.  This forces
+     another target_wait call.  */
+  async_file_mark ();
+
+  ourstatus->kind = TARGET_WAITKIND_IGNORE;
+  return null_ptid;
+}
+
 /* Wait for process, returns status.  */
 
 static ptid_t
@@ -2514,7 +2498,6 @@ linux_wait_1 (ptid_t ptid,
   if (target_options & TARGET_WNOHANG)
     options |= WNOHANG;
 
-retry:
   bp_explains_trap = 0;
   trace_event = 0;
   in_step_range = 0;
@@ -2679,7 +2662,8 @@ retry:
 			  WSTOPSIG (w), lwpid_of (current_thread));
 
 	  linux_resume_one_lwp (event_child, 0, 0, NULL);
-	  goto retry;
+
+	  return ignore_event (ourstatus);
 	}
     }
 
@@ -2713,7 +2697,6 @@ retry:
 		 care of while the breakpoint is still
 		 inserted.  */
 	      stop_all_lwps (1, event_child);
-	      cancel_breakpoints ();
 
 	      delete_breakpoint (event_child->exit_jump_pad_bkpt);
 	      event_child->exit_jump_pad_bkpt = NULL;
@@ -2797,7 +2780,7 @@ retry:
 	info_p = NULL;
       linux_resume_one_lwp (event_child, event_child->stepping,
 			    WSTOPSIG (w), info_p);
-      goto retry;
+      return ignore_event (ourstatus);
     }
 
   /* Note that all addresses are always "out of the step range" when
@@ -2816,7 +2799,7 @@ retry:
   report_to_gdb = (!maybe_internal_trap
 		   || (current_thread->last_resume_kind == resume_step
 		       && !in_step_range)
-		   || event_child->stopped_by_watchpoint
+		   || event_child->stop_reason == LWP_STOPPED_BY_WATCHPOINT
 		   || (!step_over_finished && !in_step_range
 		       && !bp_explains_trap && !trace_event)
 		   || (gdb_breakpoint_here (event_child->stop_pc)
@@ -2868,7 +2851,7 @@ retry:
 	unsuspend_all_lwps (event_child);
 
       proceed_all_lwps ();
-      goto retry;
+      return ignore_event (ourstatus);
     }
 
   if (debug_threads)
@@ -2880,9 +2863,9 @@ retry:
 	  else if (!lwp_in_step_range (event_child))
 	    debug_printf ("Out of step range, reporting event.\n");
 	}
-      if (event_child->stopped_by_watchpoint)
+      if (event_child->stop_reason == LWP_STOPPED_BY_WATCHPOINT)
 	debug_printf ("Stopped by watchpoint.\n");
-      if (gdb_breakpoint_here (event_child->stop_pc))
+      else if (gdb_breakpoint_here (event_child->stop_pc))
 	debug_printf ("Stopped by GDB breakpoint.\n");
       if (debug_threads)
 	debug_printf ("Hit a non-gdbserver trap event.\n");
@@ -2890,10 +2873,11 @@ retry:
 
   /* Alright, we're going to report a stop.  */
 
-  if (!non_stop && !stabilizing_threads)
+  if (!stabilizing_threads)
     {
       /* In all-stop, stop all threads.  */
-      stop_all_lwps (0, NULL);
+      if (!non_stop)
+	stop_all_lwps (0, NULL);
 
       /* If we're not waiting for a specific LWP, choose an event LWP
 	 from among those that have had events.  Giving equal priority
@@ -2913,23 +2897,33 @@ retry:
 	  w = event_child->status_pending;
 	}
 
-      /* Now that we've selected our final event LWP, cancel any
-	 breakpoints in other LWPs that have hit a GDB breakpoint.
-	 See the comment in cancel_breakpoints_callback to find out
-	 why.  */
-      find_inferior (&all_threads, cancel_breakpoints_callback, event_child);
-
-      /* If we were going a step-over, all other threads but the stepping one
-	 had been paused in start_step_over, with their suspend counts
-	 incremented.  We don't want to do a full unstop/unpause, because we're
-	 in all-stop mode (so we want threads stopped), but we still need to
-	 unsuspend the other threads, to decrement their `suspended' count
-	 back.  */
       if (step_over_finished)
-	unsuspend_all_lwps (event_child);
+	{
+	  if (!non_stop)
+	    {
+	      /* If we were doing a step-over, all other threads but
+		 the stepping one had been paused in start_step_over,
+		 with their suspend counts incremented.  We don't want
+		 to do a full unstop/unpause, because we're in
+		 all-stop mode (so we want threads stopped), but we
+		 still need to unsuspend the other threads, to
+		 decrement their `suspended' count back.  */
+	      unsuspend_all_lwps (event_child);
+	    }
+	  else
+	    {
+	      /* If we just finished a step-over, then all threads had
+		 been momentarily paused.  In all-stop, that's fine,
+		 we want threads stopped by now anyway.  In non-stop,
+		 we need to re-resume threads that GDB wanted to be
+		 running.  */
+	      unstop_all_lwps (1, event_child);
+	    }
+	}
 
       /* Stabilize threads (move out of jump pads).  */
-      stabilize_threads ();
+      if (!non_stop)
+	stabilize_threads ();
     }
   else
     {
@@ -2943,6 +2937,20 @@ retry:
 
   ourstatus->kind = TARGET_WAITKIND_STOPPED;
 
+  /* Now that we've selected our final event LWP, un-adjust its PC if
+     it was a software breakpoint.  */
+  if (event_child->stop_reason == LWP_STOPPED_BY_SW_BREAKPOINT)
+    {
+      int decr_pc = the_low_target.decr_pc_after_break;
+
+      if (decr_pc != 0)
+	{
+	  struct regcache *regcache
+	    = get_thread_regcache (current_thread, 1);
+	  (*the_low_target.set_pc) (regcache, event_child->stop_pc + decr_pc);
+	}
+    }
+
   if (current_thread->last_resume_kind == resume_stop
       && WSTOPSIG (w) == SIGSTOP)
     {
@@ -3014,7 +3022,13 @@ linux_wait (ptid_t ptid,
   if (target_is_async_p ())
     async_file_flush ();
 
-  event_ptid = linux_wait_1 (ptid, ourstatus, target_options);
+  do
+    {
+      event_ptid = linux_wait_1 (ptid, ourstatus, target_options);
+    }
+  while ((target_options & TARGET_WNOHANG) == 0
+	 && ptid_equal (event_ptid, null_ptid)
+	 && ourstatus->kind == TARGET_WAITKIND_IGNORE);
 
   /* If at least one stop was reported, there may be more.  A single
      SIGCHLD can signal more than one child stop.  */
@@ -3202,7 +3216,7 @@ stuck_in_jump_pad_callback (struct infer
   return (supports_fast_tracepoints ()
 	  && agent_loaded_p ()
 	  && (gdb_breakpoint_here (lwp->stop_pc)
-	      || lwp->stopped_by_watchpoint
+	      || lwp->stop_reason == LWP_STOPPED_BY_WATCHPOINT
 	      || thread->last_resume_kind == resume_step)
 	  && linux_fast_tracepoint_collecting (lwp, NULL));
 }
@@ -3221,7 +3235,7 @@ move_out_of_jump_pad_callback (struct in
 
   /* Allow debugging the jump pad, gdb_collect, etc.  */
   if (!gdb_breakpoint_here (lwp->stop_pc)
-      && !lwp->stopped_by_watchpoint
+      && lwp->stop_reason != LWP_STOPPED_BY_WATCHPOINT
       && thread->last_resume_kind != resume_step
       && maybe_move_out_of_jump_pad (lwp, wstat))
     {
@@ -3445,11 +3459,17 @@ linux_resume_one_lwp (struct lwp_info *l
       step = 1;
     }
 
-  if (debug_threads && the_low_target.get_pc != NULL)
+  if (the_low_target.get_pc != NULL)
     {
       struct regcache *regcache = get_thread_regcache (current_thread, 1);
-      CORE_ADDR pc = (*the_low_target.get_pc) (regcache);
-      debug_printf ("  resuming from pc 0x%lx\n", (long) pc);
+
+      lwp->stop_pc = (*the_low_target.get_pc) (regcache);
+
+      if (debug_threads)
+	{
+	  debug_printf ("  %s from pc 0x%lx\n", step ? "step" : "continue",
+			(long) lwp->stop_pc);
+	}
     }
 
   /* If we have pending signals, consume one unless we are trying to
@@ -3480,7 +3500,7 @@ linux_resume_one_lwp (struct lwp_info *l
   regcache_invalidate_thread (thread);
   errno = 0;
   lwp->stopped = 0;
-  lwp->stopped_by_watchpoint = 0;
+  lwp->stop_reason = LWP_STOPPED_BY_NO_REASON;
   lwp->stepping = step;
   ptrace (step ? PTRACE_SINGLESTEP : PTRACE_CONT, lwpid_of (thread),
 	  (PTRACE_TYPE_ARG3) 0,
@@ -3601,7 +3621,7 @@ resume_status_pending_p (struct inferior
   if (lwp->resume == NULL)
     return 0;
 
-  if (lwp->status_pending_p)
+  if (thread_still_has_status_pending_p (thread))
     * (int *) flag_p = 1;
 
   return 0;
@@ -4886,7 +4906,7 @@ linux_stopped_by_watchpoint (void)
 {
   struct lwp_info *lwp = get_thread_lwp (current_thread);
 
-  return lwp->stopped_by_watchpoint;
+  return lwp->stop_reason == LWP_STOPPED_BY_WATCHPOINT;
 }
 
 static CORE_ADDR
@@ -6055,7 +6075,6 @@ static struct target_ops linux_target_op
   NULL,
   linux_pause_all,
   linux_unpause_all,
-  linux_cancel_breakpoints,
   linux_stabilize_threads,
   linux_install_fast_tracepoint_jump_pad,
   linux_emit_ops,
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/linux-low.h ./gdb/gdbserver/linux-low.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/linux-low.h	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/linux-low.h	2015-01-13 01:48:39.000000000 +0000
@@ -230,6 +230,24 @@ extern struct linux_target_ops the_low_t
 #define get_thread_lwp(thr) ((struct lwp_info *) (inferior_target_data (thr)))
 #define get_lwp_thread(lwp) ((lwp)->thread)
 
+/* Reasons an LWP last stopped.  */
+
+enum lwp_stop_reason
+{
+  /* Either not stopped, or stopped for a reason that doesn't require
+     special tracking.  */
+  LWP_STOPPED_BY_NO_REASON,
+
+  /* Stopped by a software breakpoint.  */
+  LWP_STOPPED_BY_SW_BREAKPOINT,
+
+  /* Stopped by a hardware breakpoint.  */
+  LWP_STOPPED_BY_HW_BREAKPOINT,
+
+  /* Stopped by a watchpoint.  */
+  LWP_STOPPED_BY_WATCHPOINT
+};
+
 /* This struct is recorded in the target_data field of struct thread_info.
 
    On linux ``all_threads'' is keyed by the LWP ID, which we use as the
@@ -269,8 +287,9 @@ struct lwp_info
   /* When stopped is set, the last wait status recorded for this lwp.  */
   int last_status;
 
-  /* When stopped is set, this is where the lwp stopped, with
-     decr_pc_after_break already accounted for.  */
+  /* When stopped is set, this is where the lwp last stopped, with
+     decr_pc_after_break already accounted for.  If the LWP is
+     running, this is the address at which the lwp was resumed.  */
   CORE_ADDR stop_pc;
 
   /* If this flag is set, STATUS_PENDING is a waitstatus that has not yet
@@ -278,9 +297,9 @@ struct lwp_info
   int status_pending_p;
   int status_pending;
 
-  /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
-     watchpoint trap.  */
-  int stopped_by_watchpoint;
+  /* The reason the LWP last stopped, if we need to track it
+     (breakpoint, watchpoint, etc.)  */
+  enum lwp_stop_reason stop_reason;
 
   /* On architectures where it is possible to know the data address of
      a triggered watchpoint, STOPPED_DATA_ADDRESS is non-zero, and
@@ -351,12 +370,6 @@ int linux_pid_exe_is_elf_64_file (int pi
    errno).  */
 int linux_attach_lwp (ptid_t ptid);
 
-/* Return the reason an attach failed, in string form.  ERR is the
-   error returned by linux_attach_lwp (an errno).  This string should
-   be copied into a buffer by the client if the string will not be
-   immediately used, or if it must persist.  */
-char *linux_attach_fail_reason_string (ptid_t ptid, int err);
-
 struct lwp_info *find_lwp_pid (ptid_t ptid);
 void linux_stop_lwp (struct lwp_info *lwp);
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/linux-x86-low.c ./gdb/gdbserver/linux-x86-low.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/linux-x86-low.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/linux-x86-low.c	2015-01-13 01:48:39.000000000 +0000
@@ -805,7 +805,7 @@ x86_linux_prepare_to_resume (struct lwp_
       lwp->arch_private->debug_registers_changed = 0;
     }
 
-  if (clear_status || lwp->stopped_by_watchpoint)
+  if (clear_status || lwp->stop_reason == LWP_STOPPED_BY_WATCHPOINT)
     x86_linux_dr_set (ptid, DR_STATUS, 0);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/mem-break.c ./gdb/gdbserver/mem-break.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/mem-break.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/mem-break.c	2015-01-13 01:48:39.000000000 +0000
@@ -1610,6 +1610,40 @@ breakpoint_inserted_here (CORE_ADDR addr
   return 0;
 }
 
+/* See mem-break.h.  */
+
+int
+software_breakpoint_inserted_here (CORE_ADDR addr)
+{
+  struct process_info *proc = current_process ();
+  struct raw_breakpoint *bp;
+
+  for (bp = proc->raw_breakpoints; bp != NULL; bp = bp->next)
+    if (bp->raw_type == raw_bkpt_type_sw
+	&& bp->pc == addr
+	&& bp->inserted)
+      return 1;
+
+  return 0;
+}
+
+/* See mem-break.h.  */
+
+int
+hardware_breakpoint_inserted_here (CORE_ADDR addr)
+{
+  struct process_info *proc = current_process ();
+  struct raw_breakpoint *bp;
+
+  for (bp = proc->raw_breakpoints; bp != NULL; bp = bp->next)
+    if (bp->raw_type == raw_bkpt_type_hw
+	&& bp->pc == addr
+	&& bp->inserted)
+      return 1;
+
+  return 0;
+}
+
 static int
 validate_inserted_breakpoint (struct raw_breakpoint *bp)
 {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/mem-break.h ./gdb/gdbserver/mem-break.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/mem-break.h	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/mem-break.h	2015-01-13 01:48:39.000000000 +0000
@@ -90,6 +90,16 @@ int breakpoint_here (CORE_ADDR addr);
 
 int breakpoint_inserted_here (CORE_ADDR addr);
 
+/* Returns TRUE if there's any inserted software breakpoint at
+   ADDR.  */
+
+int software_breakpoint_inserted_here (CORE_ADDR addr);
+
+/* Returns TRUE if there's any inserted hardware (code) breakpoint at
+   ADDR.  */
+
+int hardware_breakpoint_inserted_here (CORE_ADDR addr);
+
 /* Clear all breakpoint conditions and commands associated with a
    breakpoint.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/target.h ./gdb/gdbserver/target.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/target.h	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/target.h	2015-01-13 01:48:39.000000000 +0000
@@ -304,9 +304,6 @@ struct target_ops
      the pause call.  */
   void (*unpause_all) (int unfreeze);
 
-  /* Cancel all pending breakpoints hits in all threads.  */
-  void (*cancel_breakpoints) (void);
-
   /* Stabilize all threads.  That is, force them out of jump pads.  */
   void (*stabilize_threads) (void);
 
@@ -453,13 +450,6 @@ int kill_inferior (int);
 	(*the_target->unpause_all) (unfreeze);	\
     } while (0)
 
-#define cancel_breakpoints()			\
-  do						\
-    {						\
-      if (the_target->cancel_breakpoints)     	\
-	(*the_target->cancel_breakpoints) ();  	\
-    } while (0)
-
 #define stabilize_threads()			\
   do						\
     {						\
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/thread-db.c ./gdb/gdbserver/thread-db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/thread-db.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/thread-db.c	2015-01-13 01:48:39.000000000 +0000
@@ -339,7 +339,7 @@ attach_thread (const td_thrhandle_t *th_
     {
       warning ("Could not attach to thread %ld (LWP %d): %s\n",
 	       ti_p->ti_tid, ti_p->ti_lid,
-	       linux_attach_fail_reason_string (ptid, err));
+	       linux_ptrace_attach_fail_reason_string (ptid, err));
       return 0;
     }
 
@@ -396,6 +396,17 @@ find_new_threads_callback (const td_thrh
   if (err != TD_OK)
     error ("Cannot get thread info: %s", thread_db_err_str (err));
 
+  if (ti.ti_lid == -1)
+    {
+      /* A thread with kernel thread ID -1 is either a thread that
+	 exited and was joined, or a thread that is being created but
+	 hasn't started yet, and that is reusing the tcb/stack of a
+	 thread that previously exited and was joined.  (glibc marks
+	 terminated and joined threads with kernel thread ID -1.  See
+	 glibc PR17707.  */
+      return 0;
+    }
+
   /* Check for zombies.  */
   if (ti.ti_state == TD_THR_UNKNOWN || ti.ti_state == TD_THR_ZOMBIE)
     return 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/tracepoint.c ./gdb/gdbserver/tracepoint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/gdbserver/tracepoint.c	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/gdbserver/tracepoint.c	2015-01-13 01:48:39.000000000 +0000
@@ -2443,7 +2443,6 @@ clear_installed_tracepoints (void)
   struct tracepoint *prev_stpoint;
 
   pause_all (1);
-  cancel_breakpoints ();
 
   prev_stpoint = NULL;
 
@@ -3433,9 +3432,6 @@ stop_tracing (void)
      We can't now, since we may be getting here due to the inferior
      agent calling us.  */
   pause_all (1);
-  /* Since we're removing breakpoints, cancel breakpoint hits,
-     possibly related to the breakpoints we're about to delete.  */
-  cancel_breakpoints ();
 
   /* Stop logging. Tracepoints can still be hit, but they will not be
      recorded.  */
@@ -6538,7 +6534,6 @@ upload_fast_traceframes (void)
   trace_debug ("Done uploading traceframes [%d]\n", curr_tbctrl_idx);
 
   pause_all (1);
-  cancel_breakpoints ();
 
   delete_breakpoint (about_to_request_buffer_space_bkpt);
   about_to_request_buffer_space_bkpt = NULL;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/guile/scm-type.c ./gdb/guile/scm-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/guile/scm-type.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/guile/scm-type.c	2015-01-13 01:48:39.000000000 +0000
@@ -713,7 +713,7 @@ tyscm_array_1 (SCM self, SCM n1_scm, SCM
       n1 = 0;
     }
 
-  if (n2 < n1)
+  if (n2 < n1 - 1) /* Note: An empty array has n2 == n1 - 1.  */
     {
       gdbscm_out_of_range_error (func_name, SCM_ARG3,
 				 scm_cons (scm_from_long (n1),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/inflow.c ./gdb/inflow.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/inflow.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/inflow.c	2015-01-13 01:48:39.000000000 +0000
@@ -79,6 +79,10 @@ struct terminal_info
    unimportant.  */
 static struct terminal_info our_terminal_info;
 
+/* Snapshot of our own tty state taken during initialization of GDB.
+   This is used as the initial tty state given to each new inferior.  */
+static serial_ttystate initial_gdb_ttystate;
+
 static struct terminal_info *get_inflow_inferior_data (struct inferior *);
 
 #ifdef PROCESS_GROUP_TYPE
@@ -156,6 +160,14 @@ show_interactive_mode (struct ui_file *f
     fprintf_filtered (file, "Debugger's interactive mode is %s.\n", value);
 }
 
+/* Set the initial tty state that is to be inherited by new inferiors.  */
+
+void
+set_initial_gdb_ttystate (void)
+{
+  initial_gdb_ttystate = serial_get_tty_state (stdin_serial);
+}
+
 /* Does GDB have a terminal (on stdin)?  */
 int
 gdb_has_a_terminal (void)
@@ -227,7 +239,7 @@ child_terminal_init_with_pgrp (int pgrp)
     {
       xfree (tinfo->ttystate);
       tinfo->ttystate = serial_copy_tty_state (stdin_serial,
-					       our_terminal_info.ttystate);
+					       initial_gdb_ttystate);
 
       /* Make sure that next time we call terminal_inferior (which will be
          before the program runs, as it needs to be), we install the new
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/inf-ptrace.c ./gdb/inf-ptrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/inf-ptrace.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/inf-ptrace.c	2015-01-13 01:48:39.000000000 +0000
@@ -45,7 +45,8 @@ inf_ptrace_follow_fork (struct target_op
 {
   if (!follow_child)
     {
-      pid_t child_pid = inferior_thread->pending_follow.value.related_pid;
+      struct thread_info *tp = inferior_thread ();
+      pid_t child_pid = ptid_get_pid (tp->pending_follow.value.related_pid);
 
       /* Breakpoints have already been detached from the child by
 	 infrun.c.  */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/linux-nat.c ./gdb/linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/linux-nat.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/linux-nat.c	2015-01-13 01:48:39.000000000 +0000
@@ -277,6 +277,12 @@ static void purge_lwp_list (int pid);
 static void delete_lwp (ptid_t ptid);
 static struct lwp_info *find_lwp_pid (ptid_t ptid);
 
+static int lwp_status_pending_p (struct lwp_info *lp);
+
+static int check_stopped_by_breakpoint (struct lwp_info *lp);
+static int sigtrap_is_event (int status);
+static int (*linux_nat_status_is_event) (int status) = sigtrap_is_event;
+
 
 /* Trivial list manipulation functions to keep track of a list of
    new stopped processes.  */
@@ -1023,6 +1029,7 @@ lin_lwp_attach_lwp (ptid_t ptid)
 
 		  /* See if we've got a stop for this new child
 		     pending.  If so, we're already attached.  */
+		  gdb_assert (lwpid > 0);
 		  new_pid = my_waitpid (lwpid, &status, WNOHANG);
 		  if (new_pid == -1 && errno == ECHILD)
 		    new_pid = my_waitpid (lwpid, &status, __WCLONE | WNOHANG);
@@ -1137,6 +1144,73 @@ linux_nat_create_inferior (struct target
 #endif /* HAVE_PERSONALITY */
 }
 
+/* Callback for linux_proc_attach_tgid_threads.  Attach to PTID if not
+   already attached.  Returns true if a new LWP is found, false
+   otherwise.  */
+
+static int
+attach_proc_task_lwp_callback (ptid_t ptid)
+{
+  struct lwp_info *lp;
+
+  /* Ignore LWPs we're already attached to.  */
+  lp = find_lwp_pid (ptid);
+  if (lp == NULL)
+    {
+      int lwpid = ptid_get_lwp (ptid);
+
+      if (ptrace (PTRACE_ATTACH, lwpid, 0, 0) < 0)
+	{
+	  int err = errno;
+
+	  /* Be quiet if we simply raced with the thread exiting.
+	     EPERM is returned if the thread's task still exists, and
+	     is marked as exited or zombie, as well as other
+	     conditions, so in that case, confirm the status in
+	     /proc/PID/status.  */
+	  if (err == ESRCH
+	      || (err == EPERM && linux_proc_pid_is_gone (lwpid)))
+	    {
+	      if (debug_linux_nat)
+		{
+		  fprintf_unfiltered (gdb_stdlog,
+				      "Cannot attach to lwp %d: "
+				      "thread is gone (%d: %s)\n",
+				      lwpid, err, safe_strerror (err));
+		}
+	    }
+	  else
+	    {
+	      warning (_("Cannot attach to lwp %d: %s\n"),
+		       lwpid,
+		       linux_ptrace_attach_fail_reason_string (ptid,
+							       err));
+	    }
+	}
+      else
+	{
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"PTRACE_ATTACH %s, 0, 0 (OK)\n",
+				target_pid_to_str (ptid));
+
+	  lp = add_lwp (ptid);
+	  lp->cloned = 1;
+
+	  /* The next time we wait for this LWP we'll see a SIGSTOP as
+	     PTRACE_ATTACH brings it to a halt.  */
+	  lp->signalled = 1;
+
+	  /* We need to wait for a stop before being able to make the
+	     next ptrace call on this LWP.  */
+	  lp->must_set_ptrace_flags = 1;
+	}
+
+      return 1;
+    }
+  return 0;
+}
+
 static void
 linux_nat_attach (struct target_ops *ops, const char *args, int from_tty)
 {
@@ -1230,6 +1304,16 @@ linux_nat_attach (struct target_ops *ops
 
   lp->status = status;
 
+  /* We must attach to every LWP.  If /proc is mounted, use that to
+     find them now.  The inferior may be using raw clone instead of
+     using pthreads.  But even if it is using pthreads, thread_db
+     walks structures in the inferior's address space to find the list
+     of threads/LWPs, and those structures may well be corrupted.
+     Note that once thread_db is loaded, we'll still use it to list
+     threads and associate pthread info with each LWP.  */
+  linux_proc_attach_tgid_threads (ptid_get_pid (lp->ptid),
+				  attach_proc_task_lwp_callback);
+
   if (target_can_async_p ())
     target_async (inferior_event_handler, 0);
 }
@@ -1430,6 +1514,38 @@ linux_nat_detach (struct target_ops *ops
     linux_ops->to_detach (ops, args, from_tty);
 }
 
+/* Resume execution of the inferior process.  If STEP is nonzero,
+   single-step it.  If SIGNAL is nonzero, give it that signal.  */
+
+static void
+linux_resume_one_lwp (struct lwp_info *lp, int step, enum gdb_signal signo)
+{
+  ptid_t ptid;
+
+  lp->step = step;
+
+  /* stop_pc doubles as the PC the LWP had when it was last resumed.
+     We only presently need that if the LWP is stepped though (to
+     handle the case of stepping a breakpoint instruction).  */
+  if (step)
+    {
+      struct regcache *regcache = get_thread_regcache (lp->ptid);
+
+      lp->stop_pc = regcache_read_pc (regcache);
+    }
+  else
+    lp->stop_pc = 0;
+
+  if (linux_nat_prepare_to_resume != NULL)
+    linux_nat_prepare_to_resume (lp);
+  /* Convert to something the lower layer understands.  */
+  ptid = pid_to_ptid (ptid_get_lwp (lp->ptid));
+  linux_ops->to_resume (linux_ops, ptid, step, signo);
+  lp->stop_reason = LWP_STOPPED_BY_NO_REASON;
+  lp->stopped = 0;
+  registers_changed_ptid (lp->ptid);
+}
+
 /* Resume LP.  */
 
 static void
@@ -1446,8 +1562,7 @@ resume_lwp (struct lwp_info *lp, int ste
 				"RC: Not resuming %s (vfork parent)\n",
 				target_pid_to_str (lp->ptid));
 	}
-      else if (lp->status == 0
-	       && lp->waitstatus.kind == TARGET_WAITKIND_IGNORE)
+      else if (!lwp_status_pending_p (lp))
 	{
 	  if (debug_linux_nat)
 	    fprintf_unfiltered (gdb_stdlog,
@@ -1458,14 +1573,7 @@ resume_lwp (struct lwp_info *lp, int ste
 				 : "0"),
 				step ? "step" : "resume");
 
-	  if (linux_nat_prepare_to_resume != NULL)
-	    linux_nat_prepare_to_resume (lp);
-	  linux_ops->to_resume (linux_ops,
-				pid_to_ptid (ptid_get_lwp (lp->ptid)),
-				step, signo);
-	  lp->stopped = 0;
-	  lp->step = step;
-	  lp->stopped_by_watchpoint = 0;
+	  linux_resume_one_lwp (lp, step, signo);
 	}
       else
 	{
@@ -1559,7 +1667,6 @@ linux_nat_resume (struct target_ops *ops
   gdb_assert (lp != NULL);
 
   /* Remember if we're stepping.  */
-  lp->step = step;
   lp->last_resume_kind = step ? resume_step : resume_continue;
 
   /* If we have a pending wait status for this thread, there is no
@@ -1589,7 +1696,7 @@ linux_nat_resume (struct target_ops *ops
 	}
     }
 
-  if (lp->status || lp->waitstatus.kind != TARGET_WAITKIND_IGNORE)
+  if (lwp_status_pending_p (lp))
     {
       /* FIXME: What should we do if we are supposed to continue
 	 this thread with a signal?  */
@@ -1612,14 +1719,7 @@ linux_nat_resume (struct target_ops *ops
   if (resume_many)
     iterate_over_lwps (ptid, linux_nat_resume_callback, lp);
 
-  /* Convert to something the lower layer understands.  */
-  ptid = pid_to_ptid (ptid_get_lwp (lp->ptid));
-
-  if (linux_nat_prepare_to_resume != NULL)
-    linux_nat_prepare_to_resume (lp);
-  linux_ops->to_resume (linux_ops, ptid, step, signo);
-  lp->stopped_by_watchpoint = 0;
-  lp->stopped = 0;
+  linux_resume_one_lwp (lp, step, signo);
 
   if (debug_linux_nat)
     fprintf_unfiltered (gdb_stdlog,
@@ -1783,14 +1883,7 @@ linux_handle_syscall_trap (struct lwp_in
      subsequent syscall.  Simply resume using the inf-ptrace layer,
      which knows when to use PT_SYSCALL or PT_CONTINUE.  */
 
-  /* Note that gdbarch_get_syscall_number may access registers, hence
-     fill a regcache.  */
-  registers_changed ();
-  if (linux_nat_prepare_to_resume != NULL)
-    linux_nat_prepare_to_resume (lp);
-  linux_ops->to_resume (linux_ops, pid_to_ptid (ptid_get_lwp (lp->ptid)),
-			lp->step, GDB_SIGNAL_0);
-  lp->stopped = 0;
+  linux_resume_one_lwp (lp, lp->step, GDB_SIGNAL_0);
   return 1;
 }
 
@@ -1984,23 +2077,14 @@ linux_handle_extended_wait (struct lwp_i
 		    fprintf_unfiltered (gdb_stdlog,
 					"LHEW: resuming new LWP %ld\n",
 					ptid_get_lwp (new_lp->ptid));
-		  if (linux_nat_prepare_to_resume != NULL)
-		    linux_nat_prepare_to_resume (new_lp);
-		  linux_ops->to_resume (linux_ops, pid_to_ptid (new_pid),
-					0, GDB_SIGNAL_0);
-		  new_lp->stopped = 0;
+		  linux_resume_one_lwp (new_lp, 0, GDB_SIGNAL_0);
 		}
 	    }
 
 	  if (debug_linux_nat)
 	    fprintf_unfiltered (gdb_stdlog,
 				"LHEW: resuming parent LWP %d\n", pid);
-	  if (linux_nat_prepare_to_resume != NULL)
-	    linux_nat_prepare_to_resume (lp);
-	  linux_ops->to_resume (linux_ops,
-				pid_to_ptid (ptid_get_lwp (lp->ptid)),
-				0, GDB_SIGNAL_0);
-	  lp->stopped = 0;
+	  linux_resume_one_lwp (lp, 0, GDB_SIGNAL_0);
 	  return 1;
 	}
 
@@ -2018,6 +2102,10 @@ linux_handle_extended_wait (struct lwp_i
       ourstatus->value.execd_pathname
 	= xstrdup (linux_child_pid_to_exec_file (NULL, pid));
 
+      /* The thread that execed must have been resumed, but, when a
+	 thread execs, it changes its tid to the tgid, and the old
+	 tgid thread might have not been resumed.  */
+      lp->resumed = 1;
       return 0;
     }
 
@@ -2159,6 +2247,14 @@ wait_lwp (struct lwp_info *lp)
   gdb_assert (WIFSTOPPED (status));
   lp->stopped = 1;
 
+  if (lp->must_set_ptrace_flags)
+    {
+      struct inferior *inf = find_inferior_pid (ptid_get_pid (lp->ptid));
+
+      linux_enable_event_reporting (ptid_get_lwp (lp->ptid), inf->attach_flag);
+      lp->must_set_ptrace_flags = 0;
+    }
+
   /* Handle GNU/Linux's syscall SIGTRAPs.  */
   if (WIFSTOPPED (status) && WSTOPSIG (status) == SYSCALL_SIGTRAP)
     {
@@ -2295,24 +2391,21 @@ maybe_clear_ignore_sigint (struct lwp_in
    soon as we see LP stop with a SIGTRAP.  If GDB changes the debug
    registers meanwhile, we have the cached data we can rely on.  */
 
-static void
-save_sigtrap (struct lwp_info *lp)
+static int
+check_stopped_by_watchpoint (struct lwp_info *lp)
 {
   struct cleanup *old_chain;
 
   if (linux_ops->to_stopped_by_watchpoint == NULL)
-    {
-      lp->stopped_by_watchpoint = 0;
-      return;
-    }
+    return 0;
 
   old_chain = save_inferior_ptid ();
   inferior_ptid = lp->ptid;
 
-  lp->stopped_by_watchpoint = linux_ops->to_stopped_by_watchpoint (linux_ops);
-
-  if (lp->stopped_by_watchpoint)
+  if (linux_ops->to_stopped_by_watchpoint (linux_ops))
     {
+      lp->stop_reason = LWP_STOPPED_BY_WATCHPOINT;
+
       if (linux_ops->to_stopped_data_address != NULL)
 	lp->stopped_data_address_p =
 	  linux_ops->to_stopped_data_address (&current_target,
@@ -2322,9 +2415,27 @@ save_sigtrap (struct lwp_info *lp)
     }
 
   do_cleanups (old_chain);
+
+  return lp->stop_reason == LWP_STOPPED_BY_WATCHPOINT;
+}
+
+/* Called when the LWP stopped for a trap that could be explained by a
+   watchpoint or a breakpoint.  */
+
+static void
+save_sigtrap (struct lwp_info *lp)
+{
+  gdb_assert (lp->stop_reason == LWP_STOPPED_BY_NO_REASON);
+  gdb_assert (lp->status != 0);
+
+  if (check_stopped_by_watchpoint (lp))
+    return;
+
+  if (linux_nat_status_is_event (lp->status))
+    check_stopped_by_breakpoint (lp);
 }
 
-/* See save_sigtrap.  */
+/* Returns true if the LWP had stopped for a watchpoint.  */
 
 static int
 linux_nat_stopped_by_watchpoint (struct target_ops *ops)
@@ -2333,7 +2444,7 @@ linux_nat_stopped_by_watchpoint (struct 
 
   gdb_assert (lp != NULL);
 
-  return lp->stopped_by_watchpoint;
+  return lp->stop_reason == LWP_STOPPED_BY_WATCHPOINT;
 }
 
 static int
@@ -2356,24 +2467,6 @@ sigtrap_is_event (int status)
   return WIFSTOPPED (status) && WSTOPSIG (status) == SIGTRAP;
 }
 
-/* SIGTRAP-like events recognizer.  */
-
-static int (*linux_nat_status_is_event) (int status) = sigtrap_is_event;
-
-/* Check for SIGTRAP-like events in LP.  */
-
-static int
-linux_nat_lp_status_is_event (struct lwp_info *lp)
-{
-  /* We check for lp->waitstatus in addition to lp->status, because we can
-     have pending process exits recorded in lp->status
-     and W_EXITCODE(0,0) == 0.  We should probably have an additional
-     lp->status_p flag.  */
-
-  return (lp->waitstatus.kind == TARGET_WAITKIND_IGNORE
-	  && linux_nat_status_is_event (lp->status));
-}
-
 /* Set alternative SIGTRAP-like events recognizer.  If
    breakpoint_inserted_here_p there then gdbarch_decr_pc_after_break will be
    applied.  */
@@ -2429,8 +2522,6 @@ stop_wait_callback (struct lwp_info *lp,
 	{
 	  /* The thread was stopped with a signal other than SIGSTOP.  */
 
-	  save_sigtrap (lp);
-
 	  if (debug_linux_nat)
 	    fprintf_unfiltered (gdb_stdlog,
 				"SWC: Pending event %s in %s\n",
@@ -2440,6 +2531,7 @@ stop_wait_callback (struct lwp_info *lp,
 	  /* Save the sigtrap event.  */
 	  lp->status = status;
 	  gdb_assert (lp->signalled);
+	  save_sigtrap (lp);
 	}
       else
 	{
@@ -2460,7 +2552,9 @@ stop_wait_callback (struct lwp_info *lp,
   return 0;
 }
 
-/* Return non-zero if LP has a wait status pending.  */
+/* Return non-zero if LP has a wait status pending.  Discard the
+   pending event and resume the LWP if the event that originally
+   caused the stop became uninteresting.  */
 
 static int
 status_callback (struct lwp_info *lp, void *data)
@@ -2470,20 +2564,54 @@ status_callback (struct lwp_info *lp, vo
   if (!lp->resumed)
     return 0;
 
-  if (lp->waitstatus.kind != TARGET_WAITKIND_IGNORE)
+  if (lp->stop_reason == LWP_STOPPED_BY_SW_BREAKPOINT
+      || lp->stop_reason == LWP_STOPPED_BY_HW_BREAKPOINT)
     {
-      /* A ptrace event, like PTRACE_FORK|VFORK|EXEC, syscall event,
-	 or a pending process exit.  Note that `W_EXITCODE(0,0) ==
-	 0', so a clean process exit can not be stored pending in
-	 lp->status, it is indistinguishable from
-	 no-pending-status.  */
+      struct regcache *regcache = get_thread_regcache (lp->ptid);
+      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      CORE_ADDR pc;
+      int discard = 0;
+
+      gdb_assert (lp->status != 0);
+
+      pc = regcache_read_pc (regcache);
+
+      if (pc != lp->stop_pc)
+	{
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"SC: PC of %s changed.  was=%s, now=%s\n",
+				target_pid_to_str (lp->ptid),
+				paddress (target_gdbarch (), lp->stop_pc),
+				paddress (target_gdbarch (), pc));
+	  discard = 1;
+	}
+      else if (!breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+	{
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"SC: previous breakpoint of %s, at %s gone\n",
+				target_pid_to_str (lp->ptid),
+				paddress (target_gdbarch (), lp->stop_pc));
+
+	  discard = 1;
+	}
+
+      if (discard)
+	{
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"SC: pending event of %s cancelled.\n",
+				target_pid_to_str (lp->ptid));
+
+	  lp->status = 0;
+	  linux_resume_one_lwp (lp, lp->step, GDB_SIGNAL_0);
+	  return 0;
+	}
       return 1;
     }
 
-  if (lp->status != 0)
-    return 1;
-
-  return 0;
+  return lwp_status_pending_p (lp);
 }
 
 /* Return non-zero if LP isn't stopped.  */
@@ -2492,9 +2620,7 @@ static int
 running_callback (struct lwp_info *lp, void *data)
 {
   return (!lp->stopped
-	  || ((lp->status != 0
-	       || lp->waitstatus.kind != TARGET_WAITKIND_IGNORE)
-	      && lp->resumed));
+	  || (lwp_status_pending_p (lp) && lp->resumed));
 }
 
 /* Count the LWP's that have had events.  */
@@ -2506,8 +2632,8 @@ count_events_callback (struct lwp_info *
 
   gdb_assert (count != NULL);
 
-  /* Count only resumed LWPs that have a SIGTRAP event pending.  */
-  if (lp->resumed && linux_nat_lp_status_is_event (lp))
+  /* Select only resumed LWPs that have an event pending.  */
+  if (lp->resumed && lwp_status_pending_p (lp))
     (*count)++;
 
   return 0;
@@ -2525,6 +2651,17 @@ select_singlestep_lwp_callback (struct l
     return 0;
 }
 
+/* Returns true if LP has a status pending.  */
+
+static int
+lwp_status_pending_p (struct lwp_info *lp)
+{
+  /* We check for lp->waitstatus in addition to lp->status, because we
+     can have pending process exits recorded in lp->status and
+     W_EXITCODE(0,0) happens to be 0.  */
+  return lp->status != 0 || lp->waitstatus.kind != TARGET_WAITKIND_IGNORE;
+}
+
 /* Select the Nth LWP that has had a SIGTRAP event.  */
 
 static int
@@ -2534,16 +2671,19 @@ select_event_lwp_callback (struct lwp_in
 
   gdb_assert (selector != NULL);
 
-  /* Select only resumed LWPs that have a SIGTRAP event pending.  */
-  if (lp->resumed && linux_nat_lp_status_is_event (lp))
+  /* Select only resumed LWPs that have an event pending.  */
+  if (lp->resumed && lwp_status_pending_p (lp))
     if ((*selector)-- == 0)
       return 1;
 
   return 0;
 }
 
+/* Called when the LWP got a signal/trap that could be explained by a
+   software or hardware breakpoint.  */
+
 static int
-cancel_breakpoint (struct lwp_info *lp)
+check_stopped_by_breakpoint (struct lwp_info *lp)
 {
   /* Arrange for a breakpoint to be hit again later.  We don't keep
      the SIGTRAP status and don't forward the SIGTRAP signal to the
@@ -2557,48 +2697,42 @@ cancel_breakpoint (struct lwp_info *lp)
   struct regcache *regcache = get_thread_regcache (lp->ptid);
   struct gdbarch *gdbarch = get_regcache_arch (regcache);
   CORE_ADDR pc;
+  CORE_ADDR sw_bp_pc;
+
+  pc = regcache_read_pc (regcache);
+  sw_bp_pc = pc - target_decr_pc_after_break (gdbarch);
 
-  pc = regcache_read_pc (regcache) - target_decr_pc_after_break (gdbarch);
-  if (breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+  if ((!lp->step || lp->stop_pc == sw_bp_pc)
+      && software_breakpoint_inserted_here_p (get_regcache_aspace (regcache),
+					      sw_bp_pc))
     {
+      /* The LWP was either continued, or stepped a software
+	 breakpoint instruction.  */
       if (debug_linux_nat)
 	fprintf_unfiltered (gdb_stdlog,
-			    "CB: Push back breakpoint for %s\n",
+			    "CB: Push back software breakpoint for %s\n",
 			    target_pid_to_str (lp->ptid));
 
       /* Back up the PC if necessary.  */
-      if (target_decr_pc_after_break (gdbarch))
-	regcache_write_pc (regcache, pc);
+      if (pc != sw_bp_pc)
+	regcache_write_pc (regcache, sw_bp_pc);
 
+      lp->stop_pc = sw_bp_pc;
+      lp->stop_reason = LWP_STOPPED_BY_SW_BREAKPOINT;
       return 1;
     }
-  return 0;
-}
-
-static int
-cancel_breakpoints_callback (struct lwp_info *lp, void *data)
-{
-  struct lwp_info *event_lp = data;
 
-  /* Leave the LWP that has been elected to receive a SIGTRAP alone.  */
-  if (lp == event_lp)
-    return 0;
-
-  /* If a LWP other than the LWP that we're reporting an event for has
-     hit a GDB breakpoint (as opposed to some random trap signal),
-     then just arrange for it to hit it again later.  We don't keep
-     the SIGTRAP status and don't forward the SIGTRAP signal to the
-     LWP.  We will handle the current event, eventually we will resume
-     all LWPs, and this one will get its breakpoint trap again.
-
-     If we do not do this, then we run the risk that the user will
-     delete or disable the breakpoint, but the LWP will have already
-     tripped on it.  */
+  if (hardware_breakpoint_inserted_here_p (get_regcache_aspace (regcache), pc))
+    {
+      if (debug_linux_nat)
+	fprintf_unfiltered (gdb_stdlog,
+			    "CB: Push back hardware breakpoint for %s\n",
+			    target_pid_to_str (lp->ptid));
 
-  if (linux_nat_lp_status_is_event (lp)
-      && cancel_breakpoint (lp))
-    /* Throw away the SIGTRAP.  */
-    lp->status = 0;
+      lp->stop_pc = pc;
+      lp->stop_reason = LWP_STOPPED_BY_HW_BREAKPOINT;
+      return 1;
+    }
 
   return 0;
 }
@@ -2610,36 +2744,48 @@ select_event_lwp (ptid_t filter, struct 
 {
   int num_events = 0;
   int random_selector;
-  struct lwp_info *event_lp;
+  struct lwp_info *event_lp = NULL;
 
   /* Record the wait status for the original LWP.  */
   (*orig_lp)->status = *status;
 
-  /* Give preference to any LWP that is being single-stepped.  */
-  event_lp = iterate_over_lwps (filter,
-				select_singlestep_lwp_callback, NULL);
-  if (event_lp != NULL)
+  /* In all-stop, give preference to the LWP that is being
+     single-stepped.  There will be at most one, and it will be the
+     LWP that the core is most interested in.  If we didn't do this,
+     then we'd have to handle pending step SIGTRAPs somehow in case
+     the core later continues the previously-stepped thread, as
+     otherwise we'd report the pending SIGTRAP then, and the core, not
+     having stepped the thread, wouldn't understand what the trap was
+     for, and therefore would report it to the user as a random
+     signal.  */
+  if (!non_stop)
     {
-      if (debug_linux_nat)
-	fprintf_unfiltered (gdb_stdlog,
-			    "SEL: Select single-step %s\n",
-			    target_pid_to_str (event_lp->ptid));
+      event_lp = iterate_over_lwps (filter,
+				    select_singlestep_lwp_callback, NULL);
+      if (event_lp != NULL)
+	{
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"SEL: Select single-step %s\n",
+				target_pid_to_str (event_lp->ptid));
+	}
     }
-  else
+
+  if (event_lp == NULL)
     {
-      /* No single-stepping LWP.  Select one at random, out of those
-         which have had SIGTRAP events.  */
+      /* Pick one at random, out of those which have had events.  */
 
-      /* First see how many SIGTRAP events we have.  */
+      /* First see how many events we have.  */
       iterate_over_lwps (filter, count_events_callback, &num_events);
 
-      /* Now randomly pick a LWP out of those that have had a SIGTRAP.  */
+      /* Now randomly pick a LWP out of those that have had
+	 events.  */
       random_selector = (int)
 	((num_events * (double) rand ()) / (RAND_MAX + 1.0));
 
       if (debug_linux_nat && num_events > 1)
 	fprintf_unfiltered (gdb_stdlog,
-			    "SEL: Found %d SIGTRAP events, selecting #%d\n",
+			    "SEL: Found %d events, selecting #%d\n",
 			    num_events, random_selector);
 
       event_lp = iterate_over_lwps (filter,
@@ -2673,8 +2819,6 @@ resumed_callback (struct lwp_info *lp, v
 static int
 stop_and_resume_callback (struct lwp_info *lp, void *data)
 {
-  int *new_pending_p = data;
-
   if (!lp->stopped)
     {
       ptid_t ptid = lp->ptid;
@@ -2688,7 +2832,7 @@ stop_and_resume_callback (struct lwp_inf
       if (lp != NULL)
 	{
 	  if (lp->last_resume_kind == resume_stop
-	      && lp->status == 0)
+	      && !lwp_status_pending_p (lp))
 	    {
 	      /* The core wanted the LWP to stop.  Even if it stopped
 		 cleanly (with SIGSTOP), leave the event pending.  */
@@ -2700,7 +2844,7 @@ stop_and_resume_callback (struct lwp_inf
 	      lp->status = W_STOPCODE (SIGSTOP);
 	    }
 
-	  if (lp->status == 0)
+	  if (!lwp_status_pending_p (lp))
 	    {
 	      if (debug_linux_nat)
 		fprintf_unfiltered (gdb_stdlog,
@@ -2715,8 +2859,6 @@ stop_and_resume_callback (struct lwp_inf
 				    "SARC: not re-resuming LWP %ld "
 				    "(has pending)\n",
 				    ptid_get_lwp (lp->ptid));
-	      if (new_pending_p)
-		*new_pending_p = 1;
 	    }
 	}
     }
@@ -2724,18 +2866,14 @@ stop_and_resume_callback (struct lwp_inf
 }
 
 /* Check if we should go on and pass this event to common code.
-   Return the affected lwp if we are, or NULL otherwise.  If we stop
-   all lwps temporarily, we may end up with new pending events in some
-   other lwp.  In that case set *NEW_PENDING_P to true.  */
+   Return the affected lwp if we are, or NULL otherwise.  */
 
 static struct lwp_info *
-linux_nat_filter_event (int lwpid, int status, int *new_pending_p)
+linux_nat_filter_event (int lwpid, int status)
 {
   struct lwp_info *lp;
   int event = linux_ptrace_get_extended_event (status);
 
-  *new_pending_p = 0;
-
   lp = find_lwp_pid (pid_to_ptid (lwpid));
 
   /* Check for stop events reported by a process we didn't already
@@ -2783,6 +2921,14 @@ linux_nat_filter_event (int lwpid, int s
      ever being continued.)  */
   lp->stopped = 1;
 
+  if (WIFSTOPPED (status) && lp->must_set_ptrace_flags)
+    {
+      struct inferior *inf = find_inferior_pid (ptid_get_pid (lp->ptid));
+
+      linux_enable_event_reporting (ptid_get_lwp (lp->ptid), inf->attach_flag);
+      lp->must_set_ptrace_flags = 0;
+    }
+
   /* Handle GNU/Linux's syscall SIGTRAPs.  */
   if (WIFSTOPPED (status) && WSTOPSIG (status) == SYSCALL_SIGTRAP)
     {
@@ -2807,42 +2953,62 @@ linux_nat_filter_event (int lwpid, int s
 	return NULL;
     }
 
-  if (linux_nat_status_is_event (status))
-    save_sigtrap (lp);
-
   /* Check if the thread has exited.  */
-  if ((WIFEXITED (status) || WIFSIGNALED (status))
-      && num_lwps (ptid_get_pid (lp->ptid)) > 1)
+  if (WIFEXITED (status) || WIFSIGNALED (status))
     {
-      /* If this is the main thread, we must stop all threads and verify
-	 if they are still alive.  This is because in the nptl thread model
-	 on Linux 2.4, there is no signal issued for exiting LWPs
-	 other than the main thread.  We only get the main thread exit
-	 signal once all child threads have already exited.  If we
-	 stop all the threads and use the stop_wait_callback to check
-	 if they have exited we can determine whether this signal
-	 should be ignored or whether it means the end of the debugged
-	 application, regardless of which threading model is being
-	 used.  */
-      if (ptid_get_pid (lp->ptid) == ptid_get_lwp (lp->ptid))
+      if (num_lwps (ptid_get_pid (lp->ptid)) > 1)
 	{
-	  iterate_over_lwps (pid_to_ptid (ptid_get_pid (lp->ptid)),
-			     stop_and_resume_callback, new_pending_p);
+	  /* If this is the main thread, we must stop all threads and
+	     verify if they are still alive.  This is because in the
+	     nptl thread model on Linux 2.4, there is no signal issued
+	     for exiting LWPs other than the main thread.  We only get
+	     the main thread exit signal once all child threads have
+	     already exited.  If we stop all the threads and use the
+	     stop_wait_callback to check if they have exited we can
+	     determine whether this signal should be ignored or
+	     whether it means the end of the debugged application,
+	     regardless of which threading model is being used.  */
+	  if (ptid_get_pid (lp->ptid) == ptid_get_lwp (lp->ptid))
+	    {
+	      iterate_over_lwps (pid_to_ptid (ptid_get_pid (lp->ptid)),
+				 stop_and_resume_callback, NULL);
+	    }
+
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"LLW: %s exited.\n",
+				target_pid_to_str (lp->ptid));
+
+	  if (num_lwps (ptid_get_pid (lp->ptid)) > 1)
+	    {
+	      /* If there is at least one more LWP, then the exit signal
+		 was not the end of the debugged application and should be
+		 ignored.  */
+	      exit_lwp (lp);
+	      return NULL;
+	    }
 	}
 
+      gdb_assert (lp->resumed);
+
       if (debug_linux_nat)
 	fprintf_unfiltered (gdb_stdlog,
-			    "LLW: %s exited.\n",
-			    target_pid_to_str (lp->ptid));
+			    "Process %ld exited\n",
+			    ptid_get_lwp (lp->ptid));
 
-      if (num_lwps (ptid_get_pid (lp->ptid)) > 1)
-       {
-	 /* If there is at least one more LWP, then the exit signal
-	    was not the end of the debugged application and should be
-	    ignored.  */
-	 exit_lwp (lp);
-	 return NULL;
-       }
+      /* This was the last lwp in the process.  Since events are
+	 serialized to GDB core, we may not be able report this one
+	 right now, but GDB core and the other target layers will want
+	 to be notified about the exit code/signal, leave the status
+	 pending for the next time we're able to report it.  */
+
+      /* Dead LWP's aren't expected to reported a pending sigstop.  */
+      lp->signalled = 0;
+
+      /* Store the pending event in the waitstatus, because
+	 W_EXITCODE(0,0) == 0.  */
+      store_waitstatus (&lp->waitstatus, status);
+      return lp;
     }
 
   /* Check if the current LWP has previously exited.  In the nptl
@@ -2883,13 +3049,7 @@ linux_nat_filter_event (int lwpid, int s
 	{
 	  /* This is a delayed SIGSTOP.  */
 
-	  registers_changed ();
-
-	  if (linux_nat_prepare_to_resume != NULL)
-	    linux_nat_prepare_to_resume (lp);
-	  linux_ops->to_resume (linux_ops,
-				pid_to_ptid (ptid_get_lwp (lp->ptid)),
-				lp->step, GDB_SIGNAL_0);
+	  linux_resume_one_lwp (lp, lp->step, GDB_SIGNAL_0);
 	  if (debug_linux_nat)
 	    fprintf_unfiltered (gdb_stdlog,
 				"LLW: %s %s, 0, 0 (discard SIGSTOP)\n",
@@ -2897,7 +3057,6 @@ linux_nat_filter_event (int lwpid, int s
 				"PTRACE_SINGLESTEP" : "PTRACE_CONT",
 				target_pid_to_str (lp->ptid));
 
-	  lp->stopped = 0;
 	  gdb_assert (lp->resumed);
 
 	  /* Discard the event.  */
@@ -2918,28 +3077,72 @@ linux_nat_filter_event (int lwpid, int s
       /* This is a delayed SIGINT.  */
       lp->ignore_sigint = 0;
 
-      registers_changed ();
-      if (linux_nat_prepare_to_resume != NULL)
-	linux_nat_prepare_to_resume (lp);
-      linux_ops->to_resume (linux_ops, pid_to_ptid (ptid_get_lwp (lp->ptid)),
-			    lp->step, GDB_SIGNAL_0);
+      linux_resume_one_lwp (lp, lp->step, GDB_SIGNAL_0);
       if (debug_linux_nat)
 	fprintf_unfiltered (gdb_stdlog,
 			    "LLW: %s %s, 0, 0 (discard SIGINT)\n",
 			    lp->step ?
 			    "PTRACE_SINGLESTEP" : "PTRACE_CONT",
 			    target_pid_to_str (lp->ptid));
-
-      lp->stopped = 0;
       gdb_assert (lp->resumed);
 
       /* Discard the event.  */
       return NULL;
     }
 
+  /* Don't report signals that GDB isn't interested in, such as
+     signals that are neither printed nor stopped upon.  Stopping all
+     threads can be a bit time-consuming so if we want decent
+     performance with heavily multi-threaded programs, especially when
+     they're using a high frequency timer, we'd better avoid it if we
+     can.  */
+  if (WIFSTOPPED (status))
+    {
+      enum gdb_signal signo = gdb_signal_from_host (WSTOPSIG (status));
+
+      if (!non_stop)
+	{
+	  /* Only do the below in all-stop, as we currently use SIGSTOP
+	     to implement target_stop (see linux_nat_stop) in
+	     non-stop.  */
+	  if (signo == GDB_SIGNAL_INT && signal_pass_state (signo) == 0)
+	    {
+	      /* If ^C/BREAK is typed at the tty/console, SIGINT gets
+		 forwarded to the entire process group, that is, all LWPs
+		 will receive it - unless they're using CLONE_THREAD to
+		 share signals.  Since we only want to report it once, we
+		 mark it as ignored for all LWPs except this one.  */
+	      iterate_over_lwps (pid_to_ptid (ptid_get_pid (lp->ptid)),
+					      set_ignore_sigint, NULL);
+	      lp->ignore_sigint = 0;
+	    }
+	  else
+	    maybe_clear_ignore_sigint (lp);
+	}
+
+      /* When using hardware single-step, we need to report every signal.
+	 Otherwise, signals in pass_mask may be short-circuited.  */
+      if (!lp->step
+	  && WSTOPSIG (status) && sigismember (&pass_mask, WSTOPSIG (status)))
+	{
+	  linux_resume_one_lwp (lp, lp->step, signo);
+	  if (debug_linux_nat)
+	    fprintf_unfiltered (gdb_stdlog,
+				"LLW: %s %s, %s (preempt 'handle')\n",
+				lp->step ?
+				"PTRACE_SINGLESTEP" : "PTRACE_CONT",
+				target_pid_to_str (lp->ptid),
+				(signo != GDB_SIGNAL_0
+				 ? strsignal (gdb_signal_to_host (signo))
+				 : "0"));
+	  return NULL;
+	}
+    }
+
   /* An interesting event.  */
   gdb_assert (lp);
   lp->status = status;
+  save_sigtrap (lp);
   return lp;
 }
 
@@ -3038,47 +3241,15 @@ linux_nat_wait_1 (struct target_ops *ops
   /* Make sure SIGCHLD is blocked until the sigsuspend below.  */
   block_child_signals (&prev_mask);
 
-retry:
-  lp = NULL;
-  status = 0;
-
   /* First check if there is a LWP with a wait status pending.  */
-  if (ptid_equal (ptid, minus_one_ptid) || ptid_is_pid (ptid))
-    {
-      /* Any LWP in the PTID group that's been resumed will do.  */
-      lp = iterate_over_lwps (ptid, status_callback, NULL);
-      if (lp)
-	{
-	  if (debug_linux_nat && lp->status)
-	    fprintf_unfiltered (gdb_stdlog,
-				"LLW: Using pending wait status %s for %s.\n",
-				status_to_str (lp->status),
-				target_pid_to_str (lp->ptid));
-	}
-    }
-  else if (ptid_lwp_p (ptid))
+  lp = iterate_over_lwps (ptid, status_callback, NULL);
+  if (lp != NULL)
     {
       if (debug_linux_nat)
 	fprintf_unfiltered (gdb_stdlog,
-			    "LLW: Waiting for specific LWP %s.\n",
-			    target_pid_to_str (ptid));
-
-      /* We have a specific LWP to check.  */
-      lp = find_lwp_pid (ptid);
-      gdb_assert (lp);
-
-      if (debug_linux_nat && lp->status)
-	fprintf_unfiltered (gdb_stdlog,
 			    "LLW: Using pending wait status %s for %s.\n",
 			    status_to_str (lp->status),
 			    target_pid_to_str (lp->ptid));
-
-      /* We check for lp->waitstatus in addition to lp->status,
-	 because we can have pending process exits recorded in
-	 lp->status and W_EXITCODE(0,0) == 0.  We should probably have
-	 an additional lp->status_p flag.  */
-      if (lp->status == 0 && lp->waitstatus.kind == TARGET_WAITKIND_IGNORE)
-	lp = NULL;
     }
 
   if (!target_can_async_p ())
@@ -3087,7 +3258,9 @@ retry:
       set_sigint_trap ();
     }
 
-  /* But if we don't find a pending event, we'll have to wait.  */
+  /* But if we don't find a pending event, we'll have to wait.  Always
+     pull all events out of the kernel.  We'll randomly select an
+     event LWP out of all that have events, to prevent starvation.  */
 
   while (lp == NULL)
     {
@@ -3118,10 +3291,6 @@ retry:
 
       if (lwpid > 0)
 	{
-	  /* If this is true, then we paused LWPs momentarily, and may
-	     now have pending events to handle.  */
-	  int new_pending;
-
 	  if (debug_linux_nat)
 	    {
 	      fprintf_unfiltered (gdb_stdlog,
@@ -3129,101 +3298,18 @@ retry:
 				  (long) lwpid, status_to_str (status));
 	    }
 
-	  lp = linux_nat_filter_event (lwpid, status, &new_pending);
-
-	  /* STATUS is now no longer valid, use LP->STATUS instead.  */
-	  status = 0;
-
-	  if (lp && !ptid_match (lp->ptid, ptid))
-	    {
-	      gdb_assert (lp->resumed);
-
-	      if (debug_linux_nat)
-		fprintf_unfiltered (gdb_stdlog,
-				    "LWP %ld got an event %06x, "
-				    "leaving pending.\n",
-				    ptid_get_lwp (lp->ptid), lp->status);
-
-	      if (WIFSTOPPED (lp->status))
-		{
-		  if (WSTOPSIG (lp->status) != SIGSTOP)
-		    {
-		      /* Cancel breakpoint hits.  The breakpoint may
-			 be removed before we fetch events from this
-			 process to report to the core.  It is best
-			 not to assume the moribund breakpoints
-			 heuristic always handles these cases --- it
-			 could be too many events go through to the
-			 core before this one is handled.  All-stop
-			 always cancels breakpoint hits in all
-			 threads.  */
-		      if (non_stop
-			  && linux_nat_lp_status_is_event (lp)
-			  && cancel_breakpoint (lp))
-			{
-			  /* Throw away the SIGTRAP.  */
-			  lp->status = 0;
-
-			  if (debug_linux_nat)
-			    fprintf_unfiltered (gdb_stdlog,
-						"LLW: LWP %ld hit a "
-						"breakpoint while "
-						"waiting for another "
-						"process; "
-						"cancelled it\n",
-						ptid_get_lwp (lp->ptid));
-			}
-		    }
-		  else
-		    lp->signalled = 0;
-		}
-	      else if (WIFEXITED (lp->status) || WIFSIGNALED (lp->status))
-		{
-		  if (debug_linux_nat)
-		    fprintf_unfiltered (gdb_stdlog,
-					"Process %ld exited while stopping "
-					"LWPs\n",
-					ptid_get_lwp (lp->ptid));
-
-		  /* This was the last lwp in the process.  Since
-		     events are serialized to GDB core, and we can't
-		     report this one right now, but GDB core and the
-		     other target layers will want to be notified
-		     about the exit code/signal, leave the status
-		     pending for the next time we're able to report
-		     it.  */
-
-		  /* Dead LWP's aren't expected to reported a pending
-		     sigstop.  */
-		  lp->signalled = 0;
-
-		  /* Store the pending event in the waitstatus as
-		     well, because W_EXITCODE(0,0) == 0.  */
-		  store_waitstatus (&lp->waitstatus, lp->status);
-		}
-
-	      /* Keep looking.  */
-	      lp = NULL;
-	    }
-
-	  if (new_pending)
-	    {
-	      /* Some LWP now has a pending event.  Go all the way
-		 back to check it.  */
-	      goto retry;
-	    }
-
-	  if (lp)
-	    {
-	      /* We got an event to report to the core.  */
-	      break;
-	    }
-
+	  linux_nat_filter_event (lwpid, status);
 	  /* Retry until nothing comes out of waitpid.  A single
 	     SIGCHLD can indicate more than one child stopped.  */
 	  continue;
 	}
 
+      /* Now that we've pulled all events out of the kernel, check if
+	 there's any LWP with a status to report to the core.  */
+      lp = iterate_over_lwps (ptid, status_callback, NULL);
+      if (lp != NULL)
+	break;
+
       /* Check for zombie thread group leaders.  Those can't be reaped
 	 until all other threads in the thread group are.  */
       check_zombie_leaders ();
@@ -3273,109 +3359,54 @@ retry:
   status = lp->status;
   lp->status = 0;
 
-  /* Don't report signals that GDB isn't interested in, such as
-     signals that are neither printed nor stopped upon.  Stopping all
-     threads can be a bit time-consuming so if we want decent
-     performance with heavily multi-threaded programs, especially when
-     they're using a high frequency timer, we'd better avoid it if we
-     can.  */
+  if (!non_stop)
+    {
+      /* Now stop all other LWP's ...  */
+      iterate_over_lwps (minus_one_ptid, stop_callback, NULL);
 
-  if (WIFSTOPPED (status))
+      /* ... and wait until all of them have reported back that
+	 they're no longer running.  */
+      iterate_over_lwps (minus_one_ptid, stop_wait_callback, NULL);
+    }
+
+  /* If we're not waiting for a specific LWP, choose an event LWP from
+     among those that have had events.  Giving equal priority to all
+     LWPs that have had events helps prevent starvation.  */
+  if (ptid_equal (ptid, minus_one_ptid) || ptid_is_pid (ptid))
+    select_event_lwp (ptid, &lp, &status);
+
+  gdb_assert (lp != NULL);
+
+  /* Now that we've selected our final event LWP, un-adjust its PC if
+     it was a software breakpoint.  */
+  if (lp->stop_reason == LWP_STOPPED_BY_SW_BREAKPOINT)
     {
-      enum gdb_signal signo = gdb_signal_from_host (WSTOPSIG (status));
+      struct regcache *regcache = get_thread_regcache (lp->ptid);
+      struct gdbarch *gdbarch = get_regcache_arch (regcache);
+      int decr_pc = target_decr_pc_after_break (gdbarch);
 
-      /* When using hardware single-step, we need to report every signal.
-	 Otherwise, signals in pass_mask may be short-circuited.  */
-      if (!lp->step
-	  && WSTOPSIG (status) && sigismember (&pass_mask, WSTOPSIG (status)))
+      if (decr_pc != 0)
 	{
-	  /* FIMXE: kettenis/2001-06-06: Should we resume all threads
-	     here?  It is not clear we should.  GDB may not expect
-	     other threads to run.  On the other hand, not resuming
-	     newly attached threads may cause an unwanted delay in
-	     getting them running.  */
-	  registers_changed ();
-	  if (linux_nat_prepare_to_resume != NULL)
-	    linux_nat_prepare_to_resume (lp);
-	  linux_ops->to_resume (linux_ops,
-				pid_to_ptid (ptid_get_lwp (lp->ptid)),
-				lp->step, signo);
-	  if (debug_linux_nat)
-	    fprintf_unfiltered (gdb_stdlog,
-				"LLW: %s %s, %s (preempt 'handle')\n",
-				lp->step ?
-				"PTRACE_SINGLESTEP" : "PTRACE_CONT",
-				target_pid_to_str (lp->ptid),
-				(signo != GDB_SIGNAL_0
-				 ? strsignal (gdb_signal_to_host (signo))
-				 : "0"));
-	  lp->stopped = 0;
-	  goto retry;
-	}
+	  CORE_ADDR pc;
 
-      if (!non_stop)
-	{
-	  /* Only do the below in all-stop, as we currently use SIGINT
-	     to implement target_stop (see linux_nat_stop) in
-	     non-stop.  */
-	  if (signo == GDB_SIGNAL_INT && signal_pass_state (signo) == 0)
-	    {
-	      /* If ^C/BREAK is typed at the tty/console, SIGINT gets
-		 forwarded to the entire process group, that is, all LWPs
-		 will receive it - unless they're using CLONE_THREAD to
-		 share signals.  Since we only want to report it once, we
-		 mark it as ignored for all LWPs except this one.  */
-	      iterate_over_lwps (pid_to_ptid (ptid_get_pid (ptid)),
-					      set_ignore_sigint, NULL);
-	      lp->ignore_sigint = 0;
-	    }
-	  else
-	    maybe_clear_ignore_sigint (lp);
+	  pc = regcache_read_pc (regcache);
+	  regcache_write_pc (regcache, pc + decr_pc);
 	}
     }
 
-  /* This LWP is stopped now.  */
-  lp->stopped = 1;
-
-  if (debug_linux_nat)
-    fprintf_unfiltered (gdb_stdlog, "LLW: Candidate event %s in %s.\n",
-			status_to_str (status), target_pid_to_str (lp->ptid));
+  /* We'll need this to determine whether to report a SIGSTOP as
+     GDB_SIGNAL_0.  Need to take a copy because resume_clear_callback
+     clears it.  */
+  last_resume_kind = lp->last_resume_kind;
 
   if (!non_stop)
     {
-      /* Now stop all other LWP's ...  */
-      iterate_over_lwps (minus_one_ptid, stop_callback, NULL);
-
-      /* ... and wait until all of them have reported back that
-	 they're no longer running.  */
-      iterate_over_lwps (minus_one_ptid, stop_wait_callback, NULL);
-
-      /* If we're not waiting for a specific LWP, choose an event LWP
-	 from among those that have had events.  Giving equal priority
-	 to all LWPs that have had events helps prevent
-	 starvation.  */
-      if (ptid_equal (ptid, minus_one_ptid) || ptid_is_pid (ptid))
-	select_event_lwp (ptid, &lp, &status);
-
-      /* Now that we've selected our final event LWP, cancel any
-	 breakpoints in other LWPs that have hit a GDB breakpoint.
-	 See the comment in cancel_breakpoints_callback to find out
-	 why.  */
-      iterate_over_lwps (minus_one_ptid, cancel_breakpoints_callback, lp);
-
-      /* We'll need this to determine whether to report a SIGSTOP as
-	 TARGET_WAITKIND_0.  Need to take a copy because
-	 resume_clear_callback clears it.  */
-      last_resume_kind = lp->last_resume_kind;
-
       /* In all-stop, from the core's perspective, all LWPs are now
 	 stopped until a new resume action is sent over.  */
       iterate_over_lwps (minus_one_ptid, resume_clear_callback, NULL);
     }
   else
     {
-      /* See above.  */
-      last_resume_kind = lp->last_resume_kind;
       resume_clear_callback (lp, NULL);
     }
 
@@ -3429,8 +3460,7 @@ resume_stopped_resumed_lwps (struct lwp_
 
   if (lp->stopped
       && lp->resumed
-      && lp->status == 0
-      && lp->waitstatus.kind == TARGET_WAITKIND_IGNORE)
+      && !lwp_status_pending_p (lp))
     {
       struct regcache *regcache = get_thread_regcache (lp->ptid);
       struct gdbarch *gdbarch = get_regcache_arch (regcache);
@@ -3453,13 +3483,7 @@ resume_stopped_resumed_lwps (struct lwp_
 			    paddress (gdbarch, pc),
 			    lp->step);
 
-      registers_changed ();
-      if (linux_nat_prepare_to_resume != NULL)
-	linux_nat_prepare_to_resume (lp);
-      linux_ops->to_resume (linux_ops, pid_to_ptid (ptid_get_lwp (lp->ptid)),
-			    lp->step, GDB_SIGNAL_0);
-      lp->stopped = 0;
-      lp->stopped_by_watchpoint = 0;
+      linux_resume_one_lwp (lp, lp->step, GDB_SIGNAL_0);
     }
 
   return 0;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/linux-nat.h ./gdb/linux-nat.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/linux-nat.h	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/linux-nat.h	2015-01-13 01:48:39.000000000 +0000
@@ -23,6 +23,24 @@
 
 struct arch_lwp_info;
 
+/* Reasons an LWP last stopped.  */
+
+enum lwp_stop_reason
+{
+  /* Either not stopped, or stopped for a reason that doesn't require
+     special tracking.  */
+  LWP_STOPPED_BY_NO_REASON,
+
+  /* Stopped by a software breakpoint.  */
+  LWP_STOPPED_BY_SW_BREAKPOINT,
+
+  /* Stopped by a hardware breakpoint.  */
+  LWP_STOPPED_BY_HW_BREAKPOINT,
+
+  /* Stopped by a watchpoint.  */
+  LWP_STOPPED_BY_WATCHPOINT
+};
+
 /* Structure describing an LWP.  This is public only for the purposes
    of ALL_LWPS; target-specific code should generally not access it
    directly.  */
@@ -33,6 +51,10 @@ struct lwp_info
      and overall process id.  */
   ptid_t ptid;
 
+  /* If this flag is set, we need to set the event request flags the
+     next time we see this LWP stop.  */
+  int must_set_ptrace_flags;
+
   /* Non-zero if this LWP is cloned.  In this context "cloned" means
      that the LWP is reporting to its parent using a signal other than
      SIGCHLD.  */
@@ -59,12 +81,19 @@ struct lwp_info
   /* If non-zero, a pending wait status.  */
   int status;
 
+  /* When 'stopped' is set, this is where the lwp last stopped, with
+     decr_pc_after_break already accounted for.  If the LWP is
+     running, and stepping, this is the address at which the lwp was
+     resumed (that is, it's the previous stop PC).  If the LWP is
+     running and not stepping, this is 0.  */
+  CORE_ADDR stop_pc;
+
   /* Non-zero if we were stepping this LWP.  */
   int step;
 
-  /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
-     watchpoint trap.  */
-  int stopped_by_watchpoint;
+  /* The reason the LWP last stopped, if we need to track it
+     (breakpoint, watchpoint, etc.)  */
+  enum lwp_stop_reason stop_reason;
 
   /* On architectures where it is possible to know the data address of
      a triggered watchpoint, STOPPED_DATA_ADDRESS_P is non-zero, and
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/linux-thread-db.c ./gdb/linux-thread-db.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/linux-thread-db.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/linux-thread-db.c	2015-01-13 01:48:39.000000000 +0000
@@ -38,6 +38,7 @@
 #include "observer.h"
 #include "linux-nat.h"
 #include "nat/linux-procfs.h"
+#include "nat/linux-ptrace.h"
 #include "nat/linux-osdata.h"
 #include "auto-load.h"
 #include "cli/cli-utils.h"
@@ -77,6 +78,16 @@ static char *libthread_db_search_path;
    by the "set auto-load libthread-db" command.  */
 static int auto_load_thread_db = 1;
 
+/* Returns true if we need to use thread_db thread create/death event
+   breakpoints to learn about threads.  */
+
+static int
+thread_db_use_events (void)
+{
+  /* Not necessary if the kernel supports clone events.  */
+  return !linux_supports_traceclone ();
+}
+
 /* "show" command for the auto_load_thread_db configuration variable.  */
 
 static void
@@ -671,7 +682,7 @@ thread_db_find_new_threads_silently (pti
   if (except.reason < 0)
     {
       if (libthread_db_debug)
-	exception_fprintf (gdb_stderr, except,
+	exception_fprintf (gdb_stdlog, except,
 			   "Warning: thread_db_find_new_threads_silently: ");
 
       /* There is a bug fixed between nptl 2.6.1 and 2.7 by
@@ -753,8 +764,8 @@ try_thread_db_load_1 (struct thread_db_i
   if (err != TD_OK)
     {
       if (libthread_db_debug)
-	printf_unfiltered (_("td_ta_new failed: %s\n"),
-			   thread_db_err_str (err));
+	fprintf_unfiltered (gdb_stdlog, _("td_ta_new failed: %s\n"),
+			    thread_db_err_str (err));
       else
         switch (err)
           {
@@ -812,16 +823,22 @@ try_thread_db_load_1 (struct thread_db_i
 
   printf_unfiltered (_("[Thread debugging using libthread_db enabled]\n"));
 
-  if (libthread_db_debug || *libthread_db_search_path)
+  if (*libthread_db_search_path || libthread_db_debug)
     {
+      struct ui_file *file;
       const char *library;
 
       library = dladdr_to_soname (*info->td_ta_new_p);
       if (library == NULL)
 	library = LIBTHREAD_DB_SO;
 
-      printf_unfiltered (_("Using host libthread_db library \"%s\".\n"),
-			 library);
+      /* If we'd print this to gdb_stdout when debug output is
+	 disabled, still print it to gdb_stdout if debug output is
+	 enabled.  User visible output should not depend on debug
+	 settings.  */
+      file = *libthread_db_search_path != '\0' ? gdb_stdout : gdb_stdlog;
+      fprintf_unfiltered (file, _("Using host libthread_db library \"%s\".\n"),
+			  library);
     }
 
   /* The thread library was detected.  Activate the thread_db target
@@ -830,7 +847,7 @@ try_thread_db_load_1 (struct thread_db_i
     push_target (&thread_db_ops);
 
   /* Enable event reporting, but not when debugging a core file.  */
-  if (target_has_execution)
+  if (target_has_execution && thread_db_use_events ())
     enable_thread_event_reporting ();
 
   return 1;
@@ -846,8 +863,9 @@ try_thread_db_load (const char *library,
   struct thread_db_info *info;
 
   if (libthread_db_debug)
-    printf_unfiltered (_("Trying host libthread_db library: %s.\n"),
-                       library);
+    fprintf_unfiltered (gdb_stdlog,
+			_("Trying host libthread_db library: %s.\n"),
+			library);
 
   if (check_auto_load_safe)
     {
@@ -856,7 +874,8 @@ try_thread_db_load (const char *library,
 	  /* Do not print warnings by file_is_auto_load_safe if the library does
 	     not exist at this place.  */
 	  if (libthread_db_debug)
-	    printf_unfiltered (_("open failed: %s.\n"), safe_strerror (errno));
+	    fprintf_unfiltered (gdb_stdlog, _("open failed: %s.\n"),
+				safe_strerror (errno));
 	  return 0;
 	}
 
@@ -871,7 +890,7 @@ try_thread_db_load (const char *library,
   if (handle == NULL)
     {
       if (libthread_db_debug)
-	printf_unfiltered (_("dlopen failed: %s.\n"), dlerror ());
+	fprintf_unfiltered (gdb_stdlog, _("dlopen failed: %s.\n"), dlerror ());
       return 0;
     }
 
@@ -885,7 +904,7 @@ try_thread_db_load (const char *library,
           const char *const libpath = dladdr_to_soname (td_init);
 
           if (libpath != NULL)
-            printf_unfiltered (_("Host %s resolved to: %s.\n"),
+            fprintf_unfiltered (gdb_stdlog, _("Host %s resolved to: %s.\n"),
                                library, libpath);
         }
     }
@@ -1076,7 +1095,8 @@ thread_db_load_search (void)
 
   do_cleanups (cleanups);
   if (libthread_db_debug)
-    printf_unfiltered (_("thread_db_load_search returning %d\n"), rc);
+    fprintf_unfiltered (gdb_stdlog,
+			_("thread_db_load_search returning %d\n"), rc);
   return rc;
 }
 
@@ -1255,6 +1275,17 @@ thread_db_inferior_created (struct targe
   check_for_thread_db ();
 }
 
+/* Update the thread's state (what's displayed in "info threads"),
+   from libthread_db thread state information.  */
+
+static void
+update_thread_state (struct private_thread_info *private,
+		     const td_thrinfo_t *ti_p)
+{
+  private->dying = (ti_p->ti_state == TD_THR_UNKNOWN
+		    || ti_p->ti_state == TD_THR_ZOMBIE);
+}
+
 /* Attach to a new thread.  This function is called when we receive a
    TD_CREATE event or when we iterate over all threads and find one
    that wasn't already in our list.  Returns true on success.  */
@@ -1336,8 +1367,7 @@ attach_thread (ptid_t ptid, const td_thr
   gdb_assert (ti_p->ti_tid != 0);
   private->th = *th_p;
   private->tid = ti_p->ti_tid;
-  if (ti_p->ti_state == TD_THR_UNKNOWN || ti_p->ti_state == TD_THR_ZOMBIE)
-    private->dying = 1;
+  update_thread_state (private, ti_p);
 
   /* Add the thread to GDB's thread list.  */
   if (tp == NULL)
@@ -1349,7 +1379,7 @@ attach_thread (ptid_t ptid, const td_thr
 
   /* Enable thread event reporting for this thread, except when
      debugging a core file.  */
-  if (target_has_execution)
+  if (target_has_execution && thread_db_use_events ())
     {
       err = info->td_thr_event_enable_p (th_p, 1);
       if (err != TD_OK)
@@ -1388,7 +1418,7 @@ thread_db_detach (struct target_ops *ops
 
   if (info)
     {
-      if (target_has_execution)
+      if (target_has_execution && thread_db_use_events ())
 	{
 	  disable_thread_event_reporting (info);
 
@@ -1601,6 +1631,17 @@ find_new_threads_callback (const td_thrh
     error (_("find_new_threads_callback: cannot get thread info: %s"),
 	   thread_db_err_str (err));
 
+  if (ti.ti_lid == -1)
+    {
+      /* A thread with kernel thread ID -1 is either a thread that
+	 exited and was joined, or a thread that is being created but
+	 hasn't started yet, and that is reusing the tcb/stack of a
+	 thread that previously exited and was joined.  (glibc marks
+	 terminated and joined threads with kernel thread ID -1.  See
+	 glibc PR17707.  */
+      return 0;
+    }
+
   if (ti.ti_tid == 0)
     {
       /* A thread ID of zero means that this is the main thread, but
@@ -1613,7 +1654,7 @@ find_new_threads_callback (const td_thrh
 	 need this glibc bug workaround.  */
       info->need_stale_parent_threads_check = 0;
 
-      if (target_has_execution)
+      if (target_has_execution && thread_db_use_events ())
 	{
 	  err = info->td_thr_event_enable_p (th_p, 1);
 	  if (err != TD_OK)
@@ -1650,6 +1691,12 @@ find_new_threads_callback (const td_thrh
 	   iteration: thread_db_find_new_threads_2 will retry.  */
 	return 1;
     }
+  else if (target_has_execution && !thread_db_use_events ())
+    {
+      /* Need to update this if not using the libthread_db events
+	 (particularly, the TD_DEATH event).  */
+      update_thread_state (tp->private, &ti);
+    }
 
   return 0;
 }
@@ -1683,11 +1730,12 @@ find_new_threads_once (struct thread_db_
   if (libthread_db_debug)
     {
       if (except.reason < 0)
-	exception_fprintf (gdb_stderr, except,
+	exception_fprintf (gdb_stdlog, except,
 			   "Warning: find_new_threads_once: ");
 
-      printf_filtered (_("Found %d new threads in iteration %d.\n"),
-		       data.new_threads, iteration);
+      fprintf_unfiltered (gdb_stdlog,
+			  _("Found %d new threads in iteration %d.\n"),
+			  data.new_threads, iteration);
     }
 
   if (errp != NULL)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/maint.c ./gdb/maint.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/maint.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/maint.c	2015-01-13 01:48:39.000000000 +0000
@@ -139,38 +139,14 @@ maintenance_demangler_warning (char *arg
   demangler_warning (__FILE__, __LINE__, "%s", (args == NULL ? "" : args));
 }
 
-/* Someday we should allow demangling for things other than just
-   explicit strings.  For example, we might want to be able to specify
-   the address of a string in either GDB's process space or the
-   debuggee's process space, and have gdb fetch and demangle that
-   string.  If we have a char* pointer "ptr" that points to a string,
-   we might want to be able to given just the name and have GDB
-   demangle and print what it points to, etc.  (FIXME)  */
+/* Old command to demangle a string.  The command has been moved to "demangle".
+   It is kept for now because otherwise "mt demangle" gets interpreted as
+   "mt demangler-warning" which artificially creates an internal gdb error.  */
 
 static void
 maintenance_demangle (char *args, int from_tty)
 {
-  char *demangled;
-
-  if (args == NULL || *args == '\0')
-    {
-      printf_unfiltered (_("\"maintenance demangle\" takes "
-			   "an argument to demangle.\n"));
-    }
-  else
-    {
-      demangled = language_demangle (current_language, args, 
-				     DMGL_ANSI | DMGL_PARAMS);
-      if (demangled != NULL)
-	{
-	  printf_unfiltered ("%s\n", demangled);
-	  xfree (demangled);
-	}
-      else
-	{
-	  printf_unfiltered (_("Can't demangle \"%s\"\n"), args);
-	}
-    }
+  printf_filtered (_("This command has been moved to \"demangle\".\n"));
 }
 
 static void
@@ -1009,11 +985,12 @@ show_per_command_cmd (char *args, int fr
 void
 _initialize_maint_cmds (void)
 {
+  struct cmd_list_element *cmd;
+
   add_prefix_cmd ("maintenance", class_maintenance, maintenance_command, _("\
 Commands for use by GDB maintainers.\n\
 Includes commands to dump specific internal GDB structures in\n\
-a human readable form, to cause GDB to deliberately dump core,\n\
-to test internal functions such as the C++/ObjC demangler, etc."),
+a human readable form, to cause GDB to deliberately dump core, etc."),
 		  &maintenancelist, "maintenance ", 0,
 		  &cmdlist);
 
@@ -1082,11 +1059,10 @@ Give GDB a demangler warning.\n\
 Cause GDB to behave as if a demangler warning was reported."),
 	   &maintenancelist);
 
-  add_cmd ("demangle", class_maintenance, maintenance_demangle, _("\
-Demangle a C++/ObjC mangled name.\n\
-Call internal GDB demangler routine to demangle a C++ link name\n\
-and prints the result."),
-	   &maintenancelist);
+  cmd = add_cmd ("demangle", class_maintenance, maintenance_demangle, _("\
+This command has been moved to \"demangle\"."),
+		 &maintenancelist);
+  deprecate_cmd (cmd, "demangle");
 
   add_prefix_cmd ("per-command", class_maintenance, set_per_command_cmd, _("\
 Per-command statistics settings."),
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/Makefile.in ./gdb/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/Makefile.in	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/Makefile.in	2015-01-13 01:48:38.000000000 +0000
@@ -1858,7 +1858,6 @@ po/$(PACKAGE).pot: force
 	     -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \
 	     -e 's/\([ \t;,(]\)free$$/\1xfree/g' \
 	     -e '/^#line.*y.tab.c/d' \
-	     -e "s/^\(#line.*\)`basename $<`/\1`echo $<|sed 's/\//\\\\\//g'`/" \
 	  < $@.tmp > $@
 	rm -f $@.tmp
 .l.c:
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-procfs.c ./gdb/nat/linux-procfs.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-procfs.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/nat/linux-procfs.c	2015-01-13 01:48:39.000000000 +0000
@@ -19,12 +19,13 @@
 #include "common-defs.h"
 #include "linux-procfs.h"
 #include "filestuff.h"
+#include <dirent.h>
 
 /* Return the TGID of LWPID from /proc/pid/status.  Returns -1 if not
    found.  */
 
 static int
-linux_proc_get_int (pid_t lwpid, const char *field)
+linux_proc_get_int (pid_t lwpid, const char *field, int warn)
 {
   size_t field_len = strlen (field);
   FILE *status_file;
@@ -35,7 +36,8 @@ linux_proc_get_int (pid_t lwpid, const c
   status_file = gdb_fopen_cloexec (buf, "r");
   if (status_file == NULL)
     {
-      warning (_("unable to open /proc file '%s'"), buf);
+      if (warn)
+	warning (_("unable to open /proc file '%s'"), buf);
       return -1;
     }
 
@@ -56,45 +58,87 @@ linux_proc_get_int (pid_t lwpid, const c
 int
 linux_proc_get_tgid (pid_t lwpid)
 {
-  return linux_proc_get_int (lwpid, "Tgid");
+  return linux_proc_get_int (lwpid, "Tgid", 1);
 }
 
 /* See linux-procfs.h.  */
 
 pid_t
-linux_proc_get_tracerpid (pid_t lwpid)
+linux_proc_get_tracerpid_nowarn (pid_t lwpid)
 {
-  return linux_proc_get_int (lwpid, "TracerPid");
+  return linux_proc_get_int (lwpid, "TracerPid", 0);
 }
 
-/* Return non-zero if 'State' of /proc/PID/status contains STATE.  */
+/* Fill in BUFFER, a buffer with BUFFER_SIZE bytes with the 'State'
+   line of /proc/PID/status.  Returns -1 on failure to open the /proc
+   file, 1 if the line is found, and 0 if not found.  If WARN, warn on
+   failure to open the /proc file.  */
 
 static int
-linux_proc_pid_has_state (pid_t pid, const char *state)
+linux_proc_pid_get_state (pid_t pid, char *buffer, size_t buffer_size,
+			  int warn)
 {
-  char buffer[100];
   FILE *procfile;
-  int retval;
   int have_state;
 
-  xsnprintf (buffer, sizeof (buffer), "/proc/%d/status", (int) pid);
+  xsnprintf (buffer, buffer_size, "/proc/%d/status", (int) pid);
   procfile = gdb_fopen_cloexec (buffer, "r");
   if (procfile == NULL)
     {
-      warning (_("unable to open /proc file '%s'"), buffer);
-      return 0;
+      if (warn)
+	warning (_("unable to open /proc file '%s'"), buffer);
+      return -1;
     }
 
   have_state = 0;
-  while (fgets (buffer, sizeof (buffer), procfile) != NULL)
+  while (fgets (buffer, buffer_size, procfile) != NULL)
     if (strncmp (buffer, "State:", 6) == 0)
       {
 	have_state = 1;
 	break;
       }
-  retval = (have_state && strstr (buffer, state) != NULL);
   fclose (procfile);
-  return retval;
+  return have_state;
+}
+
+/* See linux-procfs.h declaration.  */
+
+int
+linux_proc_pid_is_gone (pid_t pid)
+{
+  char buffer[100];
+  int have_state;
+
+  have_state = linux_proc_pid_get_state (pid, buffer, sizeof buffer, 0);
+  if (have_state < 0)
+    {
+      /* If we can't open the status file, assume the thread has
+	 disappeared.  */
+      return 1;
+    }
+  else if (have_state == 0)
+    {
+      /* No "State:" line, assume thread is alive.  */
+      return 0;
+    }
+  else
+    {
+      return (strstr (buffer, "Z (") != NULL
+	      || strstr (buffer, "X (") != NULL);
+    }
+}
+
+/* Return non-zero if 'State' of /proc/PID/status contains STATE.  If
+   WARN, warn on failure to open the /proc file.  */
+
+static int
+linux_proc_pid_has_state (pid_t pid, const char *state, int warn)
+{
+  char buffer[100];
+  int have_state;
+
+  have_state = linux_proc_pid_get_state (pid, buffer, sizeof buffer, warn);
+  return (have_state > 0 && strstr (buffer, state) != NULL);
 }
 
 /* Detect `T (stopped)' in `/proc/PID/status'.
@@ -103,7 +147,24 @@ linux_proc_pid_has_state (pid_t pid, con
 int
 linux_proc_pid_is_stopped (pid_t pid)
 {
-  return linux_proc_pid_has_state (pid, "T (stopped)");
+  return linux_proc_pid_has_state (pid, "T (stopped)", 1);
+}
+
+/* Return non-zero if PID is a zombie.  If WARN, warn on failure to
+   open the /proc file.  */
+
+static int
+linux_proc_pid_is_zombie_maybe_warn (pid_t pid, int warn)
+{
+  return linux_proc_pid_has_state (pid, "Z (zombie)", warn);
+}
+
+/* See linux-procfs.h declaration.  */
+
+int
+linux_proc_pid_is_zombie_nowarn (pid_t pid)
+{
+  return linux_proc_pid_is_zombie_maybe_warn (pid, 0);
 }
 
 /* See linux-procfs.h declaration.  */
@@ -111,7 +172,7 @@ linux_proc_pid_is_stopped (pid_t pid)
 int
 linux_proc_pid_is_zombie (pid_t pid)
 {
-  return linux_proc_pid_has_state (pid, "Z (zombie)");
+  return linux_proc_pid_is_zombie_maybe_warn (pid, 1);
 }
 
 /* See linux-procfs.h declaration.  */
@@ -132,3 +193,61 @@ linux_proc_pid_get_ns (pid_t pid, const 
 
   return NULL;
 }
+
+/* See linux-procfs.h.  */
+
+void
+linux_proc_attach_tgid_threads (pid_t pid,
+				linux_proc_attach_lwp_func attach_lwp)
+{
+  DIR *dir;
+  char pathname[128];
+  int new_threads_found;
+  int iterations;
+
+  if (linux_proc_get_tgid (pid) != pid)
+    return;
+
+  xsnprintf (pathname, sizeof (pathname), "/proc/%ld/task", (long) pid);
+  dir = opendir (pathname);
+  if (dir == NULL)
+    {
+      warning (_("Could not open /proc/%ld/task.\n"), (long) pid);
+      return;
+    }
+
+  /* Scan the task list for existing threads.  While we go through the
+     threads, new threads may be spawned.  Cycle through the list of
+     threads until we have done two iterations without finding new
+     threads.  */
+  for (iterations = 0; iterations < 2; iterations++)
+    {
+      struct dirent *dp;
+
+      new_threads_found = 0;
+      while ((dp = readdir (dir)) != NULL)
+	{
+	  unsigned long lwp;
+
+	  /* Fetch one lwp.  */
+	  lwp = strtoul (dp->d_name, NULL, 10);
+	  if (lwp != 0)
+	    {
+	      ptid_t ptid = ptid_build (pid, lwp, 0);
+
+	      if (attach_lwp (ptid))
+		new_threads_found = 1;
+	    }
+	}
+
+      if (new_threads_found)
+	{
+	  /* Start over.  */
+	  iterations = -1;
+	}
+
+      rewinddir (dir);
+    }
+
+  closedir (dir);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-procfs.h ./gdb/nat/linux-procfs.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-procfs.h	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/nat/linux-procfs.h	2015-01-13 01:48:39.000000000 +0000
@@ -22,28 +22,50 @@
 #include <unistd.h>
 
 /* Return the TGID of LWPID from /proc/pid/status.  Returns -1 if not
-   found.  */
+   found.  Failure to open the /proc file results in a warning.  */
 
 extern int linux_proc_get_tgid (pid_t lwpid);
 
-/* Return the TracerPid of LWPID from /proc/pid/status.  Returns -1 if not
-   found.  */
+/* Return the TracerPid of LWPID from /proc/pid/status.  Returns -1 if
+   not found.  Does not warn on failure to open the /proc file.  */
 
-extern pid_t linux_proc_get_tracerpid (pid_t lwpid);
+extern pid_t linux_proc_get_tracerpid_nowarn (pid_t lwpid);
 
 /* Detect `T (stopped)' in `/proc/PID/status'.
    Other states including `T (tracing stop)' are reported as false.  */
 
 extern int linux_proc_pid_is_stopped (pid_t pid);
 
-/* Return non-zero if PID is a zombie.  */
+/* Return non-zero if PID is a zombie.  Failure to open the
+   /proc/pid/status file results in a warning.  */
 
 extern int linux_proc_pid_is_zombie (pid_t pid);
 
+/* Return non-zero if PID is a zombie.  Does not warn on failure to
+   open the /proc file.  */
+
+extern int linux_proc_pid_is_zombie_nowarn (pid_t pid);
+
+/* Return non-zero if /proc/PID/status indicates that PID is gone
+   (i.e., in Z/Zombie or X/Dead state).  Failure to open the /proc
+   file is assumed to indicate the thread is gone.  */
+
+extern int linux_proc_pid_is_gone (pid_t pid);
+
 /* Return an opaque string identifying PID's NS namespace or NULL if
  * the information is unavailable.  The returned string must be
  * released with xfree.  */
 
 extern char *linux_proc_pid_get_ns (pid_t pid, const char *ns);
 
+/* Callback function for linux_proc_attach_tgid_threads.  If the PTID
+   thread is not yet known, try to attach to it and return true,
+   otherwise return false.  */
+typedef int (*linux_proc_attach_lwp_func) (ptid_t ptid);
+
+/* If PID is a tgid, scan the /proc/PID/task/ directory for existing
+   threads, and call FUNC for each thread found.  */
+extern void linux_proc_attach_tgid_threads (pid_t pid,
+					    linux_proc_attach_lwp_func func);
+
 #endif /* COMMON_LINUX_PROCFS_H */
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-ptrace.c ./gdb/nat/linux-ptrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-ptrace.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/nat/linux-ptrace.c	2015-01-13 01:48:39.000000000 +0000
@@ -43,18 +43,44 @@ linux_ptrace_attach_fail_reason (pid_t p
 {
   pid_t tracerpid;
 
-  tracerpid = linux_proc_get_tracerpid (pid);
+  tracerpid = linux_proc_get_tracerpid_nowarn (pid);
   if (tracerpid > 0)
     buffer_xml_printf (buffer, _("process %d is already traced "
 				 "by process %d"),
 		       (int) pid, (int) tracerpid);
 
-  if (linux_proc_pid_is_zombie (pid))
+  if (linux_proc_pid_is_zombie_nowarn (pid))
     buffer_xml_printf (buffer, _("process %d is a zombie "
 				 "- the process has already terminated"),
 		       (int) pid);
 }
 
+/* See linux-ptrace.h.  */
+
+char *
+linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err)
+{
+  static char *reason_string;
+  struct buffer buffer;
+  char *warnings;
+  long lwpid = ptid_get_lwp (ptid);
+
+  xfree (reason_string);
+
+  buffer_init (&buffer);
+  linux_ptrace_attach_fail_reason (lwpid, &buffer);
+  buffer_grow_str0 (&buffer, "");
+  warnings = buffer_finish (&buffer);
+  if (warnings[0] != '\0')
+    reason_string = xstrprintf ("%s (%d), %s",
+				strerror (err), err, warnings);
+  else
+    reason_string = xstrprintf ("%s (%d)",
+				strerror (err), err);
+  xfree (warnings);
+  return reason_string;
+}
+
 #if defined __i386__ || defined __x86_64__
 
 /* Address of the 'ret' instruction in asm code block below.  */
@@ -508,7 +534,8 @@ linux_disable_event_reporting (pid_t pid
 static int
 ptrace_supports_feature (int ptrace_options)
 {
-  gdb_assert (current_ptrace_options >= 0);
+  if (current_ptrace_options == -1)
+    linux_check_ptrace_features ();
 
   return ((current_ptrace_options & ptrace_options) == ptrace_options);
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-ptrace.h ./gdb/nat/linux-ptrace.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/nat/linux-ptrace.h	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/nat/linux-ptrace.h	2015-01-13 01:48:39.000000000 +0000
@@ -89,6 +89,14 @@ struct buffer;
 #endif
 
 extern void linux_ptrace_attach_fail_reason (pid_t pid, struct buffer *buffer);
+
+/* Find all possible reasons we could have failed to attach to PTID
+   and return them as a string.  ERR is the error PTRACE_ATTACH failed
+   with (an errno).  The result is stored in a static buffer.  This
+   string should be copied into a buffer by the client if the string
+   will not be immediately used, or if it must persist.  */
+extern char *linux_ptrace_attach_fail_reason_string (ptid_t ptid, int err);
+
 extern void linux_ptrace_init_warnings (void);
 extern void linux_enable_event_reporting (pid_t pid, int attached);
 extern void linux_disable_event_reporting (pid_t pid);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/NEWS ./gdb/NEWS
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/NEWS	2015-01-06 01:48:31.000000000 +0000
+++ ./gdb/NEWS	2015-01-13 01:48:38.000000000 +0000
@@ -47,6 +47,12 @@
 
 * New commands
 
+demangle [-l language] [--] name
+  Demangle "name" in the specified language, or the current language
+  if elided.  This command is renamed from the "maint demangle" command.
+  The latter is kept as a no-op to avoid "maint demangle" being interpreted
+  as "maint demangler-warning".
+
 queue-signal signal-name-or-number
   Queue a signal to be delivered to the thread when it is resumed.
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/po/gdb.pot	2015-01-06 01:51:20.000000000 +0000
+++ ./gdb/po/gdb.pot	2015-01-13 01:52:13.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-01-06 01:51+0000\n"
+"POT-Creation-Date: 2015-01-13 01:52+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"
@@ -745,8 +745,8 @@ msgstr ""
 msgid "condition missing after `if' keyword"
 msgstr ""
 
-#: ada-lang.c:12712 break-catch-throw.c:471 breakpoint.c:9872
-#: breakpoint.c:11813 breakpoint.c:11957 breakpoint.c:12002 breakpoint.c:15666
+#: ada-lang.c:12712 break-catch-throw.c:471 breakpoint.c:9905
+#: breakpoint.c:11846 breakpoint.c:11990 breakpoint.c:12035 breakpoint.c:15699
 msgid "Junk at end of arguments."
 msgstr ""
 
@@ -3222,7 +3222,7 @@ msgid ""
 "defined for this breakpoint."
 msgstr ""
 
-#: breakpoint.c:1108 breakpoint.c:14810
+#: breakpoint.c:1108 breakpoint.c:14843
 #, possible-c-format
 msgid "No breakpoint number %d."
 msgstr ""
@@ -3342,393 +3342,393 @@ msgstr ""
 msgid "Could not remove hardware watchpoint %d."
 msgstr ""
 
-#: breakpoint.c:4658
+#: breakpoint.c:4691
 msgid "<unreadable>"
 msgstr ""
 
-#: breakpoint.c:4705
+#: breakpoint.c:4738
 msgid "print_bp_stop_message: unrecognized enum value"
 msgstr ""
 
-#: breakpoint.c:4724
+#: breakpoint.c:4757
 msgid "Stopped due to shared library event:\n"
 msgstr ""
 
-#: breakpoint.c:4727
+#: breakpoint.c:4760
 msgid "Stopped due to shared library event (no libraries added or removed)\n"
 msgstr ""
 
-#: breakpoint.c:4741
+#: breakpoint.c:4774
 msgid "  Inferior unloaded "
 msgstr ""
 
-#: breakpoint.c:4764
+#: breakpoint.c:4797
 msgid "  Inferior loaded "
 msgstr ""
 
 #. Error from catch_errors.
-#: breakpoint.c:5271
+#: breakpoint.c:5304
 #, possible-c-format
 msgid "Watchpoint %d deleted.\n"
 msgstr ""
 
-#: breakpoint.c:5402
+#: breakpoint.c:5435
 msgid "Watchpoint condition cannot be tested in the current scope"
 msgstr ""
 
-#: breakpoint.c:5774
+#: breakpoint.c:5807
 msgid "bpstat_what: tracepoint encountered"
 msgstr ""
 
-#: breakpoint.c:5795
+#: breakpoint.c:5828
 #, possible-c-format
 msgid "bpstat_what: unhandled bptype %d"
 msgstr ""
 
-#: breakpoint.c:6064
+#: breakpoint.c:6097
 #, possible-c-format
 msgid "bptypes table does not describe type #%d."
 msgstr ""
 
-#: breakpoint.c:6198
+#: breakpoint.c:6231
 msgid "print_one_breakpoint: bp_none encountered\n"
 msgstr ""
 
-#: breakpoint.c:6834
+#: breakpoint.c:6867
 msgid "Note: breakpoint "
 msgstr ""
 
 #. if (others == ???)
-#: breakpoint.c:6836
+#: breakpoint.c:6869
 msgid "Note: breakpoints "
 msgstr ""
 
-#: breakpoint.c:6854
+#: breakpoint.c:6887
 msgid "also set at pc "
 msgstr ""
 
-#: breakpoint.c:7031
+#: breakpoint.c:7064
 #, possible-c-format
 msgid "Breakpoint %d address previously adjusted from %s to %s."
 msgstr ""
 
-#: breakpoint.c:7034
+#: breakpoint.c:7067
 #, possible-c-format
 msgid "Breakpoint address adjusted from %s to %s."
 msgstr ""
 
-#: breakpoint.c:7150
+#: breakpoint.c:7183
 msgid "unknown breakpoint type"
 msgstr ""
 
-#: breakpoint.c:7779
+#: breakpoint.c:7812
 #, possible-c-format
 msgid "Temporarily disabling breakpoints for unloaded shared library \"%s\""
 msgstr ""
 
-#: breakpoint.c:7980
+#: breakpoint.c:8013
 #, possible-c-format
 msgid "Catchpoint %d (fork)"
 msgstr ""
 
-#: breakpoint.c:8096
+#: breakpoint.c:8129
 #, possible-c-format
 msgid "Catchpoint %d (vfork)"
 msgstr ""
 
-#: breakpoint.c:8273
+#: breakpoint.c:8306
 #, possible-c-format
 msgid "load of library matching %s"
 msgstr ""
 
-#: breakpoint.c:8275
+#: breakpoint.c:8308
 msgid "load of library"
 msgstr ""
 
-#: breakpoint.c:8280
+#: breakpoint.c:8313
 #, possible-c-format
 msgid "unload of library matching %s"
 msgstr ""
 
-#: breakpoint.c:8282
+#: breakpoint.c:8315
 msgid "unload of library"
 msgstr ""
 
-#: breakpoint.c:8297
+#: breakpoint.c:8330
 #, possible-c-format
 msgid "Catchpoint %d (%s)"
 msgstr ""
 
-#: breakpoint.c:8347 objc-lang.c:589 objc-lang.c:740 symtab.c:3816
+#: breakpoint.c:8380 objc-lang.c:589 objc-lang.c:740 symtab.c:3816
 #: thread.c:1567
 #, possible-c-format
 msgid "Invalid regexp (%s): %s"
 msgstr ""
 
-#: breakpoint.c:8719
+#: breakpoint.c:8752
 #, possible-c-format
 msgid "Catchpoint %d (syscalls"
 msgstr ""
 
-#: breakpoint.c:8721
+#: breakpoint.c:8754
 #, possible-c-format
 msgid "Catchpoint %d (syscall"
 msgstr ""
 
-#: breakpoint.c:8738
+#: breakpoint.c:8771
 #, possible-c-format
 msgid "Catchpoint %d (any syscall)"
 msgstr ""
 
-#: breakpoint.c:8950
+#: breakpoint.c:8983
 #, possible-c-format
 msgid "Catchpoint %d (exec)"
 msgstr ""
 
-#: breakpoint.c:9354 printcmd.c:2259
+#: breakpoint.c:9387 printcmd.c:2259
 msgid "Bad format string, missing '\"'."
 msgstr ""
 
-#: breakpoint.c:9361
+#: breakpoint.c:9394
 msgid "No function supplied for dprintf call"
 msgstr ""
 
-#: breakpoint.c:9379
+#: breakpoint.c:9412
 msgid "Target cannot run dprintf commands, falling back to GDB printf"
 msgstr ""
 
-#: breakpoint.c:9385
+#: breakpoint.c:9418
 msgid "Invalid dprintf style."
 msgstr ""
 
-#: breakpoint.c:9446 breakpoint.c:15028
+#: breakpoint.c:9479 breakpoint.c:15061
 msgid "No hardware breakpoint support in the target."
 msgstr ""
 
-#: breakpoint.c:9448 breakpoint.c:10577 breakpoint.c:15030
+#: breakpoint.c:9481 breakpoint.c:10610 breakpoint.c:15063
 msgid "Hardware breakpoints used exceeds limit."
 msgstr ""
 
-#: breakpoint.c:9503 breakpoint.c:9512
+#: breakpoint.c:9536 breakpoint.c:9545
 #, possible-c-format
 msgid "Probed static tracepoint marker \"%s\"\n"
 msgstr ""
 
-#: breakpoint.c:9517
+#: breakpoint.c:9550
 msgid "Couldn't determine the static tracepoint marker to probe"
 msgstr ""
 
-#: breakpoint.c:9537
+#: breakpoint.c:9570
 #, possible-c-format
 msgid "Garbage '%s' follows condition"
 msgstr ""
 
-#: breakpoint.c:9547 breakpoint.c:13814
+#: breakpoint.c:9580 breakpoint.c:13847
 msgid "Format string required"
 msgstr ""
 
-#: breakpoint.c:9550
+#: breakpoint.c:9583
 #, possible-c-format
 msgid "Garbage '%s' at end of command"
 msgstr ""
 
-#: breakpoint.c:9709
+#: breakpoint.c:9742
 msgid "No default breakpoint address now."
 msgstr ""
 
-#: breakpoint.c:9781
+#: breakpoint.c:9814
 #, possible-c-format
 msgid "May not have a fast tracepoint at 0x%s%s"
 msgstr ""
 
-#: breakpoint.c:9793 thread.c:1487
+#: breakpoint.c:9826 thread.c:1487
 #, possible-c-format
 msgid "Unknown thread %d."
 msgstr ""
 
-#: breakpoint.c:9849
+#: breakpoint.c:9882
 msgid "Junk after thread keyword."
 msgstr ""
 
-#: breakpoint.c:9861
+#: breakpoint.c:9894
 msgid "Junk after task keyword."
 msgstr ""
 
-#: breakpoint.c:9863
+#: breakpoint.c:9896
 #, possible-c-format
 msgid "Unknown task %d."
 msgstr ""
 
-#: breakpoint.c:9898
+#: breakpoint.c:9931
 #, possible-c-format
 msgid "No known static tracepoint marker named %s"
 msgstr ""
 
-#: breakpoint.c:9989
+#: breakpoint.c:10022
 #, possible-c-format
 msgid "Make %s pending on future shared library load? "
 msgstr ""
 
-#: breakpoint.c:10076
+#: breakpoint.c:10109
 #, possible-c-format
 msgid "Garbage '%s' at end of location"
 msgstr ""
 
-#: breakpoint.c:10143
+#: breakpoint.c:10176
 msgid ""
 "Multiple breakpoints were set.\n"
 "Use the \"delete\" command to delete unwanted breakpoints."
 msgstr ""
 
-#: breakpoint.c:10206 linespec.c:1977
+#: breakpoint.c:10239 linespec.c:1977
 #, possible-c-format
 msgid "No line %d in file \"%s\"."
 msgstr ""
 
-#: breakpoint.c:10282
+#: breakpoint.c:10315
 msgid ""
 "Specify the type of breakpoint to set.\n"
 "Usage: stop in <function | address>\n"
 "       stop at <line>\n"
 msgstr ""
 
-#: breakpoint.c:10315
+#: breakpoint.c:10348
 msgid "Usage: stop in <function | address>\n"
 msgstr ""
 
-#: breakpoint.c:10347
+#: breakpoint.c:10380
 msgid "Usage: stop at <line>\n"
 msgstr ""
 
-#: breakpoint.c:10376
+#: breakpoint.c:10409
 msgid "May only run agent-printf on the target"
 msgstr ""
 
-#: breakpoint.c:10504
+#: breakpoint.c:10537
 #, possible-c-format
 msgid "Hardware assisted ranged breakpoint %d from %s to %s."
 msgstr ""
 
-#: breakpoint.c:10545 breakpoint.c:10625
+#: breakpoint.c:10578 breakpoint.c:10658
 msgid "Could not find location of the end of the range."
 msgstr ""
 
-#: breakpoint.c:10570
+#: breakpoint.c:10603
 msgid "This target does not support hardware ranged breakpoints."
 msgstr ""
 
-#: breakpoint.c:10581
+#: breakpoint.c:10614
 msgid "No address range specified."
 msgstr ""
 
-#: breakpoint.c:10591
+#: breakpoint.c:10624
 msgid "Too few arguments."
 msgstr ""
 
-#: breakpoint.c:10593
+#: breakpoint.c:10626
 msgid "Could not find location of the beginning of the range."
 msgstr ""
 
-#: breakpoint.c:10599 breakpoint.c:10630
+#: breakpoint.c:10632 breakpoint.c:10663
 msgid "Cannot create a ranged breakpoint with multiple locations."
 msgstr ""
 
-#: breakpoint.c:10638
+#: breakpoint.c:10671
 msgid "Invalid address range, end precedes start."
 msgstr ""
 
 #. Length overflowed.
-#: breakpoint.c:10643
+#: breakpoint.c:10676
 msgid "Address range too large."
 msgstr ""
 
-#: breakpoint.c:11034 breakpoint.c:11171 breakpoint.c:11227 breakpoint.c:11258
+#: breakpoint.c:11067 breakpoint.c:11204 breakpoint.c:11260 breakpoint.c:11291
 msgid "Invalid hardware watchpoint type."
 msgstr ""
 
-#: breakpoint.c:11065
+#: breakpoint.c:11098
 msgid "Invalid watchpoint type."
 msgstr ""
 
-#: breakpoint.c:11175
+#: breakpoint.c:11208
 msgid ""
 "\n"
 "Check the underlying instruction at PC for the memory\n"
 "address and value which triggered this watchpoint.\n"
 msgstr ""
 
-#: breakpoint.c:11351
+#: breakpoint.c:11384
 msgid "You can specify only one thread."
 msgstr ""
 
-#: breakpoint.c:11359
+#: breakpoint.c:11392
 #, possible-c-format
 msgid "Invalid thread ID specification %s."
 msgstr ""
 
-#: breakpoint.c:11373
+#: breakpoint.c:11406
 msgid "You can specify only one mask."
 msgstr ""
 
-#: breakpoint.c:11417
+#: breakpoint.c:11450
 #, possible-c-format
 msgid "Cannot watch constant value `%.*s'."
 msgstr ""
 
-#: breakpoint.c:11444
+#: breakpoint.c:11477
 msgid "This target does not support masked watchpoints."
 msgstr ""
 
-#: breakpoint.c:11446
+#: breakpoint.c:11479
 msgid "Invalid mask or memory region."
 msgstr ""
 
-#: breakpoint.c:11472
+#: breakpoint.c:11505
 msgid "Junk at end of command."
 msgstr ""
 
-#: breakpoint.c:11807
+#: breakpoint.c:11840
 msgid "Couldn't get information on specified line."
 msgstr ""
 
-#: breakpoint.c:11974
+#: breakpoint.c:12007
 msgid "unsupported or unknown fork kind; cannot catch it"
 msgstr ""
 
 #. Here we have to issue an error instead of a warning,
 #. because GDB cannot do anything useful if there's no
 #. syscall number to be caught.
-#: breakpoint.c:12086
+#: breakpoint.c:12119
 #, possible-c-format
 msgid "Unknown syscall name '%s'."
 msgstr ""
 
-#: breakpoint.c:12110
+#: breakpoint.c:12143
 msgid "The feature 'catch syscall' is not supported on this architecture yet."
 msgstr ""
 
-#: breakpoint.c:12141 breakpoint.c:12148
+#: breakpoint.c:12174 breakpoint.c:12181
 msgid "Catch requires an event name."
 msgstr ""
 
-#: breakpoint.c:12207
+#: breakpoint.c:12240
 msgid "No source file specified."
 msgstr ""
 
-#: breakpoint.c:12305
+#: breakpoint.c:12338
 #, possible-c-format
 msgid "No breakpoint at %s."
 msgstr ""
 
-#: breakpoint.c:12307
+#: breakpoint.c:12340
 msgid "No breakpoint at this line."
 msgstr ""
 
-#: breakpoint.c:12330
+#: breakpoint.c:12363
 msgid "Deleted breakpoint "
 msgstr ""
 
-#: breakpoint.c:12332
+#: breakpoint.c:12365
 msgid "Deleted breakpoints "
 msgstr ""
 
@@ -3740,190 +3740,190 @@ msgstr ""
 #. Note that at this point, old_loc->owner is still
 #. valid, as delete_breakpoint frees the breakpoint
 #. only after calling us.
-#: breakpoint.c:12760
+#: breakpoint.c:12793
 #, possible-c-format
 msgid "warning: Error removing breakpoint %d\n"
 msgstr ""
 
-#: breakpoint.c:12868
+#: breakpoint.c:12901
 msgid "allegedly permanent breakpoint is not actually inserted"
 msgstr ""
 
-#: breakpoint.c:12910
+#: breakpoint.c:12943
 msgid "another breakpoint was inserted on top of a permanent breakpoint"
 msgstr ""
 
-#: breakpoint.c:13000
+#: breakpoint.c:13033
 #, possible-c-format
 msgid " (%s) pending."
 msgstr ""
 
-#: breakpoint.c:13356
+#: breakpoint.c:13389
 msgid "Temporary breakpoint"
 msgstr ""
 
-#: breakpoint.c:13358
+#: breakpoint.c:13391
 msgid "Breakpoint"
 msgstr ""
 
-#: breakpoint.c:13359 breakpoint.c:13697 breakpoint.c:13701 breakpoint.c:13705
+#: breakpoint.c:13392 breakpoint.c:13730 breakpoint.c:13734 breakpoint.c:13738
 #, possible-c-format
 msgid " %d"
 msgstr ""
 
-#: breakpoint.c:13361
+#: breakpoint.c:13394
 msgid " at gnu-indirect-function resolver"
 msgstr ""
 
-#: breakpoint.c:13364
+#: breakpoint.c:13397
 #, possible-c-format
 msgid "Hardware assisted breakpoint %d"
 msgstr ""
 
-#: breakpoint.c:13367
+#: breakpoint.c:13400
 #, possible-c-format
 msgid "Dprintf %d"
 msgstr ""
 
-#: breakpoint.c:13388
+#: breakpoint.c:13421
 #, possible-c-format
 msgid "unhandled breakpoint type %d"
 msgstr ""
 
 #. Not sure how we will get here.
 #. GDB should not stop for these breakpoints.
-#: breakpoint.c:13494
+#: breakpoint.c:13527
 msgid "Thread Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. By analogy with the thread event, GDB should not stop for these.
-#: breakpoint.c:13499
+#: breakpoint.c:13532
 msgid "Overlay Event Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:13504
+#: breakpoint.c:13537
 msgid "Longjmp Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:13509
+#: breakpoint.c:13542
 msgid "std::terminate Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
 #. These should never be enabled.
-#: breakpoint.c:13515
+#: breakpoint.c:13548
 msgid "Exception Master Breakpoint: gdb should not stop!\n"
 msgstr ""
 
-#: breakpoint.c:13650
+#: breakpoint.c:13683
 msgid "probe not found"
 msgstr ""
 
-#: breakpoint.c:13696
+#: breakpoint.c:13729
 msgid "Tracepoint"
 msgstr ""
 
-#: breakpoint.c:13700
+#: breakpoint.c:13733
 msgid "Fast tracepoint"
 msgstr ""
 
-#: breakpoint.c:13704
+#: breakpoint.c:13737
 msgid "Static tracepoint"
 msgstr ""
 
-#: breakpoint.c:13709 breakpoint.c:13728
+#: breakpoint.c:13742 breakpoint.c:13761
 #, possible-c-format
 msgid "unhandled tracepoint type %d"
 msgstr ""
 
-#: breakpoint.c:13970
+#: breakpoint.c:14003
 #, possible-c-format
 msgid "marker %s not found"
 msgstr ""
 
-#: breakpoint.c:14164
+#: breakpoint.c:14197
 msgid "Delete all breakpoints? "
 msgstr ""
 
-#: breakpoint.c:14270
+#: breakpoint.c:14303
 #, possible-c-format
 msgid "static tracepoint %d changed probed marker from %s to %s"
 msgstr ""
 
-#: breakpoint.c:14305
+#: breakpoint.c:14338
 #, possible-c-format
 msgid "marker for static tracepoint %d (%s) not found at previous line number"
 msgstr ""
 
-#: breakpoint.c:14398
+#: breakpoint.c:14431
 #, possible-c-format
 msgid "Could not reset ranged breakpoint %d: multiple locations found\n"
 msgstr ""
 
-#: breakpoint.c:14439
+#: breakpoint.c:14472
 #, possible-c-format
 msgid "failed to reevaluate condition for breakpoint %d: %s"
 msgstr ""
 
-#: breakpoint.c:14786
+#: breakpoint.c:14819
 #, possible-c-format
 msgid "Ignore count ignored for tracepoint %d."
 msgstr ""
 
-#: breakpoint.c:14795
+#: breakpoint.c:14828
 #, possible-c-format
 msgid "Will stop next time breakpoint %d is reached."
 msgstr ""
 
-#: breakpoint.c:14799
+#: breakpoint.c:14832
 #, possible-c-format
 msgid "Will ignore next crossing of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:14802
+#: breakpoint.c:14835
 #, possible-c-format
 msgid "Will ignore next %d crossings of breakpoint %d."
 msgstr ""
 
-#: breakpoint.c:14822
+#: breakpoint.c:14855
 msgid "a breakpoint number"
 msgstr ""
 
-#: breakpoint.c:14826
+#: breakpoint.c:14859
 #, possible-c-format
 msgid "bad breakpoint number: '%s'"
 msgstr ""
 
-#: breakpoint.c:14828
+#: breakpoint.c:14861
 msgid "Second argument (specified ignore-count) is missing."
 msgstr ""
 
-#: breakpoint.c:14851
+#: breakpoint.c:14884
 msgid "one or more breakpoint numbers"
 msgstr ""
 
-#: breakpoint.c:14864
+#: breakpoint.c:14897
 #, possible-c-format
 msgid "bad breakpoint number at or near '%s'"
 msgstr ""
 
-#: breakpoint.c:14876
+#: breakpoint.c:14909
 #, possible-c-format
 msgid "No breakpoint number %d.\n"
 msgstr ""
 
-#: breakpoint.c:14896 breakpoint.c:14905
+#: breakpoint.c:14929 breakpoint.c:14938
 #, possible-c-format
 msgid "Bad breakpoint number '%s'"
 msgstr ""
 
-#: breakpoint.c:14910 breakpoint.c:14917
+#: breakpoint.c:14943 breakpoint.c:14950
 #, possible-c-format
 msgid "Bad breakpoint location number '%s'"
 msgstr ""
 
-#: breakpoint.c:15050
+#: breakpoint.c:15083
 #, possible-c-format
 msgid "Cannot enable watchpoint %d: "
 msgstr ""
@@ -3932,72 +3932,72 @@ msgstr ""
 #. address.  Since there is no way to confirm that the address
 #. means the same thing as when the trace was started, warn the
 #. user.
-#: breakpoint.c:15487
+#: breakpoint.c:15520
 #, possible-c-format
 msgid "Uploaded tracepoint %d has no source location, using raw address"
 msgstr ""
 
-#: breakpoint.c:15496
+#: breakpoint.c:15529
 #, possible-c-format
 msgid "Uploaded tracepoint %d condition has no source form, ignoring it"
 msgstr ""
 
-#: breakpoint.c:15544
+#: breakpoint.c:15577
 #, possible-c-format
 msgid "Uploaded tracepoint %d actions have no source form, ignoring them"
 msgstr ""
 
-#: breakpoint.c:15618
+#: breakpoint.c:15651
 msgid "Delete all tracepoints? "
 msgstr ""
 
-#: breakpoint.c:15637
+#: breakpoint.c:15670
 #, possible-c-format
 msgid "Setting tracepoint %d's passcount to %d\n"
 msgstr ""
 
-#: breakpoint.c:15654
+#: breakpoint.c:15687
 msgid "passcount command requires an argument (count + optional TP num)"
 msgstr ""
 
-#: breakpoint.c:15752
+#: breakpoint.c:15785
 #, possible-c-format
 msgid "bad tracepoint number at or near '%s'\n"
 msgstr ""
 
-#: breakpoint.c:15755
+#: breakpoint.c:15788
 msgid "No previous tracepoint\n"
 msgstr ""
 
-#: breakpoint.c:15797
+#: breakpoint.c:15830
 msgid "Argument required (file name in which to save)"
 msgstr ""
 
-#: breakpoint.c:15823
+#: breakpoint.c:15856
 msgid "Nothing to save."
 msgstr ""
 
-#: breakpoint.c:15831
+#: breakpoint.c:15864
 #, possible-c-format
 msgid "Unable to open file '%s' for saving (%s)"
 msgstr ""
 
-#: breakpoint.c:15900
+#: breakpoint.c:15933
 #, possible-c-format
 msgid "Saved to file '%s'.\n"
 msgstr ""
 
-#: breakpoint.c:16003
+#: breakpoint.c:16036
 msgid "\"save\" must be followed by the name of a save subcommand.\n"
 msgstr ""
 
-#: breakpoint.c:16301
+#: breakpoint.c:16334
 msgid ""
 "Set ignore-count of breakpoint number N to COUNT.\n"
 "Usage is `ignore N COUNT'."
 msgstr ""
 
-#: breakpoint.c:16307
+#: breakpoint.c:16340
 msgid ""
 "Set commands to be executed when a breakpoint is hit.\n"
 "Give breakpoint number as argument after \"commands\".\n"
@@ -4008,14 +4008,14 @@ msgid ""
 "then no output is printed when it is hit, except what the commands print."
 msgstr ""
 
-#: breakpoint.c:16316
+#: breakpoint.c:16349
 msgid ""
 "Specify breakpoint number N to break only if COND is true.\n"
 "Usage is `condition N COND', where N is an integer and COND is an\n"
 "expression to be evaluated whenever breakpoint N is reached."
 msgstr ""
 
-#: breakpoint.c:16322
+#: breakpoint.c:16355
 msgid ""
 "Set a temporary breakpoint.\n"
 "Like \"break\" except the breakpoint is only temporary,\n"
@@ -4024,7 +4024,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16331
+#: breakpoint.c:16364
 msgid ""
 "Set a hardware assisted breakpoint.\n"
 "Like \"break\" except the breakpoint requires hardware support,\n"
@@ -4032,7 +4032,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16339
+#: breakpoint.c:16372
 msgid ""
 "Set a temporary hardware assisted breakpoint.\n"
 "Like \"hbreak\" except the breakpoint is only temporary,\n"
@@ -4040,7 +4040,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: breakpoint.c:16347 breakpoint.c:16355
+#: breakpoint.c:16380 breakpoint.c:16388
 msgid ""
 "Enable some breakpoints.\n"
 "Give breakpoint numbers (separated by spaces) as arguments.\n"
@@ -4049,7 +4049,7 @@ msgid ""
 "With a subcommand you can enable temporarily."
 msgstr ""
 
-#: breakpoint.c:16364
+#: breakpoint.c:16397
 msgid ""
 "Enable some breakpoints.\n"
 "Give breakpoint numbers (separated by spaces) as arguments.\n"
@@ -4057,26 +4057,26 @@ msgid ""
 "May be abbreviated to simply \"enable\".\n"
 msgstr ""
 
-#: breakpoint.c:16371 breakpoint.c:16392
+#: breakpoint.c:16404 breakpoint.c:16425
 msgid ""
 "Enable breakpoints for one hit.  Give breakpoint numbers.\n"
 "If a breakpoint is hit while enabled in this fashion, it becomes disabled."
 msgstr ""
 
-#: breakpoint.c:16376 breakpoint.c:16387
+#: breakpoint.c:16409 breakpoint.c:16420
 msgid ""
 "Enable breakpoints and delete when hit.  Give breakpoint numbers.\n"
 "If a breakpoint is hit while enabled in this fashion, it is deleted."
 msgstr ""
 
-#: breakpoint.c:16381 breakpoint.c:16397
+#: breakpoint.c:16414 breakpoint.c:16430
 msgid ""
 "Enable breakpoints for COUNT hits.  Give count and then breakpoint numbers.\n"
 "If a breakpoint is hit while enabled in this fashion,\n"
 "the count is decremented; when it reaches zero, the breakpoint is disabled."
 msgstr ""
 
-#: breakpoint.c:16403 breakpoint.c:16412
+#: breakpoint.c:16436 breakpoint.c:16445
 msgid ""
 "Disable some breakpoints.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4084,7 +4084,7 @@ msgid ""
 "A disabled breakpoint is not forgotten, but has no effect until re-enabled."
 msgstr ""
 
-#: breakpoint.c:16418
+#: breakpoint.c:16451
 msgid ""
 "Disable some breakpoints.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4093,7 +4093,7 @@ msgid ""
 "This command may be abbreviated \"disable\"."
 msgstr ""
 
-#: breakpoint.c:16426
+#: breakpoint.c:16459
 msgid ""
 "Delete some breakpoints or auto-display expressions.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4103,14 +4103,14 @@ msgid ""
 "The \"unset\" command is also an alias for \"delete\"."
 msgstr ""
 
-#: breakpoint.c:16437
+#: breakpoint.c:16470
 msgid ""
 "Delete some breakpoints.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
 "To delete all breakpoints, give no argument.\n"
 msgstr ""
 
-#: breakpoint.c:16442
+#: breakpoint.c:16475
 msgid ""
 "Delete some breakpoints or auto-display expressions.\n"
 "Arguments are breakpoint numbers with spaces in between.\n"
@@ -4118,7 +4118,7 @@ msgid ""
 "This command may be abbreviated \"delete\"."
 msgstr ""
 
-#: breakpoint.c:16449
+#: breakpoint.c:16482
 msgid ""
 "Clear breakpoint at specified line or function.\n"
 "Argument may be line number, function name, or \"*\" and an address.\n"
@@ -4133,23 +4133,23 @@ msgid ""
 "See also the \"delete\" command which clears breakpoints by number."
 msgstr ""
 
-#: breakpoint.c:16462
+#: breakpoint.c:16495
 msgid "Set breakpoint at specified line or function.\n"
 msgstr ""
 
-#: breakpoint.c:16477
+#: breakpoint.c:16510
 msgid "Break in function/address or break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:16481
+#: breakpoint.c:16514
 msgid "Break in function or address."
 msgstr ""
 
-#: breakpoint.c:16483
+#: breakpoint.c:16516
 msgid "Break at a line in the current file."
 msgstr ""
 
-#: breakpoint.c:16484 breakpoint.c:16520
+#: breakpoint.c:16517 breakpoint.c:16553
 msgid ""
 "Status of user-settable breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4171,7 +4171,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:16501
+#: breakpoint.c:16534
 msgid ""
 "Status of specified breakpoints (all user-settable breakpoints if no "
 "argument).\n"
@@ -4194,7 +4194,7 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:16536
+#: breakpoint.c:16569
 msgid ""
 "Status of all breakpoints, or breakpoint number NUMBER.\n"
 "The \"Type\" column indicates one of:\n"
@@ -4220,43 +4220,43 @@ msgid ""
 "breakpoint set."
 msgstr ""
 
-#: breakpoint.c:16557
+#: breakpoint.c:16590
 msgid "Set catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16562
+#: breakpoint.c:16595
 msgid "Set temporary catchpoints to catch events."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16567
+#: breakpoint.c:16600
 msgid "Catch calls to fork."
 msgstr ""
 
-#: breakpoint.c:16572
+#: breakpoint.c:16605
 msgid "Catch calls to vfork."
 msgstr ""
 
-#: breakpoint.c:16577
+#: breakpoint.c:16610
 msgid "Catch calls to exec."
 msgstr ""
 
-#: breakpoint.c:16582
+#: breakpoint.c:16615
 msgid ""
 "Catch loads of shared libraries.\n"
 "Usage: catch load [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:16589
+#: breakpoint.c:16622
 msgid ""
 "Catch unloads of shared libraries.\n"
 "Usage: catch unload [REGEX]\n"
 "If REGEX is given, only stop for libraries matching the regular expression."
 msgstr ""
 
-#: breakpoint.c:16596
+#: breakpoint.c:16629
 msgid ""
 "Catch system calls by their names and/or numbers.\n"
 "Arguments say which system calls to catch.  If no arguments\n"
@@ -4265,7 +4265,7 @@ msgid ""
 "(if your system supports that), or system call numbers."
 msgstr ""
 
-#: breakpoint.c:16607
+#: breakpoint.c:16640
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: watch [-l|-location] EXPRESSION\n"
@@ -4275,7 +4275,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:16616
+#: breakpoint.c:16649
 msgid ""
 "Set a read watchpoint for an expression.\n"
 "Usage: rwatch [-l|-location] EXPRESSION\n"
@@ -4285,7 +4285,7 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:16625
+#: breakpoint.c:16658
 msgid ""
 "Set a watchpoint for an expression.\n"
 "Usage: awatch [-l|-location] EXPRESSION\n"
@@ -4295,19 +4295,19 @@ msgid ""
 "the memory to which it refers."
 msgstr ""
 
-#: breakpoint.c:16634
+#: breakpoint.c:16667
 msgid "Status of specified watchpoints (all watchpoints if no argument)."
 msgstr ""
 
-#: breakpoint.c:16640
+#: breakpoint.c:16673
 msgid "Set debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:16641
+#: breakpoint.c:16674
 msgid "Show debugger's willingness to use watchpoint hardware."
 msgstr ""
 
-#: breakpoint.c:16642
+#: breakpoint.c:16675
 msgid ""
 "If zero, gdb will not use hardware for new watchpoints, even if\n"
 "such is available.  (However, any hardware watchpoints that were\n"
@@ -4316,19 +4316,19 @@ msgid ""
 msgstr ""
 
 #. Tracepoint manipulation commands.
-#: breakpoint.c:16655
+#: breakpoint.c:16688
 msgid ""
 "Set a tracepoint at specified line or function.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:16667
+#: breakpoint.c:16700
 msgid ""
 "Set a fast tracepoint at specified line or function.\n"
 "\n"
 msgstr ""
 
-#: breakpoint.c:16674
+#: breakpoint.c:16707
 msgid ""
 "Set a static tracepoint at specified line, function or marker.\n"
 "\n"
@@ -4356,35 +4356,35 @@ msgid ""
 "Do \"help tracepoints\" for info on other tracepoint commands."
 msgstr ""
 
-#: breakpoint.c:16700
+#: breakpoint.c:16733
 msgid ""
 "Status of specified tracepoints (all tracepoints if no argument).\n"
 "Convenience variable \"$tpnum\" contains the number of the\n"
 "last tracepoint set."
 msgstr ""
 
-#: breakpoint.c:16707
+#: breakpoint.c:16740
 msgid ""
 "Delete specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means delete all tracepoints."
 msgstr ""
 
-#: breakpoint.c:16714
+#: breakpoint.c:16747
 msgid ""
 "Disable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means disable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:16721
+#: breakpoint.c:16754
 msgid ""
 "Enable specified tracepoints.\n"
 "Arguments are tracepoint numbers, separated by spaces.\n"
 "No argument means enable all tracepoints."
 msgstr ""
 
-#: breakpoint.c:16728
+#: breakpoint.c:16761
 msgid ""
 "Set the passcount for a tracepoint.\n"
 "The trace will end when the tracepoint has been passed 'count' times.\n"
@@ -4392,12 +4392,12 @@ msgid ""
 "if TPNUM is omitted, passcount refers to the last tracepoint defined."
 msgstr ""
 
-#: breakpoint.c:16735
+#: breakpoint.c:16768
 msgid "Save breakpoint definitions as a script."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16739
+#: breakpoint.c:16772
 msgid ""
 "Save current breakpoint definitions as a script.\n"
 "This includes all types of breakpoints (breakpoints, watchpoints,\n"
@@ -4405,29 +4405,29 @@ msgid ""
 "session to restore them."
 msgstr ""
 
-#: breakpoint.c:16747
+#: breakpoint.c:16780
 msgid ""
 "Save current tracepoint definitions as a script.\n"
 "Use the 'source' command in another debug session to restore them."
 msgstr ""
 
 #. allow-unknown
-#: breakpoint.c:16756 breakpoint.c:16762
+#: breakpoint.c:16789 breakpoint.c:16795
 msgid ""
 "Breakpoint specific settings\n"
 "Configure various breakpoint-specific variables such as\n"
 "pending breakpoint behavior"
 msgstr ""
 
-#: breakpoint.c:16770
+#: breakpoint.c:16803
 msgid "Set debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:16771
+#: breakpoint.c:16804
 msgid "Show debugger's behavior regarding pending breakpoints."
 msgstr ""
 
-#: breakpoint.c:16772
+#: breakpoint.c:16805
 msgid ""
 "If on, an unrecognized breakpoint location will cause gdb to create a\n"
 "pending breakpoint.  If off, an unrecognized breakpoint location results in\n"
@@ -4435,15 +4435,15 @@ msgid ""
 "user-query to see if a pending breakpoint should be created."
 msgstr ""
 
-#: breakpoint.c:16785
+#: breakpoint.c:16818
 msgid "Set automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:16786
+#: breakpoint.c:16819
 msgid "Show automatic usage of hardware breakpoints."
 msgstr ""
 
-#: breakpoint.c:16787
+#: breakpoint.c:16820
 msgid ""
 "If set, the debugger will automatically use hardware breakpoints for\n"
 "breakpoints set with \"break\" but falling in read-only memory.  If not "
@@ -4451,15 +4451,15 @@ msgid ""
 "a warning will be emitted for such breakpoints."
 msgstr ""
 
-#: breakpoint.c:16797
+#: breakpoint.c:16830
 msgid "Set mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:16798
+#: breakpoint.c:16831
 msgid "Show mode for inserting breakpoints."
 msgstr ""
 
-#: breakpoint.c:16799
+#: breakpoint.c:16832
 msgid ""
 "When this mode is on, breakpoints are inserted immediately as soon as\n"
 "they're created, kept inserted even when execution stops, and removed\n"
@@ -4468,15 +4468,15 @@ msgid ""
 "when execution stops."
 msgstr ""
 
-#: breakpoint.c:16812
+#: breakpoint.c:16845
 msgid "Set mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:16813
+#: breakpoint.c:16846
 msgid "Show mode of breakpoint condition evaluation."
 msgstr ""
 
-#: breakpoint.c:16814
+#: breakpoint.c:16847
 msgid ""
 "When this is set to \"host\", breakpoint conditions will be\n"
 "evaluated on the host's side by GDB.  When it is set to \"target\",\n"
@@ -4488,7 +4488,7 @@ msgid ""
 "be set to \"gdb\""
 msgstr ""
 
-#: breakpoint.c:16827
+#: breakpoint.c:16860
 msgid ""
 "Set a breakpoint for an address range.\n"
 "break-range START-LOCATION, END-LOCATION\n"
@@ -4506,7 +4506,7 @@ msgid ""
 "range (including START-LOCATION and END-LOCATION)."
 msgstr ""
 
-#: breakpoint.c:16843
+#: breakpoint.c:16876
 msgid ""
 "Set a dynamic printf at specified line or function.\n"
 "dprintf location,format string,arg1,arg2,...\n"
@@ -4515,15 +4515,15 @@ msgid ""
 "If a function is specified, break at start of code for that function."
 msgstr ""
 
-#: breakpoint.c:16852
+#: breakpoint.c:16885
 msgid "Set the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:16853
+#: breakpoint.c:16886
 msgid "Show the style of usage for dynamic printf."
 msgstr ""
 
-#: breakpoint.c:16854
+#: breakpoint.c:16887
 msgid ""
 "This setting chooses how GDB will do a dynamic printf.\n"
 "If the value is \"gdb\", then the printing is done by GDB to its own\n"
@@ -4533,37 +4533,37 @@ msgid ""
 "output stream by setting dprintf-function and dprintf-channel."
 msgstr ""
 
-#: breakpoint.c:16866
+#: breakpoint.c:16899
 msgid "Set the function to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16867
+#: breakpoint.c:16900
 msgid "Show the function to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16874
+#: breakpoint.c:16907
 msgid "Set the channel to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16875
+#: breakpoint.c:16908
 msgid "Show the channel to use for dynamic printf"
 msgstr ""
 
-#: breakpoint.c:16881
+#: breakpoint.c:16914
 msgid "Set whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:16882
+#: breakpoint.c:16915
 msgid "Show whether dprintf continues after GDB disconnects."
 msgstr ""
 
-#: breakpoint.c:16883
+#: breakpoint.c:16916
 msgid ""
 "Use this to let dprintf commands continue to hit and produce output\n"
 "even if GDB disconnects or detaches from the target."
 msgstr ""
 
-#: breakpoint.c:16890
+#: breakpoint.c:16923
 msgid ""
 "agent-printf \"printf format string\", arg1, arg2, arg3, ..., argn\n"
 "(target agent only) This is useful for formatted output in user-defined "
@@ -4713,7 +4713,7 @@ msgstr ""
 #: exec.c:693 language.c:534 mdebugread.c:3668 monitor.c:325 monitor.c:355
 #: monitor.c:1322 printcmd.c:483 printcmd.c:838 printcmd.c:2439 psymtab.c:704
 #: psymtab.c:722 remote-mips.c:2719 target.c:679 target.c:763 target.c:790
-#: utils.c:1958 valprint.c:1040
+#: utils.c:1925 valprint.c:1040
 msgid "failed internal consistency check"
 msgstr ""
 
@@ -5352,7 +5352,7 @@ msgstr ""
 msgid "No default source file yet.  Do \"help list\"."
 msgstr ""
 
-#: cli/cli-cmds.c:1105 dwarf2loc.c:2054 python/py-symbol.c:383 stack.c:2111
+#: cli/cli-cmds.c:1105 dwarf2loc.c:2055 python/py-symbol.c:383 stack.c:2111
 #: stack.c:2193 valops.c:1298
 msgid "No frame selected."
 msgstr ""
@@ -6385,88 +6385,93 @@ msgid ""
 "current thread in compiled code."
 msgstr ""
 
-#: compile/compile-loc2c.c:876 dwarf2loc.c:3102
+#: compile/compile-loc2c.c:876 dwarf2loc.c:3108
 msgid "No block found for address"
 msgstr ""
 
-#: compile/compile-loc2c.c:881 dwarf2loc.c:3107
+#: compile/compile-loc2c.c:881 dwarf2loc.c:3113
 msgid "No function found for block"
 msgstr ""
 
-#: compile/compile-loc2c.c:957 dwarf2loc.c:3164
+#: compile/compile-loc2c.c:957 dwarf2loc.c:3170
 #, possible-c-format
 msgid "Unsupported size %d in %s"
 msgstr ""
 
-#: compile/compile.c:61
+#: compile/compile.c:62
 #, possible-c-format
 msgid "Compile debugging is %s.\n"
 msgstr ""
 
-#: compile/compile.c:97
+#: compile/compile.c:98
 msgid "You must provide a filename for this command."
 msgstr ""
 
-#: compile/compile.c:109
+#: compile/compile.c:110
 msgid "You must provide a filename with the raw option set."
 msgstr ""
 
-#: compile/compile.c:112 compile/compile.c:148
+#: compile/compile.c:113 compile/compile.c:149
 msgid "Unknown argument specified."
 msgstr ""
 
-#: compile/compile.c:197
+#: compile/compile.c:179
+#, possible-c-format
+msgid "Could not remove temporary directory %s"
+msgstr ""
+
+#: compile/compile.c:202
 msgid "Command not supported on this host."
 msgstr ""
 
-#: compile/compile.c:200
+#: compile/compile.c:205
 msgid "Could not make temporary directory"
 msgstr ""
 
-#: compile/compile.c:277
+#: compile/compile.c:282
 #, possible-c-format
 msgid "Compile command command-line arguments are \"%s\".\n"
 msgstr ""
 
-#: compile/compile.c:412
+#: compile/compile.c:417
 msgid "The program must be running for the compile command to work."
 msgstr ""
 
-#: compile/compile.c:420
+#: compile/compile.c:425
 msgid "No compiler support for this language."
 msgstr ""
 
-#: compile/compile.c:449
+#: compile/compile.c:454
 msgid "Neither a simple expression, or a multi-line specified."
 msgstr ""
 
-#: compile/compile.c:490
+#: compile/compile.c:495
 msgid "Could not open source file for writing"
 msgstr ""
 
-#: compile/compile.c:493
+#: compile/compile.c:498
 msgid "Could not write to source file"
 msgstr ""
 
-#: compile/compile.c:505
+#: compile/compile.c:510
 msgid "Compilation failed."
 msgstr ""
 
-#: compile/compile.c:571
+#: compile/compile.c:576
 #, possible-c-format
 msgid "Invalid register name \"%s\"."
 msgstr ""
 
-#: compile/compile.c:578
+#: compile/compile.c:583
 #, possible-c-format
 msgid "Cannot find gdbarch register \"%s\"."
 msgstr ""
 
-#: compile/compile.c:589
+#: compile/compile.c:594
 msgid "Command to compile source code and inject it into the inferior."
 msgstr ""
 
-#: compile/compile.c:595
+#: compile/compile.c:600
 msgid ""
 "Compile, inject, and execute code.\n"
 "\n"
@@ -6487,7 +6492,7 @@ msgid ""
 "the end of the source code."
 msgstr ""
 
-#: compile/compile.c:616
+#: compile/compile.c:621
 msgid ""
 "Evaluate a file containing source code.\n"
 "\n"
@@ -6495,27 +6500,27 @@ msgid ""
 "-r|-raw: Suppress automatic 'void _gdb_expr () { CODE }' wrapping."
 msgstr ""
 
-#: compile/compile.c:624
+#: compile/compile.c:629
 msgid "Set compile command debugging."
 msgstr ""
 
-#: compile/compile.c:625
+#: compile/compile.c:630
 msgid "Show compile command debugging."
 msgstr ""
 
-#: compile/compile.c:626
+#: compile/compile.c:631
 msgid "When on, compile command debugging is enabled."
 msgstr ""
 
-#: compile/compile.c:633
+#: compile/compile.c:638
 msgid "Set compile command GCC command-line arguments"
 msgstr ""
 
-#: compile/compile.c:634
+#: compile/compile.c:639
 msgid "Show compile command GCC command-line arguments"
 msgstr ""
 
-#: compile/compile.c:635
+#: compile/compile.c:640
 msgid ""
 "Use options like -I (include file directory) or ABI settings.\n"
 "String quoting is parsed like in shell, for example:\n"
@@ -7627,16 +7632,16 @@ msgid "unable to create a pipe: %s"
 msgstr ""
 
 #. Trying to masturbate?
-#: darwin-nat.c:1685 gnu-nat.c:2187 inf-ptrace.c:159 inf-ttrace.c:650
+#: darwin-nat.c:1685 gnu-nat.c:2187 inf-ptrace.c:160 inf-ttrace.c:650
 msgid "I refuse to debug myself!"
 msgstr ""
 
-#: darwin-nat.c:1692 inf-ptrace.c:174 inf-ttrace.c:657 remote.c:4467
+#: darwin-nat.c:1692 inf-ptrace.c:175 inf-ttrace.c:657 remote.c:4467
 #, possible-c-format
 msgid "Attaching to program: %s, %s\n"
 msgstr ""
 
-#: darwin-nat.c:1695 inf-ptrace.c:177 inf-ttrace.c:660 procfs.c:3043
+#: darwin-nat.c:1695 inf-ptrace.c:178 inf-ttrace.c:660 procfs.c:3043
 #: remote.c:4470
 #, possible-c-format
 msgid "Attaching to %s\n"
@@ -7647,7 +7652,7 @@ msgstr ""
 msgid "Can't attach to process %d: %s (%d)"
 msgstr ""
 
-#: darwin-nat.c:1747 inf-ptrace.c:235 inf-ttrace.c:705 procfs.c:3070
+#: darwin-nat.c:1747 inf-ptrace.c:236 inf-ttrace.c:705 procfs.c:3070
 #: remote.c:4387
 #, possible-c-format
 msgid "Detaching from program: %s, %s\n"
@@ -8390,50 +8395,76 @@ msgstr ""
 msgid "Show number of dcache lines."
 msgstr ""
 
-#: demangle.c:51
+#: demangle.c:56
 #, possible-c-format
 msgid "Demangling of encoded C++/ObjC names when displaying symbols is %s.\n"
 msgstr ""
 
-#: demangle.c:64
+#: demangle.c:69
 #, possible-c-format
 msgid "Demangling of C++/ObjC names in disassembly listings is %s.\n"
 msgstr ""
 
-#: demangle.c:83
+#: demangle.c:88
 #, possible-c-format
 msgid "The current C++ demangling style is \"%s\".\n"
 msgstr ""
 
-#: demangle.c:180
+#: demangle.c:194
+#, possible-c-format
+msgid "Unrecognized option '%s' to demangle command.  Try \"help demangle\"."
+msgstr ""
+
+#: demangle.c:204
+msgid "Usage: demangle [-l language] [--] name"
+msgstr ""
+
+#: demangle.c:212
+#, possible-c-format
+msgid "Unknown language \"%s\""
+msgstr ""
+
+#: demangle.c:225
+#, possible-c-format
+msgid "Can't demangle \"%s\""
+msgstr ""
+
+#: demangle.c:256
 msgid "Set demangling of encoded C++/ObjC names when displaying symbols."
 msgstr ""
 
-#: demangle.c:181
+#: demangle.c:257
 msgid "Show demangling of encoded C++/ObjC names when displaying symbols."
 msgstr ""
 
-#: demangle.c:187
+#: demangle.c:263
 msgid "Set demangling of C++/ObjC names in disassembly listings."
 msgstr ""
 
-#: demangle.c:188
+#: demangle.c:264
 msgid "Show demangling of C++/ObjC names in disassembly listings."
 msgstr ""
 
-#: demangle.c:196
+#: demangle.c:272
 msgid "Set the current C++ demangling style."
 msgstr ""
 
-#: demangle.c:197
+#: demangle.c:273
 msgid "Show the current C++ demangling style."
 msgstr ""
 
-#: demangle.c:198
+#: demangle.c:274
 msgid ""
 "Use `set demangle-style' without arguments for a list of demangling styles."
 msgstr ""
 
+#: demangle.c:280
+msgid ""
+"Demangle a mangled name.\n"
+"Usage: demangle [-l language] [--] name\n"
+"If LANGUAGE is not specified, NAME is demangled in the current language."
+msgstr ""
+
 #: d-exp.y:1298 jv-exp.y:1444
 msgid "No symbol table is loaded.  Use the \"file\" command"
 msgstr ""
@@ -8582,7 +8613,7 @@ msgid ""
 "in conjunction with DW_OP_piece or DW_OP_bit_piece."
 msgstr ""
 
-#: dwarf2expr.c:850 dwarf2loc.c:3018
+#: dwarf2expr.c:850 dwarf2loc.c:3024
 msgid "DW_OP_implicit_value: too few bytes available."
 msgstr ""
 
@@ -8680,7 +8711,7 @@ msgstr ""
 msgid "Could not compute CFA; needed to translate this expression"
 msgstr ""
 
-#: dwarf2-frame.c:937 dwarf2loc.c:2263 dwarf2loc.c:2754
+#: dwarf2-frame.c:937 dwarf2loc.c:2269 dwarf2loc.c:2760
 #, possible-c-format
 msgid "Unable to access DWARF register number %d"
 msgstr ""
@@ -8874,7 +8905,7 @@ msgstr ""
 msgid "Unable to access DWARF register number %s"
 msgstr ""
 
-#: dwarf2loc.c:1774 dwarf2loc.c:2370
+#: dwarf2loc.c:1774 dwarf2loc.c:2376
 msgid "invalid location type"
 msgstr ""
 
@@ -8894,156 +8925,156 @@ msgstr ""
 msgid "Unable to write to DWARF register number %s"
 msgstr ""
 
-#: dwarf2loc.c:2048
+#: dwarf2loc.c:2049
 msgid "Invalid use of DW_OP_GNU_implicit_pointer"
 msgstr ""
 
-#: dwarf2loc.c:2260
+#: dwarf2loc.c:2266
 msgid "cannot use offset on synthetic pointer to register"
 msgstr ""
 
-#: dwarf2loc.c:2739
+#: dwarf2loc.c:2745
 #, possible-c-format
 msgid "DWARF operator %s cannot be translated to an agent expression"
 msgstr ""
 
-#: dwarf2loc.c:2742
+#: dwarf2loc.c:2748
 #, possible-c-format
 msgid ""
 "Unknown DWARF operator 0x%02x cannot be translated to an agent expression"
 msgstr ""
 
-#: dwarf2loc.c:3020
+#: dwarf2loc.c:3026
 #, possible-c-format
 msgid "Cannot translate DW_OP_implicit_value of %d bytes"
 msgstr ""
 
-#: dwarf2loc.c:3382
+#: dwarf2loc.c:3388
 msgid "Cannot translate empty pieces to agent expressions"
 msgstr ""
 
-#: dwarf2loc.c:3395
+#: dwarf2loc.c:3401
 msgid "Expression pieces exceed word size"
 msgstr ""
 
-#: dwarf2loc.c:3483
+#: dwarf2loc.c:3489
 msgid "invalid label"
 msgstr ""
 
-#: dwarf2loc.c:3567 dwarf2loc.c:3576
+#: dwarf2loc.c:3573 dwarf2loc.c:3582
 #, possible-c-format
 msgid "a variable in $%s"
 msgstr ""
 
-#: dwarf2loc.c:3597
+#: dwarf2loc.c:3603
 #, possible-c-format
 msgid "No block found for address for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3603
+#: dwarf2loc.c:3609
 #, possible-c-format
 msgid "No function found for block for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3616
+#: dwarf2loc.c:3622
 #, possible-c-format
 msgid "Unexpected opcode after DW_OP_breg%u for symbol \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:3634
+#: dwarf2loc.c:3640
 #, possible-c-format
 msgid "a variable at frame base reg $%s offset %s+%s"
 msgstr ""
 
-#: dwarf2loc.c:3646
+#: dwarf2loc.c:3652
 #, possible-c-format
 msgid "a variable at offset %s from base reg $%s"
 msgstr ""
 
-#: dwarf2loc.c:3677 dwarf2loc.c:3700
+#: dwarf2loc.c:3683 dwarf2loc.c:3706
 #, possible-c-format
 msgid ""
 "a thread-local variable at offset 0x%s in the thread-local storage for `%s'"
 msgstr ""
 
-#: dwarf2loc.c:3711
+#: dwarf2loc.c:3717
 #, possible-c-format
 msgid "the constant %d"
 msgstr ""
 
-#: dwarf2loc.c:3745
+#: dwarf2loc.c:3751
 #, possible-c-format
 msgid "Unrecognized DWARF opcode 0x%02x at %ld"
 msgstr ""
 
-#: dwarf2loc.c:4107
+#: dwarf2loc.c:4113
 msgid ", and "
 msgstr ""
 
-#: dwarf2loc.c:4123
+#: dwarf2loc.c:4129
 msgid "a complex DWARF expression:\n"
 msgstr ""
 
-#: dwarf2loc.c:4145
+#: dwarf2loc.c:4151
 #, possible-c-format
 msgid "an empty %s-byte piece"
 msgstr ""
 
-#: dwarf2loc.c:4148
+#: dwarf2loc.c:4154
 #, possible-c-format
 msgid " [%s-byte piece]"
 msgstr ""
 
-#: dwarf2loc.c:4160
+#: dwarf2loc.c:4166
 #, possible-c-format
 msgid "an empty %s-bit piece"
 msgstr ""
 
-#: dwarf2loc.c:4164
+#: dwarf2loc.c:4170
 #, possible-c-format
 msgid " [%s-bit piece, offset %s bits]"
 msgstr ""
 
-#: dwarf2loc.c:4176
+#: dwarf2loc.c:4182
 #, possible-c-format
 msgid "Corrupted DWARF2 expression for \"%s\"."
 msgstr ""
 
-#: dwarf2loc.c:4228 dwarf2loc.c:4434
+#: dwarf2loc.c:4234 dwarf2loc.c:4440
 #, possible-c-format
 msgid "symbol \"%s\" is optimized out"
 msgstr ""
 
-#: dwarf2loc.c:4333
+#: dwarf2loc.c:4339
 msgid "multi-location:\n"
 msgstr ""
 
-#: dwarf2loc.c:4360
+#: dwarf2loc.c:4366
 #, possible-c-format
 msgid "  Base address %s"
 msgstr ""
 
-#: dwarf2loc.c:4368
+#: dwarf2loc.c:4374
 #, possible-c-format
 msgid "Corrupted DWARF expression for symbol \"%s\"."
 msgstr ""
 
 #. (It would improve readability to print only the minimum
 #. necessary digits of the second number of the range.)
-#: dwarf2loc.c:4386
+#: dwarf2loc.c:4392
 #, possible-c-format
 msgid "  Range %s-%s: "
 msgstr ""
 
-#: dwarf2loc.c:4462
+#: dwarf2loc.c:4468
 msgid "Set entry values and tail call frames debugging."
 msgstr ""
 
-#: dwarf2loc.c:4464
+#: dwarf2loc.c:4470
 msgid "Show entry values and tail call frames debugging."
 msgstr ""
 
-#: dwarf2loc.c:4466
+#: dwarf2loc.c:4472
 msgid ""
 "When non-zero, the process of determining parameter values from function "
 "entry point and tail call frames will be printed."
@@ -9213,7 +9244,7 @@ msgid ""
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:6627 dwarf2read.c:8123
+#: dwarf2read.c:6627 dwarf2read.c:8124
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_TAG_imported_unit is not supported in type units [in module %"
@@ -9225,7 +9256,7 @@ msgstr ""
 msgid "unhandled containing DIE tag %d for DIE at %d"
 msgstr ""
 
-#: dwarf2read.c:7100 dwarf2read.c:15416
+#: dwarf2read.c:7100 dwarf2read.c:15417
 msgid "malformed enumerator DIE ignored"
 msgstr ""
 
@@ -9236,15 +9267,15 @@ msgid ""
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:7195 dwarf2read.c:15640
+#: dwarf2read.c:7195 dwarf2read.c:15641
 msgid "ignoring absolute DW_AT_sibling"
 msgstr ""
 
-#: dwarf2read.c:7203 dwarf2read.c:15648
+#: dwarf2read.c:7203 dwarf2read.c:15649
 msgid "DW_AT_sibling points backwards"
 msgstr ""
 
-#: dwarf2read.c:7288 dwarf2read.c:16154
+#: dwarf2read.c:7288 dwarf2read.c:16155
 #, possible-c-format
 msgid "Dwarf Error: Cannot handle %s in DWARF reader [in module %s]"
 msgstr ""
@@ -9263,160 +9294,160 @@ msgstr ""
 msgid "done.\n"
 msgstr ""
 
-#: dwarf2read.c:7748
+#: dwarf2read.c:7749
 #, possible-c-format
 msgid "Symtab %s has objects from two different Go packages: %s and %s"
 msgstr ""
 
-#: dwarf2read.c:8246
+#: dwarf2read.c:8247
 #, possible-c-format
 msgid "Tag '%s' has unexpected children"
 msgstr ""
 
-#: dwarf2read.c:8457
+#: dwarf2read.c:8458
 msgid "template parameter missing DW_AT_type"
 msgstr ""
 
-#: dwarf2read.c:8473
+#: dwarf2read.c:8474
 msgid "template parameter missing DW_AT_const_value"
 msgstr ""
 
-#: dwarf2read.c:8687
+#: dwarf2read.c:8688
 #, possible-c-format
 msgid ""
 "Computed physname <%s> does not match demangled <%s> (from linkage <%s>) - "
 "DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:8751
+#: dwarf2read.c:8752
 #, possible-c-format
 msgid "DIE at 0x%x has too many recursively imported declarations"
 msgstr ""
 
-#: dwarf2read.c:8796 dwarf2read.c:8887
+#: dwarf2read.c:8797 dwarf2read.c:8888
 #, possible-c-format
 msgid "Tag '%s' has no DW_AT_import"
 msgstr ""
 
-#: dwarf2read.c:8878
+#: dwarf2read.c:8879
 #, possible-c-format
 msgid "child DW_TAG_imported_declaration expected - DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:8899
+#: dwarf2read.c:8900
 #, possible-c-format
 msgid ""
 "child DW_TAG_imported_declaration has unknown imported name - DIE at 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9085
+#: dwarf2read.c:9086
 msgid "CU refers to both DW_AT_GNU_macros and DW_AT_macro_info"
 msgstr ""
 
-#: dwarf2read.c:9376
+#: dwarf2read.c:9377
 #, possible-c-format
 msgid ""
 "Dwarf Error: debug entry at offset 0x%x is missing its dwo_id [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9452
+#: dwarf2read.c:9453
 #, possible-c-format
 msgid "Multiple CUs in DWO file %s [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9640
+#: dwarf2read.c:9641
 #, possible-c-format
 msgid "Dwarf Error: unsupported DWP file version (%s) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9646
+#: dwarf2read.c:9647
 #, possible-c-format
 msgid ""
 "Dwarf Error: number of slots in DWP hash table (%s) is not power of 2 [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:9668
+#: dwarf2read.c:9669
 #, possible-c-format
 msgid "Empty DWP but nr_slots,nr_units,nr_columns not all zero [in modules %s]"
 msgstr ""
 
-#: dwarf2read.c:9692
+#: dwarf2read.c:9693
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, too few columns in section table [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:9698
+#: dwarf2read.c:9699
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, too many columns in section table [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:9710
+#: dwarf2read.c:9711
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, bad section id %d in section table [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:9716
+#: dwarf2read.c:9717
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, duplicate section id %d in section table "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9728
+#: dwarf2read.c:9729
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, missing/duplicate DWO info/types section "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9735
+#: dwarf2read.c:9736
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, missing DWO abbrev section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9747
+#: dwarf2read.c:9748
 #, possible-c-format
 msgid "Dwarf Error: DWP index section is corrupt (too small) [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9899
+#: dwarf2read.c:9900
 #, possible-c-format
 msgid ""
 "Dwarf Error: bad DWP hash table, section number too large [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9907
+#: dwarf2read.c:9908
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, invalid section found [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9917
+#: dwarf2read.c:9918
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, missing DWO sections [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:9923
+#: dwarf2read.c:9924
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, too many DWO sections [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:10030
+#: dwarf2read.c:10031
 #, possible-c-format
 msgid ""
 "Dwarf Error: Bad DWP V2 section info, doesn't fit in section %s [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:10275
+#: dwarf2read.c:10276
 #, possible-c-format
 msgid "Dwarf Error: bad DWP hash table, lookup didn't terminate [in module %s]"
 msgstr ""
@@ -9424,109 +9455,109 @@ msgstr ""
 #. Technically speaking, we should try to limp along, but this is
 #. pretty bizarre.  We use pulongest here because that's the established
 #. portability solution (e.g, we cannot use %u for uint32_t).
-#: dwarf2read.c:10710
+#: dwarf2read.c:10711
 #, possible-c-format
 msgid ""
 "Dwarf Error: DWP file CU version %s doesn't match TU version %s [in DWP file "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:10871
+#: dwarf2read.c:10872
 #, possible-c-format
 msgid ""
 "Could not find DWO %s %s(%s)%s referenced by %s at offset 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11055
+#: dwarf2read.c:11056
 #, possible-c-format
 msgid "DIE 0x%x and its abstract origin 0x%x have different tags"
 msgstr ""
 
-#: dwarf2read.c:11098
+#: dwarf2read.c:11099
 #, possible-c-format
 msgid "Child DIE 0x%x and its abstract origin 0x%x have different tags"
 msgstr ""
 
-#: dwarf2read.c:11103
+#: dwarf2read.c:11104
 #, possible-c-format
 msgid "Child DIE 0x%x and its abstract origin 0x%x have different parents"
 msgstr ""
 
-#: dwarf2read.c:11116
+#: dwarf2read.c:11117
 #, possible-c-format
 msgid ""
 "Multiple children of DIE 0x%x refer to DIE 0x%x as their abstract origin"
 msgstr ""
 
-#: dwarf2read.c:11185
+#: dwarf2read.c:11186
 #, possible-c-format
 msgid "missing name for subprogram DIE at %d"
 msgstr ""
 
-#: dwarf2read.c:11196
+#: dwarf2read.c:11197
 #, possible-c-format
 msgid "cannot get low and high bounds for subprogram DIE at %d"
 msgstr ""
 
-#: dwarf2read.c:11400
+#: dwarf2read.c:11401
 #, possible-c-format
 msgid "missing DW_AT_low_pc for DW_TAG_GNU_call_site DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11417
+#: dwarf2read.c:11418
 #, possible-c-format
 msgid "Duplicate PC %s for DW_TAG_GNU_call_site DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11433
+#: dwarf2read.c:11434
 #, possible-c-format
 msgid ""
 "Tag %d is not DW_TAG_GNU_call_site_parameter in DW_TAG_GNU_call_site child "
 "DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11492
+#: dwarf2read.c:11493
 #, possible-c-format
 msgid ""
 "Cannot find function owning DW_TAG_GNU_call_site DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11538
+#: dwarf2read.c:11539
 #, possible-c-format
 msgid ""
 "DW_AT_GNU_call_site_target target DIE has invalid physname, for referencing "
 "DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11551
+#: dwarf2read.c:11552
 #, possible-c-format
 msgid ""
 "DW_AT_GNU_call_site_target target DIE has invalid low pc, for referencing "
 "DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11563
+#: dwarf2read.c:11564
 #, possible-c-format
 msgid ""
 "DW_TAG_GNU_call_site DW_AT_GNU_call_site_target is neither block nor "
 "reference, for DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11603
+#: dwarf2read.c:11604
 #, possible-c-format
 msgid ""
 "DW_AT_abstract_origin offset is not in CU for DW_TAG_GNU_call_site child DIE "
 "0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11615
+#: dwarf2read.c:11616
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_location for DW_TAG_GNU_call_site child DIE 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:11633
+#: dwarf2read.c:11634
 #, possible-c-format
 msgid ""
 "Only single DW_OP_reg or DW_OP_fbreg is supported for DW_FORM_block* "
@@ -9534,148 +9565,148 @@ msgid ""
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:11646
+#: dwarf2read.c:11647
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_GNU_call_site_value for DW_TAG_GNU_call_site child "
 "DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11664
+#: dwarf2read.c:11665
 #, possible-c-format
 msgid ""
 "No DW_FORM_block* DW_AT_GNU_call_site_data_value for DW_TAG_GNU_call_site "
 "child DIE 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:11709
+#: dwarf2read.c:11710
 #, possible-c-format
 msgid "Offset %d out of bounds for DW_AT_ranges attribute"
 msgstr ""
 
-#: dwarf2read.c:11763 dwarf2read.c:12109
+#: dwarf2read.c:11764 dwarf2read.c:12110
 msgid "Invalid .debug_ranges data (no base address)"
 msgstr ""
 
-#: dwarf2read.c:11771 dwarf2read.c:12118
+#: dwarf2read.c:11772 dwarf2read.c:12119
 msgid "Invalid .debug_ranges data (inverted range)"
 msgstr ""
 
-#: dwarf2read.c:11788 dwarf2read.c:12135
+#: dwarf2read.c:11789 dwarf2read.c:12136
 #, possible-c-format
 msgid ".debug_ranges entry has start address of zero [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:12076
+#: dwarf2read.c:12077
 #, possible-c-format
 msgid "Offset %lu out of bounds for DW_AT_ranges attribute"
 msgstr ""
 
-#: dwarf2read.c:12575
+#: dwarf2read.c:12576
 #, possible-c-format
 msgid "unsupported accessibility %d"
 msgstr ""
 
-#: dwarf2read.c:12587
+#: dwarf2read.c:12588
 msgid "unexpected virtuality in component of Ada type"
 msgstr ""
 
-#: dwarf2read.c:12640
+#: dwarf2read.c:12641
 msgid "unexpected member function in Ada type"
 msgstr ""
 
-#: dwarf2read.c:12723
+#: dwarf2read.c:12724
 #, possible-c-format
 msgid "member function type missing for '%s'"
 msgstr ""
 
-#: dwarf2read.c:12814
+#: dwarf2read.c:12815
 #, possible-c-format
 msgid ""
 "Member function \"%s\" (offset %d) is virtual but the vtable offset is not "
 "specified"
 msgstr ""
 
-#: dwarf2read.c:12833
+#: dwarf2read.c:12834
 msgid "unexpected member functions in Ada type"
 msgstr ""
 
-#: dwarf2read.c:13164
+#: dwarf2read.c:13165
 #, possible-c-format
 msgid "virtual function table pointer not found when defining class '%s'"
 msgstr ""
 
-#: dwarf2read.c:13608
+#: dwarf2read.c:13609
 msgid "DW_AT_byte_size for array type smaller than the total size of elements"
 msgstr ""
 
-#: dwarf2read.c:13829
+#: dwarf2read.c:13830
 #, possible-c-format
 msgid ""
 "Variable in common block has DW_AT_data_member_location - DIE at 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:13952
+#: dwarf2read.c:13953
 #, possible-c-format
 msgid "DW_TAG_module has no name, offset 0x%x"
 msgstr ""
 
-#: dwarf2read.c:14063
+#: dwarf2read.c:14064
 #, possible-c-format
 msgid "invalid pointer size %d"
 msgstr ""
 
-#: dwarf2read.c:14477
+#: dwarf2read.c:14478
 #, possible-c-format
 msgid "Self-referential DW_TAG_typedef - DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14514
+#: dwarf2read.c:14515
 msgid "DW_AT_name missing from DW_TAG_base_type"
 msgstr ""
 
-#: dwarf2read.c:14567
+#: dwarf2read.c:14568
 #, possible-c-format
 msgid "unsupported DW_AT_encoding: '%s'"
 msgstr ""
 
-#: dwarf2read.c:14725
+#: dwarf2read.c:14726
 #, possible-c-format
 msgid "Missing DW_AT_lower_bound - DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:14967
+#: dwarf2read.c:14968
 #, possible-c-format
 msgid "Dwarf Error: could not find abbrev number %d [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15400
+#: dwarf2read.c:15401
 #, possible-c-format
 msgid ""
 "DW_TAG_typedef has childen - GCC PR debug/47510 bug - DIE at 0x%x [in module "
 "%s]"
 msgstr ""
 
-#: dwarf2read.c:15715
+#: dwarf2read.c:15716
 #, possible-c-format
 msgid "DW_AT_low_pc %s is zero for DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15726
+#: dwarf2read.c:15727
 #, possible-c-format
 msgid ""
 "DW_AT_low_pc %s is not < DW_AT_high_pc %s for DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:15781
+#: dwarf2read.c:15782
 #, possible-c-format
 msgid ""
 "Dwarf Error: Type Unit at offset 0x%lx contains external reference to offset "
 "0x%lx [in module %s].\n"
 msgstr ""
 
-#: dwarf2read.c:15816
+#: dwarf2read.c:15817
 #, possible-c-format
 msgid "could not find partial DIE 0x%x in cache [from module %s]\n"
 msgstr ""
@@ -9684,120 +9715,120 @@ msgstr ""
 #. Later we can turn this into a complaint.
 #. For now flag a hard error.
 #. Later we can turn this into a complaint if warranted.
-#: dwarf2read.c:16128 dwarf2read.c:16140
+#: dwarf2read.c:16129 dwarf2read.c:16141
 #, possible-c-format
 msgid "Dwarf Error: %s found in non-DWO CU [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16175
+#: dwarf2read.c:16176
 #, possible-c-format
 msgid "Suspicious DW_AT_byte_size value treated as zero instead of %s"
 msgstr ""
 
-#: dwarf2read.c:16260
+#: dwarf2read.c:16261
 #, possible-c-format
 msgid "read_address: bad switch, signed [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16279
+#: dwarf2read.c:16280
 #, possible-c-format
 msgid "read_address: bad switch, unsigned [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16373
+#: dwarf2read.c:16374
 msgid "intermixed 32-bit and 64-bit DWARF sections"
 msgstr ""
 
-#: dwarf2read.c:16410
+#: dwarf2read.c:16411
 #, possible-c-format
 msgid "read_offset_1: bad switch [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16449
+#: dwarf2read.c:16450
 #, possible-c-format
 msgid "DW_FORM_strp used without .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16452
+#: dwarf2read.c:16453
 #, possible-c-format
 msgid "DW_FORM_strp pointing outside of .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16472
+#: dwarf2read.c:16473
 #, possible-c-format
 msgid "DW_FORM_GNU_strp_alt used without .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16476
+#: dwarf2read.c:16477
 #, possible-c-format
 msgid ""
 "DW_FORM_GNU_strp_alt pointing outside of .debug_str section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16567
+#: dwarf2read.c:16568
 #, possible-c-format
 msgid "DW_FORM_addr_index used without .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16570
+#: dwarf2read.c:16571
 #, possible-c-format
 msgid ""
 "DW_FORM_addr_index pointing outside of .debug_addr section [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16700
+#: dwarf2read.c:16701
 #, possible-c-format
 msgid ""
 "%s used without .debug_str.dwo section in CU at offset 0x%lx [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16704
+#: dwarf2read.c:16705
 #, possible-c-format
 msgid ""
 "%s used without .debug_str_offsets.dwo section in CU at offset 0x%lx [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:16708
+#: dwarf2read.c:16709
 #, possible-c-format
 msgid ""
 "%s pointing outside of .debug_str_offsets.dwo section in CU at offset 0x%lx "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:16718
+#: dwarf2read.c:16719
 #, possible-c-format
 msgid ""
 "Offset from %s pointing outside of .debug_str.dwo section in CU at offset 0x%"
 "lx [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17018
+#: dwarf2read.c:17019
 msgid "missing .debug_line.dwo section"
 msgstr ""
 
-#: dwarf2read.c:17020
+#: dwarf2read.c:17021
 msgid "missing .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:17073
+#: dwarf2read.c:17074
 msgid "invalid maximum_ops_per_instruction in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:17123
+#: dwarf2read.c:17124
 msgid "line number info header doesn't fit in `.debug_line' section"
 msgstr ""
 
-#: dwarf2read.c:17445
+#: dwarf2read.c:17446
 #, possible-c-format
 msgid ".debug_line address at offset 0x%lx is 0 [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:17491 dwarf2read.c:17500
+#: dwarf2read.c:17492 dwarf2read.c:17501
 msgid "mangled .debug_line section"
 msgstr ""
 
-#: dwarf2read.c:17932
+#: dwarf2read.c:17933
 msgid "file index out of range"
 msgstr ""
 
@@ -9805,364 +9836,364 @@ msgstr ""
 #. trash data, but since we must specifically ignore things
 #. we don't recognize, there is nothing else we should do at
 #. this point.
-#: dwarf2read.c:18226
+#: dwarf2read.c:18227
 #, possible-c-format
 msgid "unsupported tag: '%s'"
 msgstr ""
 
-#: dwarf2read.c:18391 dwarf2read.c:19797
+#: dwarf2read.c:18392 dwarf2read.c:19798
 #, possible-c-format
 msgid "unsupported const value attribute form: '%s'"
 msgstr ""
 
-#: dwarf2read.c:18510
+#: dwarf2read.c:18511
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem turning containing type into gdb type [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18524
+#: dwarf2read.c:18525
 #, possible-c-format
 msgid "<unknown type in %s, CU 0x%x, DIE 0x%x>"
 msgstr ""
 
-#: dwarf2read.c:18576
+#: dwarf2read.c:18577
 #, possible-c-format
 msgid "Dwarf Error: Bad type attribute %s in DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:18699
+#: dwarf2read.c:18700
 #, possible-c-format
 msgid "unexpected tag in read_type_die: '%s'"
 msgstr ""
 
-#: dwarf2read.c:18915
+#: dwarf2read.c:18916
 #, possible-c-format
 msgid "template param type '%s' defined within parent '%s'"
 msgstr ""
 
-#: dwarf2read.c:19456
+#: dwarf2read.c:19457
 #, possible-c-format
 msgid "unsupported die ref attribute form: '%s'"
 msgstr ""
 
-#: dwarf2read.c:19478
+#: dwarf2read.c:19479
 #, possible-c-format
 msgid "Attribute value is not a constant (%s)"
 msgstr ""
 
-#: dwarf2read.c:19501
+#: dwarf2read.c:19502
 #, possible-c-format
 msgid "Dwarf Error: Expected reference attribute [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19575
+#: dwarf2read.c:19576
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find DIE at 0x%x referenced from DIE at 0x%x [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:19606 dwarf2read.c:19707
+#: dwarf2read.c:19607 dwarf2read.c:19708
 #, possible-c-format
 msgid "Dwarf Error: Cannot find DIE at 0x%x referenced in module %s"
 msgstr ""
 
-#: dwarf2read.c:19633
+#: dwarf2read.c:19634
 #, possible-c-format
 msgid ""
 "Dwarf Error: DIE at 0x%x referenced in module %s is neither DW_FORM_block* "
 "nor DW_FORM_exprloc"
 msgstr ""
 
-#: dwarf2read.c:19889 dwarf2read.c:19926
+#: dwarf2read.c:19890 dwarf2read.c:19927
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot find signatured DIE %s referenced from DIE at 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:19899 dwarf2read.c:19958
+#: dwarf2read.c:19900 dwarf2read.c:19959
 #, possible-c-format
 msgid ""
 "Dwarf Error: Problem reading signatured DIE %s referenced from DIE at 0x%x "
 "[in module %s]"
 msgstr ""
 
-#: dwarf2read.c:19948
+#: dwarf2read.c:19949
 #, possible-c-format
 msgid ""
 "Dwarf Error: Cannot build signatured type %s referenced from DIE at 0x%x [in "
 "module %s]"
 msgstr ""
 
-#: dwarf2read.c:19991
+#: dwarf2read.c:19992
 #, possible-c-format
 msgid ""
 "Dwarf Error: DW_AT_signature has bad form %s in DIE at 0x%x [in module %s]"
 msgstr ""
 
-#: dwarf2read.c:20310
+#: dwarf2read.c:20311
 #, possible-c-format
 msgid "unsupported stack op: '%s'"
 msgstr ""
 
-#: dwarf2read.c:20313
+#: dwarf2read.c:20314
 #, possible-c-format
 msgid "unsupported stack op: '%02x'"
 msgstr ""
 
-#: dwarf2read.c:20325
+#: dwarf2read.c:20326
 msgid "location description stack overflow"
 msgstr ""
 
-#: dwarf2read.c:20332
+#: dwarf2read.c:20333
 msgid "location description stack underflow"
 msgstr ""
 
-#: dwarf2read.c:20397
+#: dwarf2read.c:20398
 #, possible-c-format
 msgid "bad file number in macro information (%d)"
 msgstr ""
 
-#: dwarf2read.c:20473
+#: dwarf2read.c:20474
 #, possible-c-format
 msgid ""
 "macro definition contains spaces in formal argument list:\n"
 "`%s'"
 msgstr ""
 
-#: dwarf2read.c:20697
+#: dwarf2read.c:20698
 #, possible-c-format
 msgid "invalid form 0x%x in `%s'"
 msgstr ""
 
-#: dwarf2read.c:20725
+#: dwarf2read.c:20726
 #, possible-c-format
 msgid "unrecognized DW_MACFINO opcode 0x%x"
 msgstr ""
 
-#: dwarf2read.c:20770
+#: dwarf2read.c:20771
 #, possible-c-format
 msgid "unrecognized version `%d' in .debug_macro section"
 msgstr ""
 
-#: dwarf2read.c:20912
+#: dwarf2read.c:20913
 #, possible-c-format
 msgid "debug info with no main source gives macro %s on line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:20914 dwarf2read.c:20923
+#: dwarf2read.c:20915 dwarf2read.c:20924
 msgid "definition"
 msgstr ""
 
-#: dwarf2read.c:20914 dwarf2read.c:20923
+#: dwarf2read.c:20915 dwarf2read.c:20924
 msgid "undefinition"
 msgstr ""
 
-#: dwarf2read.c:20921
+#: dwarf2read.c:20922
 #, possible-c-format
 msgid "debug info gives %s macro %s with %s line %d: %s"
 msgstr ""
 
-#: dwarf2read.c:20922 dwarf2read.c:20953
+#: dwarf2read.c:20923 dwarf2read.c:20954
 msgid "command-line"
 msgstr ""
 
-#: dwarf2read.c:20922
+#: dwarf2read.c:20923
 msgid "in-file"
 msgstr ""
 
-#: dwarf2read.c:20924 dwarf2read.c:20954
+#: dwarf2read.c:20925 dwarf2read.c:20955
 msgid "zero"
 msgstr ""
 
-#: dwarf2read.c:20924 dwarf2read.c:20954
+#: dwarf2read.c:20925 dwarf2read.c:20955
 msgid "non-zero"
 msgstr ""
 
-#: dwarf2read.c:20951
+#: dwarf2read.c:20952
 #, possible-c-format
 msgid "debug info gives source %d included from %s at %s line %d"
 msgstr ""
 
-#: dwarf2read.c:20953
+#: dwarf2read.c:20954
 msgid "file"
 msgstr ""
 
-#: dwarf2read.c:20970
+#: dwarf2read.c:20971
 msgid "macro debug info has an unmatched `close_file' directive"
 msgstr ""
 
-#: dwarf2read.c:20996
+#: dwarf2read.c:20997
 msgid "no terminating 0-type entry for macros in `.debug_macinfo' section"
 msgstr ""
 
-#: dwarf2read.c:21039
+#: dwarf2read.c:21040
 msgid "recursive DW_MACRO_GNU_transparent_include in .debug_macro section"
 msgstr ""
 
-#: dwarf2read.c:21131
+#: dwarf2read.c:21132
 #, possible-c-format
 msgid "missing %s section"
 msgstr ""
 
-#: dwarf2read.c:21411
+#: dwarf2read.c:21412
 msgid "Location list used without specifying the CU base address."
 msgstr ""
 
-#: dwarf2read.c:21579
+#: dwarf2read.c:21580
 #, possible-c-format
 msgid ""
 "Dwarf Error: could not find partial DIE containing offset 0x%lx [in module %"
 "s]"
 msgstr ""
 
-#: dwarf2read.c:21592
+#: dwarf2read.c:21593
 #, possible-c-format
 msgid "invalid dwarf2 offset %u"
 msgstr ""
 
-#: dwarf2read.c:21888
+#: dwarf2read.c:21889
 #, possible-c-format
 msgid "A problem internal to GDB: DIE 0x%x has type already set"
 msgstr ""
 
-#: dwarf2read.c:22627
+#: dwarf2read.c:22628
 msgid "Ada is not currently supported by the index"
 msgstr ""
 
-#: dwarf2read.c:22651
+#: dwarf2read.c:22652
 msgid "couldn't data write to file"
 msgstr ""
 
-#: dwarf2read.c:22760
+#: dwarf2read.c:22761
 msgid "Cannot use an index to create the index"
 msgstr ""
 
-#: dwarf2read.c:22763
+#: dwarf2read.c:22764
 msgid "Cannot make an index when the file has multiple .debug_types sections"
 msgstr ""
 
-#: dwarf2read.c:22777
+#: dwarf2read.c:22778
 #, possible-c-format
 msgid "Can't open `%s' for writing"
 msgstr ""
 
-#: dwarf2read.c:22938
+#: dwarf2read.c:22939
 msgid "usage: save gdb-index DIRECTORY"
 msgstr ""
 
-#: dwarf2read.c:22959
+#: dwarf2read.c:22960
 #, possible-c-format
 msgid "Error while writing index for `%s': "
 msgstr ""
 
-#: dwarf2read.c:22974
+#: dwarf2read.c:22975
 #, possible-c-format
 msgid "Whether to always disassemble DWARF expressions is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:22984
+#: dwarf2read.c:22985
 #, possible-c-format
 msgid "Whether to check \"physname\" is %s.\n"
 msgstr ""
 
-#: dwarf2read.c:22998
+#: dwarf2read.c:22999
 msgid ""
 "Set DWARF 2 specific variables.\n"
 "Configure DWARF 2 variables such as the cache size"
 msgstr ""
 
 #. allow-unknown
-#: dwarf2read.c:23004
+#: dwarf2read.c:23005
 msgid ""
 "Show DWARF 2 specific variables\n"
 "Show DWARF 2 variables such as the cache size"
 msgstr ""
 
-#: dwarf2read.c:23011
+#: dwarf2read.c:23012
 msgid "Set the upper bound on the age of cached dwarf2 compilation units."
 msgstr ""
 
-#: dwarf2read.c:23012
+#: dwarf2read.c:23013
 msgid "Show the upper bound on the age of cached dwarf2 compilation units."
 msgstr ""
 
-#: dwarf2read.c:23013
+#: dwarf2read.c:23014
 msgid ""
 "A higher limit means that cached compilation units will be stored\n"
 "in memory longer, and more total memory will be used.  Zero disables\n"
 "caching, which can slow down startup."
 msgstr ""
 
-#: dwarf2read.c:23023
+#: dwarf2read.c:23024
 msgid "Set whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:23024
+#: dwarf2read.c:23025
 msgid "Show whether `info address' always disassembles DWARF expressions."
 msgstr ""
 
-#: dwarf2read.c:23025
+#: dwarf2read.c:23026
 msgid ""
 "When enabled, DWARF expressions are always printed in an assembly-like\n"
 "syntax.  When disabled, expressions will be printed in a more\n"
 "conversational style, when possible."
 msgstr ""
 
-#: dwarf2read.c:23034
+#: dwarf2read.c:23035
 msgid "Set debugging of the dwarf2 reader."
 msgstr ""
 
-#: dwarf2read.c:23035
+#: dwarf2read.c:23036
 msgid "Show debugging of the dwarf2 reader."
 msgstr ""
 
-#: dwarf2read.c:23036
+#: dwarf2read.c:23037
 msgid ""
 "When enabled (non-zero), debugging messages are printed during dwarf2\n"
 "reading and symtab expansion.  A value of 1 (one) provides basic\n"
 "information.  A value greater than 1 provides more verbose information."
 msgstr ""
 
-#: dwarf2read.c:23044
+#: dwarf2read.c:23045
 msgid "Set debugging of the dwarf2 DIE reader."
 msgstr ""
 
-#: dwarf2read.c:23045
+#: dwarf2read.c:23046
 msgid "Show debugging of the dwarf2 DIE reader."
 msgstr ""
 
-#: dwarf2read.c:23046
+#: dwarf2read.c:23047
 msgid ""
 "When enabled (non-zero), DIEs are dumped after they are read in.\n"
 "The value is the maximum depth to print."
 msgstr ""
 
-#: dwarf2read.c:23053
+#: dwarf2read.c:23054
 msgid "Set cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:23054
+#: dwarf2read.c:23055
 msgid "Show cross-checking of \"physname\" code against demangler."
 msgstr ""
 
-#: dwarf2read.c:23055
+#: dwarf2read.c:23056
 msgid ""
 "When enabled, GDB's internal \"physname\" code is checked against\n"
 "the demangler."
 msgstr ""
 
-#: dwarf2read.c:23062
+#: dwarf2read.c:23063
 msgid "Set whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:23063
+#: dwarf2read.c:23064
 msgid "Show whether to use deprecated gdb_index sections."
 msgstr ""
 
-#: dwarf2read.c:23064
+#: dwarf2read.c:23065
 msgid ""
 "When enabled, deprecated .gdb_index sections are used anyway.\n"
 "Normally they are ignored either because of a missing feature or\n"
@@ -10170,7 +10201,7 @@ msgid ""
 "Warning: This option must be enabled before gdb reads the file."
 msgstr ""
 
-#: dwarf2read.c:23074
+#: dwarf2read.c:23075
 msgid ""
 "Save a gdb-index file.\n"
 "Usage: save gdb-index DIRECTORY"
@@ -10437,7 +10468,7 @@ msgstr ""
 msgid "No executable file name was specified"
 msgstr ""
 
-#: exec.c:790 maint.c:379 maint.c:411
+#: exec.c:790 maint.c:355 maint.c:387
 #, possible-c-format
 msgid "file type %s.\n"
 msgstr ""
@@ -11085,12 +11116,17 @@ msgstr ""
 msgid "Can't debug x86-64 process with 32-bit GDBserver"
 msgstr ""
 
-#: gdbserver/thread-db.c:753
+#: gdbserver/thread-db.c:764
 #, possible-c-format
 msgid "libthread-db-search-path component too long, ignored: %s."
 msgstr ""
 
-#: gdbserver/linux-low.c:1136 linux-nat.c:1357
+#: gdbserver/linux-low.c:807
+#, possible-c-format
+msgid "Cannot attach to lwp %d: %s"
+msgstr ""
+
+#: gdbserver/linux-low.c:1152 linux-nat.c:1441
 #, possible-c-format
 msgid "Can't detach %s: %s"
 msgstr ""
@@ -12763,13 +12799,13 @@ msgid "Invalid register number %d."
 msgstr ""
 
 #: hppa-linux-nat.c:233 i386-linux-nat.c:114 ia64-linux-nat.c:754
-#: inf-ptrace.c:706 m68klinux-nat.c:125
+#: inf-ptrace.c:707 m68klinux-nat.c:125
 #, possible-c-format
 msgid "Couldn't read register %s (#%d): %s."
 msgstr ""
 
 #: hppa-linux-nat.c:261 i386-linux-nat.c:143 ia64-linux-nat.c:813
-#: inf-ptrace.c:765 m68klinux-nat.c:184
+#: inf-ptrace.c:766 m68klinux-nat.c:184
 #, possible-c-format
 msgid "Couldn't write register %s (#%d): %s."
 msgstr ""
@@ -14100,39 +14136,39 @@ msgstr ""
 msgid "Event type not recognized.\n"
 msgstr ""
 
-#: inflow.c:579
+#: inflow.c:591
 msgid "This GDB does not control a terminal.\n"
 msgstr ""
 
-#: inflow.c:589
+#: inflow.c:601
 msgid "Inferior's terminal status (currently saved by GDB):\n"
 msgstr ""
 
 #. Mention GDB in warning because it will appear in the inferior's
 #. terminal instead of GDB's.
-#: inflow.c:737
+#: inflow.c:749
 #, possible-c-format
 msgid "GDB: Failed to set controlling terminal: %s"
 msgstr ""
 
-#: inflow.c:826
+#: inflow.c:838
 #, possible-c-format
 msgid "Failed to create new terminal session: setsid: %s"
 msgstr ""
 
-#: inflow.c:888
+#: inflow.c:900
 msgid "Print inferior's saved terminal status."
 msgstr ""
 
-#: inflow.c:891
+#: inflow.c:903
 msgid "Set whether GDB's standard input is a terminal."
 msgstr ""
 
-#: inflow.c:892
+#: inflow.c:904
 msgid "Show whether GDB's standard input is a terminal."
 msgstr ""
 
-#: inflow.c:893
+#: inflow.c:905
 msgid ""
 "If on, GDB assumes that standard input is a terminal.  In practice, it\n"
 "means that GDB should wait for the user to answer queries associated to\n"
@@ -14142,20 +14178,20 @@ msgid ""
 "input settings."
 msgstr ""
 
-#: inf-ptrace.c:189
+#: inf-ptrace.c:190
 msgid "This system does not support attaching to a process"
 msgstr ""
 
-#: inf-ptrace.c:252
+#: inf-ptrace.c:253
 msgid "This system does not support detaching from a process"
 msgstr ""
 
-#: inf-ptrace.c:358 obsd-nat.c:103 rs6000-nat.c:496
+#: inf-ptrace.c:359 obsd-nat.c:103 rs6000-nat.c:496
 #, possible-c-format
 msgid "Child process unexpectedly missing: %s.\n"
 msgstr ""
 
-#: inf-ptrace.c:587 inf-ttrace.c:1131
+#: inf-ptrace.c:588 inf-ttrace.c:1131
 #, possible-c-format
 msgid "\tUsing the running image of %s %s.\n"
 msgstr ""
@@ -14734,7 +14770,7 @@ msgstr ""
 msgid "TT_PROC_GET_NEXT_LWP_STATE ttrace call failed"
 msgstr ""
 
-#: inf-ttrace.c:973 linux-nat.c:895 procfs.c:3637 procfs.c:3775
+#: inf-ttrace.c:973 linux-nat.c:901 procfs.c:3637 procfs.c:3775
 #, possible-c-format
 msgid "[%s exited]\n"
 msgstr ""
@@ -15359,15 +15395,15 @@ msgstr ""
 msgid "Debugging of GNU/Linux lwp module is %s.\n"
 msgstr ""
 
-#: linux-nat.c:425
+#: linux-nat.c:431
 msgid "Couldn't do single step"
 msgstr ""
 
-#: linux-nat.c:427
+#: linux-nat.c:433
 msgid "Couldn't wait vfork process"
 msgstr ""
 
-#: linux-nat.c:946
+#: linux-nat.c:952
 #, possible-c-format
 msgid "%s is a cloned process"
 msgstr ""
@@ -15377,78 +15413,83 @@ msgstr ""
 #. creation is interrupted; as of Linux kernel 2.6.19, a
 #. bug may place threads in the thread list and then fail
 #. to create them.
-#: linux-nat.c:1043
+#: linux-nat.c:1050
 #, possible-c-format
 msgid "Can't attach %s: %s"
 msgstr ""
 
-#: linux-nat.c:1118
+#: linux-nat.c:1125
 #, possible-c-format
 msgid "Error disabling address space randomization: %s"
 msgstr ""
 
-#: linux-nat.c:1134
+#: linux-nat.c:1141
 #, possible-c-format
 msgid "Error restoring address space randomization: %s"
 msgstr ""
 
-#: linux-nat.c:1198
+#: linux-nat.c:1184
+#, possible-c-format
+msgid "Cannot attach to lwp %d: %s\n"
+msgstr ""
+
+#: linux-nat.c:1272
 msgid "Unable to attach: program exited normally."
 msgstr ""
 
-#: linux-nat.c:1200
+#: linux-nat.c:1274
 #, possible-c-format
 msgid "Unable to attach: program exited with code %d."
 msgstr ""
 
-#: linux-nat.c:1211
+#: linux-nat.c:1285
 #, possible-c-format
 msgid "Unable to attach: program terminated with signal %s, %s."
 msgstr ""
 
-#: linux-nat.c:1218
+#: linux-nat.c:1292
 #, possible-c-format
 msgid "unexpected status %d for PID %ld"
 msgstr ""
 
-#: linux-nat.c:1827
+#: linux-nat.c:1920
 msgid "waiting for new child"
 msgstr ""
 
-#: linux-nat.c:1830
+#: linux-nat.c:1923
 #, possible-c-format
 msgid "wait returned unexpected PID %d"
 msgstr ""
 
-#: linux-nat.c:1833
+#: linux-nat.c:1926
 #, possible-c-format
 msgid "wait returned unexpected status 0x%x"
 msgstr ""
 
-#: linux-nat.c:2048
+#: linux-nat.c:2136
 #, possible-c-format
 msgid "unknown ptrace event %d"
 msgstr ""
 
-#: linux-nat.c:4063 linux-nat.c:4076
+#: linux-nat.c:4087 linux-nat.c:4100
 #, possible-c-format
 msgid "Could not parse signal set: %s"
 msgstr ""
 
-#: linux-nat.c:4110
+#: linux-nat.c:4134
 #, possible-c-format
 msgid "Could not open %s"
 msgstr ""
 
-#: linux-nat.c:4781
+#: linux-nat.c:4805
 msgid "Set debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4782
+#: linux-nat.c:4806
 msgid "Show debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4783
+#: linux-nat.c:4807
 msgid "Enables printf debugging output."
 msgstr ""
 
@@ -15525,7 +15566,7 @@ msgid "process %ld\n"
 msgstr ""
 
 #: linux-tdep.c:436 linux-tdep.c:523 linux-tdep.c:536 linux-tdep.c:673
-#: nat/linux-procfs.c:38 nat/linux-procfs.c:84
+#: nat/linux-procfs.c:40 nat/linux-procfs.c:89
 #, possible-c-format
 msgid "unable to open /proc file '%s'"
 msgstr ""
@@ -15759,221 +15800,221 @@ msgstr ""
 msgid "Failed inferior mmap call for %s bytes, errno is changed."
 msgstr ""
 
-#: linux-thread-db.c:86
+#: linux-thread-db.c:97
 #, possible-c-format
 msgid "Auto-loading of inferior specific libthread_db is %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:110
+#: linux-thread-db.c:121
 #, possible-c-format
 msgid "libthread-db debugging is %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:420
+#: linux-thread-db.c:431
 #, possible-c-format
 msgid "thread_get_info_callback: cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:465
+#: linux-thread-db.c:476
 #, possible-c-format
 msgid "Cannot find user-level thread for LWP %ld: %s"
 msgstr ""
 
-#: linux-thread-db.c:513 linux-thread-db.c:1480
+#: linux-thread-db.c:524 linux-thread-db.c:1510
 #, possible-c-format
 msgid "Cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:526
+#: linux-thread-db.c:537
 #, possible-c-format
 msgid "Symbol \"%s\" not found in libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:626
+#: linux-thread-db.c:637
 #, possible-c-format
 msgid "Unable to set global thread event mask: %s"
 msgstr ""
 
-#: linux-thread-db.c:640
+#: linux-thread-db.c:651
 #, possible-c-format
 msgid "Unable to get location for thread creation breakpoint: %s"
 msgstr ""
 
-#: linux-thread-db.c:649
+#: linux-thread-db.c:660
 #, possible-c-format
 msgid "Unable to get location for thread death breakpoint: %s"
 msgstr ""
 
-#: linux-thread-db.c:696
+#: linux-thread-db.c:707
 msgid "Warning: couldn't activate thread debugging using libthread_db: "
 msgstr ""
 
-#: linux-thread-db.c:739
+#: linux-thread-db.c:750
 #, possible-c-format
 msgid "Cannot initialize libthread_db: %s"
 msgstr ""
 
-#: linux-thread-db.c:756
+#: linux-thread-db.c:767
 #, possible-c-format
 msgid "td_ta_new failed: %s\n"
 msgstr ""
 
-#: linux-thread-db.c:770
+#: linux-thread-db.c:781
 #, possible-c-format
 msgid "td_ta_new failed: %s"
 msgstr ""
 
-#: linux-thread-db.c:813 sol-thread.c:616
+#: linux-thread-db.c:824 sol-thread.c:616
 msgid "[Thread debugging using libthread_db enabled]\n"
 msgstr ""
 
-#: linux-thread-db.c:823
+#: linux-thread-db.c:840
 #, possible-c-format
 msgid "Using host libthread_db library \"%s\".\n"
 msgstr ""
 
-#: linux-thread-db.c:849
+#: linux-thread-db.c:867
 #, possible-c-format
 msgid "Trying host libthread_db library: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:859
+#: linux-thread-db.c:877
 #, possible-c-format
 msgid "open failed: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:863
+#: linux-thread-db.c:882
 #, possible-c-format
 msgid ""
 "auto-load: Loading libthread-db library \"%s\" from explicit directory.\n"
 msgstr ""
 
-#: linux-thread-db.c:874
+#: linux-thread-db.c:893
 #, possible-c-format
 msgid "dlopen failed: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:888
+#: linux-thread-db.c:907
 #, possible-c-format
 msgid "Host %s resolved to: %s.\n"
 msgstr ""
 
-#: linux-thread-db.c:922
+#: linux-thread-db.c:941
 #, possible-c-format
 msgid "Expected absolute pathname for libpthread in the inferior, but got %s."
 msgstr ""
 
-#: linux-thread-db.c:1079
+#: linux-thread-db.c:1099
 #, possible-c-format
 msgid "thread_db_load_search returning %d\n"
 msgstr ""
 
-#: linux-thread-db.c:1126
+#: linux-thread-db.c:1146
 msgid ""
 "Unable to find libthread_db matching inferior's thread library, thread "
 "debugging will not be available."
 msgstr ""
 
-#: linux-thread-db.c:1238
+#: linux-thread-db.c:1258
 msgid ""
 "Target and debugger are in different PID namespaces; thread lists and other "
 "data are likely unreliable"
 msgstr ""
 
-#: linux-thread-db.c:1356
+#: linux-thread-db.c:1386
 #, possible-c-format
 msgid "Cannot enable thread event reporting for %s: %s"
 msgstr ""
 
-#: linux-thread-db.c:1474
+#: linux-thread-db.c:1504
 #, possible-c-format
 msgid "Cannot get thread event message: %s"
 msgstr ""
 
-#: linux-thread-db.c:1496
+#: linux-thread-db.c:1526
 msgid "Spurious thread death event."
 msgstr ""
 
-#: linux-thread-db.c:1503
+#: linux-thread-db.c:1533
 msgid "Spurious thread event."
 msgstr ""
 
-#: linux-thread-db.c:1601
+#: linux-thread-db.c:1631
 #, possible-c-format
 msgid "find_new_threads_callback: cannot get thread info: %s"
 msgstr ""
 
-#: linux-thread-db.c:1620
+#: linux-thread-db.c:1661
 #, possible-c-format
 msgid "Cannot enable thread event reporting for LWP %d: %s"
 msgstr ""
 
-#: linux-thread-db.c:1689
+#: linux-thread-db.c:1737
 #, possible-c-format
 msgid "Found %d new threads in iteration %d.\n"
 msgstr ""
 
-#: linux-thread-db.c:1732
+#: linux-thread-db.c:1780
 #, possible-c-format
 msgid "Cannot find new threads: %s"
 msgstr ""
 
-#: linux-thread-db.c:1850
+#: linux-thread-db.c:1898
 msgid "No TLS library support"
 msgstr ""
 
-#: linux-thread-db.c:1865
+#: linux-thread-db.c:1913
 msgid "TLS load module not found"
 msgstr ""
 
-#: linux-thread-db.c:1885
+#: linux-thread-db.c:1933
 msgid "TLS not allocated yet"
 msgstr ""
 
-#: linux-thread-db.c:1989
+#: linux-thread-db.c:2037
 msgid "'info auto-load libthread-db' does not accept any parameters"
 msgstr ""
 
-#: linux-thread-db.c:2095
+#: linux-thread-db.c:2143
 msgid "No auto-loaded libthread-db.\n"
 msgstr ""
 
-#: linux-thread-db.c:2140
+#: linux-thread-db.c:2188
 msgid "Set search path for libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:2141
+#: linux-thread-db.c:2189
 msgid "Show the current search path or libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:2142
+#: linux-thread-db.c:2190
 msgid ""
 "This path is used to search for libthread_db to be loaded into gdb itself.\n"
 "Its value is a colon (':') separate list of directories to search.\n"
 "Setting the search path to an empty list resets it to its default value."
 msgstr ""
 
-#: linux-thread-db.c:2152
+#: linux-thread-db.c:2200
 msgid "Set libthread-db debugging."
 msgstr ""
 
-#: linux-thread-db.c:2153
+#: linux-thread-db.c:2201
 msgid "Show libthread-db debugging."
 msgstr ""
 
-#: linux-thread-db.c:2154
+#: linux-thread-db.c:2202
 msgid "When non-zero, libthread-db debugging is enabled."
 msgstr ""
 
-#: linux-thread-db.c:2161
+#: linux-thread-db.c:2209
 msgid "Enable or disable auto-loading of inferior specific libthread_db."
 msgstr ""
 
-#: linux-thread-db.c:2162
+#: linux-thread-db.c:2210
 msgid "Show whether auto-loading inferior specific libthread_db is enabled."
 msgstr ""
 
-#: linux-thread-db.c:2163
+#: linux-thread-db.c:2211
 msgid ""
 "If enabled, libthread_db will be searched in 'set libthread-db-search-path'\n"
 "locations to load libthread_db compatible with the inferior.\n"
@@ -15981,7 +16022,7 @@ msgid ""
 "This options has security implications for untrusted inferiors."
 msgstr ""
 
-#: linux-thread-db.c:2173
+#: linux-thread-db.c:2221
 msgid ""
 "Print the list of loaded inferior specific libthread_db.\n"
 "Usage: info auto-load libthread-db"
@@ -16788,157 +16829,151 @@ msgstr ""
 msgid "Should GDB dump core? "
 msgstr ""
 
-#: maint.c:157
-msgid "\"maintenance demangle\" takes an argument to demangle.\n"
-msgstr ""
-
-#: maint.c:171
-#, possible-c-format
-msgid "Can't demangle \"%s\"\n"
+#: maint.c:149
+msgid "This command has been moved to \"demangle\".\n"
 msgstr ""
 
-#: maint.c:180
+#: maint.c:156
 msgid "\"maintenance time\" takes a numeric argument.\n"
 msgstr ""
 
-#: maint.c:201
+#: maint.c:177
 msgid "\"maintenance info\" must be followed by the name of an info command.\n"
 msgstr ""
 
-#: maint.c:376
+#: maint.c:352
 msgid "Exec file:\n"
 msgstr ""
 
-#: maint.c:394
+#: maint.c:370
 #, possible-c-format
 msgid "  Object file: %s\n"
 msgstr ""
 
-#: maint.c:408
+#: maint.c:384
 msgid "Core file:\n"
 msgstr ""
 
-#: maint.c:436 regcache.c:1463
+#: maint.c:412 regcache.c:1463
 msgid "maintenance print architecture"
 msgstr ""
 
-#: maint.c:450
+#: maint.c:426
 msgid ""
 "\"maintenance print\" must be followed by the name of a print command.\n"
 msgstr ""
 
-#: maint.c:471
+#: maint.c:447
 msgid "requires argument (address or section + address)"
 msgstr ""
 
 #. End of command?
-#: maint.c:481
+#: maint.c:457
 msgid "Need to specify <section-name> and <address>"
 msgstr ""
 
-#: maint.c:492
+#: maint.c:468
 #, possible-c-format
 msgid "Unknown section %s."
 msgstr ""
 
-#: maint.c:521
+#: maint.c:497
 #, possible-c-format
 msgid "%s + %s in section %s of %s\n"
 msgstr ""
 
-#: maint.c:525
+#: maint.c:501
 #, possible-c-format
 msgid "%s + %s in section %s\n"
 msgstr ""
 
-#: maint.c:529
+#: maint.c:505
 #, possible-c-format
 msgid "%s + %s\n"
 msgstr ""
 
-#: maint.c:532
+#: maint.c:508
 #, possible-c-format
 msgid "no symbol at %s:%s\n"
 msgstr ""
 
-#: maint.c:535
+#: maint.c:511
 #, possible-c-format
 msgid "no symbol at %s\n"
 msgstr ""
 
-#: maint.c:550
+#: maint.c:526
 msgid ""
 "\"maintenance deprecate\" takes an argument,\n"
 "the command you want to deprecate, and optionally the replacement command\n"
 "enclosed in quotes.\n"
 msgstr ""
 
-#: maint.c:565
+#: maint.c:541
 msgid ""
 "\"maintenance undeprecate\" takes an argument, \n"
 "the command you want to undeprecate.\n"
 msgstr ""
 
-#: maint.c:597
+#: maint.c:573
 #, possible-c-format
 msgid "Can't find command '%s' to deprecate.\n"
 msgstr ""
 
-#: maint.c:676
+#: maint.c:652
 msgid "\"maintenance set\" must be followed by the name of a set command.\n"
 msgstr ""
 
-#: maint.c:695
+#: maint.c:671
 #, possible-c-format
 msgid "Internal profiling is %s.\n"
 msgstr ""
 
-#: maint.c:757
+#: maint.c:733
 msgid "Profiling support is not available on this system."
 msgstr ""
 
-#: maint.c:878
+#: maint.c:854
 #, possible-c-format
 msgid "Startup time: %ld.%06ld (cpu), %ld.%06ld (wall)\n"
 msgstr ""
 
-#: maint.c:879
+#: maint.c:855
 #, possible-c-format
 msgid "Command execution time: %ld.%06ld (cpu), %ld.%06ld (wall)\n"
 msgstr ""
 
-#: maint.c:894
+#: maint.c:870
 #, possible-c-format
 msgid "Space used: %ld (%s%ld during startup)\n"
 msgstr ""
 
-#: maint.c:895
+#: maint.c:871
 #, possible-c-format
 msgid "Space used: %ld (%s%ld for this command)\n"
 msgstr ""
 
-#: maint.c:907
+#: maint.c:883
 #, possible-c-format
 msgid "#symtabs: %d (+%d), #compunits: %d (+%d), #blocks: %d (+%d)\n"
 msgstr ""
 
-#: maint.c:990
+#: maint.c:966
 msgid "Bad value for 'mt set per-command no'."
 msgstr ""
 
-#: maint.c:1012
+#: maint.c:990
 msgid ""
 "Commands for use by GDB maintainers.\n"
 "Includes commands to dump specific internal GDB structures in\n"
-"a human readable form, to cause GDB to deliberately dump core,\n"
-"to test internal functions such as the C++/ObjC demangler, etc."
+"a human readable form, to cause GDB to deliberately dump core, etc."
 msgstr ""
 
-#: maint.c:1022
+#: maint.c:999
 msgid "Commands for showing internal info about the program being debugged."
 msgstr ""
 
-#: maint.c:1028
+#: maint.c:1005
 msgid ""
 "List the BFD sections of the exec and core files. \n"
 "Arguments may be any combination of:\n"
@@ -16951,100 +16986,97 @@ msgid ""
 "lists all sections from all object files, including shared libraries."
 msgstr ""
 
-#: maint.c:1041
+#: maint.c:1018
 msgid "Maintenance command for printing GDB internal state."
 msgstr ""
 
-#: maint.c:1045
+#: maint.c:1022
 msgid ""
 "Set GDB internal variables used by the GDB maintainer.\n"
 "Configure variables internal to GDB that aid in GDB's maintenance"
 msgstr ""
 
-#: maint.c:1052
+#: maint.c:1029
 msgid ""
 "Show GDB internal variables used by the GDB maintainer.\n"
 "Configure variables internal to GDB that aid in GDB's maintenance"
 msgstr ""
 
-#: maint.c:1060
+#: maint.c:1037
 msgid ""
 "Get fatal error; make debugger dump its core.\n"
 "GDB sets its handling of SIGQUIT back to SIG_DFL and then sends\n"
 "itself a SIGQUIT signal."
 msgstr ""
 
-#: maint.c:1068
+#: maint.c:1045
 msgid ""
 "Give GDB an internal error.\n"
 "Cause GDB to behave as if an internal error was detected."
 msgstr ""
 
-#: maint.c:1074
+#: maint.c:1051
 msgid ""
 "Give GDB an internal warning.\n"
 "Cause GDB to behave as if an internal warning was reported."
 msgstr ""
 
-#: maint.c:1080
+#: maint.c:1057
 msgid ""
 "Give GDB a demangler warning.\n"
 "Cause GDB to behave as if a demangler warning was reported."
 msgstr ""
 
-#: maint.c:1085
-msgid ""
-"Demangle a C++/ObjC mangled name.\n"
-"Call internal GDB demangler routine to demangle a C++ link name\n"
-"and prints the result."
+#: maint.c:1062
+msgid "This command has been moved to \"demangle\"."
 msgstr ""
 
-#: maint.c:1091
+#: maint.c:1067
 msgid "Per-command statistics settings."
 msgstr ""
 
 #. allow-unknown
-#: maint.c:1096
+#: maint.c:1072
 msgid "Show per-command statistics settings."
 msgstr ""
 
-#: maint.c:1102
+#: maint.c:1078
 msgid "Set whether to display per-command execution time."
 msgstr ""
 
-#: maint.c:1103
+#: maint.c:1079
 msgid "Show whether to display per-command execution time."
 msgstr ""
 
-#: maint.c:1105
+#: maint.c:1081
 msgid ""
 "If enabled, the execution time for each command will be\n"
 "displayed following the command's output."
 msgstr ""
 
-#: maint.c:1112
+#: maint.c:1088
 msgid "Set whether to display per-command space usage."
 msgstr ""
 
-#: maint.c:1113
+#: maint.c:1089
 msgid "Show whether to display per-command space usage."
 msgstr ""
 
-#: maint.c:1115
+#: maint.c:1091
 msgid ""
 "If enabled, the space usage for each command will be\n"
 "displayed following the command's output."
 msgstr ""
 
-#: maint.c:1122
+#: maint.c:1098
 msgid "Set whether to display per-command symtab statistics."
 msgstr ""
 
-#: maint.c:1123
+#: maint.c:1099
 msgid "Show whether to display per-command symtab statistics."
 msgstr ""
 
-#: maint.c:1125
+#: maint.c:1101
 msgid ""
 "If enabled, the basic symtab statistics for each command will be\n"
 "displayed following the command's output."
@@ -17052,7 +17084,7 @@ msgstr ""
 
 #. This is equivalent to "mt set per-command time on".
 #. Kept because some people are used to typing "mt time 1".
-#: maint.c:1133
+#: maint.c:1109
 msgid ""
 "Set the display of time usage.\n"
 "If nonzero, will cause the execution time for each command to be\n"
@@ -17061,35 +17093,35 @@ msgstr ""
 
 #. This is equivalent to "mt set per-command space on".
 #. Kept because some people are used to typing "mt space 1".
-#: maint.c:1141
+#: maint.c:1117
 msgid ""
 "Set the display of space usage.\n"
 "If nonzero, will cause the execution space for each command to be\n"
 "displayed, following the command's output."
 msgstr ""
 
-#: maint.c:1147
+#: maint.c:1123
 msgid ""
 "Print a type chain for a given symbol.\n"
 "For each node in a type chain, print the raw data for each member of\n"
 "the type structure, and the interpretation of the data."
 msgstr ""
 
-#: maint.c:1154
+#: maint.c:1130
 msgid "Print statistics about internal gdb state."
 msgstr ""
 
-#: maint.c:1158
+#: maint.c:1134
 msgid ""
 "Print the internal architecture configuration.\n"
 "Takes an optional file parameter."
 msgstr ""
 
-#: maint.c:1165
+#: maint.c:1141
 msgid "Translate a section name and address to a symbol."
 msgstr ""
 
-#: maint.c:1168
+#: maint.c:1144
 msgid ""
 "Deprecate a command.  Note that this is just in here so the \n"
 "testsuite can check the command deprecator. You probably shouldn't use "
@@ -17099,7 +17131,7 @@ msgid ""
 "replacement is optional."
 msgstr ""
 
-#: maint.c:1175
+#: maint.c:1151
 msgid ""
 "Undeprecate a command.  Note that this is just in here so the \n"
 "testsuite can check the command deprecator. You probably shouldn't use "
@@ -17107,30 +17139,30 @@ msgid ""
 "If you decide you want to use it: maintenance undeprecate 'commandname'"
 msgstr ""
 
-#: maint.c:1181
+#: maint.c:1157
 msgid "Set watchdog timer."
 msgstr ""
 
-#: maint.c:1182
+#: maint.c:1158
 msgid "Show watchdog timer."
 msgstr ""
 
-#: maint.c:1183
+#: maint.c:1159
 msgid ""
 "When non-zero, this timeout is used instead of waiting forever for a target\n"
 "to finish a low-level step or continue operation.  If the specified amount\n"
 "of time passes without a response from the target, an error occurs."
 msgstr ""
 
-#: maint.c:1192
+#: maint.c:1168
 msgid "Set internal profiling."
 msgstr ""
 
-#: maint.c:1193
+#: maint.c:1169
 msgid "Show internal profiling."
 msgstr ""
 
-#: maint.c:1194
+#: maint.c:1170
 msgid "When enabled GDB is profiled."
 msgstr ""
 
@@ -18649,99 +18681,99 @@ msgstr ""
 msgid "process %d is a zombie - the process has already terminated"
 msgstr ""
 
-#: nat/linux-ptrace.c:87
+#: nat/linux-ptrace.c:113
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: Cannot mmap: %s"
 msgstr ""
 
-#: nat/linux-ptrace.c:99
+#: nat/linux-ptrace.c:125
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: Cannot fork: %s"
 msgstr ""
 
-#: nat/linux-ptrace.c:107
+#: nat/linux-ptrace.c:133
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: Cannot PTRACE_TRACEME: %s"
 msgstr ""
 
-#: nat/linux-ptrace.c:137
+#: nat/linux-ptrace.c:163
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: waitpid returned %ld: %s"
 msgstr ""
 
-#: nat/linux-ptrace.c:145
+#: nat/linux-ptrace.c:171
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: WTERMSIG %d is not SIGKILL!"
 msgstr ""
 
-#: nat/linux-ptrace.c:148
+#: nat/linux-ptrace.c:174
 msgid ""
 "Cannot call inferior functions, Linux kernel PaX protection forbids return "
 "to non-executable pages!"
 msgstr ""
 
-#: nat/linux-ptrace.c:155
+#: nat/linux-ptrace.c:181
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: status %d is not WIFSTOPPED!"
 msgstr ""
 
-#: nat/linux-ptrace.c:163
+#: nat/linux-ptrace.c:189
 #, possible-c-format
 msgid ""
 "linux_ptrace_test_ret_to_nx: WSTOPSIG %d is neither SIGTRAP nor SIGSEGV!"
 msgstr ""
 
-#: nat/linux-ptrace.c:181
+#: nat/linux-ptrace.c:207
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: Cannot PTRACE_PEEKUSER: %s"
 msgstr ""
 
-#: nat/linux-ptrace.c:195
+#: nat/linux-ptrace.c:221
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: PTRACE_KILL waitpid returned %ld: %s"
 msgstr ""
 
-#: nat/linux-ptrace.c:202
+#: nat/linux-ptrace.c:228
 #, possible-c-format
 msgid "linux_ptrace_test_ret_to_nx: PTRACE_KILL status %d is not WIFSIGNALED!"
 msgstr ""
 
-#: nat/linux-ptrace.c:223
+#: nat/linux-ptrace.c:249
 #, possible-c-format
 msgid ""
 "linux_ptrace_test_ret_to_nx: PC %p is neither near return address %p nor is "
 "the return instruction %p!"
 msgstr ""
 
-#: nat/linux-ptrace.c:227
+#: nat/linux-ptrace.c:253
 msgid ""
 "Cannot call inferior functions on this system - Linux kernel with broken "
 "i386 NX (non-executable pages) support detected!"
 msgstr ""
 
-#: nat/linux-ptrace.c:332
+#: nat/linux-ptrace.c:358
 #, possible-c-format
 msgid "linux_check_ptrace_features: waitpid: unexpected result %d."
 msgstr ""
 
-#: nat/linux-ptrace.c:335
+#: nat/linux-ptrace.c:361
 #, possible-c-format
 msgid "linux_check_ptrace_features: waitpid: unexpected status %d."
 msgstr ""
 
-#: nat/linux-ptrace.c:350
+#: nat/linux-ptrace.c:376
 msgid "linux_check_ptrace_features: failed to kill child"
 msgstr ""
 
-#: nat/linux-ptrace.c:416
+#: nat/linux-ptrace.c:442
 msgid "linux_test_for_tracefork: failed to resume child"
 msgstr ""
 
-#: nat/linux-ptrace.c:445
+#: nat/linux-ptrace.c:471
 msgid "linux_test_for_tracefork: failed to kill second child"
 msgstr ""
 
-#: nat/linux-ptrace.c:451
+#: nat/linux-ptrace.c:477
 #, possible-c-format
 msgid ""
 "linux_test_for_tracefork: unexpected result from waitpid (%d, status 0x%x)"
@@ -18788,6 +18820,11 @@ msgstr ""
 msgid "test branch tracing: expected killed. status: %d."
 msgstr ""
 
+#: nat/linux-procfs.c:215
+#, possible-c-format
+msgid "Could not open /proc/%ld/task.\n"
+msgstr ""
+
 #: nat/x86-dregs.c:232
 msgid "The i386 doesn't support data-read watchpoints.\n"
 msgstr ""
@@ -21074,7 +21111,7 @@ msgstr ""
 msgid "Invalid modifier: %c."
 msgstr ""
 
-#: record.c:685 top.c:1576
+#: record.c:685 top.c:1643
 #, possible-c-format
 msgid "integer %u out of range"
 msgstr ""
@@ -24886,87 +24923,87 @@ msgstr ""
 msgid "Bad stabs string '%s'"
 msgstr ""
 
-#: stabsread.c:705
+#: stabsread.c:708
 #, possible-c-format
 msgid "Unknown C++ symbol name `%s'"
 msgstr ""
 
-#: stabsread.c:1471
+#: stabsread.c:1472
 msgid "couldn't parse type; debugger out of date?"
 msgstr ""
 
-#: stabsread.c:1592
+#: stabsread.c:1593
 #, possible-c-format
 msgid "Unrecognized cross-reference type `%c'"
 msgstr ""
 
-#: stabsread.c:1820
+#: stabsread.c:1821
 #, possible-c-format
 msgid ""
 "Prototyped function type didn't end arguments with `#':\n"
 "%s"
 msgstr ""
 
-#: stabsread.c:1933
+#: stabsread.c:1934
 #, possible-c-format
 msgid "invalid (minimal) member type data format at symtab pos %d."
 msgstr ""
 
-#: stabsread.c:2037
+#: stabsread.c:2038
 msgid "GDB internal error, type is NULL in stabsread.c."
 msgstr ""
 
-#: stabsread.c:2065
+#: stabsread.c:2066
 #, possible-c-format
 msgid "Unknown builtin type %d"
 msgstr ""
 
-#: stabsread.c:2241
+#: stabsread.c:2242
 #, possible-c-format
 msgid "Method has bad physname %s\n"
 msgstr ""
 
-#: stabsread.c:2430
+#: stabsread.c:2431
 #, possible-c-format
 msgid "const/volatile indicator missing, got '%c'"
 msgstr ""
 
-#: stabsread.c:2514
+#: stabsread.c:2515
 #, possible-c-format
 msgid "member function type missing, got '%c'"
 msgstr ""
 
-#: stabsread.c:2791
+#: stabsread.c:2792
 #, possible-c-format
 msgid "C++ abbreviated type name unknown at symtab pos %d"
 msgstr ""
 
-#: stabsread.c:3153
+#: stabsread.c:3154
 #, possible-c-format
 msgid "Unknown virtual character `%c' for baseclass"
 msgstr ""
 
-#: stabsread.c:3171
+#: stabsread.c:3172
 #, possible-c-format
 msgid "Unknown visibility `%c' for baseclass"
 msgstr ""
 
-#: stabsread.c:3280
+#: stabsread.c:3281
 #, possible-c-format
 msgid "virtual function table pointer not found when defining class `%s'"
 msgstr ""
 
-#: stabsread.c:3393
+#: stabsread.c:3394
 #, possible-c-format
 msgid "Unknown visibility `%c' for field"
 msgstr ""
 
-#: stabsread.c:3435
+#: stabsread.c:3436
 #, possible-c-format
 msgid "struct/union type gets multiply defined: %s%s"
 msgstr ""
 
-#: stabsread.c:4240
+#: stabsread.c:4241
 #, possible-c-format
 msgid "base type %d of range type is not defined"
 msgstr ""
@@ -24975,33 +25012,33 @@ msgstr ""
 #. output contained `(0,41),(0,42)=@s8;-16;,(0,43),(0,1);' where should
 #. have been present ";-16,(0,43)" reference instead.  This way the
 #. excessive ";" marker prematurely stops the parameters parsing.
-#: stabsread.c:4281
+#: stabsread.c:4282
 msgid "Invalid (empty) method arguments"
 msgstr ""
 
-#: stabsread.c:4325
+#: stabsread.c:4326
 msgid "Invalid symbol data: common block within common block"
 msgstr ""
 
-#: stabsread.c:4351
+#: stabsread.c:4352
 msgid "ECOMM symbol unmatched by BCOMM"
 msgstr ""
 
-#: stabsread.c:4553
+#: stabsread.c:4554
 msgid "need a type name"
 msgstr ""
 
-#: stabsread.c:4580
+#: stabsread.c:4581
 #, possible-c-format
 msgid "forward-referenced types left unresolved, type code %d."
 msgstr ""
 
-#: stabsread.c:4732
+#: stabsread.c:4733
 #, possible-c-format
 msgid "%s: common block `%s' from global_sym_chain unresolved"
 msgstr ""
 
-#: stabsread.c:4813 stabsread.c:4818
+#: stabsread.c:4814 stabsread.c:4819
 #, possible-c-format
 msgid "invalid symbol name \"%s\""
 msgstr ""
@@ -26734,197 +26771,202 @@ msgstr ""
 msgid "The filename in which to record the command history is \"%s\".\n"
 msgstr ""
 
-#: top.c:1158
+#: top.c:930 top.c:958
+#, possible-c-format
+msgid "Could not rename %s to %s: %s"
+msgstr ""
+
+#: top.c:1225
 msgid ""
 "\n"
 "For bug reporting instructions, please see:\n"
 msgstr ""
 
-#: top.c:1162
+#: top.c:1229
 msgid ""
 "Find the GDB manual and other documentation resources online at:\n"
 "<http://www.gnu.org/software/gdb/documentation/>.\n"
 msgstr ""
 
-#: top.c:1164
+#: top.c:1231
 msgid "For help, type \"help\".\n"
 msgstr ""
 
-#: top.c:1165
+#: top.c:1232
 msgid "Type \"apropos word\" to search for commands related to \"word\"."
 msgstr ""
 
-#: top.c:1173
+#: top.c:1240
 #, possible-c-format
 msgid ""
 "This GDB was configured as follows:\n"
 "   configure --host=%s --target=%s\n"
 msgstr ""
 
-#: top.c:1177
+#: top.c:1244
 #, possible-c-format
 msgid ""
 "             --with-auto-load-dir=%s\n"
 "             --with-auto-load-safe-path=%s\n"
 msgstr ""
 
-#: top.c:1182
+#: top.c:1249
 msgid "             --with-expat\n"
 msgstr ""
 
-#: top.c:1186
+#: top.c:1253
 msgid "             --without-expat\n"
 msgstr ""
 
-#: top.c:1191
+#: top.c:1258
 #, possible-c-format
 msgid "             --with-gdb-datadir=%s%s\n"
 msgstr ""
 
-#: top.c:1195
+#: top.c:1262
 #, possible-c-format
 msgid "             --with-iconv-bin=%s%s\n"
 msgstr ""
 
-#: top.c:1200
+#: top.c:1267
 #, possible-c-format
 msgid "             --with-jit-reader-dir=%s%s\n"
 msgstr ""
 
-#: top.c:1204
+#: top.c:1271
 msgid "             --with-libunwind-ia64\n"
 msgstr ""
 
-#: top.c:1208
+#: top.c:1275
 msgid "             --without-libunwind-ia64\n"
 msgstr ""
 
-#: top.c:1213
+#: top.c:1280
 msgid "             --with-lzma\n"
 msgstr ""
 
-#: top.c:1217
+#: top.c:1284
 msgid "             --without-lzma\n"
 msgstr ""
 
-#: top.c:1222
+#: top.c:1289
 #, possible-c-format
 msgid "             --with-python=%s%s\n"
 msgstr ""
 
-#: top.c:1227
+#: top.c:1294
 msgid "             --with-guile\n"
 msgstr ""
 
-#: top.c:1231
+#: top.c:1298
 msgid "             --without-guile\n"
 msgstr ""
 
-#: top.c:1236
+#: top.c:1303
 #, possible-c-format
 msgid "             --with-relocated-sources=%s\n"
 msgstr ""
 
-#: top.c:1241
+#: top.c:1308
 #, possible-c-format
 msgid "             --with-separate-debug-dir=%s%s\n"
 msgstr ""
 
-#: top.c:1245
+#: top.c:1312
 #, possible-c-format
 msgid "             --with-sysroot=%s%s\n"
 msgstr ""
 
-#: top.c:1249
+#: top.c:1316
 #, possible-c-format
 msgid "             --with-system-gdbinit=%s%s\n"
 msgstr ""
 
-#: top.c:1253
+#: top.c:1320
 msgid "             --with-zlib\n"
 msgstr ""
 
-#: top.c:1257
+#: top.c:1324
 msgid "             --without-zlib\n"
 msgstr ""
 
-#: top.c:1262
+#: top.c:1329
 msgid "             --with-babeltrace\n"
 msgstr ""
 
-#: top.c:1266
+#: top.c:1333
 msgid "             --without-babeltrace\n"
 msgstr ""
 
 #. We assume "relocatable" will be printed at least once, thus we always
 #. print this text.  It's a reasonably safe assumption for now.
-#: top.c:1272
+#: top.c:1339
 msgid ""
 "\n"
 "(\"Relocatable\" means the directory can be moved with the GDB installation\n"
 "tree, and GDB will still find it.)\n"
 msgstr ""
 
-#: top.c:1353
+#: top.c:1420
 #, possible-c-format
 msgid "\tInferior %d [%s] will be detached.\n"
 msgstr ""
 
-#: top.c:1357
+#: top.c:1424
 #, possible-c-format
 msgid "\tInferior %d [%s] will be killed.\n"
 msgstr ""
 
-#: top.c:1382
+#: top.c:1449
 msgid ""
 "A debugging session is active.\n"
 "\n"
 msgstr ""
 
-#: top.c:1384
+#: top.c:1451
 msgid ""
 "\n"
 "Quit anyway? "
 msgstr ""
 
-#: top.c:1589
+#: top.c:1656
 msgid "\"set history\" must be followed by the name of a history subcommand.\n"
 msgstr ""
 
-#: top.c:1682
+#: top.c:1749
 #, possible-c-format
 msgid "Gdb's prompt is \"%s\".\n"
 msgstr ""
 
-#: top.c:1689
+#: top.c:1756
 #, possible-c-format
 msgid "Editing of command lines as they are typed is %s.\n"
 msgstr ""
 
-#: top.c:1698
+#: top.c:1765
 #, possible-c-format
 msgid "Annotation_level is %s.\n"
 msgstr ""
 
-#: top.c:1705
+#: top.c:1772
 #, possible-c-format
 msgid "Notification of completion for asynchronous execution commands is %s.\n"
 msgstr ""
 
-#: top.c:1728
+#: top.c:1795
 #, possible-c-format
 msgid "GDB's data directory is \"%s\".\n"
 msgstr ""
 
-#: top.c:1773
+#: top.c:1840
 msgid "Set gdb's prompt"
 msgstr ""
 
-#: top.c:1774
+#: top.c:1841
 msgid "Show gdb's prompt"
 msgstr ""
 
-#: top.c:1779
+#: top.c:1846
 msgid ""
 "Don't repeat this command.\n"
 "Primarily used inside of user-defined commands that should not be repeated "
@@ -26932,44 +26974,44 @@ msgid ""
 "hitting return."
 msgstr ""
 
-#: top.c:1785
+#: top.c:1852
 msgid "Set editing of command lines as they are typed."
 msgstr ""
 
-#: top.c:1786
+#: top.c:1853
 msgid "Show editing of command lines as they are typed."
 msgstr ""
 
-#: top.c:1787
+#: top.c:1854
 msgid ""
 "Use \"on\" to enable the editing, and \"off\" to disable it.\n"
 "Without an argument, command line editing is enabled.  To edit, use\n"
 "EMACS-like or VI-like commands like control-P or ESC."
 msgstr ""
 
-#: top.c:1795
+#: top.c:1862
 msgid "Set saving of the history record on exit."
 msgstr ""
 
-#: top.c:1796
+#: top.c:1863
 msgid "Show saving of the history record on exit."
 msgstr ""
 
-#: top.c:1797
+#: top.c:1864
 msgid ""
 "Use \"on\" to enable the saving, and \"off\" to disable it.\n"
 "Without an argument, saving is enabled."
 msgstr ""
 
-#: top.c:1804
+#: top.c:1871
 msgid "Set the size of the command history,"
 msgstr ""
 
-#: top.c:1805
+#: top.c:1872
 msgid "Show the size of the command history,"
 msgstr ""
 
-#: top.c:1806
+#: top.c:1873
 msgid ""
 "ie. the number of previous commands to keep a record of.\n"
 "If set to \"unlimited\", the number of commands kept in the history\n"
@@ -26977,61 +27019,61 @@ msgid ""
 "variable \"HISTSIZE\", or to 256 if this variable is not set."
 msgstr ""
 
-#: top.c:1815
+#: top.c:1882
 msgid "Set the filename in which to record the command history"
 msgstr ""
 
-#: top.c:1816
+#: top.c:1883
 msgid "Show the filename in which to record the command history"
 msgstr ""
 
-#: top.c:1817
+#: top.c:1884
 msgid "(the list of previous commands of which a record is kept)."
 msgstr ""
 
-#: top.c:1823
+#: top.c:1890
 msgid "Set whether to confirm potentially dangerous operations."
 msgstr ""
 
-#: top.c:1824
+#: top.c:1891
 msgid "Show whether to confirm potentially dangerous operations."
 msgstr ""
 
-#: top.c:1830
+#: top.c:1897
 msgid "Set annotation_level."
 msgstr ""
 
-#: top.c:1831
+#: top.c:1898
 msgid "Show annotation_level."
 msgstr ""
 
-#: top.c:1832
+#: top.c:1899
 msgid ""
 "0 == normal;     1 == fullname (for use when running under emacs)\n"
 "2 == output annotated suitably for use by programs that control GDB."
 msgstr ""
 
-#: top.c:1840
+#: top.c:1907
 msgid "Set notification of completion for asynchronous execution commands."
 msgstr ""
 
-#: top.c:1841
+#: top.c:1908
 msgid "Show notification of completion for asynchronous execution commands."
 msgstr ""
 
-#: top.c:1842
+#: top.c:1909
 msgid "Use \"on\" to enable the notification, and \"off\" to disable it."
 msgstr ""
 
-#: top.c:1849
+#: top.c:1916
 msgid "Set GDB's data directory."
 msgstr ""
 
-#: top.c:1850
+#: top.c:1917
 msgid "Show GDB's data directory."
 msgstr ""
 
-#: top.c:1851
+#: top.c:1918
 msgid "When set, GDB uses the specified path to search for data files."
 msgstr ""
 
@@ -27819,14 +27861,6 @@ msgstr ""
 msgid "Show the notes string to use for future tstop commands"
 msgstr ""
 
-#: tui/tui-hooks.c:87
-msgid "(y or n) "
-msgstr ""
-
-#: tui/tui-hooks.c:120
-msgid "Please answer y or n.\n"
-msgstr ""
-
 #: tui/tui.c:420
 #, possible-c-format
 msgid "Cannot enable the TUI when the interpreter is '%s'"
@@ -27853,11 +27887,11 @@ msgid ""
 "point.\n"
 msgstr ""
 
-#: tui/tui-io.c:619
+#: tui/tui-io.c:622
 msgid "Cannot create pipe for readline"
 msgstr ""
 
-#: tui/tui-io.c:623
+#: tui/tui-io.c:626
 msgid "Cannot redirect readline output"
 msgstr ""
 
@@ -28447,23 +28481,23 @@ msgstr ""
 msgid "virtual memory exhausted."
 msgstr ""
 
-#: utils.c:1251
+#: utils.c:1250
 #, possible-c-format
 msgid "(%s or %s) [answered %c; input not from terminal]\n"
 msgstr ""
 
-#: utils.c:1279
+#: utils.c:1265
 #, possible-c-format
-msgid "(%s or %s) "
+msgid "%s%s(%s or %s) %s"
 msgstr ""
 
 #. Invalid entries are not defaulted and require another selection.
-#: utils.c:1343
+#: utils.c:1310
 #, possible-c-format
 msgid "Please answer %s or %s.\n"
 msgstr ""
 
-#: utils.c:1527
+#: utils.c:1494
 #, possible-c-format
 msgid ""
 "The escape sequence `\\%c' is equivalent to plain `%c', which has no "
@@ -28471,109 +28505,109 @@ msgid ""
 "in the `%s' character set."
 msgstr ""
 
-#: utils.c:1638
+#: utils.c:1605
 #, possible-c-format
 msgid "Number of lines gdb thinks are in a page is %s.\n"
 msgstr ""
 
-#: utils.c:1649
+#: utils.c:1616
 #, possible-c-format
 msgid "Number of characters gdb thinks are in a line is %s.\n"
 msgstr ""
 
-#: utils.c:2722
+#: utils.c:2689
 #, possible-c-format
 msgid "Timestamping debugging messages is %s.\n"
 msgstr ""
 
-#: utils.c:2730
+#: utils.c:2697
 msgid "Set number of characters where GDB should wrap lines of its output."
 msgstr ""
 
-#: utils.c:2731
+#: utils.c:2698
 msgid "Show number of characters where GDB should wrap lines of its output."
 msgstr ""
 
-#: utils.c:2732
+#: utils.c:2699
 msgid ""
 "This affects where GDB wraps its output to fit the screen width.\n"
 "Setting this to \"unlimited\" or zero prevents GDB from wrapping its output."
 msgstr ""
 
-#: utils.c:2739
+#: utils.c:2706
 msgid "Set number of lines in a page for GDB output pagination."
 msgstr ""
 
-#: utils.c:2740
+#: utils.c:2707
 msgid "Show number of lines in a page for GDB output pagination."
 msgstr ""
 
-#: utils.c:2741
+#: utils.c:2708
 msgid ""
 "This affects the number of lines after which GDB will pause\n"
 "its output and ask you whether to continue.\n"
 "Setting this to \"unlimited\" or zero causes GDB never pause during output."
 msgstr ""
 
-#: utils.c:2752
+#: utils.c:2719
 msgid "Set state of GDB output pagination."
 msgstr ""
 
-#: utils.c:2753
+#: utils.c:2720
 msgid "Show state of GDB output pagination."
 msgstr ""
 
-#: utils.c:2754
+#: utils.c:2721
 msgid ""
 "When pagination is ON, GDB pauses at end of each screenful of\n"
 "its output and asks you whether to continue.\n"
 "Turning pagination off is an alternative to \"set height unlimited\"."
 msgstr ""
 
-#: utils.c:2765
+#: utils.c:2732
 msgid "Enable pagination"
 msgstr ""
 
-#: utils.c:2767
+#: utils.c:2734
 msgid "Disable pagination"
 msgstr ""
 
-#: utils.c:2771
+#: utils.c:2738
 msgid "Set printing of 8-bit characters in strings as \\nnn."
 msgstr ""
 
-#: utils.c:2772
+#: utils.c:2739
 msgid "Show printing of 8-bit characters in strings as \\nnn."
 msgstr ""
 
-#: utils.c:2779
+#: utils.c:2746
 msgid "Set timestamping of debugging messages."
 msgstr ""
 
-#: utils.c:2780
+#: utils.c:2747
 msgid "Show timestamping of debugging messages."
 msgstr ""
 
-#: utils.c:2781
+#: utils.c:2748
 msgid ""
 "When set, debugging messages will be marked with seconds and microseconds."
 msgstr ""
 
-#: utils.c:2865
+#: utils.c:2832
 #, possible-c-format
 msgid "invalid hex \"%s\""
 msgstr ""
 
-#: utils.c:2878
+#: utils.c:2845
 #, possible-c-format
 msgid "invalid decimal \"%s\""
 msgstr ""
 
-#: utils.c:3276
+#: utils.c:3226
 msgid "process-id to attach"
 msgstr ""
 
-#: utils.c:3282
+#: utils.c:3232
 #, possible-c-format
 msgid "Illegal process-id: %s."
 msgstr ""
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/python/py-type.c ./gdb/python/py-type.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/python/py-type.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/python/py-type.c	2015-01-13 01:48:39.000000000 +0000
@@ -528,7 +528,7 @@ typy_array_1 (PyObject *self, PyObject *
       n1 = 0;
     }
 
-  if (n2 < n1)
+  if (n2 < n1 - 1) /* Note: An empty array has n2 == n1 - 1.  */
     {
       PyErr_SetString (PyExc_ValueError,
 		       _("Array length must not be negative"));
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/stabsread.c ./gdb/stabsread.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/stabsread.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/stabsread.c	2015-01-13 01:48:39.000000000 +0000
@@ -675,6 +675,9 @@ define_symbol (CORE_ADDR valu, char *str
       SYMBOL_LINE (sym) = 0;	/* unknown */
     }
 
+  SYMBOL_SET_LANGUAGE (sym, current_subfile->language,
+		       &objfile->objfile_obstack);
+
   if (is_cplus_marker (string[0]))
     {
       /* Special GNU C++ names.  */
@@ -710,8 +713,6 @@ define_symbol (CORE_ADDR valu, char *str
   else
     {
     normal:
-      SYMBOL_SET_LANGUAGE (sym, current_subfile->language,
-			   &objfile->objfile_obstack);
       if (SYMBOL_LANGUAGE (sym) == language_cplus)
 	{
 	  char *name = alloca (p - string + 1);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/terminal.h ./gdb/terminal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/terminal.h	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/terminal.h	2015-01-13 01:48:39.000000000 +0000
@@ -103,6 +103,8 @@ extern int gdb_has_a_terminal (void);
 
 extern void gdb_save_tty_state (void);
 
+extern void set_initial_gdb_ttystate (void);
+
 /* Set the process group of the caller to its own pid, or do nothing
    if we lack job control.  */
 extern int gdb_setpgid (void);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/ChangeLog ./gdb/testsuite/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/ChangeLog	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/ChangeLog	2015-01-13 01:48:39.000000000 +0000
@@ -1,3 +1,113 @@
+2015-01-12  Pedro Alves  <palves@redhat.com>
+
+	* gdb.python/py-prompt.exp: When the board can't spawn for attach,
+	restore GDBFLAGS before returning.
+
+2015-01-12  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	* gdb.python/py-frame.exp (test Frame.read_register(rip)): Use
+	is_amd64_regs_target and is_x86_like_target.
+
+2015-01-11  Doug Evans  <xdje42@gmail.com>
+
+	* lib/dwarf.exp (Dwarf): Flag an error if a numeric attribute value
+	is given without an explicit form.
+	* gdb.dwarf2/arr-subrange.exp: Specify forms for all numeric
+	attributes.
+	* gdb.dwarf/corrupt.exp: Ditto.
+	* gdb.dwarf2/enum-type.exp: Ditto.
+	* gdb.trace/entry-values.exp: Ditto.
+	* gdb.trace/unavailable-dwarf-piece.exp: Ditto.
+
+2015-01-11  Doug Evans  <xdje42@gmail.com>
+
+	PR gdb/15830
+	* gdb.base/maint.exp: Remove references to "maint demangle".
+	* gdb.cp/demangle.exp: Update.  "maint demangle" -> "demangle".
+	Add tests for explicitly specifying language to demangle.
+	* gdb.dlang/demangle.exp: Ditto.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/non-stop-fair-events.c: New file.
+	* gdb.threads/non-stop-fair-events.exp: New file.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.base/annota1.exp (thread_test): Use srcfile and binfile from
+	the global scope.  Set a breakpoint after all threads are started
+	rather than stepping over two source lines.  Expect the prompt.
+	* gdb.base/watch_thread_num.c (threads_started_barrier): New
+	global.
+	(NUM): Now 15.
+	(main): Use threads_started_barrier to wait for all threads to
+	start.  Main thread no longer calls thread_function.  Exit after
+	180 seconds.
+	(loop): New function.
+	(thread_function): Wait on threads_started_barrier barrier.  Call
+	'loop' at each iteration.
+	* gdb.base/watch_thread_num.exp: Continue to breakpoint after all
+	threads have started, instead of hardcoding number of "next"
+	steps.  Use an access watchpoint instead of a write watchpoint.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/ia64-sigill.c (threads_started_barrier): New global.
+	(thread_func): Wait on barrier.
+	(main): Wait for all threads to start before stopping GDB.
+	* gdb.threads/siginfo-threads.c (threads_started_barrier): New
+	global.
+	(thread1_func, thread2_func): Wait on barrier.
+	(main): Wait for all threads to start before stopping GDB.
+	* gdb.threads/watchthreads-reorder.c (threads_started_barrier):
+	New global.
+	(thread1_func, thread2_func): Wait on barrier.
+	(main): Wait for all threads to start before stopping GDB.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/attach-many-short-lived-threads.c: New file.
+	* gdb.threads/attach-many-short-lived-threads.exp: New file.
+
+2014-01-09  Pedro Alves  <palves@redhat.com>
+
+	* gdb.threads/fork-thread-pending.exp: Switch to the main thread
+	instead of to thread 2.
+	* gdb.threads/signal-command-multiple-signals-pending.c (main):
+	Add barrier around each pthread_create call instead of around all
+	calls.
+	* gdb.threads/signal-command-multiple-signals-pending.exp (test):
+	Set a break on thread_function and have the child threads hit it
+	one at at a time.
+
+2015-01-09  Pedro Alves  <palves@redhat.com>
+
+	* lib/gdb.exp (can_spawn_for_attach): New procedure.
+	(spawn_wait_for_attach): Error out if can_spawn_for_attach returns
+	false.
+	* gdb.base/attach.exp: Use can_spawn_for_attach instead of
+	checking whether the target board is remote.
+	* gdb.multi/multi-attach.exp: Likewise.
+	* gdb.python/py-sync-interp.exp: Likewise.
+	* gdb.server/ext-attach.exp: Likewise.
+	* gdb.python/py-prompt.exp: Use can_spawn_for_attach before the
+	tests that need to attach, instead of checking whether the target
+	board is remote at the top of the file.
+
+2015-01-08  Yao Qi  <yao@codesourcery.com>
+
+	* gdb.trace/entry-values.exp: Set call_insn for MIPS target.
+
+2015-01-07  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+	Fix testcase compilation.
+	* gdb.arch/i386-avx512.exp (comp_flags): Remove /common.
+
+2015-01-06  Joel Brobecker  <brobecker@adacore.com>
+
+	* gdb.python/py-type.exp: Add a couple test about empty
+	array creation, and negative-length array creation.
+
 2015-01-02  Doug Evans  <xdje42@gmail.com>
 
 	* gdb.cp/nsalias.exp: Fix output of external/declaration flags.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.arch/i386-avx512.exp ./gdb/testsuite/gdb.arch/i386-avx512.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.arch/i386-avx512.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.arch/i386-avx512.exp	2015-01-13 01:48:40.000000000 +0000
@@ -26,7 +26,7 @@ if { ![istarget i?86-*-*] && ![istarget 
 
 standard_testfile
 
-set comp_flags "-mavx512f -I${srcdir}/../common"
+set comp_flags "-mavx512f -I${srcdir}/.."
 
 if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} \
      [list debug nowarnings additional_flags=${comp_flags}]] } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/annota1.exp ./gdb/testsuite/gdb.base/annota1.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/annota1.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.base/annota1.exp	2015-01-13 01:48:40.000000000 +0000
@@ -440,7 +440,7 @@ if { [remote_file host exists core] } {
 }
 
 proc thread_test {} {
-    global subdir srcdir testfile
+    global subdir srcdir testfile srcfile binfile
     global gdb_prompt old_gdb_prompt
     set srcfile watch_thread_num.c
     set binfile [standard_output_file ${testfile}-watch_thread_num]
@@ -457,6 +457,9 @@ proc thread_test {} {
 	    return
 	}
 
+	set linenum [gdb_get_line_number "all threads started"]
+	gdb_breakpoint "$linenum"
+
 	set gdb_prompt \
 	    "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
 
@@ -465,8 +468,8 @@ proc thread_test {} {
 	    }
 	}
 
-	gdb_test_multiple "next 2" "new thread" {
-	    -re ".*\032\032new-thread" {
+	gdb_test_multiple "continue" "new thread" {
+	    -re "\032\032new-thread.*\r\n$gdb_prompt$" {
 		pass "new thread"
 	    }
 	}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/attach.exp ./gdb/testsuite/gdb.base/attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/attach.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.base/attach.exp	2015-01-13 01:48:40.000000000 +0000
@@ -25,8 +25,7 @@ if { [istarget "hppa*-*-hpux*"] } {
     return 0
 }
 
-# are we on a target board
-if [is_remote target] then {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/maint.exp ./gdb/testsuite/gdb.base/maint.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/maint.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.base/maint.exp	2015-01-13 01:48:40.000000000 +0000
@@ -25,7 +25,6 @@
 #maintenance expand-symtabs -- Expand symtabs matching a file regexp
 #maintenance set -- Set GDB internal variables used by the GDB maintainer
 #maintenance show -- Show GDB internal variables used by the GDB maintainer
-#maintenance demangle -- Demangle a C++ mangled name
 #maintenance dump-me -- Get fatal error; make debugger dump its core
 #maintenance print -- Maintenance command for printing GDB internal state
 #maintenance info -- Commands for showing internal info about the program being debugged
@@ -136,13 +135,6 @@ gdb_test "pwd" \
     "Command execution time: \[0-9.\]+ \\(cpu\\), \[0-9.\]+ \\(wall\\)\[\r\n\]+Space used: $decimal \\(\\+$decimal for this command\\)\[\r\n\]+#symtabs: $decimal \\(\\+$decimal\\), #compunits: $decimal \\(\\+$decimal\\), #blocks: $decimal \\(\\+$decimal\\)"
 gdb_test_no_output "maint set per-command off"
 
-gdb_test "maint demangle" \
-    "\"maintenance demangle\" takes an argument to demangle\\."
-
-gdb_test "maint demangle main" "Can't demangle \"main\""
-
-
-
 # The timeout value is raised, because printing all the symbols and
 # statistical information about Cygwin and Windows libraries takes a lot
 # of time.
@@ -484,7 +476,7 @@ set timeout $oldtimeout
 #============test help on maint commands
 
 gdb_test "help maint" \
-    "Commands for use by GDB maintainers\\..*Includes commands to dump specific internal GDB structures in.*a human readable form, to cause GDB to deliberately dump core,.*to test internal functions such as the C../ObjC demangler, etc\\..*List of maintenance subcommands:.*maintenance info.*maintenance internal-error.*maintenance print.*maintenance set.*maintenance show.*Type.*help maintenance.*followed by maintenance subcommand name for full documentation\\..*Command name abbreviations are allowed if unambiguous\\..*" 
+    "Commands for use by GDB maintainers\\..*Includes commands to dump specific internal GDB structures in.*a human readable form, to cause GDB to deliberately dump core, etc\\..*List of maintenance subcommands:.*maintenance info.*maintenance internal-error.*maintenance print.*maintenance set.*maintenance show.*Type.*help maintenance.*followed by maintenance subcommand name for full documentation\\..*Command name abbreviations are allowed if unambiguous\\..*" 
 
 gdb_test "help maint info" \
     "Commands for showing internal info about the program being debugged.*unambiguous\\..*"
@@ -496,8 +488,7 @@ test_prefix_command_help {"maint print" 
 test_prefix_command_help {"maint" "maintenance"} {
     "Commands for use by GDB maintainers\\.\[\r\n\]+"
     "Includes commands to dump specific internal GDB structures in\[\r\n\]+"
-    "a human readable form, to cause GDB to deliberately dump core,\[\r\n\]+"
-    "to test internal functions such as the C\\+\\+/ObjC demangler, etc\\.\[\r\n\]+"
+    "a human readable form, to cause GDB to deliberately dump core, etc\\.\[\r\n\]+"
 }
 
 #set oldtimeout $timeout
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/solib-overlap.exp ./gdb/testsuite/gdb.base/solib-overlap.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/solib-overlap.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.base/solib-overlap.exp	2015-01-13 01:48:40.000000000 +0000
@@ -31,8 +31,7 @@ if [skip_shlib_tests] {
     return 0
 }
 
-# Are we on a target board?  It is required for attaching to a process.
-if [is_remote target] {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/watch_thread_num.c ./gdb/testsuite/gdb.base/watch_thread_num.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/watch_thread_num.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch_thread_num.c	2015-01-13 01:48:40.000000000 +0000
@@ -27,7 +27,11 @@
 
 void *thread_function (void *arg); /* Pointer to function executed by each thread */
 
-#define NUM 5
+static pthread_barrier_t threads_started_barrier;
+
+#define NUM 15
+
+static int num_threads = NUM;
 
 static unsigned int shared_var = 1;
 
@@ -37,6 +41,8 @@ int main () {
     void *thread_result;
     long i;
 
+    pthread_barrier_init (&threads_started_barrier, NULL, NUM + 1);
+
     for (i = 0; i < NUM; i++)
       {
         res = pthread_create (&threads[i],
@@ -45,18 +51,29 @@ int main () {
 			     (void *) i);
       }
 
-    thread_result = thread_function ((void *) i);
+    pthread_barrier_wait (&threads_started_barrier);
+
+    sleep (180); /* all threads started */
 
     exit (EXIT_SUCCESS);
 }
 
+void
+loop (void)
+{
+}
+
 void *thread_function (void *arg) {
     int my_number = (long) arg;
+
+    pthread_barrier_wait (&threads_started_barrier);
+
     /* Don't run forever.  Run just short of it :)  */
     while (shared_var > 0)
       {
         shared_var++;
 	usleep (1); /* Loop increment.  */
+	loop ();
       }
 
     pthread_exit (NULL);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/watch_thread_num.exp ./gdb/testsuite/gdb.base/watch_thread_num.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.base/watch_thread_num.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.base/watch_thread_num.exp	2015-01-13 01:48:40.000000000 +0000
@@ -47,12 +47,14 @@ if { ![runto main] } then {
 gdb_test "watch shared_var thread 0" "Unknown thread 0\." "Watchpoint on invalid thread"
 gdb_test "watch shared_var thread" "A syntax error in expression, near `thread'\." "Invalid watch syntax"
 
-gdb_test "Next 5" ".*"
+set bpexitline [gdb_get_line_number "all threads started"]
+gdb_breakpoint "$bpexitline"
+gdb_continue_to_breakpoint "all threads started"
 
-gdb_test "break thread_function" "Breakpoint \[0-9\].*" \
-  "Set breakpoint at thread_function"
+gdb_test "break loop" "Breakpoint \[0-9\].*" \
+  "Set breakpoint at loop"
 
-gdb_test "continue" ".*Breakpoint 2.*" "Stopped in thread_function"
+gdb_test "continue" ".*Breakpoint .*loop.*" "Stopped in loop"
 
 gdb_test_multiple "thread" "Thread command" {
     -re ".*Current thread is (\[0-9\]*).*$gdb_prompt $" {
@@ -62,15 +64,35 @@ gdb_test_multiple "thread" "Thread comma
 
 set thread_num "$expect_out(1,string)"
 
-gdb_test_no_output "disable 2" "Disable breakpoint 2"
-gdb_test "watch shared_var thread $thread_num" "Hardware watchpoint 3: shared_var" "Watchpoint on shared variable"
-gdb_test "info breakpoint 3" "stop only in thread $thread_num"
+delete_breakpoints
 
-for {set i 1} {$i <= 10} {incr i 1} {
+# We use an access watchpoint rather than a write watchpoint, because
+# GDB can drop the latter when multiple threads trigger events
+# simultaneously, on targets with continuable watchpoints, such as
+# x86.  See PR breakpoints/10116.
+
+gdb_test "awatch shared_var thread $thread_num" \
+    "Hardware access \\(read/write\\) watchpoint .*: shared_var.*" \
+    "Watchpoint on shared variable"
+
+gdb_test "info breakpoint \$bpnum" \
+    "stop only in thread $thread_num" \
+    "info breakpoint shows watchpoint is thread-specific"
+
+for {set i 1} {$i <= 5} {incr i} {
     set watchpoint "Watchpoint triggered iteration $i"
     set check "Check thread that triggered iteration $i"
 
-    gdb_test "continue" "Hardware watchpoint 3: shared_var.*" $watchpoint
+    set test $watchpoint
+    gdb_test_multiple "continue" $test {
+	-re "infrun:" {
+	    # Avoid timeouts when debugging GDB.
+	    exp_continue
+	}
+	-re "Hardware access \\(read/write\\) watchpoint .*: shared_var.*$gdb_prompt $" {
+	    pass $test
+	}
+    }
     gdb_test "thread" ".*Current thread is $thread_num .*" $check
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.cp/demangle.exp ./gdb/testsuite/gdb.cp/demangle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.cp/demangle.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.cp/demangle.exp	2015-01-13 01:48:40.000000000 +0000
@@ -73,7 +73,7 @@ proc test_demangling_core {tester test r
 	set_demangling_style $style
     }
 
-    $tester "maintenance demangle $name" $result $test
+    $tester "demangle $name" $result $test
 }
 
 ### Demangle an identifier, and check that the result matches a pattern.
@@ -527,7 +527,7 @@ proc test_gnu_style_demangling {} {
     ## 1999-04-19: "Fix from Dale Hawkins".  Shouldn't segfault.
     # Accept even a dubious demangling; the string is ambiguous.
 
-    gdb_test_multiple "maintenance demangle __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator" "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator" {
+    gdb_test_multiple "demangle __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator" "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator" {
 	-re "virtual function thunk \\(delta:-64\\) for CosNaming::_proxy_NamingContext::_0RL__list\\(unsigned long, _CORBA_Unbounded_Sequence<CosNaming::Binding> \\*\\&, CosNaming::BindingIterator \\*\\&\\)\r\n$gdb_prompt $" {
 	    pass "gnu: __thunk_64__0RL__list__Q29CosNaming20_proxy_NamingContextUlRPt25_CORBA_Unbounded_Sequence1ZQ29CosNaming7BindingRPQ29CosNaming15BindingIterator"
 	}
@@ -1557,6 +1557,14 @@ proc do_tests {} {
     catch_demangling_errors test_gnu_style_demangling
     catch_demangling_errors test_arm_style_demangling
     catch_demangling_errors test_hp_style_demangling
+
+    # Verify specifying demangle language.
+    gdb_test_no_output "set language unknown"
+    set_demangling_style "auto"
+    gdb_test_exact "demangle -l c++ -- _ZSt4cout" "std::cout"
+    gdb_test_exact "demangle -l c++ _ZSt4cout" "std::cout"
+    gdb_test_exact "demangle -l c -- _ZSt4cout" "Can't demangle \"_ZSt4cout\""
+    gdb_test_exact "demangle -l garbage xyzdje" "Unknown language \"garbage\""
 }
 
 do_tests
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dlang/demangle.exp ./gdb/testsuite/gdb.dlang/demangle.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dlang/demangle.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.dlang/demangle.exp	2015-01-13 01:48:40.000000000 +0000
@@ -23,7 +23,7 @@ if { [skip_d_tests] } { continue }
 
 ### Utility function for test_demangling and test_demangling_exact.
 proc test_demangling {test result} {
-    gdb_test_exact "maintenance demangle $test" $result $test
+    gdb_test_exact "demangle $test" $result $test
 }
 
 proc test_d_demangling {} {
@@ -201,6 +201,9 @@ if [set_lang_d] {
     gdb_test_no_output "set width 0"
 
     test_d_demangling
+
+    # Verify we can specify the d language to demangle.
+    gdb_test_exact "demangle -l d -- _Dmain" "D main"
 } else {
     warning "D demangling tests suppressed."
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dwarf2/arr-subrange.exp ./gdb/testsuite/gdb.dwarf2/arr-subrange.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dwarf2/arr-subrange.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/arr-subrange.exp	2015-01-13 01:48:40.000000000 +0000
@@ -29,8 +29,8 @@ Dwarf::assemble $asm_file {
                 {DW_AT_language @DW_LANG_Ada95}
                 {DW_AT_name     foo.adb}
                 {DW_AT_comp_dir /tmp}
-                {DW_AT_low_pc   0x1000}
-                {DW_AT_high_pc  0x2000}
+                {DW_AT_low_pc   0x1000 addr}
+                {DW_AT_high_pc  0x2000 addr}
             } {
 	    declare_labels boolean_label typedef_label array_label enum_label
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dwarf2/corrupt.exp ./gdb/testsuite/gdb.dwarf2/corrupt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dwarf2/corrupt.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/corrupt.exp	2015-01-13 01:48:40.000000000 +0000
@@ -38,25 +38,25 @@ Dwarf::assemble $asm_file {
 	    declare_labels int_label
 
 	    int_label: base_type {
-		{byte_size 4}
+		{byte_size 4 sdata}
 		{name "int"}
 	    }
 
 	    enumeration_type {
 		{name "ENUM"}
-		{byte_size 4}
+		{byte_size 4 sdata}
 	    } {
 		enumerator {
 		    {name "A"}
-		    {const_value 0}
+		    {const_value 0 sdata}
 		}
 		enumerator {
 		    {name "B"}
-		    {const_value 1}
+		    {const_value 1 sdata}
 		    {sibling 12345678 DW_FORM_ref4}
 		} {
 		    base_type {
-			{byte_size 1}
+			{byte_size 1 sdata}
 			{name "char"}
 		    }
 		}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dwarf2/enum-type.exp ./gdb/testsuite/gdb.dwarf2/enum-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.dwarf2/enum-type.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.dwarf2/enum-type.exp	2015-01-13 01:48:40.000000000 +0000
@@ -50,7 +50,7 @@ Dwarf::assemble $asm_file {
 	    } {
 		DW_TAG_enumerator {
 		    {DW_AT_name ONE}
-		    {DW_AT_const_value 1}
+		    {DW_AT_const_value 1 DW_FORM_sdata}
 		}
 	    }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.multi/multi-attach.exp ./gdb/testsuite/gdb.multi/multi-attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.multi/multi-attach.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.multi/multi-attach.exp	2015-01-13 01:48:40.000000000 +0000
@@ -19,8 +19,7 @@
 
 standard_testfile
 
-# We need to use TCL's exec to get the pid.
-if [is_remote target] then {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-frame.exp ./gdb/testsuite/gdb.python/py-frame.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-frame.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-frame.exp	2015-01-13 01:48:40.000000000 +0000
@@ -105,9 +105,15 @@ gdb_test "python print ('result = %s' % 
   " = True" \
   "test Frame.read_register(pc)"
 
-# On x86-64, PC is in $rip register.
-if {[istarget x86_64-*]} {
-    gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.read_register('rip')))" \
+# Test arch-specific register name.
+set pc ""
+if {[is_amd64_regs_target]} {
+    set pc "rip"
+} elseif {[is_x86_like_target]} {
+    set pc "eip"
+}
+if { $pc != "" } {
+    gdb_test "python print ('result = %s' % (f0.read_register('pc') == f0.read_register('$pc')))" \
 	" = True" \
-	"test Frame.read_register(rip)"
+	"test Frame.read_register($pc)"
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-prompt.exp ./gdb/testsuite/gdb.python/py-prompt.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-prompt.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-prompt.exp	2015-01-13 01:48:40.000000000 +0000
@@ -18,11 +18,6 @@
 
 standard_testfile
 
-# We need to use TCL's exec to get the pid.
-if [is_remote target] then {
-    return 0
-}
-
 load_lib gdb-python.exp
 load_lib prompt.exp
 
@@ -80,6 +75,11 @@ gdb_test "python print (\"'\" + str(p\[0
 	 "prompt_hook argument is default prompt. 2"
 gdb_exit
 
+if {![can_spawn_for_attach]} {
+    set GDBFLAGS $saved_gdbflags
+    return 0
+}
+
 set testpid [spawn_wait_for_attach $binfile]
 
 set GDBFLAGS [concat $tmp_gdbflags " -ex \"set pagination off\""]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-sync-interp.exp ./gdb/testsuite/gdb.python/py-sync-interp.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-sync-interp.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-sync-interp.exp	2015-01-13 01:48:40.000000000 +0000
@@ -20,8 +20,7 @@
 
 standard_testfile
 
-# We need to use TCL's exec to get the pid.
-if [is_remote target] then {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-type.exp ./gdb/testsuite/gdb.python/py-type.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.python/py-type.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.python/py-type.exp	2015-01-13 01:48:40.000000000 +0000
@@ -247,6 +247,12 @@ restart_gdb "${binfile}"
 # Skip all tests if Python scripting is not enabled.
 if { [skip_python_tests] } { continue }
 
+gdb_test "python print gdb.lookup_type('char').array(1, 0)" \
+    "char \\\[0\\\]"
+
+gdb_test "python print gdb.lookup_type('char').array(1, -1)" \
+    "Array length must not be negative.*"
+
 with_test_prefix "lang_c" {
     runto_bp "break to inspect struct and array."
     test_fields "c"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.server/ext-attach.exp ./gdb/testsuite/gdb.server/ext-attach.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.server/ext-attach.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.server/ext-attach.exp	2015-01-13 01:48:40.000000000 +0000
@@ -26,8 +26,7 @@ if { [skip_gdbserver_tests] } {
     return 0
 }
 
-# We need to use TCL's exec to get the pid.
-if [is_remote target] then {
+if {![can_spawn_for_attach]} {
     return 0
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c	2015-01-13 01:48:40.000000000 +0000
@@ -0,0 +1,151 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014-2015 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/>.  */
+
+#define _GNU_SOURCE
+#include <assert.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <string.h>
+
+pthread_t main_thread;
+pthread_attr_t detached_attr;
+pthread_attr_t joinable_attr;
+
+/* Number of threads we'll create of each variant
+   (joinable/detached).  */
+int n_threads = 50;
+
+/* Mutex used to hold creating detached threads.  */
+pthread_mutex_t dthrds_create_mutex;
+
+/* Wrapper for pthread_create.   */
+
+void
+create_thread (pthread_attr_t *attr,
+	       void *(*start_routine) (void *), void *arg)
+{
+  pthread_t child;
+  int rc;
+
+  while ((rc = pthread_create (&child, attr, start_routine, arg)) != 0)
+    {
+      fprintf (stderr, "unexpected error from pthread_create: %s (%d)\n",
+	       strerror (rc), rc);
+      sleep (1);
+    }
+}
+
+void
+break_fn (void)
+{
+}
+
+/* Data passed to joinable threads on creation.  This is allocated on
+   the heap and ownership transferred from parent to child.  (We do
+   this because it's not portable to cast pthread_t to pointer.)  */
+
+struct thread_arg
+{
+  pthread_t parent;
+};
+
+/* Entry point for joinable threads.  These threads first join their
+   parent before spawning a new child (and exiting).  The parent's tid
+   is passed as pthread_create argument, encapsulated in a struct
+   thread_arg object.  */
+
+void *
+joinable_fn (void *arg)
+{
+  struct thread_arg *p = arg;
+
+  pthread_setname_np (pthread_self (), "joinable");
+
+  if (p->parent != main_thread)
+    assert (pthread_join (p->parent, NULL) == 0);
+
+  p->parent = pthread_self ();
+
+  create_thread (&joinable_attr, joinable_fn, p);
+
+  break_fn ();
+
+  return NULL;
+}
+
+/* Entry point for detached threads.  */
+
+void *
+detached_fn (void *arg)
+{
+  pthread_setname_np (pthread_self (), "detached");
+
+  /* This should throttle threads a bit in case we manage to spawn
+     threads faster than they exit.  */
+  pthread_mutex_lock (&dthrds_create_mutex);
+
+  create_thread (&detached_attr, detached_fn, NULL);
+
+  /* Note this is called before the mutex is unlocked otherwise in
+     non-stop mode, when the breakpoint is hit we'd keep spawning more
+     threads forever while the old threads stay alive (stopped in the
+     breakpoint).  */
+  break_fn ();
+
+  pthread_mutex_unlock (&dthrds_create_mutex);
+
+  return NULL;
+}
+
+int
+main (int argc, char *argv[])
+{
+  int i;
+
+  if (argc > 1)
+    n_threads = atoi (argv[1]);
+
+  pthread_mutex_init (&dthrds_create_mutex, NULL);
+
+  pthread_attr_init (&detached_attr);
+  pthread_attr_setdetachstate (&detached_attr, PTHREAD_CREATE_DETACHED);
+  pthread_attr_init (&joinable_attr);
+  pthread_attr_setdetachstate (&joinable_attr, PTHREAD_CREATE_JOINABLE);
+
+  main_thread = pthread_self ();
+
+  /* Spawn the initial set of test threads.  Some threads are
+     joinable, others are detached.  This exercises different code
+     paths in the runtime.  */
+  for (i = 0; i < n_threads; ++i)
+    {
+      struct thread_arg *p;
+
+      p = malloc (sizeof *p);
+      p->parent = main_thread;
+      create_thread (&joinable_attr, joinable_fn, p);
+
+      create_thread (&detached_attr, detached_fn, NULL);
+    }
+
+  /* Long enough for all the attach/detach sequences done by the .exp
+     file.  */
+  sleep (180);
+  return 0;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp	2015-01-13 01:48:40.000000000 +0000
@@ -0,0 +1,132 @@
+# Copyright 2008-2015 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 attaching to a program that is constantly spawning short-lived
+# threads.  The stresses the edge cases of attaching to threads that
+# have just been created or are in process of dying.  In addition, the
+# test attaches, debugs, detaches, reattaches in a loop a few times,
+# to stress the behavior of the debug API around detach (some systems
+# end up leaving stale state behind that confuse the following
+# attach).
+
+if {![can_spawn_for_attach]} {
+    return 0
+}
+
+standard_testfile
+
+# The test proper.  See description above.
+
+proc test {} {
+    global binfile
+    global gdb_prompt
+    global decimal
+
+    clean_restart ${binfile}
+
+    set testpid [spawn_wait_for_attach $binfile]
+
+    set attempts 10
+    for {set attempt 1} { $attempt <= $attempts } { incr attempt } {
+	with_test_prefix "iter $attempt" {
+	    set attached 0
+	    set eperm 0
+	    set test "attach"
+	    gdb_test_multiple "attach $testpid" $test {
+		-re "new threads in iteration" {
+		    # Seen when "set debug libthread_db" is on.
+		    exp_continue
+		}
+		-re "warning: Cannot attach to lwp $decimal: Operation not permitted" {
+		    # On Linux, PTRACE_ATTACH sometimes fails with
+		    # EPERM, even though /proc/PID/status indicates
+		    # the thread is running.
+		    set eperm 1
+		    exp_continue
+		}
+		-re "debugger service failed.*$gdb_prompt $" {
+		    fail $test
+		}
+		-re "$gdb_prompt $" {
+		    if {$eperm} {
+			xfail "$test (EPERM)"
+		    } else {
+			pass $test
+		    }
+		}
+		-re "Attaching to program.*process $testpid.*$gdb_prompt $" {
+		    pass $test
+		}
+	    }
+
+	    # Sleep a bit and try updating the thread list.  We should
+	    # know about all threads already at this point.  If we see
+	    # "New Thread" or similar being output, then "attach" is
+	    # failing to actually attach to all threads in the process,
+	    # which would be a bug.
+	    sleep 1
+
+	    set test "no new threads"
+	    gdb_test_multiple "info threads" $test {
+		-re "New .*$gdb_prompt $" {
+		    fail $test
+		}
+		-re "$gdb_prompt $" {
+		    pass $test
+		}
+	    }
+
+	    # Force breakpoints always inserted, so that threads we might
+	    # have failed to attach to hit them even when threads we do
+	    # know about are stopped.
+	    gdb_test_no_output "set breakpoint always-inserted on"
+
+	    # Run to a breakpoint a few times.  A few threads should spawn
+	    # and die meanwhile.  This checks that thread creation/death
+	    # events carry on correctly after attaching.  Also, be
+	    # detaching from the program and reattaching, we check that
+	    # the program doesn't die due to gdb leaving a pending
+	    # breakpoint hit on a new thread unprocessed.
+	    gdb_test "break break_fn" "Breakpoint.*" "break break_fn"
+
+	    # Wait a bit, to give time for most threads to hit the
+	    # breakpoint, including threads we might have failed to
+	    # attach.
+	    sleep 2
+
+	    set bps 3
+	    for {set bp 1} { $bp <= $bps } { incr bp } {
+		gdb_test "continue" "Breakpoint.*" "break at break_fn: $bp"
+	    }
+
+	    if {$attempt < $attempts} {
+		gdb_test "detach" "Detaching from.*"
+	    } else {
+		gdb_test "kill" "" "kill process" "Kill the program being debugged.*y or n. $" "y"
+	    }
+
+	    gdb_test_no_output "set breakpoint always-inserted off"
+	    delete_breakpoints
+	}
+    }
+
+    remote_exec target "kill -9 ${testpid}"
+}
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] == -1} {
+    return -1
+}
+
+test
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/fork-thread-pending.exp ./gdb/testsuite/gdb.threads/fork-thread-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/fork-thread-pending.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/fork-thread-pending.exp	2015-01-13 01:48:40.000000000 +0000
@@ -46,7 +46,7 @@ gdb_test "continue" "Catchpoint.*" "1, g
 
 gdb_test "info threads" " Thread .* Thread .* Thread .* Thread .*" "1, multiple threads found"
 
-gdb_test "thread 2" ".*" "1, switched away from event thread"
+gdb_test "thread 1" ".*" "1, switched away from event thread"
 
 gdb_test "continue" "Not resuming.*" "1, refused to resume"
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/ia64-sigill.c ./gdb/testsuite/gdb.threads/ia64-sigill.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/ia64-sigill.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/ia64-sigill.c	2015-01-13 01:48:40.000000000 +0000
@@ -44,6 +44,8 @@ static pthread_mutex_t thread2_tid_mutex
 
 static pthread_mutex_t terminate_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
 
+static pthread_barrier_t threads_started_barrier;
+
 /* Do not use alarm as it would create a ptrace event which would hang up us if
    we are being traced by GDB which we stopped ourselves.  */
 
@@ -78,6 +80,8 @@ thread_func (void *threadno_voidp)
   int threadno = (intptr_t) threadno_voidp;
   int i;
 
+  pthread_barrier_wait (&threads_started_barrier);
+
   switch (threadno)
   {
     case 1:
@@ -272,6 +276,8 @@ main (int argc, char **argv)
 
   timed_mutex_lock (&terminate_mutex);
 
+  pthread_barrier_init (&threads_started_barrier, NULL, 3);
+
   i = pthread_create (&thread1, NULL, thread_func, (void *) (intptr_t) 1);
   assert (i == 0);
 
@@ -298,6 +304,11 @@ main (int argc, char **argv)
 
   atexit (cleanup);
 
+  /* Wait until all threads are seen running.  On Linux (at least),
+     new threads start stopped, and the debugger must resume them.
+     Need to wait for that before stopping GDB.  */
+  pthread_barrier_wait (&threads_started_barrier);
+
   printf ("Stopping GDB PID %lu.\n", (unsigned long) tracer);
 
   if (tracer)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/non-stop-fair-events.c ./gdb/testsuite/gdb.threads/non-stop-fair-events.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/non-stop-fair-events.c	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-stop-fair-events.c	2015-01-13 01:48:40.000000000 +0000
@@ -0,0 +1,84 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+   Copyright 2014-2015 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/>.  */
+
+#include <pthread.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <signal.h>
+
+#define NUM_THREADS 10
+const int num_threads = NUM_THREADS;
+
+pthread_t child_thread[NUM_THREADS];
+volatile pthread_t signal_thread;
+volatile int got_sig;
+
+void
+handler (int signo)
+{
+  got_sig = 1;
+}
+
+void
+loop_broke (void)
+{
+}
+
+#define INF_LOOP				\
+  do						\
+    {						\
+      while (!got_sig)				\
+	;					\
+    }						\
+  while (0)
+
+void *
+child_function (void *arg)
+{
+  pthread_t self = pthread_self ();
+
+  while (1)
+    {
+      INF_LOOP; /* set thread breakpoint here */
+      loop_broke ();
+    }
+}
+
+int
+main (void)
+{
+  int res;
+  int i;
+
+  alarm (60);
+
+  signal (SIGUSR1, handler);
+
+  for (i = 0; i < NUM_THREADS; i++)
+    {
+      res = pthread_create (&child_thread[i], NULL, child_function, NULL);
+    }
+
+  while (1)
+    {
+      pthread_kill (signal_thread, SIGUSR1); /* set kill breakpoint here */
+      INF_LOOP;
+      loop_broke ();
+    }
+
+  exit(EXIT_SUCCESS);
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/non-stop-fair-events.exp ./gdb/testsuite/gdb.threads/non-stop-fair-events.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/non-stop-fair-events.exp	1970-01-01 00:00:00.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/non-stop-fair-events.exp	2015-01-13 01:48:40.000000000 +0000
@@ -0,0 +1,161 @@
+# Copyright (C) 2014-2015 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 that GDB in non-stop mode gives roughly equal priority to
+# events of all threads.
+
+standard_testfile
+set executable ${testfile}
+
+if [target_info exists gdb,nosignals] {
+    verbose "Skipping ${testfile}.exp because of nosignals."
+    return -1
+}
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] == -1} {
+    return -1
+}
+
+gdb_test_no_output "set non-stop on"
+
+if ![runto_main] {
+    return -1
+}
+
+# We want "handle print", to make sure the target backend reports the
+# signal to the run control core.
+gdb_test "handle SIGUSR1 print nostop pass" ""
+
+# Get current value of VAR from the inferior.  TEST is used as test
+# message.
+
+proc get_value {var test} {
+    global expect_out
+    global gdb_prompt
+    global decimal
+
+    set value -1
+    gdb_test_multiple "print $var" "$test" {
+	-re ".*= ($decimal).*\r\n$gdb_prompt $" {
+	    set value $expect_out(1,string)
+	    pass "$test"
+        }
+    }
+    return ${value}
+}
+
+set NUM_THREADS [get_value "num_threads" "get num_threads"]
+
+# Account for the main thread.
+incr NUM_THREADS
+
+# Run threads to their start positions.  This prepares for a new test
+# sequence.
+
+proc restart {} {
+    global gdb_prompt
+    global NUM_THREADS
+
+    delete_breakpoints
+
+    gdb_test "print got_sig = 0" " = 0"
+
+    gdb_breakpoint [gdb_get_line_number "set thread breakpoint here"]
+    gdb_breakpoint [gdb_get_line_number "set kill breakpoint here"]
+
+    set test "continue -a&"
+    gdb_test_multiple $test $test {
+	-re "Continuing.\r\n$gdb_prompt " {
+	    pass $test
+	}
+    }
+
+    for {set i 1} { $i <= $NUM_THREADS } { incr i } {
+	set test "thread $i restarted"
+	gdb_test_multiple "" $test {
+	    -re "breakpoint here" {
+		# The prompt was already matched in the "continue &"
+		# test above.  We're now consuming asynchronous output
+		# that comes after the prompt.
+		pass $test
+	    }
+	}
+    }
+
+    delete_breakpoints
+}
+
+# The test proper.  SIGNAL_THREAD is the thread that has been elected
+# to receive the SIGUSR1 signal.
+
+proc test {signal_thread} {
+    global gdb_prompt
+    global NUM_THREADS
+
+    with_test_prefix "signal_thread=$signal_thread" {
+	restart
+
+	# Set all threads stepping the infinite loop line in parallel.
+	for {set i 2} { $i <= $NUM_THREADS } { incr i } {
+	    gdb_test "thread $i" \
+		"child_function.*set thread breakpoint here.*" \
+		"switch to thread $i to step it"
+
+	    if {$i == $signal_thread} {
+		gdb_test "print signal_thread = self" " = .*"
+	    }
+
+	    gdb_test "step&" "" "set $i thread stepping"
+	}
+
+	gdb_test "thread 1" "Switching to .*" \
+	    "switch to the main thread to queue signal"
+
+	# Let the main thread queue the signal.
+	gdb_breakpoint "loop_broke"
+	set test "continue &"
+	gdb_test_multiple $test $test {
+	    -re "Continuing.\r\n$gdb_prompt " {
+		pass $test
+	    }
+	}
+
+	# Wait for all threads to finish their steps, and for the main
+	# thread to hit the breakpoint.
+	for {set i 1} { $i <= $NUM_THREADS } { incr i } {
+	    set test "thread $i broke out of loop"
+	    gdb_test_multiple "" $test {
+		-re "loop_broke" {
+		    # The prompt was already matched in the "continue
+		    # &" test above.  We're now consuming asynchronous
+		    # output that comes after the prompt.
+		    pass $test
+		}
+	    }
+	}
+
+	# It's helpful to have this in the log if the test ever
+	# happens to fail.
+	gdb_test "info threads"
+    }
+}
+
+# The kernel/debug API may always walk its thread list looking for the
+# first with an event, resulting in giving priority to e.g. the thread
+# with lowest kernel thread ID.  So test once with the signal pending
+# in each thread, except the main thread.
+for {set i 2} { $i <= $NUM_THREADS } { incr i } {
+    test $i
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/siginfo-threads.c ./gdb/testsuite/gdb.threads/siginfo-threads.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/siginfo-threads.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/siginfo-threads.c	2015-01-13 01:48:40.000000000 +0000
@@ -54,6 +54,8 @@ static int thread2_sigusr2_hit;
 static pthread_mutex_t terminate_mutex
   = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
 
+static pthread_barrier_t threads_started_barrier;
+
 /* Do not use alarm as it would create a ptrace event which would hang
    us up if we are being traced by GDB, which we stopped
    ourselves.  */
@@ -128,6 +130,8 @@ thread1_func (void *unused)
 {
   int i;
 
+  pthread_barrier_wait (&threads_started_barrier);
+
   timed_mutex_lock (&thread1_tid_mutex);
 
   /* THREAD1_TID_MUTEX must be already locked to avoid a race.  */
@@ -163,6 +167,8 @@ thread2_func (void *unused)
 {
   int i;
 
+  pthread_barrier_wait (&threads_started_barrier);
+
   timed_mutex_lock (&thread2_tid_mutex);
 
   /* THREAD2_TID_MUTEX must be already locked to avoid a race.  */
@@ -354,6 +360,8 @@ main (int argc, char **argv)
   assert_perror (errno);
   assert (i == 0);
 
+  pthread_barrier_init (&threads_started_barrier, NULL, 3);
+
   i = pthread_create (&thread1, NULL, thread1_func, NULL);
   assert (i == 0);
 
@@ -380,6 +388,11 @@ main (int argc, char **argv)
 
   atexit (cleanup);
 
+  /* Wait until all threads are seen running.  On Linux (at least),
+     new threads start stopped, and the debugger must resume them.
+     Need to wait for that before stopping GDB.  */
+  pthread_barrier_wait (&threads_started_barrier);
+
   printf ("Stopping GDB PID %lu.\n", (unsigned long) tracer);
 
   if (tracer)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c	2015-01-13 01:48:40.000000000 +0000
@@ -76,12 +76,13 @@ main (void)
   signal (SIGUSR1, handler_sigusr1);
   signal (SIGUSR2, handler_sigusr2);
 
-  pthread_barrier_init (&barrier, NULL, 3);
-
   for (i = 0; i < 2; i++)
-    pthread_create (&child_thread[i], NULL, thread_function, NULL);
-
-  pthread_barrier_wait (&barrier);
+    {
+      pthread_barrier_init (&barrier, NULL, 2);
+      pthread_create (&child_thread[i], NULL, thread_function, NULL);
+      pthread_barrier_wait (&barrier);
+      pthread_barrier_destroy (&barrier);
+    }
 
   all_threads_started ();
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp	2015-01-13 01:48:40.000000000 +0000
@@ -46,6 +46,13 @@ proc test { schedlock } {
 	gdb_test "handle SIGUSR2 stop print pass"
 
 	gdb_test "break all_threads_started" "Breakpoint .* at .*$srcfile.*"
+
+	# Create threads one at a time, to insure stable thread
+	# numbers between runs and targets.
+	gdb_test "break thread_function" "Breakpoint .* at .*$srcfile.*"
+	gdb_test "continue" "thread_function.*" "thread 2 created"
+	gdb_test "continue" "thread_function.*" "thread 3 created"
+
 	gdb_test "continue" "all_threads_started.*"
 
 	# Using schedlock, let the main thread queue a signal for each
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/watchthreads-reorder.c ./gdb/testsuite/gdb.threads/watchthreads-reorder.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.threads/watchthreads-reorder.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.threads/watchthreads-reorder.c	2015-01-13 01:48:40.000000000 +0000
@@ -44,6 +44,8 @@ static pthread_mutex_t thread2_tid_mutex
 
 static pthread_mutex_t terminate_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
 
+static pthread_barrier_t threads_started_barrier;
+
 /* These variables must have lower in-memory addresses than thread1_rwatch and
    thread2_rwatch so that they take their watchpoint slots.  */
 
@@ -87,6 +89,8 @@ thread1_func (void *unused)
   int i;
   volatile int rwatch_store;
 
+  pthread_barrier_wait (&threads_started_barrier);
+
   timed_mutex_lock (&thread1_tid_mutex);
 
   /* THREAD1_TID_MUTEX must be already locked to avoid race.  */
@@ -113,6 +117,8 @@ thread2_func (void *unused)
   int i;
   volatile int rwatch_store;
 
+  pthread_barrier_wait (&threads_started_barrier);
+
   timed_mutex_lock (&thread2_tid_mutex);
 
   /* THREAD2_TID_MUTEX must be already locked to avoid race.  */
@@ -279,6 +285,8 @@ main (int argc, char **argv)
 
   timed_mutex_lock (&terminate_mutex);
 
+  pthread_barrier_init (&threads_started_barrier, NULL, 3);
+
   i = pthread_create (&thread1, NULL, thread1_func, NULL);
   assert (i == 0);
 
@@ -305,6 +313,11 @@ main (int argc, char **argv)
 
   atexit (cleanup);
 
+  /* Wait until all threads are seen running.  On Linux (at least),
+     new threads start stopped, and the debugger must resume them.
+     Need to wait for that before stopping GDB.  */
+  pthread_barrier_wait (&threads_started_barrier);
+
   printf ("Stopping GDB PID %lu.\n", (unsigned long) tracer);
 
   if (tracer)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.trace/entry-values.exp ./gdb/testsuite/gdb.trace/entry-values.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.trace/entry-values.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/entry-values.exp	2015-01-13 01:48:40.000000000 +0000
@@ -43,6 +43,20 @@ if { [istarget "arm*-*-*"] || [istarget 
     set call_insn "brasl"
 } elseif { [istarget "powerpc*-*-*"] } {
     set call_insn "bl"
+} elseif { [istarget "mips*-*-*"] } {
+    # Skip the delay slot after the instruction used to make a call
+    # (which can be a jump or a branch) if it has one.
+    #
+    #  JUMP (or BRANCH) foo
+    #  insn1
+    #  insn2
+    #
+    # Most MIPS instructions used to make calls have a delay slot.
+    # These include JAL, JALS, JALX, JALR, JALRS, BAL and BALS.
+    # In this case the program continues from `insn2' when `foo'
+    # returns.  The only exception is JALRC, in which case execution
+    # resumes from `insn1' instead.
+    set call_insn {jalrc|[jb]al[sxr]*[ \t][^\r\n]+\r\n}
 } else {
     set call_insn "call"
 }
@@ -88,7 +102,7 @@ Dwarf::assemble $asm_file {
 	    }
 
 	    foo_label: subprogram {
-		{decl_file 1}
+		{decl_file 1 sdata}
 		{MACRO_AT_func { foo ${srcdir}/${subdir}/${srcfile} }}
 	    } {
 		formal_parameter {
@@ -105,10 +119,10 @@ Dwarf::assemble $asm_file {
 
 	    subprogram {
 		{name bar}
-		{decl_file 1}
+		{decl_file 1 sdata}
 		{low_pc $bar_start addr}
 		{high_pc "$bar_start + $bar_length" addr}
-		{GNU_all_call_sites 1}
+		{GNU_all_call_sites 1 sdata}
 	    } {
 		formal_parameter {
 		    {type :$int_label}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp ./gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp	2015-01-13 01:48:40.000000000 +0000
@@ -44,8 +44,8 @@ Dwarf::assemble $asm_file {
 	    struct_s_label: DW_TAG_structure_type {
 		{name s}
 		{byte_size 3 DW_FORM_sdata}
-		{decl_file 1}
-		{decl_line 1}
+		{decl_file 1 DW_FORM_sdata}
+		{decl_line 1 DW_FORM_sdata}
 	    } {
 		DW_TAG_member {
 		    {name a}
@@ -73,8 +73,8 @@ Dwarf::assemble $asm_file {
 	    struct_t_label: DW_TAG_structure_type {
 		{name t}
 		{byte_size 3 DW_FORM_sdata}
-		{decl_file 1}
-		{decl_line 1}
+		{decl_file 1 DW_FORM_sdata}
+		{decl_line 1 DW_FORM_sdata}
 	    } {
 		DW_TAG_member {
 		    {name a}
@@ -174,7 +174,7 @@ Dwarf::assemble $asm_file {
 
 	    DW_TAG_subprogram {
 		{name foo}
-		{decl_file 1}
+		{decl_file 1 sdata}
 		{low_pc foo addr}
 		{high_pc foo_end_lbl addr}
 	    } {
@@ -219,7 +219,7 @@ Dwarf::assemble $asm_file {
 
 	    DW_TAG_subprogram {
 		{name bar}
-		{decl_file 1}
+		{decl_file 1 sdata}
 		{low_pc bar addr}
 		{high_pc bar_end_lbl addr}
 	    } {
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/lib/dwarf.exp ./gdb/testsuite/lib/dwarf.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/lib/dwarf.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/lib/dwarf.exp	2015-01-13 01:48:40.000000000 +0000
@@ -225,7 +225,9 @@ proc function_range { func src } {
 #   reference.  The rest of VALUE is taken to be the name of a label,
 #   and DW_FORM_ref4 is used.  See 'new_label' and 'define_label'.
 # * Otherwise, VALUE is taken to be a string and DW_FORM_string is
-#   used.
+#   used.  In order to prevent bugs where a numeric value is given but
+#   no form is specified, it is an error if the value looks like a number
+#   (using Tcl's "string is integer") and no form is provided.
 # More form-guessing functionality may be added.
 #
 # CHILDREN is just Tcl code that can be used to define child DIEs.  It
@@ -614,6 +616,10 @@ namespace eval Dwarf {
 		if {[llength $attr] > 2} {
 		    set attr_form [lindex $attr 2]
 		} else {
+		    # If the value looks like an integer, a form is required.
+		    if [string is integer $attr_value] {
+			error "Integer value requires a form"
+		    }
 		    set attr_form [_guess_form $attr_value attr_value]
 		}
 		set attr_form [_map_name $attr_form _FORM]
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/lib/gdb.exp ./gdb/testsuite/lib/gdb.exp
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/testsuite/lib/gdb.exp	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/testsuite/lib/gdb.exp	2015-01-13 01:48:40.000000000 +0000
@@ -3413,12 +3413,39 @@ proc gdb_exit { } {
     catch default_gdb_exit
 }
 
+# Return true if we can spawn a program on the target and attach to
+# it.
+
+proc can_spawn_for_attach { } {
+    # We use TCL's exec to get the inferior's pid.
+    if [is_remote target] then {
+	return 0
+    }
+
+    # The "attach" command doesn't make sense when the target is
+    # stub-like, where GDB finds the program already started on
+    # initial connection.
+    if {[target_info exists use_gdb_stub]} {
+	return 0
+    }
+
+    # Assume yes.
+    return 1
+}
+
 # Start a set of programs running and then wait for a bit, to be sure
 # that they can be attached to.  Return a list of the processes' PIDs.
+# It's a test error to call this when [can_spawn_for_attach] is false.
 
 proc spawn_wait_for_attach { executable_list } {
     set pid_list {}
 
+    if ![can_spawn_for_attach] {
+	# The caller should have checked can_spawn_for_attach itself
+	# before getting here.
+	error "can't spawn for attach with this target/board"
+    }
+
     foreach {executable} $executable_list {
 	lappend pid_list [eval exec $executable &]
     }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/top.c ./gdb/top.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/top.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/top.c	2015-01-13 01:48:40.000000000 +0000
@@ -895,7 +895,74 @@ gdb_rl_operate_and_get_next (int count, 
 
   return rl_newline (1, key);
 }
-
+
+/* Number of user commands executed during this session.  */
+
+static int command_count = 0;
+
+/* Add the user command COMMAND to the input history list.  */
+
+void
+gdb_add_history (const char *command)
+{
+  add_history (command);
+  command_count++;
+}
+
+/* Safely append new history entries to the history file in a corruption-free
+   way using an intermediate local history file.  */
+
+static void
+gdb_safe_append_history (void)
+{
+  int ret, saved_errno;
+  char *local_history_filename;
+  struct cleanup *old_chain;
+
+  local_history_filename
+    = xstrprintf ("%s-gdb%d~", history_filename, getpid ());
+  old_chain = make_cleanup (xfree, local_history_filename);
+
+  ret = rename (history_filename, local_history_filename);
+  saved_errno = errno;
+  if (ret < 0 && saved_errno != ENOENT)
+    {
+      warning (_("Could not rename %s to %s: %s"),
+	       history_filename, local_history_filename,
+	       safe_strerror (saved_errno));
+    }
+  else
+    {
+      if (ret < 0)
+	{
+	  /* If the rename failed with ENOENT then either the global history
+	     file never existed in the first place or another GDB process is
+	     currently appending to it (and has thus temporarily renamed it).
+	     Since we can't distinguish between these two cases, we have to
+	     conservatively assume the first case and therefore must write out
+	     (not append) our known history to our local history file and try
+	     to move it back anyway.  Otherwise a global history file would
+	     never get created!  */
+	   gdb_assert (saved_errno == ENOENT);
+	   write_history (local_history_filename);
+	}
+      else
+	{
+	  append_history (command_count, local_history_filename);
+	  history_truncate_file (local_history_filename, history_max_entries);
+	}
+
+      ret = rename (local_history_filename, history_filename);
+      saved_errno = errno;
+      if (ret < 0 && saved_errno != EEXIST)
+        warning (_("Could not rename %s to %s: %s"),
+		 local_history_filename, history_filename,
+		 safe_strerror (saved_errno));
+    }
+
+  do_cleanups (old_chain);
+}
+
 /* Read one line from the command input stream `instream'
    into the local static buffer `linebuffer' (whose current length
    is `linelength').
@@ -1094,7 +1161,7 @@ command_line_input (const char *prompt_a
 
   /* Add line to history if appropriate.  */
   if (*linebuffer && input_from_terminal_p ())
-    add_history (linebuffer);
+    gdb_add_history (linebuffer);
 
   /* Save into global buffer if appropriate.  */
   if (repeat)
@@ -1445,7 +1512,7 @@ quit_force (char *args, int from_tty)
     {
       if (write_history_p && history_filename
 	  && input_from_terminal_p ())
-	write_history (history_filename);
+	gdb_safe_append_history ();
     }
   DO_PRINT_EX;
 
@@ -1890,6 +1957,10 @@ gdb_init (char *argv0)
 
   initialize_stdin_serial ();
 
+  /* Take a snapshot of our tty state before readline/ncurses have had a chance
+     to alter it.  */
+  set_initial_gdb_ttystate ();
+
   async_init_signals ();
 
   /* We need a default language for parsing expressions, so simple
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/top.h ./gdb/top.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/top.h	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/top.h	2015-01-13 01:48:40.000000000 +0000
@@ -79,6 +79,8 @@ extern int history_expansion_p;
 extern int server_command;
 extern char *lim_at_start;
 
+extern void gdb_add_history (const char *);
+
 extern void show_commands (char *args, int from_tty);
 
 extern void set_history (char *, int);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/tui/tui-hooks.c ./gdb/tui/tui-hooks.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/tui/tui-hooks.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/tui/tui-hooks.c	2015-01-13 01:48:40.000000000 +0000
@@ -63,68 +63,6 @@ tui_new_objfile_hook (struct objfile* ob
     tui_display_main ();
 }
 
-static int ATTRIBUTE_PRINTF (1, 0)
-tui_query_hook (const char *msg, va_list argp)
-{
-  int retval;
-  int ans2;
-  int answer;
-  char *question;
-  struct cleanup *old_chain;
-
-  /* Format the question outside of the loop, to avoid reusing
-     ARGP.  */
-  question = xstrvprintf (msg, argp);
-  old_chain = make_cleanup (xfree, question);
-
-  echo ();
-  while (1)
-    {
-      wrap_here ("");		/* Flush any buffered output.  */
-      gdb_flush (gdb_stdout);
-
-      fputs_filtered (question, gdb_stdout);
-      printf_filtered (_("(y or n) "));
-
-      wrap_here ("");
-      gdb_flush (gdb_stdout);
-
-      answer = tui_getc (stdin);
-      clearerr (stdin);		/* in case of C-d */
-      if (answer == EOF)	/* C-d */
-	{
-	  retval = 1;
-	  break;
-	}
-      /* Eat rest of input line, to EOF or newline.  */
-      if (answer != '\n')
-	do
-	  {
-            ans2 = tui_getc (stdin);
-	    clearerr (stdin);
-	  }
-	while (ans2 != EOF && ans2 != '\n' && ans2 != '\r');
-
-      if (answer >= 'a')
-	answer -= 040;
-      if (answer == 'Y')
-	{
-	  retval = 1;
-	  break;
-	}
-      if (answer == 'N')
-	{
-	  retval = 0;
-	  break;
-	}
-      printf_filtered (_("Please answer y or n.\n"));
-    }
-  noecho ();
-
-  do_cleanups (old_chain);
-  return retval;
-}
-
 /* Prevent recursion of deprecated_register_changed_hook().  */
 static int tui_refreshing_registers = 0;
 
@@ -263,8 +201,6 @@ tui_install_hooks (void)
   deprecated_print_frame_info_listing_hook
     = tui_print_frame_info_listing_hook;
 
-  deprecated_query_hook = tui_query_hook;
-
   /* Install the event hooks.  */
   tui_bp_created_observer
     = observer_attach_breakpoint_created (tui_event_create_breakpoint);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/tui/tui-io.c ./gdb/tui/tui-io.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/tui/tui-io.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/tui/tui-io.c	2015-01-13 01:48:40.000000000 +0000
@@ -234,20 +234,23 @@ tui_redisplay_readline (void)
     {
       waddch (w, prompt[in]);
       getyx (w, line, col);
-      if (col < prev_col)
+      if (col <= prev_col)
         height++;
       prev_col = col;
     }
-  for (in = 0; in < rl_end; in++)
+  for (in = 0; in <= rl_end; in++)
     {
       unsigned char c;
       
-      c = (unsigned char) rl_line_buffer[in];
       if (in == rl_point)
 	{
           getyx (w, c_line, c_pos);
 	}
 
+      if (in == rl_end)
+        break;
+
+      c = (unsigned char) rl_line_buffer[in];
       if (CTRL_CHAR (c) || c == RUBOUT)
 	{
           waddch (w, '^');
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/utils.c ./gdb/utils.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/utils.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/utils.c	2015-01-13 01:48:40.000000000 +0000
@@ -1198,12 +1198,11 @@ compile_rx_or_error (regex_t *pattern, c
 static int ATTRIBUTE_PRINTF (1, 0)
 defaulted_query (const char *ctlstr, const char defchar, va_list args)
 {
-  int answer;
   int ans2;
   int retval;
   int def_value;
   char def_answer, not_def_answer;
-  char *y_string, *n_string, *question;
+  char *y_string, *n_string, *question, *prompt;
   /* Used to add duration we waited for user to respond to
      prompt_for_continue_wait_time.  */
   struct timeval prompt_started, prompt_ended, prompt_delta;
@@ -1263,62 +1262,31 @@ defaulted_query (const char *ctlstr, con
 
   /* Format the question outside of the loop, to avoid reusing args.  */
   question = xstrvprintf (ctlstr, args);
+  prompt = xstrprintf (_("%s%s(%s or %s) %s"),
+		      annotation_level > 1 ? "\n\032\032pre-query\n" : "",
+		      question, y_string, n_string,
+		      annotation_level > 1 ? "\n\032\032query\n" : "");
+  xfree (question);
 
   /* Used for calculating time spend waiting for user.  */
   gettimeofday (&prompt_started, NULL);
 
   while (1)
     {
-      wrap_here ("");		/* Flush any buffered output.  */
-      gdb_flush (gdb_stdout);
-
-      if (annotation_level > 1)
-	printf_filtered (("\n\032\032pre-query\n"));
+      char *response, answer;
 
-      fputs_filtered (question, gdb_stdout);
-      printf_filtered (_("(%s or %s) "), y_string, n_string);
-
-      if (annotation_level > 1)
-	printf_filtered (("\n\032\032query\n"));
-
-      wrap_here ("");
       gdb_flush (gdb_stdout);
+      response = gdb_readline_wrapper (prompt);
 
-      answer = fgetc (stdin);
-
-      /* We expect fgetc to block until a character is read.  But
-         this may not be the case if the terminal was opened with
-         the NONBLOCK flag.  In that case, if there is nothing to
-         read on stdin, fgetc returns EOF, but also sets the error
-         condition flag on stdin and errno to EAGAIN.  With a true
-         EOF, stdin's error condition flag is not set.
-
-         A situation where this behavior was observed is a pseudo
-         terminal on AIX.  */
-      while (answer == EOF && ferror (stdin) && errno == EAGAIN)
-        {
-          /* Not a real EOF.  Wait a little while and try again until
-             we read something.  */
-          clearerr (stdin);
-          gdb_usleep (10000);
-          answer = fgetc (stdin);
-        }
-
-      clearerr (stdin);		/* in case of C-d */
-      if (answer == EOF)	/* C-d */
+      if (response == NULL)	/* C-d  */
 	{
 	  printf_filtered ("EOF [assumed %c]\n", def_answer);
 	  retval = def_value;
 	  break;
 	}
-      /* Eat rest of input line, to EOF or newline.  */
-      if (answer != '\n')
-	do
-	  {
-	    ans2 = fgetc (stdin);
-	    clearerr (stdin);
-	  }
-	while (ans2 != EOF && ans2 != '\n' && ans2 != '\r');
+
+      answer = response[0];
+      xfree (response);
 
       if (answer >= 'a')
 	answer -= 040;
@@ -1333,8 +1301,7 @@ defaulted_query (const char *ctlstr, con
          specify the required input or have it default by entering
          nothing.  */
       if (answer == def_answer
-	  || (defchar != '\0' &&
-	      (answer == '\n' || answer == '\r' || answer == EOF)))
+	  || (defchar != '\0' && answer == '\0'))
 	{
 	  retval = def_value;
 	  break;
@@ -1350,7 +1317,7 @@ defaulted_query (const char *ctlstr, con
   timeval_add (&prompt_for_continue_wait_time,
                &prompt_for_continue_wait_time, &prompt_delta);
 
-  xfree (question);
+  xfree (prompt);
   if (annotation_level > 1)
     printf_filtered (("\n\032\032post-query\n"));
   return retval;
@@ -3021,23 +2988,6 @@ align_down (ULONGEST v, int n)
   return (v & -n);
 }
 
-/* See utils.h.  */
-
-LONGEST
-gdb_sign_extend (LONGEST value, int bit)
-{
-  gdb_assert (bit >= 1 && bit <= 8 * sizeof (LONGEST));
-
-  if (((value >> (bit - 1)) & 1) != 0)
-    {
-      LONGEST signbit = ((LONGEST) 1) << (bit - 1);
-
-      value = (value ^ signbit) - signbit;
-    }
-
-  return value;
-}
-
 /* Allocation function for the libiberty hash table which uses an
    obstack.  The obstack is passed as DATA.  */
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/utils.h ./gdb/utils.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/utils.h	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/utils.h	2015-01-13 01:48:40.000000000 +0000
@@ -340,11 +340,6 @@ extern int myread (int, char *, int);
 extern ULONGEST align_up (ULONGEST v, int n);
 extern ULONGEST align_down (ULONGEST v, int n);
 
-/* Sign extend VALUE.  BIT is the (1-based) index of the bit in VALUE
-   to sign-extend.  */
-
-extern LONGEST gdb_sign_extend (LONGEST value, int bit);
-
 /* Resource limits used by getrlimit and setrlimit.  */
 
 enum resource_limit_kind
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/x86-linux-nat.c ./gdb/x86-linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/gdb/x86-linux-nat.c	2015-01-06 01:48:32.000000000 +0000
+++ ./gdb/x86-linux-nat.c	2015-01-13 01:48:40.000000000 +0000
@@ -214,7 +214,7 @@ x86_linux_prepare_to_resume (struct lwp_
       lwp->arch_private->debug_registers_changed = 0;
     }
 
-  if (clear_status || lwp->stopped_by_watchpoint)
+  if (clear_status || lwp->stop_reason == LWP_STOPPED_BY_WATCHPOINT)
     x86_linux_dr_set (lwp->ptid, DR_STATUS, 0);
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/ChangeLog ./include/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/ChangeLog	2015-01-06 01:48:33.000000000 +0000
+++ ./include/ChangeLog	2015-01-13 01:48:40.000000000 +0000
@@ -2,6 +2,12 @@
 
 	Update year range in copyright notice of all files.
 
+2014-12-24  Uros Bizjak  <ubizjak@gmail.com>
+	    Ben Elliston  <bje@au.ibm.com>
+	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* libiberty.h (xasprintf): Declare.
+
 2014-12-23  Alan Modra  <amodra@gmail.com>
 
 	* bfdlink.h (struct bfd_link_hash_entry): Comment non_ir_ref.  Add
@@ -15,6 +21,12 @@
 	* gcc-c-interface.h: New file.
 	* gcc-interface.h: New file.
 
+2014-12-11  Uros Bizjak  <ubizjak@gmail.com>
+            Ben Elliston  <bje@au.ibm.com>
+            Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* libiberty.h (xvasprintf): Declare.
+
 2014-12-06  Eric Botcazou  <ebotcazou@adacore.com>
 
 	* dis-asm.h (print_insn_visium): Declare.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/coff/ChangeLog ./include/coff/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/coff/ChangeLog	2015-01-06 01:48:33.000000000 +0000
+++ ./include/coff/ChangeLog	2015-01-13 01:48:40.000000000 +0000
@@ -1,3 +1,9 @@
+2015-01-06  Alan Modra  <amodra@gmail.com>
+
+	PR binutils/17754
+	* internal.h (internal_auxent): Increase size of x_fname field to
+	20 to allow for PE format's longer file names.
+
 2015-01-01  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/coff/internal.h ./include/coff/internal.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/coff/internal.h	2015-01-06 01:48:33.000000000 +0000
+++ ./include/coff/internal.h	2015-01-13 01:48:40.000000000 +0000
@@ -588,7 +588,11 @@ union internal_auxent
 
   union
   {
-    char x_fname[FILNMLEN];
+    /* PR 17754: We use to FILNMLEN for the size of the x_fname
+       array, but that cause problems as PE targets use a larger
+       value.  We cannot use their definition of EFILNMLEN as this
+       header can be used without including any PE headers.  */
+    char x_fname[20];
     struct
     {
       long x_zeroes;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/elf/ChangeLog ./include/elf/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/elf/ChangeLog	2015-01-06 01:48:33.000000000 +0000
+++ ./include/elf/ChangeLog	2015-01-13 01:48:40.000000000 +0000
@@ -1,3 +1,8 @@
+2015-01-09  Anthony Green  <green@moxielogic.com>
+
+	* common.h (EM_MOXIE): Redefine to official number.
+	(EM_MOXIE_OLD): Define (from old number).
+
 2015-01-01  Alan Modra  <amodra@gmail.com>
 
 	Update year range in copyright notice of all files.
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/elf/common.h ./include/elf/common.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/elf/common.h	2015-01-06 01:48:33.000000000 +0000
+++ ./include/elf/common.h	2015-01-13 01:48:40.000000000 +0000
@@ -302,6 +302,7 @@
 #define EM_INTEL208	208	/* Reserved by Intel */
 #define EM_INTEL209	209	/* Reserved by Intel */
 #define EM_VISIUM	221	/* Controls and Data Services VISIUMcore processor */
+#define EM_MOXIE        223     /* Moxie processor family */
 
 /* If it is necessary to assign new unofficial EM_* values, please pick large
    random numbers (0x8523, 0xa7f2, etc.) to minimize the chances of collision
@@ -394,7 +395,8 @@
 
 #define EM_CYGNUS_MEP		0xF00D  /* Toshiba MeP */
 
-#define EM_MOXIE                0xFEED  /* Moxie */
+/* Old, unofficial value for Moxie.  */
+#define EM_MOXIE_OLD            0xFEED
 
 /* Old Sunplus S+core7 backend magic number. Written in the absence of an ABI.  */
 #define EM_SCORE_OLD            95
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/libiberty.h ./include/libiberty.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/include/libiberty.h	2015-01-06 01:48:33.000000000 +0000
+++ ./include/libiberty.h	2015-01-13 01:48:40.000000000 +0000
@@ -623,6 +623,11 @@ extern int pwait (int, int *, int);
 extern int asprintf (char **, const char *, ...) ATTRIBUTE_PRINTF_2;
 #endif
 
+/* Like asprintf but allocates memory without fail. This works like
+   xmalloc.  */
+
+extern char *xasprintf (const char *, ...) ATTRIBUTE_MALLOC ATTRIBUTE_PRINTF_1;
+
 #if !HAVE_DECL_VASPRINTF
 /* Like vsprintf but provides a pointer to malloc'd storage, which
    must be freed by the caller.  */
@@ -630,6 +635,11 @@ extern int asprintf (char **, const char
 extern int vasprintf (char **, const char *, va_list) ATTRIBUTE_PRINTF(2,0);
 #endif
 
+/* Like vasprintf but allocates memory without fail. This works like
+   xmalloc.  */
+
+extern char *xvasprintf (const char *, va_list) ATTRIBUTE_MALLOC ATTRIBUTE_PRINTF(1,0);
+
 #if defined(HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF
 /* Like sprintf but prints at most N characters.  */
 extern int snprintf (char *, size_t, const char *, ...) ATTRIBUTE_PRINTF_3;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/ChangeLog ./libiberty/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/ChangeLog	2015-01-06 01:48:33.000000000 +0000
+++ ./libiberty/ChangeLog	2015-01-13 01:48:41.000000000 +0000
@@ -1,3 +1,34 @@
+2014-12-24  Uros Bizjak  <ubizjak@gmail.com>
+	    Ben Elliston  <bje@au.ibm.com>
+	    Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* xasprintf.c: New file.
+	* Makefile.in (CFILES): Add xasprintf.c.
+	(REQUIRED_OFILES): Add xasprintf.$(objext).
+	(xasprintf.$(objext)): New target.
+	* functions.texi: Regenerate.
+
+2014-12-11  Uros Bizjak  <ubizjak@gmail.com>
+            Ben Elliston  <bje@au.ibm.com>
+            Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+	* xvasprintf.c: New file.
+	* vprintf-support.h: Likewise.
+	* vprintf-support.c: Likewise.
+	* Makefile.in (CFILES): Add vprintf-support.c, xvasprintf.c.
+	(REQUIRED_OFILES): Add vprintf-support.$(objext), xvasprintf.$(objext).
+	(vprintf-support.$(objext), xvasprintf.$(objext)): New targets.
+	(vasprintf.$(objext)): Depend on $(srcdir)/vprintf-support.h.
+	* functions.texi: Regenerate.
+	* vasprintf.c (int_vasprintf): Use libiberty_vprintf_buffer_size.
+
+2014-11-22  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR other/63694
+	* configure.ac: Check for strtol, strtoul, strtoll and strtoull
+	declarations.
+	* configure: Regenerated.
+
 2014-11-12  Kirill Yukhin  <kirill.yukhin@intel.com>
 
 	* testsuite/test-strtol.c (run_tests): Cast strtol return to
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/configure ./libiberty/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/configure	2015-01-06 01:48:33.000000000 +0000
+++ ./libiberty/configure	2015-01-13 01:48:41.000000000 +0000
@@ -6700,6 +6700,47 @@ cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_SBRK $ac_have_decl
 _ACEOF
 
+  ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtol" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOL $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "strtoul" "ac_cv_have_decl_strtoul" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoul" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOUL $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "strtoll" "ac_cv_have_decl_strtoll" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoll" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOLL $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoull" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOULL $ac_have_decl
+_ACEOF
+
   ac_fn_c_check_decl "$LINENO" "strverscmp" "ac_cv_have_decl_strverscmp" "$ac_includes_default"
 if test "x$ac_cv_have_decl_strverscmp" = x""yes; then :
   ac_have_decl=1
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/configure.ac ./libiberty/configure.ac
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/configure.ac	2015-01-06 01:48:33.000000000 +0000
+++ ./libiberty/configure.ac	2015-01-13 01:48:41.000000000 +0000
@@ -678,6 +678,7 @@ if test -z "${setobjs}"; then
   AC_CHECK_FUNCS($checkfuncs)
   AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf])
   AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc, sbrk])
+  AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull])
   AC_CHECK_DECLS([strverscmp])
   libiberty_NEED_DECLARATION(canonicalize_file_name)
 fi
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/functions.texi ./libiberty/functions.texi
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/functions.texi	2015-01-06 01:48:33.000000000 +0000
+++ ./libiberty/functions.texi	2015-01-13 01:48:41.000000000 +0000
@@ -1923,6 +1923,15 @@ if an error occurred while writing to FI
 
 @end deftypefn
 
+@c xasprintf.c:31
+@deftypefn Replacement char* xasprintf (const char *@var{format}, ...)
+
+Print to allocated string without fail.  If @code{xasprintf} fails,
+this will print a message to @code{stderr} (using the name set by
+@code{xmalloc_set_program_name}, if any) and then call @code{xexit}.
+
+@end deftypefn
+
 @c xatexit.c:11
 @deftypefun int xatexit (void (*@var{fn}) (void))
 
@@ -2022,4 +2031,13 @@ always NUL terminated.
 
 @end deftypefn
 
+@c xvasprintf.c:38
+@deftypefn Replacement char* xvasprintf (const char *@var{format}, va_list @var{args})
+
+Print to allocated string without fail.  If @code{xvasprintf} fails,
+this will print a message to @code{stderr} (using the name set by
+@code{xmalloc_set_program_name}, if any) and then call @code{xexit}.
+
+@end deftypefn
+
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/Makefile.in ./libiberty/Makefile.in
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/Makefile.in	2015-01-06 01:48:33.000000000 +0000
+++ ./libiberty/Makefile.in	2015-01-13 01:48:41.000000000 +0000
@@ -155,10 +155,11 @@ CFILES = alloca.c argv.c asprintf.c atex
 	 strtoll.c strtoul.c strtoull.c strndup.c strnlen.c             \
 	 strverscmp.c timeval-utils.c tmpnam.c				\
 	unlink-if-ordinary.c						\
-	vasprintf.c vfork.c vfprintf.c vprintf.c vsnprintf.c vsprintf.c	\
+	vasprintf.c vfork.c vfprintf.c vprintf.c vprintf-support.c	\
+	 vsnprintf.c vsprintf.c						\
 	waitpid.c							\
-	xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c xstrerror.c	\
-	 xstrndup.c
+	xasprintf.c xatexit.c xexit.c xmalloc.c xmemdup.c xstrdup.c	\
+	 xstrerror.c xstrndup.c xvasprintf.c
 
 # These are always included in the library.  The first four are listed
 # first and by compile time to optimize parallel builds.
@@ -180,7 +181,7 @@ REQUIRED_OFILES =							\
 	./obstack.$(objext)						\
 	./partition.$(objext) ./pexecute.$(objext) ./physmem.$(objext)	\
 	./pex-common.$(objext) ./pex-one.$(objext)			\
-	./@pexecute@.$(objext)						\
+	./@pexecute@.$(objext) ./vprintf-support.$(objext)		\
 	./safe-ctype.$(objext)						\
 	./simple-object.$(objext) ./simple-object-coff.$(objext)	\
 	./simple-object-elf.$(objext) ./simple-object-mach-o.$(objext)	\
@@ -189,9 +190,10 @@ REQUIRED_OFILES =							\
 	./splay-tree.$(objext) ./stack-limit.$(objext)			\
 	./strerror.$(objext) ./strsignal.$(objext)			\
 	./timeval-utils.$(objext) ./unlink-if-ordinary.$(objext)	\
-	./xatexit.$(objext) ./xexit.$(objext) ./xmalloc.$(objext)	\
-	./xmemdup.$(objext) ./xstrdup.$(objext) ./xstrerror.$(objext)	\
-	./xstrndup.$(objext)
+	./xasprintf.$(objext) ./xatexit.$(objext) ./xexit.$(objext)	\
+	./xmalloc.$(objext) ./xmemdup.$(objext) ./xstrdup.$(objext)	\
+	./xstrerror.$(objext) ./xstrndup.$(objext)			\
+	./xvasprintf.$(objext)
 
 # These are all the objects that configure may add to the library via
 # $funcs or EXTRA_OFILES.  This list exists here only for "make
@@ -1543,7 +1545,7 @@ maintainer-clean-subdir: config.h
 	$(COMPILE.c) $(srcdir)/unlink-if-ordinary.c $(OUTPUT_OPTION)
 
 ./vasprintf.$(objext): $(srcdir)/vasprintf.c config.h $(INCDIR)/ansidecl.h \
-	$(INCDIR)/libiberty.h
+	$(INCDIR)/libiberty.h $(srcdir)/vprintf-support.h
 	if [ x"$(PICFLAG)" != x ]; then \
 	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vasprintf.c -o pic/$@; \
 	else true; fi
@@ -1570,6 +1572,16 @@ maintainer-clean-subdir: config.h
 	else true; fi
 	$(COMPILE.c) $(srcdir)/vfprintf.c $(OUTPUT_OPTION)
 
+./vprintf-support.$(objext): $(srcdir)/vprintf-support.c config.h \
+	$(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf-support.c -o pic/$@; \
+	else true; fi
+	if [ x"$(NOASANFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/vprintf-support.c -o noasan/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/vprintf-support.c $(OUTPUT_OPTION)
+
 ./vprintf.$(objext): $(srcdir)/vprintf.c $(INCDIR)/ansidecl.h
 	if [ x"$(PICFLAG)" != x ]; then \
 	  $(COMPILE.c) $(PICFLAG) $(srcdir)/vprintf.c -o pic/$@; \
@@ -1607,6 +1619,16 @@ maintainer-clean-subdir: config.h
 	else true; fi
 	$(COMPILE.c) $(srcdir)/waitpid.c $(OUTPUT_OPTION)
 
+./xasprintf.$(objext): $(srcdir)/xasprintf.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xasprintf.c -o pic/$@; \
+	else true; fi
+	if [ x"$(NOASANFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xasprintf.c -o noasan/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xasprintf.c $(OUTPUT_OPTION)
+
 ./xatexit.$(objext): $(srcdir)/xatexit.c config.h $(INCDIR)/ansidecl.h \
 	$(INCDIR)/libiberty.h
 	if [ x"$(PICFLAG)" != x ]; then \
@@ -1677,3 +1699,12 @@ maintainer-clean-subdir: config.h
 	else true; fi
 	$(COMPILE.c) $(srcdir)/xstrndup.c $(OUTPUT_OPTION)
 
+./xvasprintf.$(objext): $(srcdir)/xvasprintf.c config.h $(INCDIR)/ansidecl.h \
+	$(INCDIR)/libiberty.h $(srcdir)/vprintf-support.h
+	if [ x"$(PICFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(srcdir)/xvasprintf.c -o pic/$@; \
+	else true; fi
+	if [ x"$(NOASANFLAG)" != x ]; then \
+	  $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/xvasprintf.c -o noasan/$@; \
+	else true; fi
+	$(COMPILE.c) $(srcdir)/xvasprintf.c $(OUTPUT_OPTION)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/vasprintf.c ./libiberty/vasprintf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/vasprintf.c	2015-01-06 01:48:33.000000000 +0000
+++ ./libiberty/vasprintf.c	2015-01-13 01:48:41.000000000 +0000
@@ -14,9 +14,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICU
 Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
-License along with libiberty; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-Boston, MA 02110-1301, USA.  */
+License along with libiberty; see the file COPYING.LIB.  If not, write
+to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
+Floor, Boston, MA 02110-1301, USA.  */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -33,10 +33,10 @@ Boston, MA 02110-1301, USA.  */
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #else
-extern unsigned long strtoul ();
 extern PTR malloc ();
 #endif
 #include "libiberty.h"
+#include "vprintf-support.h"
 
 #ifdef TEST
 int global_total_width;
@@ -64,81 +64,7 @@ static int int_vasprintf (char **, const
 static int
 int_vasprintf (char **result, const char *format, va_list args)
 {
-  const char *p = format;
-  /* Add one to make sure that it is never zero, which might cause malloc
-     to return NULL.  */
-  int total_width = strlen (format) + 1;
-  va_list ap;
-
-#ifdef va_copy
-  va_copy (ap, args);
-#else
-  memcpy ((PTR) &ap, (PTR) &args, sizeof (va_list));
-#endif
-
-  while (*p != '\0')
-    {
-      if (*p++ == '%')
-	{
-	  while (strchr ("-+ #0", *p))
-	    ++p;
-	  if (*p == '*')
-	    {
-	      ++p;
-	      total_width += abs (va_arg (ap, int));
-	    }
-	  else
-	    total_width += strtoul (p, (char **) &p, 10);
-	  if (*p == '.')
-	    {
-	      ++p;
-	      if (*p == '*')
-		{
-		  ++p;
-		  total_width += abs (va_arg (ap, int));
-		}
-	      else
-	      total_width += strtoul (p, (char **) &p, 10);
-	    }
-	  while (strchr ("hlL", *p))
-	    ++p;
-	  /* Should be big enough for any format specifier except %s and floats.  */
-	  total_width += 30;
-	  switch (*p)
-	    {
-	    case 'd':
-	    case 'i':
-	    case 'o':
-	    case 'u':
-	    case 'x':
-	    case 'X':
-	    case 'c':
-	      (void) va_arg (ap, int);
-	      break;
-	    case 'f':
-	    case 'e':
-	    case 'E':
-	    case 'g':
-	    case 'G':
-	      (void) va_arg (ap, double);
-	      /* Since an ieee double can have an exponent of 307, we'll
-		 make the buffer wide enough to cover the gross case. */
-	      total_width += 307;
-	      break;
-	    case 's':
-	      total_width += strlen (va_arg (ap, char *));
-	      break;
-	    case 'p':
-	    case 'n':
-	      (void) va_arg (ap, char *);
-	      break;
-	    }
-	  p++;
-	}
-    }
-#ifdef va_copy
-  va_end (ap);
-#endif
+  int total_width = libiberty_vprintf_buffer_size (format, args);
 #ifdef TEST
   global_total_width = total_width;
 #endif
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/vprintf-support.c ./libiberty/vprintf-support.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/vprintf-support.c	1970-01-01 00:00:00.000000000 +0000
+++ ./libiberty/vprintf-support.c	2015-01-13 01:48:41.000000000 +0000
@@ -0,0 +1,119 @@
+/* Estimate the length of the string generated by a vprintf-like
+   function.  Used by vasprintf and xvasprintf.
+   Copyright (C) 1994, 2003, 2011, 2013, 2014 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If not, write
+to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
+Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <ansidecl.h>
+#include <stdarg.h>
+#if !defined (va_copy) && defined (__va_copy)
+# define va_copy(d,s)  __va_copy((d),(s))
+#endif
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#else
+extern unsigned long strtoul ();
+#endif
+#include "libiberty.h"
+
+int
+libiberty_vprintf_buffer_size (const char *format, va_list args)
+{
+  const char *p = format;
+  /* Add one to make sure that it is never zero, which might cause malloc
+     to return NULL.  */
+  int total_width = strlen (format) + 1;
+  va_list ap;
+
+#ifdef va_copy
+  va_copy (ap, args);
+#else
+  memcpy ((PTR) &ap, (PTR) &args, sizeof (va_list));
+#endif
+
+  while (*p != '\0')
+    {
+      if (*p++ == '%')
+	{
+	  while (strchr ("-+ #0", *p))
+	    ++p;
+	  if (*p == '*')
+	    {
+	      ++p;
+	      total_width += abs (va_arg (ap, int));
+	    }
+	  else
+	    total_width += strtoul (p, (char **) &p, 10);
+	  if (*p == '.')
+	    {
+	      ++p;
+	      if (*p == '*')
+		{
+		  ++p;
+		  total_width += abs (va_arg (ap, int));
+		}
+	      else
+	      total_width += strtoul (p, (char **) &p, 10);
+	    }
+	  while (strchr ("hlL", *p))
+	    ++p;
+	  /* Should be big enough for any format specifier except %s and floats.  */
+	  total_width += 30;
+	  switch (*p)
+	    {
+	    case 'd':
+	    case 'i':
+	    case 'o':
+	    case 'u':
+	    case 'x':
+	    case 'X':
+	    case 'c':
+	      (void) va_arg (ap, int);
+	      break;
+	    case 'f':
+	    case 'e':
+	    case 'E':
+	    case 'g':
+	    case 'G':
+	      (void) va_arg (ap, double);
+	      /* Since an ieee double can have an exponent of 307, we'll
+		 make the buffer wide enough to cover the gross case. */
+	      total_width += 307;
+	      break;
+	    case 's':
+	      total_width += strlen (va_arg (ap, char *));
+	      break;
+	    case 'p':
+	    case 'n':
+	      (void) va_arg (ap, char *);
+	      break;
+	    }
+	  p++;
+	}
+    }
+#ifdef va_copy
+  va_end (ap);
+#endif
+  return total_width;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/vprintf-support.h ./libiberty/vprintf-support.h
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/vprintf-support.h	1970-01-01 00:00:00.000000000 +0000
+++ ./libiberty/vprintf-support.h	2015-01-13 01:48:41.000000000 +0000
@@ -0,0 +1,22 @@
+/* Estimate the length of the string generated by a vprintf-like
+   function.  Use by vasprintf and xvasprintf.
+   Copyright (C) 1994, 2003, 2011, 2013, 2014 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If not, write
+to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
+Floor, Boston, MA 02110-1301, USA.  */
+
+
+extern int libiberty_vprintf_buffer_size (const char *, va_list);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/xasprintf.c ./libiberty/xasprintf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/xasprintf.c	1970-01-01 00:00:00.000000000 +0000
+++ ./libiberty/xasprintf.c	2015-01-13 01:48:41.000000000 +0000
@@ -0,0 +1,50 @@
+/* Implement the xasprintf function.
+   Copyright (C) 2014 Free Software Foundation, Inc.
+   Contributed by Manuel Lopez-Ibanez.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If not, write
+to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
+Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "ansidecl.h"
+#include "libiberty.h"
+
+#include <stdarg.h>
+
+/*
+
+@deftypefn Replacement char* xasprintf (const char *@var{format}, ...)
+
+Print to allocated string without fail.  If @code{xasprintf} fails,
+this will print a message to @code{stderr} (using the name set by
+@code{xmalloc_set_program_name}, if any) and then call @code{xexit}.
+
+@end deftypefn
+
+*/
+
+char *
+xasprintf (const char *fmt, ...)
+{
+  char *buf;
+  va_list ap;
+  va_start (ap, fmt);
+  buf = xvasprintf (fmt, ap);
+  va_end (ap);
+  return buf;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/xvasprintf.c ./libiberty/xvasprintf.c
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/libiberty/xvasprintf.c	1970-01-01 00:00:00.000000000 +0000
+++ ./libiberty/xvasprintf.c	2015-01-13 01:48:41.000000000 +0000
@@ -0,0 +1,61 @@
+/* Implement the xvasprintf function.
+   Copyright (C) 2014 Free Software Foundation, Inc.
+   Contributed by Manuel Lopez-Ibanez.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB.  If not, write
+to the Free Software Foundation, Inc., 51 Franklin Street - Fifth
+Floor, Boston, MA 02110-1301, USA.  */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <ansidecl.h>
+#include <stdarg.h>
+#if !defined (va_copy) && defined (__va_copy)
+# define va_copy(d,s)  __va_copy((d),(s))
+#endif
+#include <stdio.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+#include "libiberty.h"
+#include "vprintf-support.h"
+
+/*
+
+@deftypefn Replacement char* xvasprintf (const char *@var{format}, va_list @var{args})
+
+Print to allocated string without fail.  If @code{xvasprintf} fails,
+this will print a message to @code{stderr} (using the name set by
+@code{xmalloc_set_program_name}, if any) and then call @code{xexit}.
+
+@end deftypefn
+
+*/
+
+char *
+xvasprintf (const char *format,
+#if defined (_BSD_VA_LIST_) && defined (__FreeBSD__)
+           _BSD_VA_LIST_ args)
+#else
+           va_list args)
+#endif
+{
+  char *result;
+  int total_width = libiberty_vprintf_buffer_size (format, args);
+  result = (char *) xmalloc (total_width);
+  vsprintf (result, format, args);
+  return result;
+}
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/md5.sum	2015-01-06 01:51:29.000000000 +0000
+++ ./md5.sum	2015-01-13 01:53:22.000000000 +0000
@@ -1,5 +1,5 @@
-2a6c61cc923bbb0cb8525e95f26f05a0  bfd/tekhex.c
-e40a92f9d1940edeb6f5ab90b0beb1ba  bfd/reloc.c
+ec0a5972f6858c7125f5748457c3d0eb  bfd/tekhex.c
+f624b63828c11f9bb09466cbc385b56c  bfd/reloc.c
 daed7fcc65e437bc77ebf152e0d7231e  bfd/dwarf2.c
 610d1cd3cbbed99e073207b0b24af114  bfd/libbfd.h
 4cbda6238eaa5464ed780d0ddf427cc5  bfd/cpu-nds32.c
@@ -38,13 +38,13 @@ f74f5720bf485dc971d7b4151b97318b  bfd/pe
 d714ee957aefa81619f03058d91b23cb  bfd/elfcore.h
 c81d65148831d8cdd82361f4e75ad0c2  bfd/elf64-mips.c
 57287cb3abe2dc7f66af4ab28aafebe9  bfd/cpu-m9s12x.c
-b2420853ebbe5ffd3513956a54b9fde4  bfd/version.h
+52ccd36ed09cd967a5e38752264196d1  bfd/version.h
 a107ac2f34a58b7629fbff59490f61f1  bfd/cpu-tilegx.c
 ceebc66a221f8f9297b660d643de9009  bfd/coff-mcore.c
 b33e0ba78cdd46c771e365ab8b48bfc1  bfd/cpu-avr.c
 90f07219c78f6fbe833f6a8d97241f12  bfd/aout64.c
 f5ad372cf681a57b9a43f6975c05e33c  bfd/ChangeLog-2012
-d77a31112221b1465ee3b99eec6a9262  bfd/elf.c
+fa3b7ff92fbc8734f9fc7b23b06fe5fb  bfd/elf.c
 b573043e5103e4c7c7e4b88bd03a253b  bfd/hppabsd-core.c
 a74ca3ed88640b8fc3e3a9c576f404e3  bfd/elf32-xgate.c
 03f80c50fe1a8e610a763ce5fc65991b  bfd/elf32-nds32.h
@@ -52,7 +52,7 @@ f30c2f55e5c6309ab24aa96b8df86324  bfd/co
 8373bde8fa77a2939a85c16983a71910  bfd/demo64.c
 56ad91a6aa7cb77c9573c4d61d5c3aa5  bfd/ecoff.c
 097eef5cef36c541234e2ff13f69547e  bfd/cpu-moxie.c
-8399d778eb158a628c07e9e75ef1a4ec  bfd/mach-o.c
+04b3d1538d14a25b5a6bfd60940b2f8b  bfd/mach-o.c
 ebdd84dfce66bdc6b6f72f53c366f173  bfd/m68klinux.c
 40768c5bf2a20d33fd90df2ba660f51e  bfd/elf32-vax.c
 1aecdc5b55f025d1bc08db0d255e4aa6  bfd/pe-arm-wince.c
@@ -120,7 +120,7 @@ b30c64de76fa5604057647d8993e0164  bfd/hp
 42878bb2397b6bf5856dce039784d23b  bfd/m68k4knetbsd.c
 d906ec4101f7b2e1edb000e25b4c5d74  bfd/mach-o-target.c
 d9125b8b9ea20be2b07955ef07f91a82  bfd/elf-strtab.c
-7cdc35a276cd4f79bc50a1a8b30dfd92  bfd/peXXigen.c
+090b4829c6e2114bd983a5bd0408b516  bfd/peXXigen.c
 aeba86ed5d2465b6e62f96702b1a0776  bfd/simple.c
 ca01d545ef06794cc76fc453e4322379  bfd/pe-x86_64.c
 8db1a06ea798fd096aec3a598209f482  bfd/init.c
@@ -150,7 +150,7 @@ b096261204aa83b0027e9886b983e23a  bfd/ca
 63fe47ec508c643232e768ca5edf4f3c  bfd/cpu-spu.c
 35f7bce12dc045c5df6ed1cbccc0cf49  bfd/bout.c
 effd5b05c0a39ffb18063e98f219ed6f  bfd/warning.m4
-5694696fb49e099f3d5979ac5b2b2398  bfd/elf32-moxie.c
+91d7723dbb1ac2d0d4b73e009c30860a  bfd/elf32-moxie.c
 d257d07aae981ced6ca5490db04c189e  bfd/pc532-mach.c
 f210b04663c7d0f71e6559a3f7a7e1bc  bfd/configure.host
 62003f2b3a96e1a7c53fe2e85f685db5  bfd/cpu-aarch64.c
@@ -175,7 +175,7 @@ a47f45a1fe6baee6725f563a3845ca9f  bfd/el
 b4d684df83075a9a6ae4511b590634aa  bfd/cpu-d30v.c
 bbf88fdf4e23c9cba924526076284b78  bfd/ChangeLog-2010
 78f6719e929ead174ee400e9125e2919  bfd/vaxbsd.c
-e9fa29e11a2ebfe5dcba53c9f076950f  bfd/coffcode.h
+86b81681ff2719ef342259dd061c703e  bfd/coffcode.h
 8e2d22a0f8eb6e49f33e93ffbce44776  bfd/vms.h
 c66b3106a32545b76d3a65f824ec2b57  bfd/coff-sh.c
 e3e66ee706de9bab12f19c08508ae8f9  bfd/m88kopenbsd.c
@@ -211,7 +211,7 @@ df585392717c30d973de1a223c137975  bfd/ho
 32a838331884511de9bb58e74e244cf4  bfd/doc/reloc.texi
 072910d553f79906db69fa7c0e956bba  bfd/doc/fdl.texi
 290b494aadac1ae4d748fc49bd52f332  bfd/doc/section.texi
-da7193a00490816963843a47040103f9  bfd/doc/Makefile.in
+323184d55ec6a5bb9d4c021b271203fd  bfd/doc/Makefile.in
 236e856bb13ee47adc5d7d253037640d  bfd/doc/bfdwin.texi
 a11231531c5c3cd6e7babf06426a657e  bfd/doc/ChangeLog-9103
 d2b923f7732c26442570c16fd1dfac5a  bfd/doc/hash.texi
@@ -228,9 +228,9 @@ f910f218438622b07bc2760b2aca068e  bfd/do
 9c29ea7f3f782cb53452b5d3d266fb9b  bfd/doc/bfdint.texi
 9afb3e98dc09050c90da3ce1973dea7c  bfd/doc/archures.texi
 51139f6af786e74446d01ec49807fc28  bfd/doc/elf.texi
-47d431b8e369e28fe114394dedff71c3  bfd/doc/Makefile.am
+8196495ec881df172b578acd0e5f80ef  bfd/doc/Makefile.am
 7edf511939deb638e8291f264c4249e1  bfd/doc/bfdio.texi
-e5d7154700ed7ad126a57d44dc1a9758  bfd/doc/ChangeLog
+ddf1297dbd2a66531f06e6f5cbffb0da  bfd/doc/ChangeLog
 d9f7fec3dee69a6c3084e6d4cfd88371  bfd/doc/cache.texi
 6a1a507e85b4d8cee41c3defa9d24e6a  bfd/doc/opncls.texi
 b0bc392e3b3bfff71aaa7c8636f16b91  bfd/doc/linker.texi
@@ -260,11 +260,11 @@ a096cd3ac32af71fc5d6ae52b4a29714  bfd/cp
 217a68d0a5b1076454b8760b748acef7  bfd/pef.h
 651064f706aebcb3e26bfe5575a7284a  bfd/elf32-tic6x.h
 0b11bd747d1947e893855831a99c2c25  bfd/elf32-sh64.c
-c68ee41492b174a44344b8d63ccd11c9  bfd/coff-i860.c
+aa95f9a368ab99dfc240812fca87b2db  bfd/coff-i860.c
 6741acdc1146f97f173c3b88e9e13596  bfd/coff-alpha.c
 326aa715f6c4dd56788f0f344218f718  bfd/bfd-in.h
 83226211b9f65263a36f5966158874a7  bfd/elf32-nds32.c
-96160890ef52513e3c668a9932d1471b  bfd/elf32-i386.c
+a3b8c05abed62d68a97ffba15cbf2e40  bfd/elf32-i386.c
 8e477a021505b01a1e592b209f274ad4  bfd/elf32-ppc.c
 7d710529ca3fafb2bb57132df24957e3  bfd/ChangeLog-2004
 fb0bafa1c89fe516859c7315399fd5d9  bfd/elfxx-sparc.c
@@ -353,7 +353,7 @@ aaf75a51efde4236b5cc8cf6715d6f6a  bfd/el
 0089dbf3a4ad169d55640677b226b650  bfd/elf32-m68hc12.c
 4d0c2686f1edcf70929603738d5d2302  bfd/elf32-m32c.c
 8f7b5397a7bb5d502a9997e19d244cea  bfd/ChangeLog-2014
-d56a014832c6ff7ff68a3ca34ac71dd1  bfd/elflink.c
+f10e052223369ebe0e9d1574db41752a  bfd/elflink.c
 2cdeb7afabf688efbc9ff6bce9baf055  bfd/elf32-iq2000.c
 d33b4e9b597e25668a8cfd80acf88d36  bfd/aout0.c
 9fd7bb9c147690eb727439c7efb0464c  bfd/elf-hppa.h
@@ -431,7 +431,7 @@ fd30f5988bcb1ac96b9cce47b1ab5469  bfd/el
 7b89e415f08d597d888efc2c3dded43c  bfd/elfxx-ia64.h
 5d6400b5358d7e0ac9d4a67eb20c20aa  bfd/elf32-or1k.c
 cf1a0b18fa9480d842f34e55bb2749f4  bfd/targets.c
-3ccd9299aaa52e3669d9191beaeb4470  bfd/ChangeLog
+21c0b530618459bd763ed462fa2fc318  bfd/ChangeLog
 f8ab1d36a2214606a4c8b223824d7e67  bfd/section.c
 03a3e8bbf7ffcbbed93d51fd38587804  bfd/elf-s390-common.c
 3b45f6190ac856f0e04c77018c6bc28b  bfd/elf32-lm32.c
@@ -517,7 +517,7 @@ c0a2de73724a12c66673f4c472544109  bfd/ly
 2b62289ac24c188ae2e9b1a66f1828a5  bfd/elf32-d30v.c
 a9bb03f4524914cca9c2a7cb7052acd5  bfd/elf32-i960.c
 8acd9f53cd317876da4ef3c6d882db9d  bfd/elf32-xc16x.c
-dc7e3fe868457e2c43f7a8bd4b058927  bfd/elf32-msp430.c
+d6d4a2a4ad1b6ef5faf1b32a06309cdf  bfd/elf32-msp430.c
 36b70a1c007c325158d66e8f20ee21f1  bfd/elf32-m68hc1x.c
 edd7cdbaf60a5f03a2b9ae58fb1add25  bfd/versados.c
 088c0e693077976b3ada7603af5a749e  bfd/coff-svm68k.c
@@ -541,7 +541,7 @@ e8ff6bd53bf83fcfa842cd19e26f2bd8  bfd/nl
 a37b1349afdf69de54baf5ec9587728e  bfd/pe-sh.c
 969711ccb3617ea84ee8e2d221b45c53  bfd/libpei.h
 e5c21ba341204cf1a46726ae6387fdde  bfd/aix386-core.c
-e2799dc3267a1516abcd0098d44e1283  bfd/elf64-x86-64.c
+32c0086f5176cb12e73ab371ce5034d0  bfd/elf64-x86-64.c
 e205b75bf088fd0bb4a7a4bbc4b33774  bfd/cpu-tic54x.c
 a147777c7a198284a4f45824d96109d0  bfd/pe-i386.c
 cb86d44fdc4ae832ae39b628829dd405  bfd/coff-m68k.c
@@ -888,7 +888,7 @@ a8325de9c6473c15722e1cfdb6d2ba24  gdb/co
 66e64d38d64c18c47e8605b6267e09b5  gdb/tramp-frame.h
 ddbd14b96c4b153eba02ccadf4ed9807  gdb/gdb-demangle.h
 f20f59d9e6fa60e85eb9a2d727e3e316  gdb/ravenscar-thread.c
-e1fc6ede3367880d068c36c890b30a57  gdb/Makefile.in
+ac8ee0ecbd0e05bda3d513127366b748  gdb/Makefile.in
 e28da424ccb6965d0ba6955035a6b04b  gdb/btrace.h
 aaa0a2d54605b37838cf54ced8baa29e  gdb/windows-nat.h
 f64c228a59ac9322bf93cf5a805339cc  gdb/sparc64-linux-tdep.c
@@ -922,7 +922,7 @@ c5e2f2b4c2a50b902dc183726c47320b  gdb/va
 a1d4a9f9cc0889b776920167d21ade7b  gdb/sparc64nbsd-tdep.c
 c074b817bcafa21628660800eef8348f  gdb/c-typeprint.c
 dd44cebeac33294f04a8cfbc55a589c3  gdb/xtensa-tdep.c
-2afadf86d4bcd4c8736914ceb75261cc  gdb/top.c
+7e95e312421f1eee6a0518d7285592c1  gdb/top.c
 001635cdda1a55a603854c760ae55c48  gdb/python/py-cmd.c
 afb00927983ce834b553cd4b764514bc  gdb/python/py-infthread.c
 f40fa46aee5e124221ecc85c11c0e625  gdb/python/py-continueevent.c
@@ -933,7 +933,7 @@ a38017640c3f553d280275e044df15da  gdb/py
 ef430d8660bd46238222bf0e10629d8b  gdb/python/py-frame.c
 3b23d7e4542a89c8993cfdead0c72ec4  gdb/python/python-config.py
 af2f0181f2b6288a18527a2ec751ac29  gdb/python/py-value.c
-cfbbb34236636b92e531b54f748d99b3  gdb/python/py-type.c
+93cbfe92593641635273805115120494  gdb/python/py-type.c
 f185cafcd4d24b700a743cf45f10f002  gdb/python/py-evtregistry.c
 c77cc70f3747590e6b0528fdce0811f6  gdb/python/py-utils.c
 a5a6de0cbd223d258b3cbc990897bbb5  gdb/python/py-linetable.c
@@ -1019,19 +1019,19 @@ c71f8b82e80dd51ca3063c99f5367a04  gdb/sh
 dea983db4ff36484af6ddcfd3edfe228  gdb/go32-nat.c
 96db5f3d2056d4a3a6acfbe480ce5077  gdb/ppcfbsd-nat.c
 fd89864cd40e82e38159fe3ad6045b21  gdb/inline-frame.h
-04eeb72381e7b5d5e535e174b9e71ccc  gdb/nat/linux-ptrace.h
+87e62d8e44ed7100fe7943a91806179d  gdb/nat/linux-ptrace.h
 0936bceea98a1254eabe4428b52495fb  gdb/nat/linux-waitpid.h
-20a0e753ac4a2a95170199729e166be7  gdb/nat/linux-ptrace.c
+2740410d5f15ee52ae7e6e59e91c3b81  gdb/nat/linux-ptrace.c
 35dea2eaca77dfeb3b2512c366ed065f  gdb/nat/gdb_thread_db.h
 4388ea55be0c9f2b4102d22089fd9d87  gdb/nat/linux-osdata.h
 d60a54fbdfa129e9bca6a9f893d16563  gdb/nat/mips-linux-watch.c
 8fecfdb6ca2b3f42838a7ffb794dbd71  gdb/nat/x86-cpuid.h
 87e5eaf54ba07d737f883ba396a5ccf8  gdb/nat/linux-osdata.c
-b3969f3bb6f4c86b327605d097b1c435  gdb/nat/linux-procfs.h
+8a7c49ccb6c2ad9eff13f353be0a7801  gdb/nat/linux-procfs.h
 3fe5aad707b22a94b6dd384ab77fd7b6  gdb/nat/linux-nat.h
 5fa3b003ca5aa9fe60d784e71c72e6f2  gdb/nat/linux-btrace.c
 669b39680313d2b003d1478b9f530a5e  gdb/nat/x86-dregs.h
-b90071e45e0719cf5cce981dff77af5d  gdb/nat/linux-procfs.c
+eb76737a6846a756bdddceb587ae5b00  gdb/nat/linux-procfs.c
 7c634adb1aa24083300683122bd42808  gdb/nat/x86-gcc-cpuid.h
 4b84e5a576abd405b38fc5ef3998ee9a  gdb/nat/mips-linux-watch.h
 adae21661830cc755ff5274534e762d4  gdb/nat/glibc_thread_db.h
@@ -1040,7 +1040,7 @@ fe4143f3ce547c7ca0ef5c4972db2be8  gdb/na
 7f96493e385a602effd492459e9d90e8  gdb/nat/linux-waitpid.c
 6d6af0cb7ab4fd37314aa8af76ae26dc  gdb/dsrec.c
 9c609b5097f68ac06f991a9dc487090e  gdb/go-valprint.c
-ba00a7d91878a413d56b7b78b455b35f  gdb/dwarf2loc.c
+d85ee9981f740184585d800596071caa  gdb/dwarf2loc.c
 e336b2fe9efb3c7cb0327eeba00535ac  gdb/tracepoint.h
 43f2c7dc717f4dcf85e64827a51f443e  gdb/gnu-v3-abi.c
 c09e21356bd4f9251847da4f1ae99011  gdb/extension.h
@@ -1063,7 +1063,7 @@ e34721ebe6f9aa0def67750d0648775a  gdb/in
 1b374a8198c2d7fd6dbfdf2f5b43d1ed  gdb/mips-sde-tdep.c
 3e2614670486b95024e13a51aeb3a62d  gdb/gdb-dlfcn.h
 158f4a37725e844c44e17951e0b4abb6  gdb/ser-unix.h
-253c0f9bf03b40e215e8768b15f3e5b0  gdb/utils.c
+20e2e56c92567d03563d963c658607c5  gdb/utils.c
 3e90d5e4fd589a95ee4d7d2efbc70626  gdb/microblaze-rom.c
 90e56dea65beb67443d6c83cbc5fed7f  gdb/ChangeLog-1997
 6ddec7f5a989e30a032930279fe6f5fa  gdb/trad-frame.h
@@ -1126,7 +1126,7 @@ cee0d35ecab391686a75de1f03a3a474  gdb/so
 988fc7c511dbc6afdbb950743e69f090  gdb/minsyms.c
 f3ff4ebb96f423721dfa8c47a310fe1f  gdb/i386-darwin-tdep.c
 7b8a5048cfb6f899a8199897f0864c8f  gdb/ChangeLog-2005
-77c25b703b0a1cb1d968ff8e6c797102  gdb/event-top.c
+9b585bacddc38d52168b69a1267d2756  gdb/event-top.c
 f56dccd6c1e3cdff7a9f0c6798cbada7  gdb/inf-ttrace.h
 986fbf2a341b6e1acfe0922b9ca014f8  gdb/mem-break.c
 380331ec2eb36a0ac59045f90310e589  gdb/charset.c
@@ -1192,7 +1192,7 @@ f571180ebe3426e9508ee431a3de6faf  gdb/ta
 da0949217a3c7d31f623a9517920cf5a  gdb/i386-sol2-tdep.c
 0167ccd7bd73859358b714a105e106dc  gdb/frame.h
 f1e70b7629a655908002488f39cfc407  gdb/spu-tdep.h
-c969d93365799fa58f12051abc9686cf  gdb/darwin-nat.c
+6dfcf5b88f7ebd2e3766cf24cdf80604  gdb/darwin-nat.c
 3f1859508cbb0c96c2a3f34e91abd372  gdb/symfile-debug.c
 3876b403848cdb175382b0651a80028b  gdb/stack.c
 84cc919f7d894be243cedc55e21ec96d  gdb/ser-tcp.c
@@ -1204,7 +1204,7 @@ e51e65533784e4ee758c5ab84f66ac2d  gdb/mi
 04777c319ea7293bbc87f392ab975245  gdb/sparc64fbsd-nat.c
 eac48212762d2e0c56b5215e4bc7888a  gdb/dink32-rom.c
 e4e2a84967656167ffc48faf8422b441  gdb/s390-linux-nat.c
-e9f6885e3d534632c7df0d29cde08e8c  gdb/linux-nat.h
+77c2f603033342ad87a2d4ae3592cefe  gdb/linux-nat.h
 13f56b0f27cf5dc63c9778726b1e9bd1  gdb/sh-linux-tdep.c
 9bcc332d5e29d380a6791f58bedb9961  gdb/go-exp.y
 2ad145eee71eec67470ebfefd4ed1e99  gdb/i386gnu-tdep.c
@@ -1226,7 +1226,7 @@ c62396471ac0e41b5b86b9f918c070b3  gdb/so
 65d4d83424f90b61300aecad3a789d29  gdb/ppc-tdep.h
 08d61feeff6935f601f0174fff2f75e0  gdb/configure.host
 a3538b99c15297deda03355f4e4e7ad5  gdb/x86-nat.h
-36cacc4f52ebddcca732eb010eb8828f  gdb/linux-thread-db.c
+d79f3e87bca0ee0dc08dc3c397bf2abe  gdb/linux-thread-db.c
 7fe38f8c53bba1046e5d57e3aba23aea  gdb/c-exp.c
 5eb62e34c5152327fdb1068166605cce  gdb/alpha-linux-nat.c
 bba1a8de5801c830182eaa2c3070a9e0  gdb/sparcnbsd-tdep.c
@@ -1236,13 +1236,13 @@ cbd451a00769a9c8c7c6cd52f55b861b  gdb/sp
 2bf7d0eb07c73f019c7d3e6a908c8524  gdb/environ.h
 b30a9321996160345deeb868fb99280e  gdb/m32r-linux-nat.c
 2d0cad5387bf3be80d7e445a4954af0a  gdb/gdb_bfd.c
-b9a98fbe95e393b3e656f14832f676bc  gdb/NEWS
+f212cb17fa15b7937127aa26a10a49e0  gdb/NEWS
 b4133d1e27b97096efb8d84ee2b7d3eb  gdb/ppcnbsd-tdep.h
 a9b65db6bf004e64ec3699d48e10521a  gdb/x86-nat.c
 367bb9fbe21d534fdf0bb25af4eadbe0  gdb/dcache.c
 d29f5b757e38ad4c10bb624d9e6f1c0b  gdb/ada-lex.l
 d8205e68d516616fb36ec1c38a939111  gdb/cp-support.h
-5fcfa7263a58bf2c9d030deb6413bcd8  gdb/demangle.c
+3cabc7f8d96e0c08d3d1958d2748ebae  gdb/demangle.c
 611b9ba8aed23da7ed4b31d36fc072a0  gdb/gdb_expat.h
 e53a5d016aed098b9a5c2615dc9b7dfe  gdb/aarch64-tdep.h
 aeeaff1a35507483e22cec78bd243577  gdb/probe.h
@@ -1298,7 +1298,7 @@ b01d36d2ae67a4f9727a83f8f6936252  gdb/tu
 bd09c5481e9864eb233019724db56d2d  gdb/tui/tui-disasm.h
 10271d6a68a2c707a920c8c7b8286a5c  gdb/tui/tui-command.c
 4358ae61fcf053d4985cdf7d688973af  gdb/tui/tui-hooks.h
-8fa550a2a6db7ca76a0c24bd77f01cea  gdb/tui/tui-hooks.c
+d9d3e09551367796dce2a17fa0a83c00  gdb/tui/tui-hooks.c
 3ca18e956512fc1fc2d593eb92b16ea7  gdb/tui/tui.c
 9e2ac972187285592aa82c4fd045f840  gdb/tui/tui-disasm.c
 982017c72295a921a15aa81ff4c41c39  gdb/tui/tui-io.h
@@ -1306,7 +1306,7 @@ a59256f94107464eb22244ac56488cd5  gdb/tu
 42572372e7df4a951513c1622b91b940  gdb/tui/tui-command.h
 a4b16b750f957df7f0461af20baf3d57  gdb/tui/tui-stack.c
 ed2f4d8bf00841dd3df0afa69b445ce1  gdb/tui/tui-source.c
-8f309e928a3ff520bacfde3d2c9fad6b  gdb/tui/tui-io.c
+dab413be4329497525ecacf8d35a440b  gdb/tui/tui-io.c
 fbbdfe573b16a441c411cf79414d622c  gdb/tui/tui-layout.c
 d09de30673257a10d67adb2dc9b1824b  gdb/tui/tui-wingeneral.h
 b2ece8b901b20b1679c2d8ed4c36e58a  gdb/tui/tui-interp.c
@@ -1358,7 +1358,7 @@ f3dd7931c957110e01b8216e37d8456c  gdb/ar
 420f08b084f6fedd40909294840ea324  gdb/cp-valprint.c
 75048731d244d7e05b05a9451fdfb842  gdb/gdb.h
 c7c1f809ddeba0bc097c96cd0f5e21bb  gdb/amd64fbsd-nat.c
-dc265f8da8646bc4453ab098d740ac03  gdb/dwarf2read.c
+79602e2435549d3d3a0e341ec9d81d7b  gdb/dwarf2read.c
 eb891b3302af5938339826cf5d63cc84  gdb/amd64-windows-tdep.c
 e4708e4b23e4e6ddd07c7245736d37b3  gdb/testsuite/config/cygmon.exp
 f9d2a2bbf2999a13c9beea756d293942  gdb/testsuite/config/default.exp
@@ -1465,7 +1465,7 @@ c197ea286521185427f0eecc3195e545  gdb/te
 46ed67e1926c90beafa9f536ea651140  gdb/testsuite/gdb.perf/backtrace.py
 e729953b9dcc380f7f3429f7f86a4030  gdb/testsuite/gdb.perf/backtrace.exp
 c48b4f1a627f6ce32439bb7c3a072299  gdb/testsuite/gdb.dlang/Makefile.in
-2bfca62d4b3b2395fabcd08202e6a849  gdb/testsuite/gdb.dlang/demangle.exp
+dc1dcdb1f690ad9bc498becf1894d73a  gdb/testsuite/gdb.dlang/demangle.exp
 a461de83968a21f392e109b744aa1123  gdb/testsuite/gdb.dlang/expression.exp
 a5de505e2283e80d0d9b80e2fc81ff70  gdb/testsuite/gdb.dlang/primitive-types.exp
 30290075c2b903b0953a02e25b84d069  gdb/testsuite/gdb.cp/breakpoint.exp
@@ -1510,7 +1510,7 @@ a1a666d9fbbee4395c5dc73c4e1a07a8  gdb/te
 66d796b0ea41b22deb6b966ee2bcce5a  gdb/testsuite/gdb.cp/call-c-1.c
 2e8d18ebcdc7bb5b4a247b5b42516bf1  gdb/testsuite/gdb.cp/typedef-operator.exp
 4195d3718293b642b8ead0ca9e2e1448  gdb/testsuite/gdb.cp/nsusing.cc
-b1b79c131439610130a2fb227455fd75  gdb/testsuite/gdb.cp/demangle.exp
+3b9be7c6dc1147e6be6938fd18f47478  gdb/testsuite/gdb.cp/demangle.exp
 d6ed226431adc34de1f41f2c2bc2168a  gdb/testsuite/gdb.cp/overload.cc
 1879e6e5a1352c4c8f9a89da8879c205  gdb/testsuite/gdb.cp/destrprint.exp
 d1b72b24db775d7c6012edb3fcd7d78e  gdb/testsuite/gdb.cp/ref-params.exp
@@ -1895,7 +1895,7 @@ a0a99850b216ffab1ee61e5668ab8d2a  gdb/te
 3da274b968ba93b400c459ac5293cf21  gdb/testsuite/gdb.python/py-sync-interp.c
 e17fce4d29be532be40531218764f3cb  gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
 4d95180b9972ce262b64df385e15f18f  gdb/testsuite/gdb.python/py-objfile.c
-1223d7b1cd148485ddd137e3ea7ddbb1  gdb/testsuite/gdb.python/py-frame.exp
+5c87523cf98b1ec48e8bdf3761f2b51f  gdb/testsuite/gdb.python/py-frame.exp
 ef99dbad1232f21dfd9a5bcf5b7bc8ca  gdb/testsuite/gdb.python/py-framefilter.py
 86e246acca8993959033f2e7b993e3cf  gdb/testsuite/gdb.python/py-value-cc.exp
 720d52d5a11f807ddf3fd17ff0407049  gdb/testsuite/gdb.python/py-section-script.exp
@@ -1925,7 +1925,7 @@ eef0f7a02e7d23d2f28ad5df04a3a496  gdb/te
 8367467101801b6e118a3af528601691  gdb/testsuite/gdb.python/py-events.py
 425335bc085dce42b810a1b99336a996  gdb/testsuite/gdb.python/py-frame-args.c
 0408fed72b1aeddb53112fe4054b2b68  gdb/testsuite/gdb.python/py-events-shlib.c
-be549b13417a462460885f66120df8ea  gdb/testsuite/gdb.python/py-prompt.exp
+b3d2bcc6363456b4080cbfeb213041f7  gdb/testsuite/gdb.python/py-prompt.exp
 2db47e6d29838ffc8b96dabce27fef00  gdb/testsuite/gdb.python/source1
 cee52a94f909d092154f9fcaa9fcb764  gdb/testsuite/gdb.python/py-linetable.c
 7dde992c265a9bf984ef08f06c3b0f11  gdb/testsuite/gdb.python/py-finish-breakpoint2.py
@@ -1945,7 +1945,7 @@ bd2f25fb8a86f0cc961b6e45131c168b  gdb/te
 b3402057c9f2e46816c282c0434c10a3  gdb/testsuite/gdb.python/py-caller-is.exp
 9f5a91b3054e2af87741da27a080844a  gdb/testsuite/gdb.python/py-frame-inline.c
 e5a206de37ef8026ab797c23e2b53edc  gdb/testsuite/gdb.python/py-linetable.S
-1144e230bfbf7717a9803b38c631547a  gdb/testsuite/gdb.python/py-sync-interp.exp
+15973ce51947517b97f39ea42dd7b110  gdb/testsuite/gdb.python/py-sync-interp.exp
 768c798fb7819daee5754680c7b1e944  gdb/testsuite/gdb.python/py-evthreads.exp
 48a65209a5086957c0f52150ad0560f0  gdb/testsuite/gdb.python/py-objfile-script.exp
 0c1c0866ec7affdd6aee5020bd1cd872  gdb/testsuite/gdb.python/py-section-script.py
@@ -1976,7 +1976,7 @@ bc7fc64f73f3668bcc702b2331236e4b  gdb/te
 1ea5aad45076f4fc281ef65e969e1203  gdb/testsuite/gdb.python/py-function.exp
 b650178b6cf6d22a59f6ab3d50388f92  gdb/testsuite/gdb.python/py-finish-breakpoint.c
 cd662e462c77374d88b8b34a003b41ab  gdb/testsuite/gdb.python/py-infthread.exp
-31b77d9139216775d317cfc97da050e9  gdb/testsuite/gdb.python/py-type.exp
+9aede4cbf7c4fa96b7e6aa435202790b  gdb/testsuite/gdb.python/py-type.exp
 75fc1c9b283f5491031ac7b61313ed84  gdb/testsuite/gdb.python/py-value.exp
 d400e33253e9568983d3ea607152abfa  gdb/testsuite/gdb.python/py-prettyprint.py
 4bdef16f32aba1bb0f2cc3098a8004e0  gdb/testsuite/gdb.server/Makefile.in
@@ -1987,7 +1987,7 @@ d3bddc2e95b60f704388ad86574d96aa  gdb/te
 b1ed7f10b28b5a992ca7d87982ec2dcd  gdb/testsuite/gdb.server/wrapper.c
 021862ee5b8e5bf10116a791cf2ed5ab  gdb/testsuite/gdb.server/server-run.exp
 76ffbd3ac9b97abfb51aba5445492df8  gdb/testsuite/gdb.server/no-thread-db.c
-74f942f3e367d30ec698ccbb1d416281  gdb/testsuite/gdb.server/ext-attach.exp
+bf29ba48c72724b27aa5b4dbf27d532a  gdb/testsuite/gdb.server/ext-attach.exp
 a2d3851bfec03af9050ad0266bf423bb  gdb/testsuite/gdb.server/solib-list-lib.c
 ef5fd759550d3a7fd636c536e0ddf446  gdb/testsuite/gdb.server/no-thread-db.exp
 0199765c5ae23bcbeb8b1b92d407d262  gdb/testsuite/gdb.server/ext-attach.c
@@ -2054,7 +2054,7 @@ d5afa0fe202b332d610307c57010db02  gdb/te
 bb711ce97cf00cad9c9bce68090c3007  gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
 30cc0608148bbc9e20afc76fd79b94f0  gdb/testsuite/gdb.base/filesym.c
 10b4362a0ae6374332df3c03fdf050e3  gdb/testsuite/gdb.base/vla-sideeffect.exp
-16b3069b963792b7436b7915b77ab4db  gdb/testsuite/gdb.base/watch_thread_num.c
+e2bfb40807919cf1e40d05f583f2f1b2  gdb/testsuite/gdb.base/watch_thread_num.c
 242f950aac3d00b864f482313086acb4  gdb/testsuite/gdb.base/hbreak.c
 9d5c51006bb7e037060fcf47b0a25326  gdb/testsuite/gdb.base/callfuncs.c
 403544dac2e0023e75c1b2befd62f32d  gdb/testsuite/gdb.base/consecutive-step-over.exp
@@ -2178,7 +2178,7 @@ d47cf600366a984537fe500bf1b0e33e  gdb/te
 cf24f2e2577bb52e2d78f71c2490750c  gdb/testsuite/gdb.base/ending-run.exp
 f7495d12b108f2c1b81acf38e49be877  gdb/testsuite/gdb.base/bigcore.c
 f7aec7811932b17ea2e12b59c13e377e  gdb/testsuite/gdb.base/ovlymgr.c
-dc472d19b4d8499b2542429832a6f037  gdb/testsuite/gdb.base/maint.exp
+8259f6748e11c5fa0ce7fe1410bcf7ed  gdb/testsuite/gdb.base/maint.exp
 beb7ddd8ac440e541b4ff7458987281f  gdb/testsuite/gdb.base/ovlymgr.h
 895e7c8264248369271e2a04fb4f7ee3  gdb/testsuite/gdb.base/symtab-search-order.c
 eac82675666c7dd6c0a0bfda0ce1e509  gdb/testsuite/gdb.base/watchpoint-hw.exp
@@ -2421,7 +2421,7 @@ d25dbcbf9459795e5b55c4ee13b86c4c  gdb/te
 e793a168dd067288a1c92e0f5a8115e1  gdb/testsuite/gdb.base/unloadshr.c
 c7fcb4a37468c23cb2392c4d1d2f6ce7  gdb/testsuite/gdb.base/valgrind-infcall.c
 cdf539fb37aa019503f1ccbc0b4389aa  gdb/testsuite/gdb.base/watchpoint-cond-gone.c
-6a5ddbedad21b1132957f5f4e57d0ecf  gdb/testsuite/gdb.base/watch_thread_num.exp
+23a7e905282303e7af2156be3cedfceb  gdb/testsuite/gdb.base/watch_thread_num.exp
 561c27528d8cbdd1dd228d02379c14fc  gdb/testsuite/gdb.base/solib-display-main.c
 24f8dd7a0f899efaa81bf248f8eafa2e  gdb/testsuite/gdb.base/fortran-sym-case.c
 9cd4ef136dfbee149a4056477283fa41  gdb/testsuite/gdb.base/grbx.c
@@ -2541,7 +2541,7 @@ ddb3066e750df3995ee4780e8ba2c4a4  gdb/te
 f83afce63a3cb2cd060a69b94990a317  gdb/testsuite/gdb.base/symtab-search-order-1.c
 a5b5c68530a573520b8b8a086855bf0d  gdb/testsuite/gdb.base/longjmp.exp
 49cded18d4b376bc7480172708e12de4  gdb/testsuite/gdb.base/call-signal-resume.exp
-453e79d3144d0a63854dfe8003262f49  gdb/testsuite/gdb.base/solib-overlap.exp
+6f21f303842683712a1ec3e9dd01ca7d  gdb/testsuite/gdb.base/solib-overlap.exp
 b263e085b920ccae2568157fcc33189f  gdb/testsuite/gdb.base/psymtab1.c
 eb8f3bcbfbf6780085ec1dea2fbbbb43  gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
 bd5ca176289756c8a8f6a3a56c2407ac  gdb/testsuite/gdb.base/fullpath-expand.c
@@ -2683,7 +2683,7 @@ dccdc97b49250422c960e8c559ac883c  gdb/te
 828a7454e3f8eddd3ef9444b31477cb1  gdb/testsuite/gdb.base/consecutive.exp
 254c0d02398b856e3b59222454614b84  gdb/testsuite/gdb.base/symbol-without-target_section.exp
 536354dc2d522529e2c8cbeebdae23aa  gdb/testsuite/gdb.base/skip.exp
-c2f8eb654127fee4f7def3122bc6439c  gdb/testsuite/gdb.base/annota1.exp
+c88288d70c305dcf6100643e08826ac8  gdb/testsuite/gdb.base/annota1.exp
 d7dd5de96d7762b8c08b55b9a5d660ec  gdb/testsuite/gdb.base/dcache-line-read-error.c
 4ab5e22b7ed15121561c6aa3d4988de6  gdb/testsuite/gdb.base/cond-expr.exp
 d227cd5acdb0fca7bc3bc43b226fcf96  gdb/testsuite/gdb.base/pi.txt
@@ -2724,7 +2724,7 @@ b6891ca09e7713f057a130aeb9c0514b  gdb/te
 4a1dab3ee837d16ce8c64928779ae7fe  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
 185ab1515aff77f0745f472b81de6780  gdb/testsuite/gdb.base/foll-exec.c
 0f8de89d2d90eccf83df98f8bb09ffab  gdb/testsuite/gdb.base/catch-signal-fork.c
-20615bb4cc0936ff298e9aa34bb2f0aa  gdb/testsuite/gdb.base/attach.exp
+e2aee72889a4bcc67d4690a4a9ef68b9  gdb/testsuite/gdb.base/attach.exp
 ccd0c6fcbb4f174f84ad76783660e6ba  gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
 875a150f7fd4db096ea08b9acd105dae  gdb/testsuite/gdb.base/baz.c
 d402ea8c08866d797062e2a0006333d8  gdb/testsuite/gdb.base/comprdebug.exp
@@ -2798,7 +2798,7 @@ d9fed877f7668556b8dea9ad3b1dd43d  gdb/te
 3366ec3534381bd9ca56355ab6a5ad0e  gdb/testsuite/gdb.multi/watchpoint-multi.exp
 102946043661ffdd5098372b92d1f09b  gdb/testsuite/gdb.multi/base.exp
 3b323116a441bb7781f1199c7f315869  gdb/testsuite/gdb.multi/multi-attach.c
-9cdf414c33f26050f181b91e529dd0dc  gdb/testsuite/gdb.multi/multi-attach.exp
+df51ceccba157af7e5291e6cabd30cc6  gdb/testsuite/gdb.multi/multi-attach.exp
 a678541a68147b25bf4358c1946e5675  gdb/testsuite/gdb.multi/crashme.c
 52d6dac89b8cdf43d237bd4bc480342b  gdb/testsuite/gdb.multi/hangout.c
 1c4ed58aff043c07e96d1f43b3688656  gdb/testsuite/gdb.multi/watchpoint-multi.c
@@ -2888,7 +2888,7 @@ dcaef9188f950fde7ea41144c11d26d6  gdb/te
 e05639ab29fe7deba10f02ca5e837f9a  gdb/testsuite/gdb.dwarf2/trace-crash.exp
 bbc51f9f0b87c37f9e1a5a081a1a5fc0  gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
 53b35bde7e2991691ed7a0f2ea21f041  gdb/testsuite/gdb.dwarf2/dw2-const.S
-82f3af4aa5352f578229598ea88bf08b  gdb/testsuite/gdb.dwarf2/corrupt.exp
+18b3ed6181326949a9fb5f1b14917b65  gdb/testsuite/gdb.dwarf2/corrupt.exp
 48c3d124a7473b30770438896d234e16  gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
 b32896849e38e98b5b340700042be782  gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
 9008db49f68b77c15d611c4344548f18  gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
@@ -3054,7 +3054,7 @@ f5058fa82ef166ae3ab39689d4e4a4a5  gdb/te
 d8f74eed84bde8b6ab217ddf6fb2dc46  gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
 96d9af8ee0b04c4a4b300247b4f265fc  gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
 54b14c7dc645d64595148d5375d65eba  gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
-c048f8504505adf79cd4fe15b064520c  gdb/testsuite/gdb.dwarf2/enum-type.exp
+e5de283fd15fcf1e4e544c429d44bc91  gdb/testsuite/gdb.dwarf2/enum-type.exp
 8a83affa79d44f63904ee3c4854b4227  gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
 96f70ed255b52a01c0530c400903d039  gdb/testsuite/gdb.dwarf2/fission-loclists.exp
 4a443917dc1db4bb0cfafa88b277e0dc  gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
@@ -3085,7 +3085,7 @@ cc0f51c6934a41604c0778d6350021fe  gdb/te
 368de65d9cf6ccbbae9362b0ec1617d6  gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
 d5251c1656f96f0abe651cac2cfbc577  gdb/testsuite/gdb.dwarf2/fission-base.c
 3cd0da454b52219349f869200cead4cf  gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
-7f5da0555316672ec27ccf02ebe99ed5  gdb/testsuite/gdb.dwarf2/arr-subrange.exp
+db30413c16ec7ec77c5ca3064619703b  gdb/testsuite/gdb.dwarf2/arr-subrange.exp
 cbb5c1d8572231bb98a477c049f9fcba  gdb/testsuite/gdb.dwarf2/implptrconst.exp
 e167f65b0f0fcf084b537cd423a7fa34  gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
 6af352724a5cf848875fb156ae9da164  gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
@@ -3174,7 +3174,7 @@ e358e6e67ef79a4d997f341fd507d865  gdb/te
 4f672c41eb2f0e791e0b448261376876  gdb/testsuite/gdb.arch/i386-dr3-watch.exp
 6ebdc68c7e74e9a0d5263075f4dc82e0  gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
 d6ba847f242a917a32a33f7da217f249  gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
-60cbc50a08c588f81a0e6ff20ca30955  gdb/testsuite/gdb.arch/i386-avx512.exp
+5e2c205b5364e88be8418ebf0bbdae76  gdb/testsuite/gdb.arch/i386-avx512.exp
 834c43e0d9d8c88504b042b05b6574fc  gdb/testsuite/gdb.arch/gdb1558.exp
 0bd77d903823dc3fa60c7ec371144eeb  gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
 5bd1a794677897dd8f859c62a4515f8f  gdb/testsuite/gdb.arch/i386-float.S
@@ -3350,7 +3350,7 @@ c65852c839b9da53896517ce6dc50a26  gdb/te
 f71854fcfc1aa1781690979902f89e81  gdb/testsuite/lib/fortran.exp
 df8744826ffbabde8c11052b843200cc  gdb/testsuite/lib/objc.exp
 bc6c5f0054eedf0e57837bd9a1db72b0  gdb/testsuite/lib/java.exp
-0c82241ee73568493414ced550a61be2  gdb/testsuite/lib/dwarf.exp
+e597839eab78dc6b88ccd27a1988f48c  gdb/testsuite/lib/dwarf.exp
 cd7d9530f559db3672b2cc2c81031c70  gdb/testsuite/lib/gdb-guile.exp
 d6f33c945aa66b3154f3fd76de6e61f7  gdb/testsuite/lib/cache.exp
 323ed7894a6c80de4e591a79349aaf80  gdb/testsuite/lib/gdb-utils.exp
@@ -3376,7 +3376,7 @@ ba63400ae4571e7f4d0aeb59000c2fee  gdb/te
 fdd1b0ea9cb454d308f3efee2756042d  gdb/testsuite/lib/prelink-support.exp
 4377817504481edf59814f0c53fc7398  gdb/testsuite/lib/opencl.exp
 8b095d6d185b258c160d765659927692  gdb/testsuite/lib/perftest.exp
-7854d438b40a32ab12044181a3c8bc98  gdb/testsuite/lib/gdb.exp
+007c73505de52d4a33bfce96623ba4b5  gdb/testsuite/lib/gdb.exp
 58b04b7bc347cc9d1b4474da7a2ac1d0  gdb/testsuite/lib/compiler.cc
 c3d2b933fd6eca1da5c3707b6d13bb9b  gdb/testsuite/lib/opencl_hostapp.c
 2d73515d4ee5352309d3f8f3f5ffb2da  gdb/testsuite/lib/append_gdb_boards_dir.exp
@@ -3420,7 +3420,7 @@ b86643938b239edd6675488a31fc5022  gdb/te
 6328bbcaf7daff1abd2b95bd9d4c7c97  gdb/testsuite/gdb.trace/collection.c
 1aa1c5f59261bc00ea9e151688c3e648  gdb/testsuite/gdb.trace/stap-trace.exp
 1c1eb6c95aff4bce287bccb475492026  gdb/testsuite/gdb.trace/ftrace.c
-795657df524bb5ae164a6a9f99170e66  gdb/testsuite/gdb.trace/entry-values.exp
+fa80a11098baab494adda20c87e0d424  gdb/testsuite/gdb.trace/entry-values.exp
 c4ee133125ff2a683ba742f6754f7632  gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
 cf8c02c60f12bf08caebe52482834fca  gdb/testsuite/gdb.trace/pending.exp
 c9f0940a89f619ab4224be904714e6da  gdb/testsuite/gdb.trace/actions.exp
@@ -3450,7 +3450,7 @@ ed14c2d47eab580abf701541325f29f5  gdb/te
 b30819241509395ccbc9ba7535350a2b  gdb/testsuite/gdb.trace/unavailable.exp
 b65ca46c0ae4d4637df29b55201f7280  gdb/testsuite/gdb.trace/trace-buffer-size.exp
 2c84c310eabf56020a2c192248aff666  gdb/testsuite/gdb.trace/change-loc.exp
-8d09e1c93dcf41963083c74c7b7539ca  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
+48128dda7bd4a5be27c0f6dbe3ffcac5  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
 791d3edf158fc18da5d21b3c21990967  gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
 be939dbf9099a77bfcdfc1f4f51263f5  gdb/testsuite/gdb.trace/stap-trace.c
 95928ffe38bcb7404f4ee6390669af71  gdb/testsuite/gdb.trace/trace-unavailable.c
@@ -3480,7 +3480,7 @@ a2d113a7f444b497b4564e0ee9ddc899  gdb/te
 a225f3bdf3ee20da9623fd4c54b5454b  gdb/testsuite/aclocal.m4
 fda53dda096c181aeed6c78de55f455a  gdb/testsuite/gdb.threads/clone-new-thread-event.exp
 74fe8139d67c0c776a4a28460b473f30  gdb/testsuite/gdb.threads/tls-var.exp
-480563499463f7eb4b7ecd7664a36def  gdb/testsuite/gdb.threads/siginfo-threads.c
+19562238a9f887dbc7bc5b534b90ced2  gdb/testsuite/gdb.threads/siginfo-threads.c
 3f9f6f799fb3bd445b3a3ba2f3621021  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
 8fc9d226571b25b6807ca9f0b9f46455  gdb/testsuite/gdb.threads/watchpoint-fork-st.c
 c6241caae68157d8edd17288b4b25156  gdb/testsuite/gdb.threads/threxit-hop-specific.c
@@ -3491,9 +3491,11 @@ c6241caae68157d8edd17288b4b25156  gdb/te
 8486b733542a73f24e8ecddcfa4a9bf8  gdb/testsuite/gdb.threads/stepi-random-signal.exp
 67a11520296f385616e94bfff3851dfa  gdb/testsuite/gdb.threads/tls-nodebug.exp
 d46991f7406f74004ef188b9caaa0113  gdb/testsuite/gdb.threads/queue-signal.exp
+3c8510aa38a22fd0fb6ff49b9ec75b02  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
 b2eaf16c97d1360be5630e67364c8ac0  gdb/testsuite/gdb.threads/staticthreads.c
 a3a14e5e913c43611a5ed10ad8f90528  gdb/testsuite/gdb.threads/thread-specific-bp.c
 d46d60fe6d689d0ff3f1d48b7490afb1  gdb/testsuite/gdb.threads/corethreads.c
+c86c7d7e9133e42ea0d6191726e6da75  gdb/testsuite/gdb.threads/non-stop-fair-events.exp
 6f617dd7e9d0114008d484b807926b8d  gdb/testsuite/gdb.threads/watchthreads.c
 eda32e6af468f5a44b33928ca7e418fc  gdb/testsuite/gdb.threads/execl1.c
 f20781676b5b0e91bdc15071d15f529e  gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
@@ -3513,6 +3515,7 @@ aa61e41da21e07191a4ea22e45396c02  gdb/te
 1a377fe717b916723bc3b8f3af1a708e  gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
 cf739afbfbbf18f65edb576a412e20f8  gdb/testsuite/gdb.threads/switch-threads.exp
 233baea9789647aa0314dd83f29fc4c6  gdb/testsuite/gdb.threads/attach-into-signal.exp
+527b6819d4005ef4ac0eecce2030ce53  gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
 ed56e55fc1218e14a8b9c9adb13d0b78  gdb/testsuite/gdb.threads/interrupted-hand-call.exp
 bae9739e5243f71d3ad8444d5a199bac  gdb/testsuite/gdb.threads/pthreads.exp
 7999a0b25dd7c6cc86cf3c1d50b8398c  gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
@@ -3523,7 +3526,7 @@ be913d5ceda9cb28c9c76842a52cf02c  gdb/te
 bda4c60182ddbab25fff0a82761972a6  gdb/testsuite/gdb.threads/watchpoint-fork.exp
 28a761d26bddc7f8d45723ac032630eb  gdb/testsuite/gdb.threads/fork-child-threads.c
 69eea83dad95e8105bf63685711612bb  gdb/testsuite/gdb.threads/tls.exp
-57f7d3ce706f259c003359849c62686b  gdb/testsuite/gdb.threads/ia64-sigill.c
+7d7261d44fa85315449560ee5d3a49f9  gdb/testsuite/gdb.threads/ia64-sigill.c
 99eb146d49bafde510cb7423923e7cd0  gdb/testsuite/gdb.threads/bp_in_thread.c
 fa0b11ae2e271abc145f611cd61bee4c  gdb/testsuite/gdb.threads/thread-find.exp
 81664099c0057d8f2c95009566b0c365  gdb/testsuite/gdb.threads/siginfo-threads.exp
@@ -3541,6 +3544,7 @@ f5dcbc6cdd83881b4cb682363306310a  gdb/te
 1dfd13e46a27fba6aa9543a56bfb917d  gdb/testsuite/gdb.threads/queue-signal.c
 fdb58df3ff3b8a2a1ee05c9899b67b6e  gdb/testsuite/gdb.threads/fork-child-threads.exp
 a9a5fd23056437d34432f5463d98d27e  gdb/testsuite/gdb.threads/break-while-running.exp
+9d999a002cd39659ac56da5e88432f71  gdb/testsuite/gdb.threads/non-stop-fair-events.c
 c90abfcfc3bf23bc1fd1bdae49705979  gdb/testsuite/gdb.threads/pthread_cond_wait.c
 34668a4dd3f8f62bc9317c4c33d6a722  gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
 0346865c86acdd457644635f0456bca1  gdb/testsuite/gdb.threads/current-lwp-dead.exp
@@ -3562,7 +3566,7 @@ e2122a01fbe4609d4c440777f53c4df1  gdb/te
 0ef1bee3f201385a41bdfea712ffa5c6  gdb/testsuite/gdb.threads/thread-specific-bp.exp
 20fb89ef3d79442a74ce3c80f8b4e2a8  gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
 f1c529ba70eb642b2189491e452f006d  gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
-e43cc5c2afe03779df49c612f3ebdc98  gdb/testsuite/gdb.threads/watchthreads-reorder.c
+ce18e8166dae762b40ba4b6f9bb7c113  gdb/testsuite/gdb.threads/watchthreads-reorder.c
 2a1e20533170ef3947039a86fafbadd6  gdb/testsuite/gdb.threads/tls-var.c
 001ff3292c9cab0d7bbd13b409fbf61d  gdb/testsuite/gdb.threads/schedlock.exp
 1e1c65f08ff2e2e7d5ba95e2788d4250  gdb/testsuite/gdb.threads/pthreads.c
@@ -3573,10 +3577,10 @@ dcb628a4929aa9d6c58c06f70951b349  gdb/te
 9ac04cf29f19bc362dabc1ae289291cf  gdb/testsuite/gdb.threads/thread_check.exp
 bf90cd3d89504b70c51727570eabc2ae  gdb/testsuite/gdb.threads/watchthreads2.exp
 34d7357618b291ddbf72c725eb1af0c6  gdb/testsuite/gdb.threads/kill.c
-3b223abaa10468ccc6826fba6cc6484a  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
+abcb223a22e788a09e29542e63f4f27a  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
 6e73f8a5593a9b8d7bcfedf9148f7447  gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
 b58d0f333f8e1c21a851ec19bf5997cd  gdb/testsuite/gdb.threads/switch-threads.c
-fc2f7f9ed575c6e0508555e7de8efb2a  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
+a60d2516f9d50f6faf0a50a0a8b5ad0a  gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
 d2aa0b4de628920e4d2d101e261f279d  gdb/testsuite/gdb.threads/sigstep-threads.exp
 328974bdd68396621905ad8c78050f8e  gdb/testsuite/gdb.threads/execl.exp
 ffcda95656fdd12238faf6a32570d9ca  gdb/testsuite/gdb.threads/thread-execl.c
@@ -3602,7 +3606,7 @@ f47660fb50e45ac82dfde96c8b208d53  gdb/te
 bbb0aac24b06f2fb7b477d646d96b85e  gdb/testsuite/gdb.threads/watchthreads-reorder.exp
 7b036c4f18c35accb2c94363c820ed9d  gdb/testsuite/gdb.threads/tls2.c
 b93e03963bd612e4b592e67036888814  gdb/testsuite/gdb.threads/fork-thread-pending.c
-6221765f6b0cdd0bb831c1d79da3ca59  gdb/testsuite/gdb.threads/fork-thread-pending.exp
+3e3f9f2e059e51e1eda9ff8364711283  gdb/testsuite/gdb.threads/fork-thread-pending.exp
 cfeb5e6bf2b563d3b141ee8e9b0f2d52  gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
 53568d503835ed659ccf1bf48399006f  gdb/testsuite/gdb.threads/thread-specific.c
 e39a7a0e944ae44c5ebfd13aab4ab79c  gdb/testsuite/gdb.threads/bp_in_thread.exp
@@ -3646,7 +3650,7 @@ b047847a5183b4462b5b135cfd964543  gdb/te
 4127afeb79b2a2bff6c65f128ebd5969  gdb/testsuite/gdb.go/integers.exp
 ea5ff936bcbd68cbc91cb8771230db91  gdb/testsuite/gdb.go/strings.go
 81b7ed6cb92c627d245bd2efc4b953b9  gdb/testsuite/gdb.go/methods.go
-c39af4590adfa13d69dd52954d28d1a5  gdb/testsuite/ChangeLog
+b20c2e14c6175e06ec4c732455813f3d  gdb/testsuite/ChangeLog
 b3f11b21e5921c419a43f93720dedf85  gdb/testsuite/gdb.asm/empty.inc
 37858e142701cb0c2b792e4f739ee3eb  gdb/testsuite/gdb.asm/asm-source.exp
 f1621bbbb2acbec5adef86d7d9549975  gdb/testsuite/gdb.asm/bfin.inc
@@ -4283,43 +4287,43 @@ f5615bbb876f5d6b8ff495ea635f223d  gdb/f-
 e88f32d160934e36fa7d803d483a1e2e  gdb/gdb_curses.h
 1bbdb3e7ea9ca53f9a8cf1a548dca9f5  gdb/jv-valprint.c
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-5a6e55375f2c99cbeb051f34303d66b6  gdb/doc/gdb.info-3
-80a28fd8fb8979527696ccc3d5fc4b93  gdb/doc/gdb.info-4
+a480c50c44c2cc81142e0976526f6940  gdb/doc/gdb.info-3
+680d1ca748484f22033f926e3b7d7d9f  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 be5469929c58735017a3a1e083554ac7  gdb/doc/Makefile.in
-cd304f5ee61371048eb142e78faf27ba  gdb/doc/gdb.info-7
+727c1c908469386df7fb91ae3530e061  gdb/doc/gdb.info-7
 65ee16c0a68d8954d5892092576beb66  gdb/doc/observer.texi
-ef5b043f5ea2bf1a07632592658e4a80  gdb/doc/gdbserver.1
+ced35586cc284351bea5ec64e8a85354  gdb/doc/gdbserver.1
 669fb3191fafb1ca7da855243682fe4e  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 ab34a4a36fd27cddd3c7838273cfb1dd  gdb/doc/stabs.info
-080bdeff1e90d510738a645523a99af8  gdb/doc/gdb.info-5
-419413a580911035cbd3a1c7c487e5d2  gdb/doc/gdb.info-8
+9a625d7b1d51232b2e8de0cb88bcf4b3  gdb/doc/gdb.info-5
+90751331216f6ee30435306539c9e1b2  gdb/doc/gdb.info-8
 4fb6b0bb12bb47f2079a5e38f7dcdcf7  gdb/doc/agentexpr.texi
-286f0c496130946b9fd5b9b0b45319bd  gdb/doc/gdb.info-1
+90f34be1fec6d1f01c1ff86e5695c2a7  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-c657c9d68aeff823c77af29c8385e42c  gdb/doc/gdb.info-6
-97e3b509a1fe2c492364fd51c648c813  gdb/doc/gdb.texinfo
+82a7279e275bed294814e12b46c0f0c3  gdb/doc/gdb.info-6
+617ff61537614374081e71cf136ed6ee  gdb/doc/gdb.texinfo
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 04c82b1da7e894a6555868e4f86225af  gdb/doc/filter-for-doxygen
 938187ce9976cbeb134b49335770152c  gdb/doc/Doxyfile-gdb-api.in
 f828e05ce4faab3d297f32d540f77c99  gdb/doc/annotate.info
-e968e369095d5c43dfbc9ae24636e52c  gdb/doc/gdb.info-2
+a1f9f8115434c870bb00d46815fd4775  gdb/doc/gdb.info-2
 df443225fa3e5719ca7e6925a7e633e0  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-a5886dd5e08ea640109b14bc36615cda  gdb/doc/gdb.info
+6817d2c528ad269719ac89edb0bf565d  gdb/doc/gdb.info
 51f928aef51288aa002575df7e06ff0d  gdb/doc/python.texi
 fa1abec9272120122bf7638320e90d4c  gdb/doc/stabs.texinfo
-62019f8cd981f725b6748f02be1bc2c3  gdb/doc/ChangeLog
-a06f23a09375ae05cfb4c55e550cf0c7  gdb/doc/gdb.1
-cdb7f10284556b48533f0c9bfd4d8b66  gdb/doc/gcore.1
+79b3164c0be1f0b42183bf1d8a5a8591  gdb/doc/ChangeLog
+c36fb81f63d7f67f564bb453a531454f  gdb/doc/gdb.1
+25943aa0e690188292c10c7c75af3b83  gdb/doc/gcore.1
 d39233c86ed6a6dc9e853ae6a11fe03e  gdb/doc/stack_frame.pdf
 2daa53916456ce35b6806c2883623b89  gdb/doc/Doxyfile-base.in
 7e8f20fd3b739803f4bd3991d35a4a1f  gdb/doc/all-cfg.texi
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
-c6ac247c31a6ceace86b6f4c25f816f2  gdb/doc/gdbinit.5
+4426caf74a587fdf1961caa2ec0608b2  gdb/doc/gdbinit.5
 d606e873666ae0bc7bc7c84d6c9c2332  gdb/doc/Doxyfile-gdb-xref.in
 705bf0b3fb65b3f7e3db4cc5d9ae8eba  gdb/doc/annotate.texinfo
 79278fc2f5486809779a9a8f8883d401  gdb/doc/doxy-index.in
@@ -4698,12 +4702,12 @@ a042a48e50b3d554487841a49b7bc555  gdb/in
 bcd0841ee006d202302f24f86c36b5ed  gdb/solib-target.c
 a667d6f75f8b3a39dc37cedfcab2572d  gdb/tilegx-tdep.c
 39ea2c70489bb412e91c1139c460c77e  gdb/c-lang.h
-ba353aaea13befefa3a862baa8182983  gdb/breakpoint.c
+2970e41fc0b9036e25b2d9f46a497cd9  gdb/breakpoint.c
 a5375552c201d6283297ee5ceee2d29c  gdb/block.h
 e4270f829487caf7e0363d59fe648aa1  gdb/ax-gdb.c
 9973ba0ba493c10c7af5b0747cc555ac  gdb/prologue-value.h
 212b533fc392c226bf85a7da14c491e8  gdb/auto-load.h
-1e3a0839a060b3b7cb91d8bc87040c87  gdb/maint.c
+3f29aebc9c8e357bc483167a7febf1fa  gdb/maint.c
 95ee3b7c74a69fa46d37b026d1154f41  gdb/moxie-tdep.c
 e1b6f40d3a1d4fdb4f4c6ba9dd2950e4  gdb/gdbtypes.c
 60e5b1e4ed70484589f0fbdc4f6b9c77  gdb/somread.c
@@ -4711,7 +4715,7 @@ c1eb7fb2ea87e83a1665d760d2b90f78  gdb/el
 03f96dc98d4fbab2f8d08be54e326791  gdb/aarch64-linux-nat.c
 66b7796d9700dabc7ca50604d490974e  gdb/gdb_obstack.c
 a47ede25abd506cb43c1b892edb2ced7  gdb/ppcobsd-tdep.c
-f3b9768de1af84b880621cc6293adc22  gdb/inflow.c
+cea36e0e51134793650ffd25a1e94d17  gdb/inflow.c
 465fba92e1b4e6d97884db998c819519  gdb/spu-linux-nat.c
 2771e20d49b8ed4dddc046dcf17e98d4  gdb/bfin-tdep.c
 173416e16e86c4471fdee53c0d3fe016  gdb/linux-tdep.h
@@ -4737,7 +4741,7 @@ fd0773500e7fa56d83aadfc1a690293b  gdb/i3
 eefb7c041e4942fc59d89188c755a3ce  gdb/nios2-tdep.h
 c7d7771c76791e6a20c3c0f9602f07b9  gdb/i386-linux-tdep.c
 b527f6a7978141a7b6c8325060bca0d1  gdb/mips-linux-tdep.c
-9800873d70acb758197ec7a691165772  gdb/inf-ptrace.c
+e02c6382ff8af6c770152695fa68cd42  gdb/inf-ptrace.c
 9e4c4d818c2248486187544036f210ed  gdb/amd64-linux-nat.c
 87b420af8a64a76ebd096982b224e807  gdb/dbug-rom.c
 5c503fa0159185c5ac7a4a1ab9dcb6b9  gdb/osdata.c
@@ -4781,7 +4785,7 @@ e5c081bec329720b4c0d37fb1bf8adae  gdb/p-
 f1679b5d9950d66febb8259748700963  gdb/std-regs.c
 9da9e540b1c6970695a3161272737803  gdb/go-lang.h
 23e51b25e50614cfba06a52e405e2243  gdb/i386-windows-nat.c
-291393e6772931e935fa75f3beb52f5e  gdb/po/gdb.pot
+fd49e51c1a26c8c3fbfd204109b1e0a8  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
 8a1de3f60e39741f918cc93c69d9fe76  gdb/ada-lang.c
 5e0c6b053fd9575dde3084e69835d9c3  gdb/dcache.h
@@ -4807,7 +4811,7 @@ b21eb0affa9c0fa159d8dc3a1483410e  gdb/jv
 32bb803ab1e68860f1402dbe7e2cb0f5  gdb/nbsd-nat.h
 83df4734061e07b644f77632819578cf  gdb/mipsread.c
 f5c872d4805a7ac039b4dfc840f4bb8a  gdb/amd64-darwin-tdep.c
-81be16dcb426cffbb585eee1e37e19ec  gdb/ChangeLog
+8d8194e25677fc2639e89d5aabb4f85c  gdb/ChangeLog
 5a1dbe4837b41ee2b9cc7a35e0d20a61  gdb/go-typeprint.c
 c6de4736a691dfc690f55e7b69880511  gdb/score-tdep.c
 5a44fd4377f0804008a3697e72efbfe3  gdb/xml-support.h
@@ -4855,7 +4859,7 @@ afc3c5800376f8693dd411cba7aa5f77  gdb/bu
 108d0bb36107d759fac662685e23e5fc  gdb/m88k-tdep.h
 c8b609c20e1d71a726907777e02e728c  gdb/target-descriptions.h
 26d1d5b29967e68903ae1310be36567f  gdb/corefile.c
-45d63fbffb8282cdfd76ae24ace3883b  gdb/x86-linux-nat.c
+7274e131307bc43a731c80c6a9324d48  gdb/x86-linux-nat.c
 747e62f8cca9b50ef0e4c19e046d23fa  gdb/macrotab.h
 d821f4d086d77a932d6e8a893ac883a6  gdb/progspace.h
 44fa14e15b931dc63422873dc3a5aae1  gdb/regformats/nios2-linux.dat
@@ -4942,7 +4946,7 @@ b09b0ee5da44df728eb552f6bf6ed138  gdb/re
 68c2f73b8122d4023738fe69876efc56  gdb/regformats/s390-linux64v2.dat
 7d521124886bd1a212ec6ac542743020  gdb/regformats/s390x-linux64.dat
 40ba412a0b4d6cebeef61c90e6f6629d  gdb/regformats/s390-linux64.dat
-6066f381c00b0810cff8a211331feae3  gdb/utils.h
+7c410a9041a4d037e6ba273b8fbb0e10  gdb/utils.h
 41afe1fe7888994aed3ee673a351cfec  gdb/sparc-sol2-tdep.c
 641c7d206306bf5cb4994067304bdc49  gdb/procfs.c
 ede287146f6265e902dae6fca0624867  gdb/solib-svr4.h
@@ -4961,7 +4965,7 @@ c08ec703ea0b3fe3e35ba79d06258479  gdb/gu
 7cc31bdfe33cf475aaebd02027075c40  gdb/guile/scm-objfile.c
 11a200e4eb992e43132852346403781c  gdb/guile/scm-frame.c
 520658d110ac7bd41fbd26e1ac81efa0  gdb/guile/README
-4ce3b1bca3c8954877ac1538eae3c611  gdb/guile/scm-type.c
+35fba33425e78690452f33b2535495de  gdb/guile/scm-type.c
 dafa53b84833ec1d9bc29289f1521085  gdb/guile/scm-exception.c
 87e7c89be3bff83c18d629aca2543d6c  gdb/guile/scm-safe-call.c
 1ab57d4df701a863f203733340b93c3e  gdb/guile/scm-gsmob.c
@@ -5025,8 +5029,8 @@ b0cea923664c3efb97b385d1c2f29f37  gdb/gd
 213c42e9306ef931e62c6658c513df21  gdb/gdbserver/hostio-errno.c
 a8b318ada418e233c4996535f60b132c  gdb/gdbserver/dll.h
 b59c8001ee1dcc7cd60f69b0b264117f  gdb/gdbserver/nto-x86-low.c
-20ee6ae9df3afb25a60398b8a4ad6425  gdb/gdbserver/target.h
-236d4ccab4fcf9c5c2bd90807ff0a796  gdb/gdbserver/linux-low.h
+49ff4809d1e867e3ee28bf7b801fd539  gdb/gdbserver/target.h
+d32caf02d4271e54ecc8fb25dbad9ff7  gdb/gdbserver/linux-low.h
 fd2a628fae668ef78fe489121037c9da  gdb/gdbserver/linux-ia64-low.c
 87906ff2ed562448a80347fb1c3c36db  gdb/gdbserver/configure.srv
 8cd58f9641e3fcbc0585d13a4b4704f5  gdb/gdbserver/linux-arm-low.c
@@ -5035,7 +5039,7 @@ f63179ed369e57afcb2ac34d9197c7ef  gdb/gd
 eaa996efd99c282244af925502b37a58  gdb/gdbserver/event-loop.h
 ceaf88dcc1caaf217a8038914b1ef92c  gdb/gdbserver/ax.h
 e48e5b8a013a7c6db280c340e87aa011  gdb/gdbserver/linux-m68k-low.c
-99ac321e1394fc26558b9db9ba2e6a6c  gdb/gdbserver/mem-break.h
+9f76512eec133928b94edff24575a86e  gdb/gdbserver/mem-break.h
 cdd30823b0fef194dc2aa026633ce27c  gdb/gdbserver/wincecompat.c
 4e78b5fe1cc314a3958bfdf49b6b8c6b  gdb/gdbserver/utils.c
 9b657bb71bee2f5c9bff184f16dfcb61  gdb/gdbserver/win32-low.c
@@ -5044,9 +5048,9 @@ fe81eb6c2c62a0d201997976c23e183e  gdb/gd
 f87acebf2918d9b768ca4c7ac8e926f2  gdb/gdbserver/config.in
 56625f046b1135ad0a2c1d58c86600eb  gdb/gdbserver/configure.ac
 791b58ddf159b59c7d9375e2c2f00a07  gdb/gdbserver/README
-682500b1ed8280f526b4a12d96fb8f18  gdb/gdbserver/mem-break.c
+ac2b6611473c54f627f2fe0cab6e7a9e  gdb/gdbserver/mem-break.c
 cba9f6305efbbdcd68dbc1f3c96cfdec  gdb/gdbserver/linux-mips-low.c
-f82befa6b711a4f2e04925f6591bfc93  gdb/gdbserver/tracepoint.c
+5978211e1858547670c3e2f0dd046e78  gdb/gdbserver/tracepoint.c
 0b926f70628d4332584c50b3a755c4ff  gdb/gdbserver/nto-low.h
 872b80e9ded8aad2a6df089995db53fb  gdb/gdbserver/win32-i386-low.c
 7fed2a00ce72c0ae014199eda5e73525  gdb/gdbserver/linux-nios2-low.c
@@ -5068,7 +5072,7 @@ c443e2d12144a4acd18f0399e07c85ec  gdb/gd
 016dd05060a0b22d580a9cfc641313fa  gdb/gdbserver/remote-utils.c
 37d3082b46ccfe735532c0cef764cbf3  gdb/gdbserver/hostio.h
 47c9750ef3a5a00bf319d98c529a5f95  gdb/gdbserver/notif.h
-d78fa568d357934dcd8a60bce44e5ff5  gdb/gdbserver/linux-x86-low.c
+96b8c24ddd2eccf6f0f7a153af488aaa  gdb/gdbserver/linux-x86-low.c
 44d02f879beb90d030847e4f7bd1bec4  gdb/gdbserver/server.c
 62d1e2f727e137a356f164355bfab955  gdb/gdbserver/dll.c
 dbb86a089c3f5f2096ef6e24d721ffec  gdb/gdbserver/debug.h
@@ -5081,11 +5085,11 @@ e43517c11a200defbe515b283c262320  gdb/gd
 18e5d2afcc8073f657d69be61acb20c5  gdb/gdbserver/notif.c
 15e9f8b9afe707a571ef09a62bbddf35  gdb/gdbserver/linux-cris-low.c
 7f017910fc10864faa3886a248c0de44  gdb/gdbserver/aclocal.m4
-ca21dea4c1d6af6d84bf7304831d2613  gdb/gdbserver/thread-db.c
+2b9f6c6d21c30849559cd27951e51f89  gdb/gdbserver/thread-db.c
 a713e728e699f380772910b1e8911321  gdb/gdbserver/linux-tile-low.c
-ab27ffaf3c0cfce67ea0077b49cf90da  gdb/gdbserver/ChangeLog
+97d1af746febda3abe3c1a61df5adf45  gdb/gdbserver/ChangeLog
 bf06506177d8b8accdf07efc010fd1f3  gdb/gdbserver/linux-ppc-low.c
-6e8457454b62670d91765b3c3d645e78  gdb/gdbserver/linux-low.c
+99cebb5fd7ccfe880091d845541081b0  gdb/gdbserver/linux-low.c
 31e072b4e9e5984e19662acc96a07f2e  gdb/gdbserver/proc-service.list
 0541491bd9eded900fc97f8f6dd0ef3f  gdb/gdbserver/linux-s390-low.c
 29f787a14729e764f56e26257e1bb933  gdb/gdbserver/utils.h
@@ -5093,7 +5097,7 @@ fdc3ccacba0159641db50f48b735cb95  gdb/gd
 6dee8461fdf864549641a196efe9a13b  gdb/gdbserver/linux-sparc-low.c
 1422c378f2e469a5c8c721a5643443d6  gdb/gdbserver/linux-xtensa-low.c
 1ce6db78a8a6ed56fa787b2cf2d0d08e  gdb/gdbserver/wincecompat.h
-91a1e9c472ee8f29321957f133e78a5d  gdb/gdbserver/i387-fp.c
+71e0918c1220da9ff838d131a3d6ef3c  gdb/gdbserver/i387-fp.c
 97219a5401ecf6ba890375f87bbec9f9  gdb/gdbserver/tdesc.h
 e6dfc89cc0045a5d447281df824fd6d1  gdb/gdbserver/debug.c
 24979d1b8060a1fc3b00a17b188cecd5  gdb/gdbserver/gdbthread.h
@@ -5116,7 +5120,7 @@ ef7f67e5720cf7b193349f8687243947  gdb/st
 8edc014e1b5928dd9761408fa7df0d64  gdb/stubs/sparc-stub.c
 ffc93e69a8813484cec63da022b68375  gdb/stubs/sh-stub.c
 c68917f126137f1f01b8fce213b8bed0  gdb/buildsym.c
-e896a2bb78ffdb09c3d2b5ef75c85ac8  gdb/breakpoint.h
+3d053fa1f3f0ef530bc94d6e7399c026  gdb/breakpoint.h
 df5b61f9fe772c3cb5e1a39d79cceb8f  gdb/objfiles.c
 703bf2a0757f3c8b4a454a0e278aee0e  gdb/debug.c
 9688ad1dae08e48e11479e5199bf97f0  gdb/sol2-tdep.h
@@ -5140,10 +5144,10 @@ c181758754cd0b8d7733fa82d4aaba3a  gdb/go
 06d492ab5c9dbaa82b38193b83bc2e44  gdb/m88kbsd-nat.c
 ca9158e7ede27a090a3228b2965721fb  gdb/glibc-tdep.h
 9ec89fc9f02b1bcf2e0cbf717337c91a  gdb/macroexp.h
-21412d7c6cee0d66f1db6c0bac8828c9  gdb/linux-nat.c
+4e561c5317f6ed3cc9cfc53293100794  gdb/linux-nat.c
 232fae6c14bb330d684a735fbd258bdf  gdb/ppcfbsd-tdep.c
 72c2a6c8c1d784dedb9da73e84229cab  gdb/sh-tdep.h
-fdff848ebe9cb9a3a06617699a60e22f  gdb/top.h
+be04f4bf35ddca6beee6d0ad2b02bb72  gdb/top.h
 4cf92f060caa4b507788fd93345f5036  gdb/xml-syscall.h
 b6d84aeab0e43717df6dd2cd1ac6dd59  gdb/xtensa-linux-nat.c
 1f6b545be0b6822eca215d0b5f1edfc2  gdb/exc_request.defs
@@ -5317,7 +5321,7 @@ a057e4f64890d51f0ceb872c0065ef86  gdb/gn
 9d709b743313939da551a1890e237d53  gdb/alpha-mdebug-tdep.c
 098806bc336c914a1646ab5f628e9fb6  gdb/symmisc.c
 847a175f0c0ea90ae7e26a8dee6b0de9  gdb/compile/compile-loc2c.c
-8cb134a832ef32d756f5551025fb3602  gdb/compile/compile.c
+17ca583b65f3662faf788167f18c7f8a  gdb/compile/compile.c
 7f386726e3a7d1147912a79ef26f0107  gdb/compile/compile.h
 9e86dab14de5021921910bc306ff4f05  gdb/compile/compile-c-symbols.c
 cdc069d810af4b919cffe24cb8b462e8  gdb/compile/compile-object-run.h
@@ -5343,10 +5347,10 @@ fc641b4ed94a6efbaae715afb43a0f50  gdb/ad
 66d2bc33649d32b212411534cd54a24e  gdb/amd64-tdep.h
 7314bbf0c39fabbc0a90672629284a23  gdb/xstormy16-tdep.c
 1231aa708c9d55d8827fda59e4e3f429  gdb/mipsnbsd-tdep.c
-3dee5ef388b5e415e242155ede680da6  gdb/stabsread.c
+27bc3e3eb07ce518067c21dbfba616ca  gdb/stabsread.c
 6d50eed7e8226ea7969aab7350927ebe  gdb/MAINTAINERS
 a5e2898fbf48692432b49731fba75ee4  gdb/remote-mips.c
-8027cf74e28ae0f1b8d88f5f8320fade  gdb/terminal.h
+88285de0a74d09a354e4c7c47df67eec  gdb/terminal.h
 46bd067f6f851062484149eebabdf4b1  gdb/mips64obsd-tdep.c
 2e5fff8b334a7cad7ce8bb9c7ea12791  gdb/filesystem.h
 f93423c136781aa892bedf09e8775d4a  gdb/armbsd-tdep.c
@@ -5427,7 +5431,7 @@ affdfcd92bab65bf12f21ee4468fbeb6  includ
 3f42f606172218e3289ae9b6d408cf10  include/mach-o/external.h
 ea132c5d5005c5f73434acf19dd51cca  include/dwarf2.h
 e1ea1a669a924a0d05a7f118bd5b4f71  include/oasys.h
-9046b630a92456dfba6e13cf7941ff6e  include/libiberty.h
+4ca9cfe058b952b37564ae7b1c2a979c  include/libiberty.h
 f94077edae0f80bc193e126a678b4c07  include/ansidecl.h
 462e78bc7446a3644efa006b322e0cc8  include/longlong.h
 8823a2b4676fef221902b03ddffff179  include/xtensa-config.h
@@ -5438,7 +5442,7 @@ b82f0916cb80de602f7c947b25850b4d  includ
 49952fda1e759e5aa659f8f78d7e0ba0  include/coff/sym.h
 ceac5570fce2c8c2e20056b30d39364e  include/coff/arm.h
 fdca40bdfd1cddf720bbbfcb6e76dc40  include/coff/aux-coff.h
-83168cf9e331966bc8a025444197b1bc  include/coff/internal.h
+1b49e2334558f6070a8c7b764c643629  include/coff/internal.h
 593962175d4ca4386cbbb87fb4fe5e09  include/coff/ChangeLog-9103
 03a82a03bc1a7670093195b9f5a31eb0  include/coff/alpha.h
 b03224bd5b3bc23c7371d9edacb94630  include/coff/powerpc.h
@@ -5458,7 +5462,7 @@ d8aa5948e156c7580b31105b5f7d6730  includ
 ed0de68be75d00311ab3b04a6966ae3b  include/coff/we32k.h
 933ab97cd509b545d810a5bda0604e97  include/coff/z80.h
 9548a06f2a9fb6be7f272df74ead65b7  include/coff/symconst.h
-02a401ed0590d7fac07dde9ccd5683b3  include/coff/ChangeLog
+4d7646c4b5475559014c76936e6fdeba  include/coff/ChangeLog
 2badc0655a7cdb70ee7225e942c3048f  include/coff/i960.h
 94d1cfd185d86d373ac0f51c2a01a99f  include/coff/tic54x.h
 32a6c09545562bb4a3a57132b7c3bf7d  include/coff/tic80.h
@@ -5610,7 +5614,7 @@ db6c615f6551d711de0e45a6d4b150e7  includ
 a55fe30391416a1df2748c75fb160001  include/ieee.h
 a6637d72befe40863b35e430e7ca4ed3  include/hashtab.h
 960419210b1dffddd4335ba3e1e55775  include/gcc-interface.h
-cce187fd952487fe5b96c2ceb86af9c3  include/ChangeLog
+a40af61858a05c03ed2c328d623a7afa  include/ChangeLog
 b4d4b36620f8b1be486f46051f3b45c3  include/dis-asm.h
 cd07ff147c5ae622eb623d7a546aace7  include/splay-tree.h
 ffda4ddb63c87f93cfea327f97340233  include/filenames.h
@@ -5635,7 +5639,7 @@ d24561446f32268f77725a4fd01929bf  includ
 d226ff9105af0066acd0f8fce7f049ce  include/elf/lm32.h
 178ae114985d9edeb802d5db40e15362  include/elf/hppa.h
 eadae23950d772cdfb3aa4bca7db6292  include/elf/ppc64.h
-42f1489cf4aa788c92f9773bc4311e00  include/elf/common.h
+a0c00cbba6dd6caf6613a17208984db2  include/elf/common.h
 cb39fcc3b23b529e1c910da2cfe40e9a  include/elf/sh.h
 a1f87acecf0bf30ae7436e076153bc20  include/elf/mmix.h
 bbde24c29533c1f96ee539f18df6d552  include/elf/cris.h
@@ -5681,7 +5685,7 @@ e56febe236eb05ecc039ba2eab2eb03c  includ
 07c88634624f215d47ed7b1a472920f2  include/elf/spu.h
 e6ef0e02808e329abc03c2fd1644d8f9  include/elf/crx.h
 4f59ec98bf65ae537a10835da92a3266  include/elf/frv.h
-7273d8cf3f9a0a8891bd2d9aa00423cc  include/elf/ChangeLog
+6cf16d91679ec16b96e314c3e6ee2be0  include/elf/ChangeLog
 6abfcc8379bd0122c8c79b8934f955b6  include/elf/xstormy16.h
 89c0a896e4cc7eacf2f6c1f3f8524317  include/elf/moxie.h
 c0637a647e68d182e8804f5ca18fd06d  include/elf/dlx.h
@@ -5843,7 +5847,7 @@ c040382ca9cb3f01cb0d4d2f9b97a1aa  libdec
 044204f5b4bcac5eae2face0602129ae  libiberty/config/mh-fbsd21
 38e76da568ab25260754fdb9d5080513  libiberty/config/mh-windows
 7b65854f594c84e80295173de277b3dc  libiberty/config/mh-cxux7
-00a3bf9cf2e56414df16e0506c9ef432  libiberty/vasprintf.c
+3dbcc57740fe0d0fcf5e228b7b63d7e3  libiberty/vasprintf.c
 b60a58ab1847330a24da3f8e459cf9c3  libiberty/snprintf.c
 ef31ef103e276b9741c453bba5660e20  libiberty/cp-demangle.h
 54f1c2e59472dd1bf57f3bdaa0fcffc0  libiberty/pex-win32.c
@@ -5851,7 +5855,7 @@ bac20c1a198662917e6bc775ad9bd0cf  libibe
 13cce636dd9882e42c9fc5d607351f4f  libiberty/strchr.c
 aa0f79d836563e6a0cd92ab678b07aaf  libiberty/fnmatch.c
 fd1435a5be24d2ed84909540998dd5d7  libiberty/strnlen.c
-943fe0645212d2805fd69bb8b54d56fe  libiberty/Makefile.in
+88d7a06b638cf8f45b3e776983f10524  libiberty/Makefile.in
 28af0a1bf222ed2a5a87d9e170ef4a46  libiberty/vprintf.c
 42d0a0ea70e0c85cf11b7475aaab0674  libiberty/md5.c
 26196a9a92fae743a06d65f0e081084b  libiberty/strtoul.c
@@ -5868,7 +5872,7 @@ c44adc5ac09bdc782a8e13086ffa9367  libibe
 e2f3721273c7ef1ab0194aad78ffa3aa  libiberty/strstr.c
 8d0c35fe401ee57dcc296fa2d1c8ab3e  libiberty/config.in
 9c22926d0b260822786460b98e517ad8  libiberty/waitpid.c
-de82fb44a36b5b8a812c93a6c44523ae  libiberty/configure.ac
+2c1d3c34eee37256659af037eb5becf4  libiberty/configure.ac
 c68dbf7834af4281ebd84caa3fd54680  libiberty/README
 1857cc8f5d7af67cdf0b5d692436faed  libiberty/simple-object-common.h
 0c2635175b975823b40980974dfc2110  libiberty/ffs.c
@@ -5878,7 +5882,7 @@ c6e7ef53b4ff115a136d917511222656  libibe
 0c70ad1e35bb090b52ed593865025741  libiberty/gettimeofday.c
 dc973aeb02b4545e42f179263612a4d6  libiberty/vfprintf.c
 9e1bb6fe95ebb6415672ddf1da29ec65  libiberty/strverscmp.c
-03959405a21b44c0105782d1353287fe  libiberty/functions.texi
+9be89cb7bdee0615649cce4f2c1aac96  libiberty/functions.texi
 80367d734a974bd32e9ebc370dedd2e7  libiberty/makefile.vms
 8b8ae14c1fbedeb88355f09bc7a7ecfc  libiberty/gather-docs
 af9bee5d1912e623defe1a7ee0ebc296  libiberty/physmem.c
@@ -5928,21 +5932,24 @@ f4ec5461a2fdb28214092b95b39ef186  libibe
 4863a11e04a2021af582edf86f156954  libiberty/simple-object.txh
 76888d9a6ed315d1e12029016d96672e  libiberty/bsearch.c
 a23c6974fb1adf6977b5f5454c430bf0  libiberty/_doprnt.c
+f52b09a2067e515db35e3c3c2d3abd6f  libiberty/vprintf-support.h
 42849d7e9af515fc8f679ba8bbac64ac  libiberty/floatformat.c
 5824bd0f9be9f4fa74bb3bdc7fd9431c  libiberty/configure.com
 5e520e600636a692f52e62dcfb01921c  libiberty/getpwd.c
 e60c2e7c5dcdd19510066c13f1a527d3  libiberty/alloca.c
 bf3090499e23b0497aab1e77e62c2572  libiberty/obstacks.texi
 8fd5519e94ca719c14d0a1fba7d754ee  libiberty/sha1.c
+2f875f0d4ecdb15ca4d5a65ba2d56a93  libiberty/xvasprintf.c
 a45584e0c5c4704a29d050ea21d2357c  libiberty/choose-temp.c
 a916467b91076e631dd8edb7424769c7  libiberty/COPYING.LIB
 6af921a6efcb5621c06ff9b2a8769b01  libiberty/cp-demint.c
 99bfeaeb76e8e725dd8766f33810ccb1  libiberty/memmove.c
 4d5c701a68994be0cd39f165cc56541d  libiberty/make-temp-file.c
 fc1d4c4e0449f24a16a2bd6d08efc882  libiberty/pex-unix.c
+119d38724fe57b62c298e38190319391  libiberty/vprintf-support.c
 284bb7a096480b355b75c337086220a2  libiberty/sigsetmask.c
 eb843075f87d187630f6a3d849b93e64  libiberty/getopt.c
-74363338e220b75abe73d681441f5793  libiberty/configure
+3dc379bc7435d393e86e055bbc8dbe77  libiberty/configure
 32ea90e5aded75d1cbed83fc52123753  libiberty/sort.c
 22b53dd8b990133515799dffbda44c8c  libiberty/aclocal.m4
 cdc140ce93944c5bb2ac62cd3dfd86d6  libiberty/xmalloc.c
@@ -5956,7 +5963,7 @@ dcddb64bab69ca6541ff0add57f1f53c  libibe
 9d0471286f21d9027bbf1b7c67b87856  libiberty/insque.c
 72b25900bd3d95decf7ff7990061ef29  libiberty/xmemdup.c
 c9bd3841bbde6d8ae680f62523f00ab0  libiberty/strtol.c
-ab1e51c540eba7ff01fcaffec3e22843  libiberty/ChangeLog
+b9edd46bcfa768b57a15b270c068e052  libiberty/ChangeLog
 c34119797a13e71989722851c14b711b  libiberty/atexit.c
 d99a00c9588039b63404d27ea147b2a4  libiberty/objalloc.c
 c0c3183427b1df540ead6394d1028040  libiberty/argv.c
@@ -5996,6 +6003,7 @@ a707d2e5daa09d204d4441e8713048ca  libibe
 bfa019f6471996cc88e39536bddfe86a  libiberty/d-demangle.c
 4a0acb9356a52f3bcfd67efa26997b58  libiberty/bzero.c
 a8391a5d7431a4e11f61be41386a3356  libiberty/clock.c
+f314d3357b67a7b2d6883fbe0d420842  libiberty/xasprintf.c
 f7e45d3f23f83574372065030595efa7  libiberty/putenv.c
 9787043a73f2087385e6e9cd20989578  libtool.m4
 247597a3fcc5b5aa8bd923351c59d853  ltgcc.m4
@@ -6555,16 +6563,16 @@ a4d2a65f7753da68658fbb8acf3ae4e3  sim/co
 ac5e22bb879f86d98a9822fccf9e365c  sim/common/hw-instances.c
 1108e67ac8f33b61a3a20289771fa105  sim/common/acinclude.m4
 02203697157e8cf0b3827196494d5920  sim/common/sim-alu.h
-308e9e004b989cc2fb019f54da754667  sim/common/configure
+61dcc324e8762d380c267f3e915fadef  sim/common/configure
 99b3f781c04d017ea1cb2e192ac4cc1e  sim/common/hw-handles.h
-3f5fc2c2a3f548ad0478d08563f46f57  sim/common/aclocal.m4
+c070048b5472f95e6d207e4add0e7717  sim/common/aclocal.m4
 4257aa780d8f9867af02d163b84d5136  sim/common/cgen-par.c
 ced48f460d35e4cd579faecfabe9bb25  sim/common/sim-trace.h
 465c3ed51bf85d9085a4ef19f252d82a  sim/common/sim-n-bits.h
 875b0fb4fa6bacb9860d08104c62b60e  sim/common/sim-config.c
 80973d8cd5f3c5957bf9bb1c783e3cf3  sim/common/sim-hw.h
 d9256b046d082c427a93f0a8eb1773a4  sim/common/cgen-trace.c
-514102ab34a0feb040b6e4f7c9c649e3  sim/common/ChangeLog
+e095c033a88822ac2b64c8d011ea9bc0  sim/common/ChangeLog
 c1dabedfe093921c167eb45571588b50  sim/common/sim-inline.c
 4cd7a71d57a45d0f640dab621d25136e  sim/common/sim-hw.c
 62d403b79f2fd6d5a405694f446d6dbe  sim/common/sim-module.h
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/sim/common/aclocal.m4 ./sim/common/aclocal.m4
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/sim/common/aclocal.m4	2015-01-06 01:48:33.000000000 +0000
+++ ./sim/common/aclocal.m4	2015-01-13 01:48:41.000000000 +0000
@@ -1,8 +1,7 @@
-# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -72,8 +71,8 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+# Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -93,7 +92,7 @@ AC_DEFUN([AM_MAINTAINER_MODE],
        [disable], [m4_define([am_maintainer_other], [enable])],
        [m4_define([am_maintainer_other], [enable])
         m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
   dnl maintainer-mode's default is 'disable' unless 'enable' is passed
   AC_ARG_ENABLE([maintainer-mode],
 [  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
@@ -109,13 +108,13 @@ AC_MSG_CHECKING([whether to enable maint
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
-# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 2
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -124,7 +123,7 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINT
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# --------------------------
+# ---------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/sim/common/ChangeLog ./sim/common/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/sim/common/ChangeLog	2015-01-06 01:48:33.000000000 +0000
+++ ./sim/common/ChangeLog	2015-01-13 01:48:41.000000000 +0000
@@ -1,3 +1,7 @@
+2015-01-07  Joel Brobecker  <brobecker@adacore.com>
+
+	* aclocal.m4, configure: Regenerate using automake 1.11.1.
+
 2014-12-03  Joel Brobecker  <brobecker@adacore.com>
 
 	* sim-io.c (sim_io_stat, sim_io_fstat): Adjust calls to "stat"
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/sim/common/configure ./sim/common/configure
--- /sourceware/snapshot-tmp/gdb/snapshot/current-gdb/update-snapshot/old/gdb-7.8.50.20150106/sim/common/configure	2015-01-06 01:48:33.000000000 +0000
+++ ./sim/common/configure	2015-01-13 01:48:41.000000000 +0000
@@ -6390,7 +6390,7 @@ fi
       case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
 	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
 	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
+	10.[012][,.]*)
 	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
 	10.*)
 	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
@@ -8413,7 +8413,7 @@ _LT_EOF
       if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
 	 && test "$tmp_diet" = no
       then
-	tmp_addflag=
+	tmp_addflag=' $pic_flag'
 	tmp_sharedflag='-shared'
 	case $cc_basename,$host_cpu in
         pgcc*)				# Portland Group C compiler
