* objdump.c (main) :Accept multiple -M switch.
* doc/binutils.texi: Document that multiple -M switches are accepted and that a single -M switch can contain comma separated options. * arm-dis.c (parse_arm_disassembler_option): Do not expect option string to be NUL terminated. (parse_disassembler_options): Allow options to be space or comma separated.
This commit is contained in:
parent
278a7cf7f0
commit
31e0f3cd45
5 changed files with 37 additions and 33 deletions
|
@ -1,3 +1,10 @@
|
|||
2003-07-18 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* objdump.c (main) :Accept multiple -M switch.
|
||||
* doc/binutils.texi: Document that multiple -M switches are
|
||||
accepted and that a single -M switch can contain comma
|
||||
separated options.
|
||||
|
||||
2003-07-17 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* objdump.c (main): Issue a warning message if multiple -M
|
||||
|
|
|
@ -1625,15 +1625,9 @@ architectures with the @option{-i} option.
|
|||
@item -M @var{options}
|
||||
@itemx --disassembler-options=@var{options}
|
||||
Pass target specific information to the disassembler. Only supported on
|
||||
some targets. Note only a single instance of the option on the
|
||||
command line is supported. If the option occurs more than once, the
|
||||
earlier versions will be ignored. If it is necessary to specify more
|
||||
than one disassembler option then they should be placed together into
|
||||
a space separated list. ie:
|
||||
|
||||
@smallexample
|
||||
-M"first-disassembler-option second-disassembler-option"
|
||||
@end smallexample
|
||||
some targets. If it is necessary to specify more than one
|
||||
disassembler option then multiple @option{-M} options can be used or
|
||||
can be placed together into a comma separated list.
|
||||
|
||||
If the target is an ARM architecture then this switch can be used to
|
||||
select which register name set is used during disassembler. Specifying
|
||||
|
|
|
@ -2661,12 +2661,10 @@ main (argc, argv)
|
|||
break;
|
||||
case 'M':
|
||||
if (disassembler_options)
|
||||
{
|
||||
non_fatal ("multiple separate -M options are not supported.");
|
||||
non_fatal ("please combine them into a single, space separated option.");
|
||||
non_fatal ("ignoring option '-M%s'", disassembler_options);
|
||||
}
|
||||
disassembler_options = optarg;
|
||||
/* Ignore potential memory leak for now. */
|
||||
disassembler_options = concat (disassembler_options, ",", optarg, NULL);
|
||||
else
|
||||
disassembler_options = optarg;
|
||||
break;
|
||||
case 'j':
|
||||
if (only == NULL)
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
2003-07-18 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* arm-dis.c (parse_arm_disassembler_option): Do not expect
|
||||
option string to be NUL terminated.
|
||||
(parse_disassembler_options): Allow options to be space or
|
||||
comma separated.
|
||||
|
||||
2003-07-17 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* po/es.po: New Spanish translation.
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "coff/internal.h"
|
||||
#include "libcoff.h"
|
||||
#include "opintl.h"
|
||||
#include "safe-ctype.h"
|
||||
|
||||
/* FIXME: This shouldn't be done here. */
|
||||
#include "elf-bfd.h"
|
||||
|
@ -1152,51 +1153,48 @@ parse_arm_disassembler_option (option)
|
|||
option += 10;
|
||||
|
||||
for (i = NUM_ARM_REGNAMES; i--;)
|
||||
if (streq (option, regnames[i].name))
|
||||
if (strneq (option, regnames[i].name, strlen (regnames[i].name)))
|
||||
{
|
||||
regname_selected = i;
|
||||
break;
|
||||
}
|
||||
|
||||
if (i < 0)
|
||||
/* XXX - should break 'option' at following delimiter. */
|
||||
fprintf (stderr, _("Unrecognised register name set: %s\n"), option);
|
||||
}
|
||||
else if (streq (option, "force-thumb"))
|
||||
else if (strneq (option, "force-thumb", 11))
|
||||
force_thumb = 1;
|
||||
else if (streq (option, "no-force-thumb"))
|
||||
else if (strneq (option, "no-force-thumb", 14))
|
||||
force_thumb = 0;
|
||||
else
|
||||
/* XXX - should break 'option' at following delimiter. */
|
||||
fprintf (stderr, _("Unrecognised disassembler option: %s\n"), option);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* Parse the string of disassembler options, spliting it at whitespaces. */
|
||||
/* Parse the string of disassembler options, spliting it at whitespaces
|
||||
or commas. (Whitespace separators supported for backwards compatibility). */
|
||||
|
||||
static void
|
||||
parse_disassembler_options (options)
|
||||
char * options;
|
||||
{
|
||||
char * space;
|
||||
|
||||
if (options == NULL)
|
||||
return;
|
||||
|
||||
do
|
||||
while (*options)
|
||||
{
|
||||
space = strchr (options, ' ');
|
||||
parse_arm_disassembler_option (options);
|
||||
|
||||
if (space)
|
||||
{
|
||||
* space = '\0';
|
||||
parse_arm_disassembler_option (options);
|
||||
* space = ' ';
|
||||
options = space + 1;
|
||||
}
|
||||
else
|
||||
parse_arm_disassembler_option (options);
|
||||
/* Skip forward to next seperator. */
|
||||
while ((*options) && (! ISSPACE (*options)) && (*options != ','))
|
||||
++ options;
|
||||
/* Skip forward past seperators. */
|
||||
while (ISSPACE (*options) || (*options == ','))
|
||||
++ options;
|
||||
}
|
||||
while (space);
|
||||
}
|
||||
|
||||
/* NOTE: There are no checks in these routines that
|
||||
|
|
Loading…
Reference in a new issue