aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2021-01-03 02:52:11 -0500
committerMike Frysinger <vapier@gentoo.org>2021-01-04 17:41:23 -0500
commit19b1c38562f49ed79e57385e8a2cb7ab72b60a2e (patch)
tree0e857449c158c880d8d251aa440c42d70ff03dca
parentdbed468bcb8dc3c85fcf30ebae7ba67cbe7dc19c (diff)
downloadgdb-19b1c38562f49ed79e57385e8a2cb7ab72b60a2e.zip
gdb-19b1c38562f49ed79e57385e8a2cb7ab72b60a2e.tar.gz
gdb-19b1c38562f49ed79e57385e8a2cb7ab72b60a2e.tar.bz2
sim: common: add a version output helper w/copyright+license info
This mirrors the existing sim_print_help function, and the behavior of all other GNU tools with their --version.
-rw-r--r--sim/common/ChangeLog6
-rw-r--r--sim/common/sim-options.c22
-rw-r--r--sim/common/sim-options.h4
3 files changed, 31 insertions, 1 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
index e815aea..0b1c666 100644
--- a/sim/common/ChangeLog
+++ b/sim/common/ChangeLog
@@ -1,5 +1,11 @@
2021-01-04 Mike Frysinger <vapier@gentoo.org>
+ * sim-options.c (standard_option_handler): Call sim_print_version.
+ (sim_print_version): New function.
+ * sim-options.h (sim_print_version): New prototype.
+
+2021-01-04 Mike Frysinger <vapier@gentoo.org>
+
* sim-config.c (print_sim_config): Rename to ...
(sim_print_config): ... this.
* sim-config.h: Likewise.
diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c
index 3064dfc..1d8abda 100644
--- a/sim/common/sim-options.c
+++ b/sim/common/sim-options.c
@@ -388,7 +388,7 @@ standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
break;
case OPTION_VERSION:
- sim_io_printf (sd, "GNU simulator %s%s\n", PKGVERSION, version);
+ sim_print_version (sd, is_command);
if (STATE_OPEN_KIND (sd) == SIM_OPEN_STANDALONE)
exit (0);
break;
@@ -817,6 +817,26 @@ sim_print_help (SIM_DESC sd, int is_command)
}
}
+/* Print version information. */
+
+void
+sim_print_version (SIM_DESC sd, int is_command)
+{
+ sim_io_printf (sd, "GNU simulator %s%s\n", PKGVERSION, version);
+
+ sim_io_printf (sd, "Copyright (C) 2021 Free Software Foundation, Inc.\n");
+
+ /* Following the copyright is a brief statement that the program is
+ free software, that users are free to copy and change it on
+ certain conditions, that it is covered by the GNU GPL, and that
+ there is no warranty. */
+
+ sim_io_printf (sd, "\
+License GPLv3+: GNU GPL version 3 or later <https://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.\n");
+}
+
/* Utility of sim_args_command to find the closest match for a command.
Commands that have "-" in them can be specified as separate words.
e.g. sim memory-region 0x800000,0x4000
diff --git a/sim/common/sim-options.h b/sim/common/sim-options.h
index 0f3f3c0..84eb3d8 100644
--- a/sim/common/sim-options.h
+++ b/sim/common/sim-options.h
@@ -141,6 +141,10 @@ SIM_RC sim_parse_args (SIM_DESC sd, char * const *argv);
this function is called from the command line interpreter. */
void sim_print_help (SIM_DESC sd, int is_command);
+/* Print version information for the program. IS_COMMAND is non-zero when
+ this function is called from the command line interpreter. */
+void sim_print_version (SIM_DESC sd, int is_command);
+
/* Try to parse the command as if it is an option, Only fail when
totally unsuccessful */
SIM_RC sim_args_command (SIM_DESC sd, const char *cmd);