From adc82fdb715184fa8e9acf47179e67acc82b8375 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Mon, 4 Oct 2021 02:11:21 -0400 Subject: [PATCH] sim: add --info-target for listing supported BFD targets 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(+) diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c index e6d1107f7c5..e82ac33fe76 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; -- 2.30.2