+2015-07-27  Patrick Palka  <patrick@parcs.ath.cx>
+
+       * event-top.c (handle_sigterm): Don't inspect
+       target_can_async_p.  Always set the quit flag and always mark
+       the async signal handler.
+
 2015-07-27  Yao Qi  <yao.qi@linaro.org>
 
        * Makefile.in (REMOTE_EXAMPLES): Remove it.
 
 {
   signal (sig, handle_sigterm);
 
-  /* Call quit_force in a signal safe way.
-     quit_force itself is not signal safe.  */
-  if (target_can_async_p ())
-    mark_async_signal_handler (async_sigterm_token);
-  else
-    {
-      sync_quit_force_run = 1;
-      set_quit_flag ();
-    }
+  sync_quit_force_run = 1;
+  set_quit_flag ();
+
+  mark_async_signal_handler (async_sigterm_token);
 }
 
 /* Do the quit.  All the checks have been done by the caller.  */
 
--- /dev/null
+# This testcase is part of GDB, the GNU debugger.
+#
+# Copyright 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/>.
+
+# Check that GDB promptly quits after receiving a SIGTERM while no proper
+# target is active.
+
+gdb_start
+
+set gdb_pid [exp_pid -i [board_info host fileid]]
+remote_exec host "kill -TERM $gdb_pid"
+
+set test "expect eof"
+gdb_test_multiple "" $test {
+    -timeout 5
+    eof {
+       pass $test
+    }
+}