* bucomm.c (bfd_nonfatal): Flush stdout before output to stderr.
(bfd_nonfatal_message, report, list_matching_formats): Likewise. (list_supported_targets): Tidy. * objdump.c (free_only_list): Formatting. (slurp_dynamic_symtab): Non-zero exit status for "not a dynamic object". (update_source_path): Delete redundant check for NULL filename. (disassemble_bytes): Error if disassemble_fn returns a value that won't increment address. (disassemble_data): Don't capitalize error message. (read_section_stabs): Likewise. (main): Return non-zero exit status on bad options.
This commit is contained in:
parent
ea65fe05d0
commit
a8c62f1c04
3 changed files with 44 additions and 15 deletions
|
@ -1,3 +1,18 @@
|
||||||
|
2010-10-05 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* bucomm.c (bfd_nonfatal): Flush stdout before output to stderr.
|
||||||
|
(bfd_nonfatal_message, report, list_matching_formats): Likewise.
|
||||||
|
(list_supported_targets): Tidy.
|
||||||
|
* objdump.c (free_only_list): Formatting.
|
||||||
|
(slurp_dynamic_symtab): Non-zero exit status for "not a dynamic
|
||||||
|
object".
|
||||||
|
(update_source_path): Delete redundant check for NULL filename.
|
||||||
|
(disassemble_bytes): Error if disassemble_fn returns a value
|
||||||
|
that won't increment address.
|
||||||
|
(disassemble_data): Don't capitalize error message.
|
||||||
|
(read_section_stabs): Likewise.
|
||||||
|
(main): Return non-zero exit status on bad options.
|
||||||
|
|
||||||
2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
|
2010-10-03 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR binutils/12088
|
PR binutils/12088
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* bucomm.c -- Bin Utils COMmon code.
|
/* bucomm.c -- Bin Utils COMmon code.
|
||||||
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002,
|
Copyright 1991, 1992, 1993, 1994, 1995, 1997, 1998, 2000, 2001, 2002,
|
||||||
2003, 2005, 2006, 2007, 2008, 2009
|
2003, 2005, 2006, 2007, 2008, 2009, 2010
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of GNU Binutils.
|
This file is part of GNU Binutils.
|
||||||
|
@ -52,8 +52,10 @@ char *program_name;
|
||||||
void
|
void
|
||||||
bfd_nonfatal (const char *string)
|
bfd_nonfatal (const char *string)
|
||||||
{
|
{
|
||||||
const char *errmsg = bfd_errmsg (bfd_get_error ());
|
const char *errmsg;
|
||||||
|
|
||||||
|
fflush (stdout);
|
||||||
|
errmsg = bfd_errmsg (bfd_get_error ());
|
||||||
if (string)
|
if (string)
|
||||||
fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg);
|
fprintf (stderr, "%s: %s: %s\n", program_name, string, errmsg);
|
||||||
else
|
else
|
||||||
|
@ -78,10 +80,13 @@ bfd_nonfatal_message (const char *filename,
|
||||||
const asection *section,
|
const asection *section,
|
||||||
const char *format, ...)
|
const char *format, ...)
|
||||||
{
|
{
|
||||||
const char *errmsg = bfd_errmsg (bfd_get_error ());
|
const char *errmsg;
|
||||||
const char *section_name = NULL;
|
const char *section_name;
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
|
fflush (stdout);
|
||||||
|
errmsg = bfd_errmsg (bfd_get_error ());
|
||||||
|
section_name = NULL;
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
fprintf (stderr, "%s", program_name);
|
fprintf (stderr, "%s", program_name);
|
||||||
|
|
||||||
|
@ -116,6 +121,7 @@ bfd_fatal (const char *string)
|
||||||
void
|
void
|
||||||
report (const char * format, va_list args)
|
report (const char * format, va_list args)
|
||||||
{
|
{
|
||||||
|
fflush (stdout);
|
||||||
fprintf (stderr, "%s: ", program_name);
|
fprintf (stderr, "%s: ", program_name);
|
||||||
vfprintf (stderr, format, args);
|
vfprintf (stderr, format, args);
|
||||||
putc ('\n', stderr);
|
putc ('\n', stderr);
|
||||||
|
@ -165,6 +171,7 @@ set_default_bfd_target (void)
|
||||||
void
|
void
|
||||||
list_matching_formats (char **p)
|
list_matching_formats (char **p)
|
||||||
{
|
{
|
||||||
|
fflush (stdout);
|
||||||
fprintf (stderr, _("%s: Matching formats:"), program_name);
|
fprintf (stderr, _("%s: Matching formats:"), program_name);
|
||||||
while (*p)
|
while (*p)
|
||||||
fprintf (stderr, " %s", *p++);
|
fprintf (stderr, " %s", *p++);
|
||||||
|
@ -177,13 +184,14 @@ void
|
||||||
list_supported_targets (const char *name, FILE *f)
|
list_supported_targets (const char *name, FILE *f)
|
||||||
{
|
{
|
||||||
int t;
|
int t;
|
||||||
const char **targ_names = bfd_target_list ();
|
const char **targ_names;
|
||||||
|
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
fprintf (f, _("Supported targets:"));
|
fprintf (f, _("Supported targets:"));
|
||||||
else
|
else
|
||||||
fprintf (f, _("%s: supported targets:"), name);
|
fprintf (f, _("%s: supported targets:"), name);
|
||||||
|
|
||||||
|
targ_names = bfd_target_list ();
|
||||||
for (t = 0; targ_names[t] != NULL; t++)
|
for (t = 0; targ_names[t] != NULL; t++)
|
||||||
fprintf (f, " %s", targ_names[t]);
|
fprintf (f, " %s", targ_names[t]);
|
||||||
fprintf (f, "\n");
|
fprintf (f, "\n");
|
||||||
|
|
|
@ -393,7 +393,8 @@ free_only_list (void)
|
||||||
{
|
{
|
||||||
if (! at_least_one_seen)
|
if (! at_least_one_seen)
|
||||||
{
|
{
|
||||||
non_fatal (_("Section '%s' mentioned in a -j option, but not found in any input file"),
|
non_fatal (_("section '%s' mentioned in a -j option, "
|
||||||
|
"but not found in any input file"),
|
||||||
only->name);
|
only->name);
|
||||||
exit_status = 1;
|
exit_status = 1;
|
||||||
}
|
}
|
||||||
|
@ -555,6 +556,7 @@ slurp_dynamic_symtab (bfd *abfd)
|
||||||
if (!(bfd_get_file_flags (abfd) & DYNAMIC))
|
if (!(bfd_get_file_flags (abfd) & DYNAMIC))
|
||||||
{
|
{
|
||||||
non_fatal (_("%s: not a dynamic object"), bfd_get_filename (abfd));
|
non_fatal (_("%s: not a dynamic object"), bfd_get_filename (abfd));
|
||||||
|
exit_status = 1;
|
||||||
dynsymcount = 0;
|
dynsymcount = 0;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1210,9 +1212,6 @@ update_source_path (const char *filename)
|
||||||
const char *fname;
|
const char *fname;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if (filename == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
p = try_print_file_open (filename, filename);
|
p = try_print_file_open (filename, filename);
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
return p;
|
return p;
|
||||||
|
@ -1626,10 +1625,16 @@ disassemble_bytes (struct disassemble_info * inf,
|
||||||
inf->stream = stdout;
|
inf->stream = stdout;
|
||||||
if (insn_width == 0 && inf->bytes_per_line != 0)
|
if (insn_width == 0 && inf->bytes_per_line != 0)
|
||||||
octets_per_line = inf->bytes_per_line;
|
octets_per_line = inf->bytes_per_line;
|
||||||
if (octets < 0)
|
if (octets < (int) opb)
|
||||||
{
|
{
|
||||||
if (sfile.pos)
|
if (sfile.pos)
|
||||||
printf ("%s\n", sfile.buffer);
|
printf ("%s\n", sfile.buffer);
|
||||||
|
if (octets >= 0)
|
||||||
|
{
|
||||||
|
non_fatal (_("disassemble_fn returned length %d"),
|
||||||
|
octets);
|
||||||
|
exit_status = 1;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2107,7 +2112,7 @@ disassemble_data (bfd *abfd)
|
||||||
const bfd_arch_info_type *inf = bfd_scan_arch (machine);
|
const bfd_arch_info_type *inf = bfd_scan_arch (machine);
|
||||||
|
|
||||||
if (inf == NULL)
|
if (inf == NULL)
|
||||||
fatal (_("Can't use supplied machine %s"), machine);
|
fatal (_("can't use supplied machine %s"), machine);
|
||||||
|
|
||||||
abfd->arch_info = inf;
|
abfd->arch_info = inf;
|
||||||
}
|
}
|
||||||
|
@ -2126,7 +2131,7 @@ disassemble_data (bfd *abfd)
|
||||||
aux.disassemble_fn = disassembler (abfd);
|
aux.disassemble_fn = disassembler (abfd);
|
||||||
if (!aux.disassemble_fn)
|
if (!aux.disassemble_fn)
|
||||||
{
|
{
|
||||||
non_fatal (_("Can't disassemble for architecture %s\n"),
|
non_fatal (_("can't disassemble for architecture %s\n"),
|
||||||
bfd_printable_arch_mach (bfd_get_arch (abfd), 0));
|
bfd_printable_arch_mach (bfd_get_arch (abfd), 0));
|
||||||
exit_status = 1;
|
exit_status = 1;
|
||||||
return;
|
return;
|
||||||
|
@ -2396,11 +2401,11 @@ read_section_stabs (bfd *abfd, const char *sect_name, bfd_size_type *size_ptr)
|
||||||
|
|
||||||
if (! bfd_get_section_contents (abfd, stabsect, contents, 0, size))
|
if (! bfd_get_section_contents (abfd, stabsect, contents, 0, size))
|
||||||
{
|
{
|
||||||
non_fatal (_("Reading %s section of %s failed: %s"),
|
non_fatal (_("reading %s section of %s failed: %s"),
|
||||||
sect_name, bfd_get_filename (abfd),
|
sect_name, bfd_get_filename (abfd),
|
||||||
bfd_errmsg (bfd_get_error ()));
|
bfd_errmsg (bfd_get_error ()));
|
||||||
free (contents);
|
|
||||||
exit_status = 1;
|
exit_status = 1;
|
||||||
|
free (contents);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3350,7 +3355,7 @@ main (int argc, char **argv)
|
||||||
endian = BFD_ENDIAN_LITTLE;
|
endian = BFD_ENDIAN_LITTLE;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
non_fatal (_("unrecognized -E option"));
|
nonfatal (_("unrecognized -E option"));
|
||||||
usage (stderr, 1);
|
usage (stderr, 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -3362,6 +3367,7 @@ main (int argc, char **argv)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
non_fatal (_("unrecognized --endian type `%s'"), optarg);
|
non_fatal (_("unrecognized --endian type `%s'"), optarg);
|
||||||
|
exit_status = 1;
|
||||||
usage (stderr, 1);
|
usage (stderr, 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue