diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/bfd/version.h ./bfd/version.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/bfd/version.h	2015-02-17 01:58:27.000000000 +0000
+++ ./bfd/version.h	2015-02-18 01:58:17.000000000 +0000
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20150217
+#define BFD_VERSION_DATE 20150218
 #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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/djunpack.bat ./djunpack.bat
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/djunpack.bat	2015-02-17 02:01:15.000000000 +0000
+++ ./djunpack.bat	2015-02-18 02:00:58.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.90.20150217
-if "%GDBVER%"=="$package-7.8.90.20150217" GoTo EnvOk
+set GDBVER=$package-7.8.90.20150218
+if "%GDBVER%"=="$package-7.8.90.20150218" 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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/ChangeLog ./gdb/ChangeLog
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/ChangeLog	2015-02-17 01:58:28.000000000 +0000
+++ ./gdb/ChangeLog	2015-02-18 01:58:18.000000000 +0000
@@ -1,3 +1,52 @@
+2015-02-17  Pedro Alves  <palves@redhat.com>
+
+	* event-loop.c: Don't declare nor define a queue type for
+	gdb_event_p.
+	(event_queue): Delete.
+	(create_event, create_file_event, gdb_event_xfree)
+	(initialize_event_loop, process_event): Delete.
+	(gdb_do_one_event): Return as soon as one event is handled.
+	(handle_file_event): Change prototype.  Used the passed in
+	file_handler pointer and ready_mask instead of looping over all
+	file handlers.
+	(gdb_wait_for_event): Update the poll/select timeouts before
+	blocking.  Run event handlers directly instead of queueing events.
+	Return as soon as one event is handled.
+	(struct async_event_handler_data): Delete.
+	(invoke_async_event_handler): Delete.
+	(check_async_event_handlers): Change return type to int.  Run
+	event handlers directly instead of queueing events.  Return as
+	soon as one event is handled.
+	(handle_timer_event): Delete.
+	(update_wait_timeout): New function, factored out from
+	poll_timers.
+	(poll_timers): Reimplement.
+	* event-loop.h (initialize_event_loop): Delete declaration.
+	* top.c (gdb_init): Don't call initialize_event_loop.
+
+2015-02-17  Pedro Alves  <palves@redhat.com>
+
+	* event-loop.c (clear_async_event_handler): New function.
+	* event-loop.h (clear_async_event_handler): New declaration.
+	* record-btrace.c (record_btrace_async): New function.
+	(init_record_btrace_ops): Install record_btrace_async.
+	* record-full.c (record_full_async): New function.
+	(record_full_resume): Don't mark the async event source here.
+	(init_record_full_ops): Install record_full_async.
+	(record_full_core_resume): Don't mark the async event source here.
+	(init_record_full_core_ops): Install record_full_async.
+	* remote.c (remote_async): Mark and clear the async stop reply
+	queue event-loop token as appropriate.
+
+2015-02-17  Pedro Alves  <palves@redhat.com>
+
+	* linux-nat.c (linux_child_follow_fork, linux_nat_wait_1): Use
+	target_is_async_p instead of target_can_async.
+	(linux_nat_wait): Use target_is_async_p instead of
+	target_can_async.  Don't enable async here.
+	* remote.c (interrupt_query, remote_wait, putpkt_binary): Use
+	target_is_async_p instead of target_can_async.
+
 2015-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
 	* python/py-framefilter.c (py_print_single_arg, enumerate_locals)
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gcore.1 ./gdb/doc/gcore.1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gcore.1	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gcore.1	2015-02-18 02:00:51.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2015-02-17" "gdb-7.8.90.20150217-cvs" "GNU Development Tools"
+.TH GCORE 1 "2015-02-18" "gdb-7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.1 ./gdb/doc/gdb.1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.1	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.1	2015-02-18 02:00:51.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2015-02-17" "gdb-7.8.90.20150217-cvs" "GNU Development Tools"
+.TH GDB 1 "2015-02-18" "gdb-7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info ./gdb/doc/gdb.info
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-1 ./gdb/doc/gdb.info-1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-1	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-1	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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.90.20150217-cvs.
+   This is the Tenth Edition, for GDB (GDB) Version 7.8.90.20150218-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.90.20150217-cvs, Copyright 1999 Free Software Foundation, Inc...
+     GDB 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-2 ./gdb/doc/gdb.info-2
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-2	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-2	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-3 ./gdb/doc/gdb.info-3
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-3	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-3	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-4 ./gdb/doc/gdb.info-4
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-4	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-4	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-5 ./gdb/doc/gdb.info-5
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-5	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-5	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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.90.20150217-cvs/gdb/gdb.info', and it refers to subordinate
+`gdb-7.8.90.20150218-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.90.20150217-cvs', in the case of version
-7.8.90.20150217-cvs), you can make the Info file by typing:
+source directory (`gdb-7.8.90.20150218-cvs', in the case of version
+7.8.90.20150218-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.90.20150217-cvs/gdb')
+main source directory (for example, to `gdb-7.8.90.20150218-cvs/gdb')
 and type:
 
      make gdb.dvi
@@ -8153,8 +8153,8 @@ and type:
 
    ---------- Footnotes ----------
 
-   (1) In `gdb-7.8.90.20150217-cvs/gdb/refcard.ps' of the version
-7.8.90.20150217-cvs release.
+   (1) In `gdb-7.8.90.20150218-cvs/gdb/refcard.ps' of the version
+7.8.90.20150218-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.90.20150217-cvs distribution is in
-the `gdb-7.8.90.20150217-cvs' directory.  That directory contains:
+   For example, the GDB version 7.8.90.20150218-cvs distribution is in
+the `gdb-7.8.90.20150218-cvs' directory.  That directory contains:
 
-`gdb-7.8.90.20150217-cvs/configure (and supporting files)'
+`gdb-7.8.90.20150218-cvs/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-`gdb-7.8.90.20150217-cvs/gdb'
+`gdb-7.8.90.20150218-cvs/gdb'
      the source specific to GDB itself
 
-`gdb-7.8.90.20150217-cvs/bfd'
+`gdb-7.8.90.20150218-cvs/bfd'
      source for the Binary File Descriptor library
 
-`gdb-7.8.90.20150217-cvs/include'
+`gdb-7.8.90.20150218-cvs/include'
      GNU include files
 
-`gdb-7.8.90.20150217-cvs/libiberty'
+`gdb-7.8.90.20150218-cvs/libiberty'
      source for the `-liberty' free software library
 
-`gdb-7.8.90.20150217-cvs/opcodes'
+`gdb-7.8.90.20150218-cvs/opcodes'
      source for the library of opcode tables and disassemblers
 
-`gdb-7.8.90.20150217-cvs/readline'
+`gdb-7.8.90.20150218-cvs/readline'
      source for the GNU command-line interface
 
-`gdb-7.8.90.20150217-cvs/glob'
+`gdb-7.8.90.20150218-cvs/glob'
      source for the GNU filename pattern-matching subroutine
 
-`gdb-7.8.90.20150217-cvs/mmalloc'
+`gdb-7.8.90.20150218-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.90.20150217-cvs' directory.
+is the `gdb-7.8.90.20150218-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.90.20150217-cvs
+     cd gdb-7.8.90.20150218-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.90.20150217-cvs' source directory for version
-7.8.90.20150217-cvs, `configure' creates configuration files for every
+`gdb-7.8.90.20150218-cvs' source directory for version
+7.8.90.20150218-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.90.20150217-cvs, you can build GDB in a
+   For example, with version 7.8.90.20150218-cvs, you can build GDB in a
 separate directory for a Sun 4 like this:
 
-     cd gdb-7.8.90.20150217-cvs
+     cd gdb-7.8.90.20150218-cvs
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-7.8.90.20150217-cvs/configure sun4
+     ../gdb-7.8.90.20150218-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.90.20150217-cvs/gdb/configure', you are configuring only
+`../gdb-7.8.90.20150218-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.90.20150217-cvs' (or in a separate configured directory
-configured with `--srcdir=DIRNAME/gdb-7.8.90.20150217-cvs'), you will
+as `gdb-7.8.90.20150218-cvs' (or in a separate configured directory
+configured with `--srcdir=DIRNAME/gdb-7.8.90.20150218-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.90.20150217-cvs', for version 7.8.90.20150217-cvs).
+(`gdb-7.8.90.20150218-cvs', for version 7.8.90.20150218-cvs).
 
 
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-6 ./gdb/doc/gdb.info-6
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-6	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-6	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-7 ./gdb/doc/gdb.info-7
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-7	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-7	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-8 ./gdb/doc/gdb.info-8
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdb.info-8	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdb.info-8	2015-02-18 02:00:50.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.90.20150217-cvs.
+Source-Level Debugger' for GDB (GDB) Version 7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdbinit.5 ./gdb/doc/gdbinit.5
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdbinit.5	2015-02-17 02:01:09.000000000 +0000
+++ ./gdb/doc/gdbinit.5	2015-02-18 02:00:51.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2015-02-17" "gdb-7.8.90.20150217-cvs" "GNU Development Tools"
+.TH GDBINIT 5 "2015-02-18" "gdb-7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdbserver.1 ./gdb/doc/gdbserver.1
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/doc/gdbserver.1	2015-02-17 02:01:08.000000000 +0000
+++ ./gdb/doc/gdbserver.1	2015-02-18 02:00:51.000000000 +0000
@@ -124,7 +124,7 @@
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2015-02-17" "gdb-7.8.90.20150217-cvs" "GNU Development Tools"
+.TH GDBSERVER 1 "2015-02-18" "gdb-7.8.90.20150218-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/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/event-loop.c ./gdb/event-loop.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/event-loop.c	2015-02-17 01:58:28.000000000 +0000
+++ ./gdb/event-loop.c	2015-02-18 01:58:18.000000000 +0000
@@ -135,10 +135,6 @@ typedef struct async_event_handler
   }
 async_event_handler;
 
-DECLARE_QUEUE_P(gdb_event_p);
-DEFINE_QUEUE_P(gdb_event_p);
-static QUEUE(gdb_event_p) *event_queue = NULL;
-
 /* Gdb_notifier is just a list of file descriptors gdb is interested in.
    These are the input file descriptor, and the target file
    descriptor.  We have two flavors of the notifier, one for platforms
@@ -246,104 +242,12 @@ async_event_handler_list;
 static int invoke_async_signal_handlers (void);
 static void create_file_handler (int fd, int mask, handler_func *proc,
 				 gdb_client_data client_data);
-static void handle_file_event (event_data data);
-static void check_async_event_handlers (void);
+static int check_async_event_handlers (void);
 static int gdb_wait_for_event (int);
-static void poll_timers (void);
+static int update_wait_timeout (void);
+static int poll_timers (void);
 
 
-/* Create a generic event, to be enqueued in the event queue for
-   processing.  PROC is the procedure associated to the event.  DATA
-   is passed to PROC upon PROC invocation.  */
-
-static gdb_event *
-create_event (event_handler_func proc, event_data data)
-{
-  gdb_event *event;
-
-  event = xmalloc (sizeof (*event));
-  event->proc = proc;
-  event->data = data;
-
-  return event;
-}
-
-/* Create a file event, to be enqueued in the event queue for
-   processing.  The procedure associated to this event is always
-   handle_file_event, which will in turn invoke the one that was
-   associated to FD when it was registered with the event loop.  */
-static gdb_event *
-create_file_event (int fd)
-{
-  event_data data;
-
-  data.integer = fd;
-  return create_event (handle_file_event, data);
-}
-
-
-/* Free EVENT.  */
-
-static void
-gdb_event_xfree (struct gdb_event *event)
-{
-  xfree (event);
-}
-
-/* Initialize the event queue.  */
-
-void
-initialize_event_loop (void)
-{
-  event_queue = QUEUE_alloc (gdb_event_p, gdb_event_xfree);
-}
-
-/* Process one event.
-   The event can be the next one to be serviced in the event queue,
-   or an asynchronous event handler can be invoked in response to
-   the reception of a signal.
-   If an event was processed (either way), 1 is returned otherwise
-   0 is returned.
-   Scan the queue from head to tail, processing therefore the high
-   priority events first, by invoking the associated event handler
-   procedure.  */
-static int
-process_event (void)
-{
-  /* First let's see if there are any asynchronous event handlers that
-     are ready.  These would be the result of invoking any of the
-     signal handlers.  */
-
-  if (invoke_async_signal_handlers ())
-    return 1;
-
-  /* Look in the event queue to find an event that is ready
-     to be processed.  */
-
-  if (!QUEUE_is_empty (gdb_event_p, event_queue))
-    {
-      /* Let's get rid of the event from the event queue.  We need to
-	 do this now because while processing the event, the proc
-	 function could end up calling 'error' and therefore jump out
-	 to the caller of this function, gdb_do_one_event.  In that
-	 case, we would have on the event queue an event wich has been
-	 processed, but not deleted.  */
-      gdb_event *event_ptr = QUEUE_deque (gdb_event_p, event_queue);
-      /* Call the handler for the event.  */
-      event_handler_func *proc = event_ptr->proc;
-      event_data data = event_ptr->data;
-
-      gdb_event_xfree (event_ptr);
-
-      /* Now call the procedure associated with the event.  */
-      (*proc) (data);
-      return 1;
-    }
-
-  /* This is the case if there are no event on the event queue.  */
-  return 0;
-}
-
 /* Process one high level event.  If nothing is ready at this time,
    wait for something to happen (via gdb_wait_for_event), then process
    it.  Returns >0 if something was done otherwise returns <0 (this
@@ -356,40 +260,46 @@ gdb_do_one_event (void)
   const int number_of_sources = 3;
   int current = 0;
 
-  /* Any events already waiting in the queue?  */
-  if (process_event ())
+  /* First let's see if there are any asynchronous signal handlers
+     that are ready.  These would be the result of invoking any of the
+     signal handlers.  */
+  if (invoke_async_signal_handlers ())
     return 1;
 
   /* To level the fairness across event sources, we poll them in a
      round-robin fashion.  */
   for (current = 0; current < number_of_sources; current++)
     {
+      int res;
+
       switch (event_source_head)
 	{
 	case 0:
-	  /* Are any timers that are ready? If so, put an event on the
-	     queue.  */
-	  poll_timers ();
+	  /* Are any timers that are ready?  */
+	  res = poll_timers ();
 	  break;
 	case 1:
 	  /* Are there events already waiting to be collected on the
 	     monitored file descriptors?  */
-	  gdb_wait_for_event (0);
+	  res = gdb_wait_for_event (0);
 	  break;
 	case 2:
 	  /* Are there any asynchronous event handlers ready?  */
-	  check_async_event_handlers ();
+	  res = check_async_event_handlers ();
 	  break;
+	default:
+	  internal_error (__FILE__, __LINE__,
+			  "unexpected event_source_head %d",
+			  event_source_head);
 	}
 
       event_source_head++;
       if (event_source_head == number_of_sources)
 	event_source_head = 0;
-    }
 
-  /* Handle any new events collected.  */
-  if (process_event ())
-    return 1;
+      if (res > 0)
+	return 1;
+    }
 
   /* Block waiting for a new event.  If gdb_wait_for_event returns -1,
      we should get out because this means that there are no event
@@ -399,10 +309,6 @@ gdb_do_one_event (void)
   if (gdb_wait_for_event (1) < 0)
     return -1;
 
-  /* Handle any new events occurred while waiting.  */
-  if (process_event ())
-    return 1;
-
   /* If gdb_wait_for_event has returned 1, it means that one event has
      been handled.  We break out of the loop.  */
   return 1;
@@ -684,25 +590,17 @@ delete_file_handler (int fd)
 }
 
 /* Handle the given event by calling the procedure associated to the
-   corresponding file handler.  Called by process_event indirectly,
-   through event_ptr->proc.  EVENT_FILE_DESC is file descriptor of the
-   event in the front of the event queue.  */
+   corresponding file handler.  */
+
 static void
-handle_file_event (event_data data)
+handle_file_event (file_handler *file_ptr, int ready_mask)
 {
-  file_handler *file_ptr;
   int mask;
 #ifdef HAVE_POLL
   int error_mask;
 #endif
-  int event_file_desc = data.integer;
 
-  /* Search the file handler list to find one that matches the fd in
-     the event.  */
-  for (file_ptr = gdb_notifier.first_file_handler; file_ptr != NULL;
-       file_ptr = file_ptr->next_file)
     {
-      if (file_ptr->fd == event_file_desc)
 	{
 	  /* With poll, the ready_mask could have any of three events
 	     set to 1: POLLHUP, POLLERR, POLLNVAL.  These events
@@ -720,7 +618,7 @@ handle_file_event (event_data data)
 	      /* POLLHUP means EOF, but can be combined with POLLIN to
 		 signal more data to read.  */
 	      error_mask = POLLHUP | POLLERR | POLLNVAL;
-	      mask = file_ptr->ready_mask & (file_ptr->mask | error_mask);
+	      mask = ready_mask & (file_ptr->mask | error_mask);
 
 	      if ((mask & (POLLERR | POLLNVAL)) != 0)
 		{
@@ -743,7 +641,7 @@ handle_file_event (event_data data)
 	    }
 	  else
 	    {
-	      if (file_ptr->ready_mask & GDB_EXCEPTION)
+	      if (ready_mask & GDB_EXCEPTION)
 		{
 		  printf_unfiltered (_("Exception condition detected "
 				       "on fd %d\n"), file_ptr->fd);
@@ -751,30 +649,27 @@ handle_file_event (event_data data)
 		}
 	      else
 		file_ptr->error = 0;
-	      mask = file_ptr->ready_mask & file_ptr->mask;
+	      mask = ready_mask & file_ptr->mask;
 	    }
 
-	  /* Clear the received events for next time around.  */
-	  file_ptr->ready_mask = 0;
-
 	  /* If there was a match, then call the handler.  */
 	  if (mask != 0)
 	    (*file_ptr->proc) (file_ptr->error, file_ptr->client_data);
-	  break;
 	}
     }
 }
 
-/* Called by gdb_do_one_event to wait for new events on the monitored
-   file descriptors.  Queue file events as they are detected by the
-   poll.  If BLOCK and if there are no events, this function will
-   block in the call to poll.  Return -1 if there are no file
-   descriptors to monitor, otherwise return 0.  */
+/* Wait for new events on the monitored file descriptors.  Run the
+   event handler if the first descriptor that is detected by the poll.
+   If BLOCK and if there are no events, this function will block in
+   the call to poll.  Return 1 if an event was handled.  Return -1 if
+   there are no file descriptors to monitor.  Return 1 if an event was
+   handled, otherwise returns 0.  */
+
 static int
 gdb_wait_for_event (int block)
 {
   file_handler *file_ptr;
-  gdb_event *file_event_ptr;
   int num_found = 0;
   int i;
 
@@ -785,6 +680,9 @@ gdb_wait_for_event (int block)
   if (gdb_notifier.num_fds == 0)
     return -1;
 
+  if (block)
+    update_wait_timeout ();
+
   if (use_poll)
     {
 #ifdef HAVE_POLL
@@ -844,7 +742,10 @@ gdb_wait_for_event (int block)
 	}
     }
 
-  /* Enqueue all detected file events.  */
+  /* Run event handlers.  We always run just one handler and go back
+     to polling, in case a handler changes the notifier list.  Since
+     events for sources we haven't consumed yet wake poll/select
+     immediately, no event is lost.  */
 
   if (use_poll)
     {
@@ -866,14 +767,10 @@ gdb_wait_for_event (int block)
 
 	  if (file_ptr)
 	    {
-	      /* Enqueue an event only if this is still a new event for
-	         this fd.  */
-	      if (file_ptr->ready_mask == 0)
-		{
-		  file_event_ptr = create_file_event (file_ptr->fd);
-		  QUEUE_enque (gdb_event_p, event_queue, file_event_ptr);
-		}
-	      file_ptr->ready_mask = (gdb_notifier.poll_fds + i)->revents;
+	      int mask = (gdb_notifier.poll_fds + i)->revents;
+
+	      handle_file_event (file_ptr, mask);
+	      return 1;
 	    }
 	}
 #else
@@ -901,15 +798,8 @@ gdb_wait_for_event (int block)
 	  else
 	    num_found--;
 
-	  /* Enqueue an event only if this is still a new event for
-	     this fd.  */
-
-	  if (file_ptr->ready_mask == 0)
-	    {
-	      file_event_ptr = create_file_event (file_ptr->fd);
-	      QUEUE_enque (gdb_event_p, event_queue, file_event_ptr);
-	    }
-	  file_ptr->ready_mask = mask;
+	  handle_file_event (file_ptr, mask);
+	  return 1;
 	}
     }
   return 0;
@@ -1050,32 +940,21 @@ mark_async_event_handler (async_event_ha
   async_handler_ptr->ready = 1;
 }
 
-struct async_event_handler_data
-{
-  async_event_handler_func* proc;
-  gdb_client_data client_data;
-};
+/* See event-loop.h.  */
 
-static void
-invoke_async_event_handler (event_data data)
+void
+clear_async_event_handler (async_event_handler *async_handler_ptr)
 {
-  struct async_event_handler_data *hdata = data.ptr;
-  async_event_handler_func* proc = hdata->proc;
-  gdb_client_data client_data = hdata->client_data;
-
-  xfree (hdata);
-  (*proc) (client_data);
+  async_handler_ptr->ready = 0;
 }
 
-/* Check if any asynchronous event handlers are ready, and queue
-   events in the ready queue for any that are.  */
-static void
+/* Check if asynchronous event handlers are ready, and call the
+   handler function for one that is.  */
+
+static int
 check_async_event_handlers (void)
 {
   async_event_handler *async_handler_ptr;
-  struct async_event_handler_data *hdata;
-  struct gdb_event *event_ptr;
-  event_data data;
 
   for (async_handler_ptr = async_event_handler_list.first_handler;
        async_handler_ptr != NULL;
@@ -1084,18 +963,12 @@ check_async_event_handlers (void)
       if (async_handler_ptr->ready)
 	{
 	  async_handler_ptr->ready = 0;
-
-	  hdata = xmalloc (sizeof (*hdata));
-
-	  hdata->proc = async_handler_ptr->proc;
-	  hdata->client_data = async_handler_ptr->client_data;
-
-	  data.ptr = hdata;
-
-	  event_ptr = create_event (invoke_async_event_handler, data);
-	  QUEUE_enque (gdb_event_p, event_queue, event_ptr);
+	  (*async_handler_ptr->proc) (async_handler_ptr->client_data);
+	  return 1;
 	}
     }
+
+  return 0;
 }
 
 /* Delete an asynchronous handler (ASYNC_HANDLER_PTR).
@@ -1228,49 +1101,13 @@ delete_timer (int id)
   gdb_notifier.timeout_valid = 0;
 }
 
-/* When a timer event is put on the event queue, it will be handled by
-   this function.  Just call the associated procedure and delete the
-   timer event from the event queue.  Repeat this for each timer that
-   has expired.  */
-static void
-handle_timer_event (event_data dummy)
-{
-  struct timeval time_now;
-  struct gdb_timer *timer_ptr, *saved_timer;
-
-  gettimeofday (&time_now, NULL);
-  timer_ptr = timer_list.first_timer;
-
-  while (timer_ptr != NULL)
-    {
-      if ((timer_ptr->when.tv_sec > time_now.tv_sec)
-	  || ((timer_ptr->when.tv_sec == time_now.tv_sec)
-	      && (timer_ptr->when.tv_usec > time_now.tv_usec)))
-	break;
-
-      /* Get rid of the timer from the beginning of the list.  */
-      timer_list.first_timer = timer_ptr->next;
-      saved_timer = timer_ptr;
-      timer_ptr = timer_ptr->next;
-      /* Call the procedure associated with that timer.  */
-      (*saved_timer->proc) (saved_timer->client_data);
-      xfree (saved_timer);
-    }
-
-  gdb_notifier.timeout_valid = 0;
-}
+/* Update the timeout for the select() or poll().  Returns true if the
+   timer has already expired, false otherwise.  */
 
-/* Check whether any timers in the timers queue are ready.  If at least
-   one timer is ready, stick an event onto the event queue.  Even in
-   case more than one timer is ready, one event is enough, because the
-   handle_timer_event() will go through the timers list and call the
-   procedures associated with all that have expired.l Update the
-   timeout for the select() or poll() as well.  */
-static void
-poll_timers (void)
+static int
+update_wait_timeout (void)
 {
   struct timeval time_now, delta;
-  gdb_event *event_ptr;
 
   if (timer_list.first_timer != NULL)
     {
@@ -1284,27 +1121,18 @@ poll_timers (void)
 	  delta.tv_usec += 1000000;
 	}
 
-      /* Oops it expired already.  Tell select / poll to return
-         immediately.  (Cannot simply test if delta.tv_sec is negative
-         because time_t might be unsigned.)  */
+      /* Cannot simply test if delta.tv_sec is negative because time_t
+         might be unsigned.  */
       if (timer_list.first_timer->when.tv_sec < time_now.tv_sec
 	  || (timer_list.first_timer->when.tv_sec == time_now.tv_sec
 	      && timer_list.first_timer->when.tv_usec < time_now.tv_usec))
 	{
+	  /* It expired already.  */
 	  delta.tv_sec = 0;
 	  delta.tv_usec = 0;
 	}
 
-      if (delta.tv_sec == 0 && delta.tv_usec == 0)
-	{
-	  event_ptr = (gdb_event *) xmalloc (sizeof (gdb_event));
-	  event_ptr->proc = handle_timer_event;
-	  event_ptr->data.integer = timer_list.first_timer->timer_id;
-	  QUEUE_enque (gdb_event_p, event_queue, event_ptr);
-	}
-
-      /* Now we need to update the timeout for select/ poll, because
-         we don't want to sit there while this timer is expiring.  */
+      /* Update the timeout for select/ poll.  */
       if (use_poll)
 	{
 #ifdef HAVE_POLL
@@ -1320,7 +1148,43 @@ poll_timers (void)
 	  gdb_notifier.select_timeout.tv_usec = delta.tv_usec;
 	}
       gdb_notifier.timeout_valid = 1;
+
+      if (delta.tv_sec == 0 && delta.tv_usec == 0)
+	return 1;
     }
   else
     gdb_notifier.timeout_valid = 0;
