sim: add --info-target for listing supported BFD targets

Message ID 20211004062039.7431-1-vapier@gentoo.org
State New
Headers show
Series
  • sim: add --info-target for listing supported BFD targets
Related show

Commit Message

Philippe Waroquiers via Gdb-patches Oct. 4, 2021, 6:20 a.m.
It can be difficult to guess the exact bfd name, so add an option to
list all the targets that the current build supports.  This aligns with
other simulator options like --info-architecture.
---
 sim/common/sim-options.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

-- 
2.33.0

Patch

diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c
index e6d1107f7c55..e82ac33fe764 100644
--- a/sim/common/sim-options.c
+++ b/sim/common/sim-options.c
@@ -93,6 +93,7 @@  typedef enum {
   OPTION_DO_COMMAND,
   OPTION_ARCHITECTURE,
   OPTION_TARGET,
+  OPTION_TARGET_INFO,
   OPTION_ARCHITECTURE_INFO,
   OPTION_ENVIRONMENT,
   OPTION_ALIGNMENT,
@@ -161,6 +162,10 @@  static const OPTION standard_options[] =
   { {"target", required_argument, NULL, OPTION_TARGET},
       '\0', "BFDNAME", "Specify the object-code format for the object files",
       standard_option_handler },
+  { {"target-info", no_argument, NULL, OPTION_TARGET_INFO},
+      '\0', NULL, "List supported targets", standard_option_handler },
+  { {"info-target", no_argument, NULL, OPTION_TARGET_INFO},
+      '\0', NULL, NULL, standard_option_handler },
 
   { {"load-lma", no_argument, NULL, OPTION_LOAD_LMA},
       '\0', NULL,
@@ -365,6 +370,20 @@  standard_option_handler (SIM_DESC sd, sim_cpu *cpu, int opt,
 	break;
       }
 
+    case OPTION_TARGET_INFO:
+      {
+	const char **list = bfd_target_list ();
+	const char **lp;
+	if (list == NULL)
+	  abort ();
+	sim_io_printf (sd, "Possible targets:");
+	for (lp = list; *lp != NULL; lp++)
+	  sim_io_printf (sd, " %s", *lp);
+	sim_io_printf (sd, "\n");
+	free (list);
+	break;
+      }
+
     case OPTION_LOAD_LMA:
       {
 	STATE_LOAD_AT_LMA_P (sd) = 1;