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.
This commit is contained in:
Mike Frysinger 2021-10-04 02:11:21 -04:00
parent 51911bd6e9
commit adc82fdb71

View file

@ -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;