+
+  return 0;
+}
+
+/* Check whether a timer in the timers queue is ready.  If a timer is
+   ready, call its handler and return.  Update the timeout for the
+   select() or poll() as well.  Return 1 if an event was handled,
+   otherwise returns 0.*/
+
+static int
+poll_timers (void)
+{
+  if (update_wait_timeout ())
+    {
+      struct gdb_timer *timer_ptr = timer_list.first_timer;
+      timer_handler_func *proc = timer_ptr->proc;
+      gdb_client_data client_data = timer_ptr->client_data;
+
+      /* Get rid of the timer from the beginning of the list.  */
+      timer_list.first_timer = timer_ptr->next;
+
+      /* Delete the timer before calling the callback, not after, in
+	 case the callback itself decides to try deleting the timer
+	 too.  */
+      xfree (timer_ptr);
+
+      /* Call the procedure associated with that timer.  */
+      (proc) (client_data);
+
+      return 1;
+    }
+
+  return 0;
 }
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/event-loop.h ./gdb/event-loop.h
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/event-loop.h	2015-02-17 01:58:28.000000000 +0000
+++ ./gdb/event-loop.h	2015-02-18 01:58:18.000000000 +0000
@@ -77,7 +77,6 @@ typedef void (timer_handler_func) (gdb_c
 
 /* Exported functions from event-loop.c */
 
-extern void initialize_event_loop (void);
 extern void start_event_loop (void);
 extern int gdb_do_one_event (void);
 extern void delete_file_handler (int fd);
@@ -131,3 +130,7 @@ extern void
 /* Call the handler from HANDLER the next time through the event
    loop.  */
 extern void mark_async_event_handler (struct async_event_handler *handler);
+
+/* Mark the handler (ASYNC_HANDLER_PTR) as NOT ready.  */
+
+extern void clear_async_event_handler (struct async_event_handler *handler);
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/linux-nat.c ./gdb/linux-nat.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/linux-nat.c	2015-02-17 01:58:29.000000000 +0000
+++ ./gdb/linux-nat.c	2015-02-18 01:58:18.000000000 +0000
@@ -526,7 +526,7 @@ linux_child_follow_fork (struct target_o
 
 	      /* If we're in async mode, need to tell the event loop
 		 there's something here to process.  */
-	      if (target_can_async_p ())
+	      if (target_is_async_p ())
 		async_file_mark ();
 	    }
 	}
@@ -3255,7 +3255,7 @@ linux_nat_wait_1 (struct target_ops *ops
 			    target_pid_to_str (lp->ptid));
     }
 
