diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a3a133c036..7f5bbe9a7c 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@
+2018-05-11  Tom Tromey  <tom@tromey.com>
+
+	* cli/cli-cmds.c (show_version): Update.
+	* top.c (print_gdb_version): Add "interactive" parameter.
+	Update.
+	* main.c (captured_main_1): Update.
+	* top.h (print_gdb_version): Add "interactive" parameter and a
+	comment.
+
 2018-05-11  Max Filippov  <jcmvbkbc@gmail.com>
 
 	* configure.tgt (xtensa*-*-linux*): Drop gdb_target definition.
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 95bd58ce54..5c5d6dc456 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -315,7 +315,7 @@ is_complete_command (struct cmd_list_element *c)
 static void
 show_version (const char *args, int from_tty)
 {
-  print_gdb_version (gdb_stdout);
+  print_gdb_version (gdb_stdout, true);
   printf_filtered ("\n");
 }
 
diff --git a/gdb/main.c b/gdb/main.c
index 189266f90e..9694af2426 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -918,7 +918,7 @@ captured_main_1 (struct captured_main_args *context)
 
   if (print_version)
     {
-      print_gdb_version (gdb_stdout);
+      print_gdb_version (gdb_stdout, false);
       wrap_here ("");
       printf_filtered ("\n");
       exit (0);
@@ -947,7 +947,7 @@ captured_main_1 (struct captured_main_args *context)
     {
       /* Print all the junk at the top, with trailing "..." if we are
          about to read a symbol file (possibly slowly).  */
-      print_gdb_version (gdb_stdout);
+      print_gdb_version (gdb_stdout, true);
       if (symarg)
 	printf_filtered ("..");
       wrap_here ("");
@@ -968,7 +968,7 @@ captured_main_1 (struct captured_main_args *context)
     {
       /* Print all the junk at the top, with trailing "..." if we are
          about to read a symbol file (possibly slowly).  */
-      print_gdb_version (gdb_stdout);
+      print_gdb_version (gdb_stdout, true);
       if (symarg)
 	printf_filtered ("..");
       wrap_here ("");
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 9fc54c0001..22a4ce50e2 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2018-05-11  Tom Tromey  <tom@tromey.com>
+
+	* gdb.base/default.exp: Update expected "show version" output.
+
 2018-05-08  Andrew Burgess  <andrew.burgess@embecosm.com>
 
 	* gdb.arch/amd64-init-x87-values.S: New file.
diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp
index 689d3abf93..c6a2ed8fdc 100644
--- a/gdb/testsuite/gdb.base/default.exp
+++ b/gdb/testsuite/gdb.base/default.exp
@@ -686,7 +686,7 @@ gdb_test_no_output "show values" "show values"
 #test show verbose
 gdb_test "show verbose" "Verbose printing of informational messages is o.*|Verbosity is off.*" "show verbose"
 #test show version
-gdb_test "show version" "GNU gdb \[0-9\.\]*(\[^\r\n\]*\[\r\n\])+Copyright \\(C\\) \[0-9\]* Free Software Foundation, Inc(\[^\r\n\]*\[\r\n\])+License GPLv3\\+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>(\[^\r\n\]*\[\r\n\])+This is free software: you are free to change and redistribute it.(\[^\r\n\]*\[\r\n\])+There is NO WARRANTY, to the extent permitted by law.  Type \"show copying\"(\[^\r\n\]*\[\r\n\])+and \"show warranty\" for details..*" "show version" 
+gdb_test "show version" "GNU gdb \[0-9\.\]*(\[^\r\n\]*\[\r\n\])+Copyright \\(C\\) \[0-9\]* Free Software Foundation, Inc(\[^\r\n\]*\[\r\n\])+License GPLv3\\+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>(\[^\r\n\]*\[\r\n\])+This is free software: you are free to change and redistribute it.(\[^\r\n\]*\[\r\n\])+There is NO WARRANTY, to the extent permitted by law.(\[^\r\n\]*\[\r\n\])+Type \"show copying\" and \"show warranty\" for details..*" "show version" 
 #test show width
 gdb_test "show width" "Number of characters gdb thinks are in a line is.*" "show width"
 #test show write
diff --git a/gdb/top.c b/gdb/top.c
index 07b386dacb..6983bfcedc 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1278,9 +1278,9 @@ command_line_input (const char *prompt_arg, int repeat,
   return cmd;
 }
 
-/* Print the GDB banner.  */
+/* See top.h.  */
 void
-print_gdb_version (struct ui_file *stream)
+print_gdb_version (struct ui_file *stream, bool interactive)
 {
   /* From GNU coding standards, first line is meant to be easy for a
      program to parse, and is just canonical program name and version
@@ -1301,8 +1301,11 @@ print_gdb_version (struct ui_file *stream)
   fprintf_filtered (stream, "\
 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\
 \nThis is free software: you are free to change and redistribute it.\n\
-There is NO WARRANTY, to the extent permitted by law.  Type \"show copying\"\n\
-and \"show warranty\" for details.\n");
+There is NO WARRANTY, to the extent permitted by law.\n");
+
+    if (interactive)
+      fprintf_filtered (stream, ("Type \"show copying\" and "
+				 "\"show warranty\" for details.\n"));
 
   /* After the required info we print the configuration information.  */
 
@@ -1316,21 +1319,28 @@ and \"show warranty\" for details.\n");
     {
       fprintf_filtered (stream, "%s", host_name);
     }
-  fprintf_filtered (stream, "\".\n\
-Type \"show configuration\" for configuration details.");
+  fprintf_filtered (stream, "\".\n");
+
+  if (interactive)
+    fprintf_filtered (stream, _("Type \"show configuration\" "
+				"for configuration details.\n"));
 
   if (REPORT_BUGS_TO[0])
     {
       fprintf_filtered (stream,
-			_("\nFor bug reporting instructions, please see:\n"));
+			_("For bug reporting instructions, please see:\n"));
       fprintf_filtered (stream, "%s.\n", REPORT_BUGS_TO);
     }
   fprintf_filtered (stream,
 		    _("Find the GDB manual and other documentation \
-resources online at:\n<http://www.gnu.org/software/gdb/documentation/>.\n"));
-  fprintf_filtered (stream, _("For help, type \"help\".\n"));
-  fprintf_filtered (stream, _("Type \"apropos word\" to search for \
+resources online at:\n<http://www.gnu.org/software/gdb/documentation/>."));
+  if (interactive)
+    {
+      fprintf_filtered (stream, "\n\n");
+      fprintf_filtered (stream, _("For help, type \"help\".\n"));
+      fprintf_filtered (stream, _("Type \"apropos word\" to search for \
 commands related to \"word\"."));
+    }
 }
 
 /* Print the details of GDB build-time configuration.  */
diff --git a/gdb/top.h b/gdb/top.h
index d54b6f15c4..b34defa1f2 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -222,7 +222,13 @@ extern int confirm;
 extern int inhibit_gdbinit;
 extern const char gdbinit[];
 
-extern void print_gdb_version (struct ui_file *);
+/* Print the GDB version banner to STREAM.  If INTERACTIVE is false,
+   then information referring to commands (e.g., "show configuration")
+   is omitted; this mode is used for the --version command line
+   option.  If INTERACTIVE is true, then interactive commands are
+   mentioned.  */
+extern void print_gdb_version (struct ui_file *stream, bool interactive);
+
 extern void print_gdb_configuration (struct ui_file *);
 
 extern void read_command_file (FILE *);