-  if (!target_can_async_p ())
+  if (!target_is_async_p ())
     {
       /* Causes SIGINT to be passed on to the attached process.  */
       set_sigint_trap ();
@@ -3326,7 +3326,7 @@ linux_nat_wait_1 (struct target_ops *ops
 
 	  ourstatus->kind = TARGET_WAITKIND_NO_RESUMED;
 
-	  if (!target_can_async_p ())
+	  if (!target_is_async_p ())
 	    clear_sigint_trap ();
 
 	  restore_child_signals_mask (&prev_mask);
@@ -3354,7 +3354,7 @@ linux_nat_wait_1 (struct target_ops *ops
       sigsuspend (&suspend_mask);
     }
 
-  if (!target_can_async_p ())
+  if (!target_is_async_p ())
     clear_sigint_trap ();
 
   gdb_assert (lp);
@@ -3512,7 +3512,7 @@ linux_nat_wait (struct target_ops *ops,
     }
 
   /* Flush the async file first.  */
-  if (target_can_async_p ())
+  if (target_is_async_p ())
     async_file_flush ();
 
   /* Resume LWPs that are currently stopped without any pending status
@@ -3530,16 +3530,12 @@ linux_nat_wait (struct target_ops *ops,
   /* If we requested any event, and something came out, assume there
      may be more.  If we requested a specific lwp or process, also
      assume there may be more.  */
-  if (target_can_async_p ()
+  if (target_is_async_p ()
       && ((ourstatus->kind != TARGET_WAITKIND_IGNORE
 	   && ourstatus->kind != TARGET_WAITKIND_NO_RESUMED)
 	  || !ptid_equal (ptid, minus_one_ptid)))
     async_file_mark ();
 
-  /* Get ready for the next event.  */
-  if (target_can_async_p ())
-    target_async (inferior_event_handler, 0);
-
   return event_ptid;
 }
 
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/po/gdb.pot ./gdb/po/gdb.pot
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/po/gdb.pot	2015-02-17 02:01:07.000000000 +0000
+++ ./gdb/po/gdb.pot	2015-02-18 02:00:50.000000000 +0000
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-02-17 02:01+0000\n"
+"POT-Creation-Date: 2015-02-18 02:00+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"
@@ -10400,22 +10400,22 @@ msgstr ""
 msgid "Can't get dimensions for a non-array type"
 msgstr ""
 
-#: event-loop.c:487 event-loop.c:496 event-loop.c:560 event-loop.c:639
-#: event-loop.c:741 event-loop.c:807 event-loop.c:881 event-loop.c:1314
+#: event-loop.c:393 event-loop.c:402 event-loop.c:466 event-loop.c:545
+#: event-loop.c:639 event-loop.c:705 event-loop.c:778 event-loop.c:1142
 msgid "use_poll without HAVE_POLL"
 msgstr ""
 
-#: event-loop.c:730
+#: event-loop.c:628
 #, possible-c-format
 msgid "Error detected on fd %d\n"
 msgstr ""
 
-#: event-loop.c:733
+#: event-loop.c:631
 #, possible-c-format
 msgid "Invalid or non-`poll'able fd %d\n"
 msgstr ""
 
-#: event-loop.c:748
+#: event-loop.c:646
 #, possible-c-format
 msgid "Exception condition detected on fd %d\n"
 msgstr ""
@@ -15470,25 +15470,25 @@ msgstr ""
 msgid "unknown ptrace event %d"
 msgstr ""
 
-#: linux-nat.c:4090 linux-nat.c:4103
+#: linux-nat.c:4086 linux-nat.c:4099
 #, possible-c-format
 msgid "Could not parse signal set: %s"
 msgstr ""
 
-#: linux-nat.c:4137
+#: linux-nat.c:4133
 #, possible-c-format
 msgid "Could not open %s"
 msgstr ""
 
-#: linux-nat.c:4802
+#: linux-nat.c:4798
 msgid "Set debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4803
+#: linux-nat.c:4799
 msgid "Show debugging of GNU/Linux lwp module."
 msgstr ""
 
-#: linux-nat.c:4804
+#: linux-nat.c:4800
 msgid "Enables printf debugging output."
 msgstr ""
 
@@ -20922,7 +20922,7 @@ msgid ""
 "Ravenscar run-time library for bareboard configuration."
 msgstr ""
 
-#: record-btrace.c:101 record-btrace.c:282
+#: record-btrace.c:101 record-btrace.c:298
 msgid "No thread."
 msgstr ""
 
@@ -20930,111 +20930,111 @@ msgstr ""
 msgid "Record btrace can't debug inferior in non-stop mode."
 msgstr ""
 
-#: record-btrace.c:305
+#: record-btrace.c:321
 #, possible-c-format
 msgid "Recorded %u instructions in %u functions for thread %d (%s).\n"
 msgstr ""
 
-#: record-btrace.c:310
+#: record-btrace.c:326
 #, possible-c-format
 msgid "Replay in progress.  At instruction %u.\n"
 msgstr ""
 
-#: record-btrace.c:370 record-btrace.c:502
+#: record-btrace.c:386 record-btrace.c:518
 msgid "Bad record instruction-history-size."
 msgstr ""
 
-#: record-btrace.c:430 record-btrace.c:738
+#: record-btrace.c:446 record-btrace.c:754
 msgid "At the start of the branch trace record.\n"
 msgstr ""
 
-#: record-btrace.c:432 record-btrace.c:740
+#: record-btrace.c:448 record-btrace.c:756
 msgid "At the end of the branch trace record.\n"
 msgstr ""
 
-#: record-btrace.c:463 record-btrace.c:466 record-btrace.c:771
-#: record-btrace.c:774
+#: record-btrace.c:479 record-btrace.c:482 record-btrace.c:787
+#: record-btrace.c:790
 msgid "Bad range."
 msgstr ""
 
-#: record-btrace.c:472 record-btrace.c:780
+#: record-btrace.c:488 record-btrace.c:796
 msgid "Range out of bounds."
 msgstr ""
 
-#: record-btrace.c:644
+#: record-btrace.c:660
 msgid "\tinst "
 msgstr ""
 
-#: record-btrace.c:650
+#: record-btrace.c:666
 msgid "\tat "
 msgstr ""
 
-#: record-btrace.c:675 record-btrace.c:810
+#: record-btrace.c:691 record-btrace.c:826
 msgid "Bad record function-call-history-size."
 msgstr ""
 
-#: record-btrace.c:1009
+#: record-btrace.c:1025
 msgid "This record target does not allow writing registers."
 msgstr ""
 
-#: record-btrace.c:1175
+#: record-btrace.c:1191
 msgid "Registers are not available in btrace record history"
 msgstr ""
 
-#: record-btrace.c:1184
+#: record-btrace.c:1200
 msgid "No caller in btrace record history"
 msgstr ""
 
-#: record-btrace.c:1365
+#: record-btrace.c:1381
 msgid "Thread already moving."
 msgstr ""
 
-#: record-btrace.c:1506
+#: record-btrace.c:1522
 msgid "Cannot find thread to resume."
 msgstr ""
 
-#: record-btrace.c:1628
+#: record-btrace.c:1644
 msgid "invalid stepping type."
 msgstr ""
 
-#: record-btrace.c:1893
+#: record-btrace.c:1909
 msgid "Instruction number out of range."
 msgstr ""
 
-#: record-btrace.c:1899
+#: record-btrace.c:1915
 msgid "No such instruction."
 msgstr ""
 
-#: record-btrace.c:1986
+#: record-btrace.c:2003
 msgid "Invalid argument."
 msgstr ""
 
-#: record-btrace.c:2013
+#: record-btrace.c:2030
 #, possible-c-format
 msgid "Replay memory access is %s.\n"
 msgstr ""
 
-#: record-btrace.c:2025
+#: record-btrace.c:2042
 msgid "Start branch trace recording."
 msgstr ""
 
-#: record-btrace.c:2030 record.c:755 record-full.c:2787
+#: record-btrace.c:2047 record.c:755 record-full.c:2795
 msgid "Set record options"
 msgstr ""
 
-#: record-btrace.c:2034 record.c:759 record-full.c:2791
+#: record-btrace.c:2051 record.c:759 record-full.c:2799
 msgid "Show record options"
 msgstr ""
 
-#: record-btrace.c:2038
+#: record-btrace.c:2055
 msgid "Set what memory accesses are allowed during replay."
 msgstr ""
 
-#: record-btrace.c:2039
+#: record-btrace.c:2056
 msgid "Show what memory accesses are allowed during replay."
 msgstr ""
 
-#: record-btrace.c:2041
+#: record-btrace.c:2058
 msgid ""
 "Default is READ-ONLY.\n"
 "\n"
@@ -21250,7 +21250,7 @@ msgstr ""
 msgid "Process record: inferior program stopped."
 msgstr ""
 
-#: record-full.c:630 record-full.c:1410 record-full.c:1419 record-full.c:1425
+#: record-full.c:630 record-full.c:1421 record-full.c:1430 record-full.c:1436
 msgid "Process record: failed to record execution log."
 msgstr ""
 
@@ -21272,165 +21272,165 @@ msgid ""
 "Process record: the current architecture doesn't support record function."
 msgstr ""
 
-#: record-full.c:1453
+#: record-full.c:1464
 msgid ""
 "Because GDB is in replay mode, changing the value of a register will make "
 "the execution log unusable from this point onward.  Change all registers?"
 msgstr ""
 
-#: record-full.c:1459
+#: record-full.c:1470
 #, possible-c-format
 msgid ""
 "Because GDB is in replay mode, changing the value of a register will make "
 "the execution log unusable from this point onward.  Change register %s?"
 msgstr ""
 
-#: record-full.c:1481 record-full.c:1515
+#: record-full.c:1492 record-full.c:1526
 msgid "Process record canceled the operation."
 msgstr ""
 
 #. Let user choose if he wants to write memory or not.
-#: record-full.c:1511
+#: record-full.c:1522
 #, possible-c-format
 msgid ""
 "Because GDB is in replay mode, writing to memory will make the execution log "
 "unusable from this point onward.  Write memory at address %s?"
 msgstr ""
 
-#: record-full.c:1746 reverse.c:271
+#: record-full.c:1757 reverse.c:271
 #, possible-c-format
 msgid "Unbalanced quotes: %s"
 msgstr ""
 
-#: record-full.c:1771
+#: record-full.c:1782
 msgid "Replay mode:\n"
 msgstr ""
 
-#: record-full.c:1773
+#: record-full.c:1784
 msgid "Record mode:\n"
 msgstr ""
 
 #. Display instruction number for first instruction in the log.
-#: record-full.c:1785
+#: record-full.c:1796
 #, possible-c-format
 msgid "Lowest recorded instruction number is %s.\n"
 msgstr ""
 
-#: record-full.c:1790
+#: record-full.c:1801
 #, possible-c-format
 msgid "Current instruction number is %s.\n"
 msgstr ""
 
 #. Display instruction number for last instruction in the log.
-#: record-full.c:1794
+#: record-full.c:1805
 #, possible-c-format
 msgid "Highest recorded instruction number is %s.\n"
 msgstr ""
 
 #. Display log count.
-#: record-full.c:1798
+#: record-full.c:1809
 #, possible-c-format
 msgid "Log contains %u instructions.\n"
 msgstr ""
 
-#: record-full.c:1802
+#: record-full.c:1813
 msgid "No instructions have been logged.\n"
 msgstr ""
 
 #. Display max log size.
-#: record-full.c:1805
+#: record-full.c:1816
 #, possible-c-format
 msgid "Max logged instructions is %u.\n"
 msgstr ""
 
-#: record-full.c:1831
+#: record-full.c:1842
 msgid "Target insn not found."
 msgstr ""
 
-#: record-full.c:1833
+#: record-full.c:1844
 msgid "Already at target insn."
 msgstr ""
 
-#: record-full.c:1836
+#: record-full.c:1847
 #, possible-c-format
 msgid "Go forward to insn number %s\n"
 msgstr ""
 
-#: record-full.c:1842
+#: record-full.c:1853
 #, possible-c-format
 msgid "Go backward to insn number %s\n"
 msgstr ""
 
-#: record-full.c:2005 record-full.c:2099 target.c:575
+#: record-full.c:2012 record-full.c:2106 target.c:575
 msgid "You can't do that without a process to debug."
 msgstr ""
 
-#: record-full.c:2229
+#: record-full.c:2237
 #, possible-c-format
 msgid "Failed to read %d bytes from core file %s ('%s')."
 msgstr ""
 
-#: record-full.c:2301
+#: record-full.c:2309
 #, possible-c-format
 msgid "Version mis-match or file format error in core file %s."
 msgstr ""
 
-#: record-full.c:2406
+#: record-full.c:2414
 #, possible-c-format
 msgid "Bad entry type in core file %s."
 msgstr ""
 
-#: record-full.c:2427
+#: record-full.c:2435
 #, possible-c-format
 msgid "Auto increase record/replay buffer limit to %u."
 msgstr ""
 
 #. Succeeded.
-#: record-full.c:2432
+#: record-full.c:2440
 #, possible-c-format
 msgid "Restored records from core file %s.\n"
 msgstr ""
 
-#: record-full.c:2448
+#: record-full.c:2456
 #, possible-c-format
 msgid "Failed to write %d bytes to core file %s ('%s')."
 msgstr ""
 
-#: record-full.c:2545
+#: record-full.c:2553
 #, possible-c-format
 msgid "Failed to create 'precord' section for corefile %s: %s"
 msgstr ""
 
 #. Succeeded.
-#: record-full.c:2676
+#: record-full.c:2684
 #, possible-c-format
 msgid "Saved core file %s with execution log.\n"
 msgstr ""
 
-#: record-full.c:2737
+#: record-full.c:2745
 msgid "\"set record full\" must be followed by an apporpriate subcommand.\n"
 msgstr ""
 
-#: record-full.c:2771
+#: record-full.c:2779
 msgid "Start full execution recording."
 msgstr ""
 
-#: record-full.c:2775
+#: record-full.c:2783
 msgid ""
 "Restore the execution log from a file.\n"
 "Argument is filename.  File must be created with 'record save'."
 msgstr ""
 
-#: record-full.c:2796
+#: record-full.c:2804
 msgid "Set whether record/replay stops when record/replay buffer becomes full."
 msgstr ""
 
-#: record-full.c:2797
+#: record-full.c:2805
 msgid ""
 "Show whether record/replay stops when record/replay buffer becomes full."
 msgstr ""
 
-#: record-full.c:2799
+#: record-full.c:2807
 msgid ""
 "Default is ON.\n"
 "When ON, if the record/replay buffer becomes full, ask user what to do.\n"
@@ -21438,32 +21438,32 @@ msgid ""
 "delete the oldest recorded instruction to make room for each new one."
 msgstr ""
 
-#: record-full.c:2816
+#: record-full.c:2824
 msgid "Set record/replay buffer limit."
 msgstr ""
 
-#: record-full.c:2817
+#: record-full.c:2825
 msgid "Show record/replay buffer limit."
 msgstr ""
 
-#: record-full.c:2817
+#: record-full.c:2825
 msgid ""
 "Set the maximum number of instructions to be stored in the\n"
 "record/replay buffer.  A value of either \"unlimited\" or zero means no\n"
 "limit.  Default is 200000."
 msgstr ""
 
-#: record-full.c:2834
+#: record-full.c:2842
 msgid ""
 "Set whether query if PREC cannot record memory change of next instruction."
 msgstr ""
 
-#: record-full.c:2836
+#: record-full.c:2844
 msgid ""
 "Show whether query if PREC cannot record memory change of next instruction."
 msgstr ""
 
-#: record-full.c:2838
+#: record-full.c:2846
 msgid ""
 "Default is OFF.\n"
 "When ON, query if PREC cannot record memory change of next instruction."
@@ -22438,18 +22438,18 @@ msgstr ""
 msgid "Bad branch tracing read type: %u."
 msgstr ""
 
-#: remote.c:11808
+#: remote.c:11816
 #, possible-c-format
 msgid "Debugger's willingness to use range stepping is %s.\n"
 msgstr ""
 
-#: remote.c:11834
+#: remote.c:11842
 msgid "Range stepping is not supported by the current target"
 msgstr ""
 
 #. set/show remote ...
 #. allow-unknown
-#: remote.c:11881 remote.c:11887
+#: remote.c:11889 remote.c:11895
 msgid ""
 "Remote protocol specific variables\n"
 "Configure various remote-protocol specific variables such as\n"
@@ -22457,14 +22457,14 @@ msgid ""
 msgstr ""
 
 #. allow-unknown
-#: remote.c:11894
+#: remote.c:11902
 msgid ""
 "Compare section data on target to the exec file.\n"
 "Argument is a single section name (default: all loaded sections).\n"
 "To compare only read-only loaded sections, specify the -r option."
 msgstr ""
 
-#: remote.c:11900
+#: remote.c:11908
 msgid ""
 "Send an arbitrary packet to a remote target.\n"
 "   maintenance packet TEXT\n"
@@ -22474,57 +22474,57 @@ msgid ""
 "terminating `#' character and checksum."
 msgstr ""
 
-#: remote.c:11909
+#: remote.c:11917
 msgid "Set whether to send break if interrupted."
 msgstr ""
 
-#: remote.c:11910
+#: remote.c:11918
 msgid "Show whether to send break if interrupted."
 msgstr ""
 
-#: remote.c:11911
+#: remote.c:11919
 msgid "If set, a break, instead of a cntrl-c, is sent to the remote target."
 msgstr ""
 
-#: remote.c:11924
+#: remote.c:11932
 msgid "Set interrupt sequence to remote target."
 msgstr ""
 
-#: remote.c:11925
+#: remote.c:11933
 msgid "Show interrupt sequence to remote target."
 msgstr ""
 
-#: remote.c:11926
+#: remote.c:11934
 msgid ""
 "Valid value is \"Ctrl-C\", \"BREAK\" or \"BREAK-g\". The default is \"Ctrl-C"
 "\"."
 msgstr ""
 
-#: remote.c:11933
+#: remote.c:11941
 msgid ""
 "Set whether interrupt-sequence is sent to remote target when gdb connects to."
 msgstr ""
 
-#: remote.c:11934
+#: remote.c:11942
 msgid ""
 "\t\tShow whether interrupt-sequence is sent to remote target when gdb "
 "connects to."
 msgstr ""
 
-#: remote.c:11935
+#: remote.c:11943
 msgid "\t\tIf set, interrupt sequence is sent to remote target."
 msgstr ""
 
 #. Install commands for configuring memory read/write packets.
-#: remote.c:11942
+#: remote.c:11950
 msgid "Set the maximum number of bytes per memory write packet (deprecated)."
 msgstr ""
 
-#: remote.c:11945
+#: remote.c:11953
 msgid "Show the maximum number of bytes per memory write packet (deprecated)."
 msgstr ""
 
-#: remote.c:11949
+#: remote.c:11957
 msgid ""
 "Set the maximum number of bytes per memory-write packet.\n"
 "Specify the number of bytes in a packet or 0 (zero) for the\n"
@@ -22533,7 +22533,7 @@ msgid ""
 "further restriction and ``limit'' to enable that restriction."
 msgstr ""
 
-#: remote.c:11957
+#: remote.c:11965
 msgid ""
 "Set the maximum number of bytes per memory-read packet.\n"
 "Specify the number of bytes in a packet or 0 (zero) for the\n"
@@ -22542,99 +22542,99 @@ msgid ""
 "further restriction and ``limit'' to enable that restriction."
 msgstr ""
 
-#: remote.c:11966
+#: remote.c:11974
 msgid "Show the maximum number of bytes per memory-write packet."
 msgstr ""
 
-#: remote.c:11970
+#: remote.c:11978
 msgid "Show the maximum number of bytes per memory-read packet."
 msgstr ""
 
-#: remote.c:11974
+#: remote.c:11982
 msgid "Set the maximum number of target hardware watchpoints."
 msgstr ""
 
-#: remote.c:11975
+#: remote.c:11983
 msgid "Show the maximum number of target hardware watchpoints."
 msgstr ""
 
-#: remote.c:11976 remote.c:11985 remote.c:11994
+#: remote.c:11984 remote.c:11993 remote.c:12002
 msgid "Specify a negative limit for unlimited."
 msgstr ""
 
-#: remote.c:11983
+#: remote.c:11991
 msgid "Set the maximum length (in bytes) of a target hardware watchpoint."
 msgstr ""
 
-#: remote.c:11984
+#: remote.c:11992
 msgid "Show the maximum length (in bytes) of a target hardware watchpoint."
 msgstr ""
 
-#: remote.c:11992
+#: remote.c:12000
 msgid "Set the maximum number of target hardware breakpoints."
 msgstr ""
 
-#: remote.c:11993
+#: remote.c:12001
 msgid "Show the maximum number of target hardware breakpoints."
 msgstr ""
 
-#: remote.c:12002
+#: remote.c:12010
 msgid "Set the maximum size of the address (in bits) in a memory packet."
 msgstr ""
 
-#: remote.c:12003
+#: remote.c:12011
 msgid "Show the maximum size of the address (in bits) in a memory packet."
 msgstr ""
 
-#: remote.c:12233
+#: remote.c:12241
 msgid "Set use of remote protocol `Z' packets"
 msgstr ""
 
-#: remote.c:12234
+#: remote.c:12242
 msgid "Show use of remote protocol `Z' packets "
 msgstr ""
 
-#: remote.c:12235
+#: remote.c:12243
 msgid ""
 "When set, GDB will attempt to use the remote breakpoint and watchpoint\n"
 "packets."
 msgstr ""
 
-#: remote.c:12244
+#: remote.c:12252
 msgid ""
 "Manipulate files on the remote system\n"
 "Transfer files to and from the remote target system."
 msgstr ""
 
-#: remote.c:12251
+#: remote.c:12259
 msgid "Copy a local file to the remote system."
 msgstr ""
 
-#: remote.c:12255
+#: remote.c:12263
 msgid "Copy a remote file to the local system."
 msgstr ""
 
-#: remote.c:12259
+#: remote.c:12267
 msgid "Delete a remote file."
 msgstr ""
 
-#: remote.c:12264
+#: remote.c:12272
 msgid "Set the remote pathname for \"run\""
 msgstr ""
 
-#: remote.c:12265
+#: remote.c:12273
 msgid "Show the remote pathname for \"run\""
 msgstr ""
 
-#: remote.c:12270
+#: remote.c:12278
 msgid "Enable or disable range stepping."
 msgstr ""
 
-#: remote.c:12271
+#: remote.c:12279
 msgid "Show whether target-assisted range stepping is enabled."
 msgstr ""
 
-#: remote.c:12272
+#: remote.c:12280
 msgid ""
 "If on, and the target supports it, when stepping a source line, GDB\n"
 "tells the target to step the corresponding range of addresses itself "
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/record-btrace.c ./gdb/record-btrace.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/record-btrace.c	2015-02-17 01:58:29.000000000 +0000
+++ ./gdb/record-btrace.c	2015-02-18 01:58:18.000000000 +0000
@@ -266,6 +266,22 @@ record_btrace_close (struct target_ops *
     btrace_teardown (tp);
 }
 
+/* The to_async method of target record-btrace.  */
+
+static void
+record_btrace_async (struct target_ops *ops,
+		     void (*callback) (enum inferior_event_type event_type,
+				       void *context),
+		     void *context)
+{
+  if (callback != NULL)
+    mark_async_event_handler (record_btrace_async_inferior_event_handler);
+  else
+    clear_async_event_handler (record_btrace_async_inferior_event_handler);
+
+  ops->beneath->to_async (ops->beneath, callback, context);
+}
+
 /* The to_info_record method of target record-btrace.  */
 
 static void
@@ -1940,6 +1956,7 @@ init_record_btrace_ops (void)
   ops->to_doc = "Collect control-flow trace and provide the execution history.";
   ops->to_open = record_btrace_open;
   ops->to_close = record_btrace_close;
+  ops->to_async = record_btrace_async;
   ops->to_detach = record_detach;
   ops->to_disconnect = record_disconnect;
   ops->to_mourn_inferior = record_mourn_inferior;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/record-full.c ./gdb/record-full.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/record-full.c	2015-02-17 01:58:29.000000000 +0000
+++ ./gdb/record-full.c	2015-02-18 01:58:18.000000000 +0000
@@ -910,6 +910,22 @@ record_full_close (struct target_ops *se
     delete_async_event_handler (&record_full_async_inferior_event_token);
 }
 
+/* "to_async" target method.  */
+
+static void
+record_full_async (struct target_ops *ops,
+		   void (*callback) (enum inferior_event_type event_type,
+				     void *context),
+		   void *context)
+{
+  if (callback != NULL)
+    mark_async_event_handler (record_full_async_inferior_event_token);
+  else
+    clear_async_event_handler (record_full_async_inferior_event_token);
+
+  ops->beneath->to_async (ops->beneath, callback, context);
+}
+
 static int record_full_resume_step = 0;
 
 /* True if we've been resumed, and so each record_full_wait call should
@@ -989,12 +1005,7 @@ record_full_resume (struct target_ops *o
   /* We are about to start executing the inferior (or simulate it),
      let's register it with the event loop.  */
   if (target_can_async_p ())
-    {
-      target_async (inferior_event_handler, 0);
-      /* Notify the event loop there's an event to wait for.  We do
-	 most of the work in record_full_wait.  */
-      mark_async_event_handler (record_full_async_inferior_event_token);
-    }
+    target_async (inferior_event_handler, 0);
 }
 
 static int record_full_get_sig = 0;
@@ -1902,6 +1913,7 @@ init_record_full_ops (void)
     "Log program while executing and replay execution from log.";
   record_full_ops.to_open = record_full_open;
   record_full_ops.to_close = record_full_close;
+  record_full_ops.to_async = record_full_async;
   record_full_ops.to_resume = record_full_resume;
   record_full_ops.to_wait = record_full_wait;
   record_full_ops.to_disconnect = record_disconnect;
@@ -1943,12 +1955,7 @@ record_full_core_resume (struct target_o
   /* We are about to start executing the inferior (or simulate it),
      let's register it with the event loop.  */
   if (target_can_async_p ())
-    {
-      target_async (inferior_event_handler, 0);
-
-      /* Notify the event loop there's an event to wait for.  */
-      mark_async_event_handler (record_full_async_inferior_event_token);
-    }
+    target_async (inferior_event_handler, 0);
 }
 
 /* "to_kill" method for prec over corefile.  */
@@ -2141,6 +2148,7 @@ init_record_full_core_ops (void)
     "Log program while executing and replay execution from log.";
   record_full_core_ops.to_open = record_full_open;
   record_full_core_ops.to_close = record_full_close;
+  record_full_core_ops.to_async = record_full_async;
   record_full_core_ops.to_resume = record_full_core_resume;
   record_full_core_ops.to_wait = record_full_wait;
   record_full_core_ops.to_kill = record_full_core_kill;
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/remote.c ./gdb/remote.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/remote.c	2015-02-17 01:58:29.000000000 +0000
+++ ./gdb/remote.c	2015-02-18 01:58:18.000000000 +0000
@@ -5079,7 +5079,7 @@ interrupt_query (void)
 {
   target_terminal_ours ();
 
-  if (target_can_async_p ())
+  if (target_is_async_p ())
     {
       signal (SIGINT, handle_sigint);
       quit ();
@@ -6036,7 +6036,7 @@ remote_wait (struct target_ops *ops,
   else
     event_ptid = remote_wait_as (ptid, status, options);
 
-  if (target_can_async_p ())
+  if (target_is_async_p ())
     {
       /* If there are are events left in the queue tell the event loop
 	 to return here.  */
@@ -7226,7 +7226,7 @@ putpkt_binary (const char *buf, int cnt)
      case it's not possible to issue a command while the target is
      running.  This is not a problem in non-stop mode, because in that
      case, the stub is always ready to process serial input.  */
-  if (!non_stop && target_can_async_p () && rs->waiting_for_stop_reply)
+  if (!non_stop && target_is_async_p () && rs->waiting_for_stop_reply)
     {
       error (_("Cannot execute this command while the target is running.\n"
 	       "Use the \"interrupt\" command to stop the target\n"
@@ -11691,9 +11691,17 @@ remote_async (struct target_ops *ops,
       serial_async (rs->remote_desc, remote_async_serial_handler, rs);
       rs->async_client_callback = callback;
       rs->async_client_context = context;
+
+      /* If there are pending events in the stop reply queue tell the
+	 event loop to process them.  */
+      if (!QUEUE_is_empty (stop_reply_p, stop_reply_queue))
+	mark_async_event_handler (remote_async_inferior_event_token);
     }
   else
-    serial_async (rs->remote_desc, NULL, NULL);
+    {
+      serial_async (rs->remote_desc, NULL, NULL);
+      clear_async_event_handler (remote_async_inferior_event_token);
+    }
 }
 
 static void
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/top.c ./gdb/top.c
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/gdb/top.c	2015-02-17 01:58:29.000000000 +0000
+++ ./gdb/top.c	2015-02-18 01:58:19.000000000 +0000
@@ -1952,7 +1952,6 @@ gdb_init (char *argv0)
   initialize_inferiors ();
   initialize_current_architecture ();
   init_cli_cmds();
-  initialize_event_loop ();
   init_main ();			/* But that omits this file!  Do it now.  */
 
   initialize_stdin_serial ();
diff -a -u -r --new-file --show-function-line='^[A-Za-z_]' /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/md5.sum ./md5.sum
--- /sourceware/snapshot-tmp/gdb/snapshot/branch-gdb/update-snapshot/old/gdb-7.8.90.20150217/md5.sum	2015-02-17 02:01:15.000000000 +0000
+++ ./md5.sum	2015-02-18 02:00:58.000000000 +0000
@@ -38,7 +38,7 @@ f74f5720bf485dc971d7b4151b97318b  bfd/pe
 d714ee957aefa81619f03058d91b23cb  bfd/elfcore.h
 c81d65148831d8cdd82361f4e75ad0c2  bfd/elf64-mips.c
 57287cb3abe2dc7f66af4ab28aafebe9  bfd/cpu-m9s12x.c
-f1b0ba1622b11d326656574d23748df7  bfd/version.h
+0832e0ae91d71909c93f7a8d6be80259  bfd/version.h
 a107ac2f34a58b7629fbff59490f61f1  bfd/cpu-tilegx.c
 ceebc66a221f8f9297b660d643de9009  bfd/coff-mcore.c
 b33e0ba78cdd46c771e365ab8b48bfc1  bfd/cpu-avr.c
@@ -785,7 +785,7 @@ f3d81927270e9271ff8559c22d269b2b  gdb/co
 51bd75312393d4a9db52f4ee825f0051  gdb/config/vax/obsd.mh
 474ecf1428fe010bbb7c2fe21b33af0a  gdb/config/vax/nbsdelf.mh
 7295bd3dda432320af4eb29f959e411a  gdb/regset.h
-0dc5bca497b9002370f8e2f2f99d0e1f  gdb/event-loop.c
+8cc42f2f6f1440a787635b0c81a1f6a4  gdb/event-loop.c
 c9f114075816f8846825dbad346478c6  gdb/solist.h
 31ffc2e7e8d40a8b5085fc1098376bb3  gdb/d-exp.y
 c438a9b555ebefed2e0177bb9e6a2c57  gdb/ada-varobj.c
@@ -922,7 +922,7 @@ c5e2f2b4c2a50b902dc183726c47320b  gdb/va
 a1d4a9f9cc0889b776920167d21ade7b  gdb/sparc64nbsd-tdep.c
 c074b817bcafa21628660800eef8348f  gdb/c-typeprint.c
 dd44cebeac33294f04a8cfbc55a589c3  gdb/xtensa-tdep.c
-7e95e312421f1eee6a0518d7285592c1  gdb/top.c
+86d35d7690eddba118319367bc013702  gdb/top.c
 001635cdda1a55a603854c760ae55c48  gdb/python/py-cmd.c
 afb00927983ce834b553cd4b764514bc  gdb/python/py-infthread.c
 f40fa46aee5e124221ecc85c11c0e625  gdb/python/py-continueevent.c
@@ -1052,7 +1052,7 @@ c5fa7b9b264b03e417343f27cd49eb77  gdb/so
 aa0ea76db0f9efc6a6884668f9500cc7  gdb/xtensa-linux-tdep.c
 1902798cfe51c895d979924b0b65f4ed  gdb/configure.tgt
 803e8c2dad315f05d967a6b8fc399e95  gdb/solib-aix.h
-93c02f27994d9b9f2c27c0d08bc21cfe  gdb/event-loop.h
+18bf344584079574ea320100a2e2b5f8  gdb/event-loop.h
 443a36e2661a6b6191e7f25d9c17d3f6  gdb/ax.h
 c664628332f6813765b34dc545abd906  gdb/trad-frame.c
 4f7ecbc012f974ec788416160f07fd84  gdb/remote-fileio.c
@@ -1131,7 +1131,7 @@ f56dccd6c1e3cdff7a9f0c6798cbada7  gdb/in
 986fbf2a341b6e1acfe0922b9ca014f8  gdb/mem-break.c
 380331ec2eb36a0ac59045f90310e589  gdb/charset.c
 5932b69578cdab409ead785ce1015746  gdb/sparc-nat.h
-a2ac2a6acc015db7c0f56eb102606ce0  gdb/record-btrace.c
+f3b94e79633e3afbbd22f7772041af91  gdb/record-btrace.c
 5db49a36b0fdbc838016f4bfc8cc4613  gdb/proc-api.c
 c493ff63a81af409f53d0f5f01985115  gdb/alphabsd-nat.c
 7f6c36e4ec8e125f888feac7e40f2c1a  gdb/target-memory.c
@@ -1331,7 +1331,7 @@ ebe83df475f29d37d71caebe88afd02a  gdb/ui
 0a3d08dbbd509031dda62edb60fa80dc  gdb/m2-exp.c
 f26480ff3d3b4d0fe83e4d506118041e  gdb/ser-base.h
 0a6ad90f043e2a363ab3f37db461177f  gdb/m68klinux-tdep.c
-f3773ee1e83953e6807e4c5a6fc2960a  gdb/record-full.c
+269f9369cf9576bf15425d5cc6fcddea  gdb/record-full.c
 fb1e5537f8b9259cc1c333e796130871  gdb/amd64obsd-tdep.c
 ffbaadd45ee134d88179da684bd72d42  gdb/nto-tdep.c
 e7690a980a30289adeb0e74e4cfaa401  gdb/m68hc11-tdep.c
@@ -4296,43 +4296,43 @@ f5615bbb876f5d6b8ff495ea635f223d  gdb/f-
 e88f32d160934e36fa7d803d483a1e2e  gdb/gdb_curses.h
 1bbdb3e7ea9ca53f9a8cf1a548dca9f5  gdb/jv-valprint.c
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-7e26dade8a77c05c16771137963949f1  gdb/doc/gdb.info-3
-9723cd192ed205048f3cb05a26e02451  gdb/doc/gdb.info-4
+91a67082147a7d16081bdae4672ff601  gdb/doc/gdb.info-3
+51ebc878d7bca09fc02a20dd763676a9  gdb/doc/gdb.info-4
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 be5469929c58735017a3a1e083554ac7  gdb/doc/Makefile.in
-cd40496656f151d5b7732e7341de6332  gdb/doc/gdb.info-7
+43cdd09a44e18edf81b2c5eae19cfc95  gdb/doc/gdb.info-7
 65ee16c0a68d8954d5892092576beb66  gdb/doc/observer.texi
-11226f17421a7f72c98a059145f7b28f  gdb/doc/gdbserver.1
+76334eddf9dfe4733b251437897f5e53  gdb/doc/gdbserver.1
 669fb3191fafb1ca7da855243682fe4e  gdb/doc/guile.texi
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 ab34a4a36fd27cddd3c7838273cfb1dd  gdb/doc/stabs.info
-7e4fda5b2d0aca555c3007a8cfb98da4  gdb/doc/gdb.info-5
-84ae3c42bd7e25f1800a5e22eb760878  gdb/doc/gdb.info-8
+c98294ab2062dbc55c7a49a0e675afa2  gdb/doc/gdb.info-5
+d1e0c5fb7a66398e61120ca0dc724b5f  gdb/doc/gdb.info-8
 4fb6b0bb12bb47f2079a5e38f7dcdcf7  gdb/doc/agentexpr.texi
-90eb783acf78d563a40293496319f0c7  gdb/doc/gdb.info-1
+bb8c3b760a8492dc26a2580b7463a623  gdb/doc/gdb.info-1
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
-15c463b95c835d8180b879d0ae8b2f61  gdb/doc/gdb.info-6
+8fbb40a716759f5fb8326f502f8bed07  gdb/doc/gdb.info-6
 85ce27a948be3709b3aa35643f9e6d15  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
-bf8b443ffbb62ab86b1f77864071f1b4  gdb/doc/gdb.info-2
+ec1aef98496d2e23bee991bf3a629dc3  gdb/doc/gdb.info-2
 df443225fa3e5719ca7e6925a7e633e0  gdb/doc/refcard.tex
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-22c8ea23ecf6e36df6e5c4a2936e3cd5  gdb/doc/gdb.info
+2d0882bd05f21a3b4264909f72fc3812  gdb/doc/gdb.info
 51f928aef51288aa002575df7e06ff0d  gdb/doc/python.texi
 fa1abec9272120122bf7638320e90d4c  gdb/doc/stabs.texinfo
 c10dfc4e1284c40d2aaa059b6d79ff1c  gdb/doc/ChangeLog
-40766a92e97ca96883a5028b6491cdbc  gdb/doc/gdb.1
-257683c70197e7d1efcdb176f56d254e  gdb/doc/gcore.1
+e19cfc27c0da523239026659c1bc1e5b  gdb/doc/gdb.1
+1bdf33b27816437a67fd0830a4391e44  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
-329bfc2b34b0c7f7f45f37c0bf787d51  gdb/doc/gdbinit.5
+1c4178467eaee61bcefe8b8fa0838be7  gdb/doc/gdbinit.5
 d606e873666ae0bc7bc7c84d6c9c2332  gdb/doc/Doxyfile-gdb-xref.in
 705bf0b3fb65b3f7e3db4cc5d9ae8eba  gdb/doc/annotate.texinfo
 79278fc2f5486809779a9a8f8883d401  gdb/doc/doxy-index.in
@@ -4794,7 +4794,7 @@ e5c081bec329720b4c0d37fb1bf8adae  gdb/p-
 f1679b5d9950d66febb8259748700963  gdb/std-regs.c
 9da9e540b1c6970695a3161272737803  gdb/go-lang.h
 23e51b25e50614cfba06a52e405e2243  gdb/i386-windows-nat.c
-4f704935739edc30703e0e23524e043d  gdb/po/gdb.pot
+e3cd22afc2ddd3d7ff31fdd55cf1a8e5  gdb/po/gdb.pot
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
 30821c78a3fca620918958301a2f928c  gdb/ada-lang.c
 5e0c6b053fd9575dde3084e69835d9c3  gdb/dcache.h
@@ -4820,7 +4820,7 @@ b21eb0affa9c0fa159d8dc3a1483410e  gdb/jv
 32bb803ab1e68860f1402dbe7e2cb0f5  gdb/nbsd-nat.h
 83df4734061e07b644f77632819578cf  gdb/mipsread.c
 f5c872d4805a7ac039b4dfc840f4bb8a  gdb/amd64-darwin-tdep.c
-e5534643a68e4ec463d9891023f8b59f  gdb/ChangeLog
+682df8676124c4276084e1eb9107965c  gdb/ChangeLog
 5a1dbe4837b41ee2b9cc7a35e0d20a61  gdb/go-typeprint.c
 c6de4736a691dfc690f55e7b69880511  gdb/score-tdep.c
 5a44fd4377f0804008a3697e72efbfe3  gdb/xml-support.h
@@ -4835,7 +4835,7 @@ f96422d3bd13c79b9a6dd3568e6af6bf  gdb/cp
 1de2e2c8bd6fc22a95d8484cbf584e4d  gdb/process_reply.defs
 c82adf482d45beaf8c4a392417752d37  gdb/amd64-windows-nat.c
 dded71f6f4dcda3d409ba83627d0b860  gdb/ctf.c
-05d6badb0429009cfe3849e54e54b71e  gdb/remote.c
+ff9583c992595355b63aea54b99059e5  gdb/remote.c
 609e4b3af097ae017c962a8f2d57f359  gdb/mipsnbsd-nat.c
 389761a7a837eecddc6e4e779ea852ff  gdb/hppaobsd-tdep.c
 ff627da30eaccd64c9bc469b136a5986  gdb/inf-child.h
@@ -5153,7 +5153,7 @@ c181758754cd0b8d7733fa82d4aaba3a  gdb/go
 06d492ab5c9dbaa82b38193b83bc2e44  gdb/m88kbsd-nat.c
 ca9158e7ede27a090a3228b2965721fb  gdb/glibc-tdep.h
 9ec89fc9f02b1bcf2e0cbf717337c91a  gdb/macroexp.h
-4a6be4c02b4ac75ffd1c45c48a3c9778  gdb/linux-nat.c
+56544fc259eadb7415a71f3e75bc130b  gdb/linux-nat.c
 232fae6c14bb330d684a735fbd258bdf  gdb/ppcfbsd-tdep.c
 72c2a6c8c1d784dedb9da73e84229cab  gdb/sh-tdep.h
 be04f4bf35ddca6beee6d0ad2b02bb72  gdb/top.h
