* ieee.c: Likewise.
* is-ranlib.c: Likewise.
* is-strip.c: Likewise.
* maybe-ranlib.c: Likewise.
* maybe-strip.c: Likewise.
* nlmconv.c: Likewise.
* nm.c: Likewise.
* not-ranlib.c: Likewise.
* not-strip.c: Likewise.
* objcopy.c: Likewise.
* objdump.c: Likewise.
+2002-05-21 Kazu Hirata <kazu@cs.umass.edu>
+
+ * filemode.c: Fix formatting.
+ * ieee.c: Likewise.
+ * is-ranlib.c: Likewise.
+ * is-strip.c: Likewise.
+ * maybe-ranlib.c: Likewise.
+ * maybe-strip.c: Likewise.
+ * nlmconv.c: Likewise.
+ * nm.c: Likewise.
+ * not-ranlib.c: Likewise.
+ * not-strip.c: Likewise.
+ * objcopy.c: Likewise.
+ * objdump.c: Likewise.
+
2002-05-21 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
* objdump.c (dump_headers): Fix output formatting for ELF32
9 'x' if any user may execute, 't' if the file is "sticky"
(will be retained in swap space after execution), '-'
otherwise.
- 'T' if the file is sticky but not executable. */
+ 'T' if the file is sticky but not executable. */
#if 0
#endif
/* Like filemodestring, but only the relevant part of the `struct stat'
- is given as an argument. */
+ is given as an argument. */
void
mode_string (mode, str)
'l' for symbolic links
's' for sockets
'p' for fifos
- '-' for any other file type. */
+ '-' for any other file type. */
#ifndef S_ISDIR
#ifdef S_IFDIR
}
/* Set the 's' and 't' flags in file attributes string CHARS,
- according to the file mode BITS. */
+ according to the file mode BITS. */
static void
setst (bits, chars)
if (bits & S_ISUID)
{
if (chars[3] != 'x')
- /* Set-uid, but not executable by owner. */
+ /* Set-uid, but not executable by owner. */
chars[3] = 'S';
else
chars[3] = 's';
if (bits & S_ISGID)
{
if (chars[6] != 'x')
- /* Set-gid, but not executable by group. */
+ /* Set-gid, but not executable by group. */
chars[6] = 'S';
else
chars[6] = 's';
if (bits & S_ISVTX)
{
if (chars[9] != 'x')
- /* Sticky, but not executable by others. */
+ /* Sticky, but not executable by others. */
chars[9] = 'T';
else
chars[9] = 't';
}
/* Read a number in an IEEE file. If ppresent is not NULL, the number
- need not be there. */
+ need not be there. */
static boolean
ieee_read_optional_number (info, pp, pv, ppresent)
case 2:
/* BB2: Global type definitions. The name is supposed to be
- empty, but we don't check. */
+ empty, but we don't check. */
if (! debug_set_filename (info->dhandle, "*global*"))
return false;
info->saw_filename = true;
/* If we were ignoring this struct definition because it was a
duplicate defintion, just through away whatever bytes we have
- accumulated. Leave the type on the stack. */
+ accumulated. Leave the type on the stack. */
if (info->type_stack->type.ignorep)
return true;
if (! nt->type.localp)
{
/* This is a duplicate of a global type, so it must be
- local. */
+ local. */
localp = true;
}
}
-/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */
+/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */
int is_ranlib = 1;
/* Linked with objcopy.o to flag that this program is 'strip' (not
- 'objcopy'). */
+ 'objcopy'). */
int is_strip = 1;
/* Linked with ar.o to flag that this program decides at runtime
- (using argv[0] if it is is 'ar' or 'ranlib'. */
+ (using argv[0] if it is is 'ar' or 'ranlib'. */
int is_ranlib = -1;
/* Linked with objcopy.o to flag that this program decides at runtime
- (using argv[0] if it is is 'strip' or 'objcopy'. */
+ (using argv[0] if it is is 'strip' or 'objcopy'. */
int is_strip = -1;
sym->section = got_sec->output_section;
}
#endif
- }
+ }
/* If this is a global symbol, check the export list. */
if ((sym->flags & (BSF_EXPORT | BSF_GLOBAL)) != 0)
non_fatal (_("warning: symbol %s imported but not in import list"),
bfd_asymbol_name (sym));
}
-
+
/* See if it's one of the special named symbols. */
if ((sym->flags & BSF_DEBUGGING) == 0)
{
}
bfd_set_symtab (outbfd, outsyms, symcount + newsymcount);
-
+
if (! gotstart)
non_fatal (_("warning: START procedure %s not defined"), start_procedure);
if (! gotexit)
item->next = powerpc_stubs;
powerpc_stubs = item;
-
+
++stubcount;
}
reloc->address = l->toc_index + got_sec->output_offset;
reloc->addend = 0;
reloc->howto = bfd_reloc_type_lookup (inbfd, BFD_RELOC_32);
-
+
*r++ = reloc;
}
if (optarg != NULL)
{
enum demangling_styles style;
-
+
style = cplus_demangle_name_to_style (optarg);
- if (style == unknown_demangling)
+ if (style == unknown_demangling)
fatal (_("unknown demangling style `%s'"),
optarg);
-
+
cplus_demangle_set_style (style);
- }
+ }
break;
case 'D':
dynamic = 1;
asymbol *sym;
PROGRESS (1);
-
+
sym = bfd_minisymbol_to_symbol (abfd, dynamic, (const PTR) from, store);
if (sym == NULL)
bfd_fatal (bfd_get_filename (abfd));
/* Print the symbols when sorting by size. */
-static void
+static void
print_size_symbols (abfd, dynamic, symsizes, symcount, archive_bfd)
bfd *abfd;
boolean dynamic;
-/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */
+/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */
int is_ranlib = 0;
/* Linked with objcopy.o to flag that this program is 'objcopy' (not
- 'strip'). */
+ 'strip'). */
int is_strip = 0;
/* A list of symbols to explicitly strip out, or to keep. A linked
list is good enough for a small number from the command line, but
this will slow things down a lot if many symbols are being
- deleted. */
+ deleted. */
struct symlist
{
static int copy_byte = -1;
static int interleave = 4;
-static boolean verbose; /* Print file and target names. */
+static boolean verbose; /* Print file and target names. */
static boolean preserve_dates; /* Preserve input file timestamp. */
static int status = 0; /* Exit status. */
STRIP_ALL /* strip all symbols */
};
-/* Which symbols to remove. */
+/* Which symbols to remove. */
static enum strip_action strip_symbols;
enum locals_action
/* This flag distinguishes between strip and objcopy:
1 means this is 'strip'; 0 means this is 'objcopy'.
- -1 means if we should use argv[0] to decide. */
+ -1 means if we should use argv[0] to decide. */
extern int is_strip;
/* The maximum length of an S record. This variable is declared in srec.c
*list = tmp_list;
}
-/* Add symbols listed in `filename' to strip_specific_list. */
+/* Add symbols listed in `filename' to strip_specific_list. */
#define IS_WHITESPACE(c) ((c) == ' ' || (c) == '\t')
#define IS_LINE_TERMINATOR(c) ((c) == '\n' || (c) == '\r' || (c) == '\0')
char * line;
char * buffer;
unsigned int line_count;
-
+
if (stat (filename, & st) < 0)
fatal (_("cannot stat: %s: %s"), filename, strerror (errno));
if (st.st_size == 0)
buffer [st.st_size + 1] = '\0';
line_count = 1;
-
+
for (line = buffer; * line != '\0'; line ++)
{
char * eol;
++ eol;
finished = true;
break;
-
+
case '\r':
* eol = '\0';
/* Cope with \r\n. */
++ eol;
finished = true;
break;
-
+
case 0:
finished = true;
break;
-
+
case '#':
/* Line comment, Terminate the line here, in case a
name is present and then allow the rest of the
loop to find the real end of the line. */
* eol = '\0';
break;
-
+
default:
break;
}
for (name_end = name;
(! IS_WHITESPACE (* name_end))
&& (! IS_LINE_TERMINATOR (* name_end));
- name_end ++)
- ;
+ name_end ++)
+ ;
if (! IS_LINE_TERMINATOR (* name_end))
{
non_fatal (_("Ignoring rubbish found on line %d of %s"),
line_count, filename);
}
-
+
* name_end = '\0';
if (name_end > name)
&& ((*bfd_get_section (sym)->symbol_ptr_ptr)->flags
& BSF_KEEP) != 0))
keep = 1;
- else if (relocatable /* Relocatable file. */
+ else if (relocatable /* Relocatable file. */
&& (flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
keep = 1;
else if (bfd_decode_symclass (sym) == 'I')
start = bfd_get_start_address (ibfd);
start += change_start;
- /* Neither the start address nor the flags
- need to be set for a core file. */
+ /* Neither the start address nor the flags
+ need to be set for a core file. */
if (bfd_get_format (obfd) != bfd_core)
{
if (!bfd_set_start_address (obfd, start)
size + (gap_stop - gap_start)))
{
non_fatal (_("Can't fill gap after %s: %s"),
- bfd_get_section_name (obfd, osections[i]),
- bfd_errmsg (bfd_get_error ()));
+ bfd_get_section_name (obfd, osections[i]),
+ bfd_errmsg (bfd_get_error ()));
status = 1;
break;
}
pad_to - lma))
{
non_fatal (_("Can't add padding to %s: %s"),
- bfd_get_section_name (obfd, osections[c - 1]),
- bfd_errmsg (bfd_get_error ()));
+ bfd_get_section_name (obfd, osections[c - 1]),
+ bfd_errmsg (bfd_get_error ()));
status = 1;
}
else
if (!bfd_close (output_bfd))
{
bfd_nonfatal (bfd_get_filename (output_bfd));
- /* Error in new object file. Don't change archive. */
+ /* Error in new object file. Don't change archive. */
status = 1;
}
if (strcmp (rename->new_name, new_name) == 0
&& rename->flags == flags)
return;
-
+
fatal (_("Multiple renames of section %s"), old_name);
}
rename->new_name = new_name;
rename->flags = flags;
rename->next = section_rename_list;
-
+
section_rename_list = rename;
}
flagword flags;
const char *err;
const char * name;
-
+
if ((bfd_get_section_flags (ibfd, isection) & SEC_DEBUGGING) != 0
&& (strip_symbols == STRIP_DEBUG
|| strip_symbols == STRIP_UNNEEDED
/* Get the, possibly new, name of the output section. */
name = find_section_rename (ibfd, isection, & flags);
-
+
osection = bfd_make_section_anyway (obfd, name);
if (osection == NULL)
if (size == 0 || osection == 0)
return;
- /* Core files do not need to be relocated. */
+ /* Core files do not need to be relocated. */
if (bfd_get_format (obfd) == bfd_core)
relsize = 0;
else
if (strip_symbols == STRIP_ALL)
{
/* Remove relocations which are not in
- keep_strip_specific_list. */
+ keep_strip_specific_list. */
arelent **temp_relpp;
long temp_relcount = 0;
long i;
isection->_cooked_size = isection->_raw_size;
isection->reloc_done = true;
- if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS
+ if (bfd_get_section_flags (ibfd, isection) & SEC_HAS_CONTENTS
&& bfd_get_section_flags (obfd, osection) & SEC_HAS_CONTENTS)
{
PTR memhunk = (PTR) xmalloc ((unsigned) size);
fatal (_("byte number must be non-negative"));
break;
- case 'B':
- binary_architecture = optarg;
- break;
+ case 'B':
+ binary_architecture = optarg;
+ break;
case 'i':
interleave = atoi (optarg);
set_start_set = true;
break;
- case OPTION_SREC_LEN:
- Chunk = parse_vma (optarg, "--srec-len");
- break;
+ case OPTION_SREC_LEN:
+ Chunk = parse_vma (optarg, "--srec-len");
+ break;
- case OPTION_SREC_FORCES3:
+ case OPTION_SREC_FORCES3:
S3Forced = true;
- break;
+ break;
case OPTION_STRIP_SYMBOLS:
add_specific_symbols (optarg, &strip_specific_list);
if (binary_architecture != (char *) NULL)
{
if (input_target && strcmp (input_target, "binary") == 0)
- {
- const bfd_arch_info_type * temp_arch_info;
+ {
+ const bfd_arch_info_type * temp_arch_info;
temp_arch_info = bfd_scan_arch (binary_architecture);
- if (temp_arch_info != NULL)
- bfd_external_binary_architecture = temp_arch_info->arch;
- else
- fatal (_("architecture %s unknown"), binary_architecture);
- }
+ if (temp_arch_info != NULL)
+ bfd_external_binary_architecture = temp_arch_info->arch;
+ else
+ fatal (_("architecture %s unknown"), binary_architecture);
+ }
else
{
non_fatal (_("Warning: input target 'binary' required for binary architecture parameter."));
/* Filter out (in place) symbols that are useless for disassembly.
COUNT is the number of elements in SYMBOLS.
- Return the number of useful symbols. */
+ Return the number of useful symbols. */
static long
remove_useless_symbols (symbols, count)
/* Sort symbols into value order. */
-static int
+static int
compare_symbols (ap, bp)
const PTR ap;
const PTR bp;
long min = 0;
long max = sorted_symcount;
long thisplace;
- unsigned int opb = bfd_octets_per_byte (abfd);
+ unsigned int opb = bfd_octets_per_byte (abfd);
if (sorted_symcount < 1)
return NULL;
/* If the file is relocateable, and the symbol could be from this
section, prefer a symbol from this section over symbols from
others, even if the other symbol's value might be closer.
-
+
Note that this may be wrong for some symbol references if the
sections have overlapping memory ranges, but in that case there's
no way to tell what's desired without looking at the relocation
if (strchr (buf, '\n') != NULL)
++p->line;
}
-}
+}
/* Show the line number, or the source line, in a dissassembly
listing. */
p->next = print_files;
print_files = p;
- if (file_start_context)
- l = 0;
- else
- l = line - SHOW_PRECEDING_CONTEXT_LINES;
+ if (file_start_context)
+ l = 0;
+ else
+ l = line - SHOW_PRECEDING_CONTEXT_LINES;
if (l < 0)
l = 0;
skip_to_line (p, l, false);
/* Disassemble some data in memory between given values. */
static void
-disassemble_bytes (info, disassemble_fn, insns, data,
- start_offset, stop_offset, relppp,
+disassemble_bytes (info, disassemble_fn, insns, data,
+ start_offset, stop_offset, relppp,
relppend)
struct disassemble_info *info;
disassembler_ftype disassemble_fn;
&& (info->insn_info_valid == 0
|| info->branch_delay_insns == 0)
&& (z - addr_offset * opb >= SKIP_ZEROES
- || (z == stop_offset * opb &&
- z - addr_offset * opb < SKIP_ZEROES_AT_END)))
+ || (z == stop_offset * opb &&
+ z - addr_offset * opb < SKIP_ZEROES_AT_END)))
{
printf ("\t...\n");
}
if ((section->flags & SEC_RELOC) != 0
-#ifndef DISASSEMBLER_NEEDS_RELOCS
- && dump_reloc_info
+#ifndef DISASSEMBLER_NEEDS_RELOCS
+ && dump_reloc_info
#endif
)
{
disasm_info.mach = bfd_get_mach (abfd);
disasm_info.disassembler_options = disassembler_options;
disasm_info.octets_per_byte = opb;
-
+
if (bfd_big_endian (abfd))
disasm_info.display_endian = disasm_info.endian = BFD_ENDIAN_BIG;
else if (bfd_little_endian (abfd))
continue;
if ((section->flags & SEC_RELOC) != 0
-#ifndef DISASSEMBLER_NEEDS_RELOCS
+#ifndef DISASSEMBLER_NEEDS_RELOCS
&& dump_reloc_info
#endif
- )
+ )
{
long relsize;
asymbol *nextsym;
unsigned long nextstop_offset;
boolean insns;
-
+
if (sym != NULL && bfd_asymbol_value (sym) <= section->vma + addr_offset)
{
int x;
false);
printf (":\n");
}
-
+
if (sym != NULL && bfd_asymbol_value (sym) > section->vma + addr_offset)
nextsym = sym;
else if (sym == NULL)
else
nextsym = sorted_syms[place];
}
-
+
if (sym != NULL && bfd_asymbol_value (sym) > section->vma + addr_offset)
{
nextstop_offset = bfd_asymbol_value (sym) - section->vma;
if (nextstop_offset > stop_offset)
nextstop_offset = stop_offset;
}
-
+
/* If a symbol is explicitly marked as being an object
rather than a function, just dump the bytes without
disassembling them. */
insns = true;
else
insns = false;
-
- disassemble_bytes (&disasm_info, disassemble_fn, insns, data,
- addr_offset, nextstop_offset, &relpp, relppend);
-
+
+ disassemble_bytes (&disasm_info, disassemble_fn, insns, data,
+ addr_offset, nextstop_offset, &relpp, relppend);
+
addr_offset = nextstop_offset;
sym = nextsym;
}
-
+
free (data);
if (relbuf != NULL)
free (relbuf);
exit_status = 1;
return false;
}
-
+
stab_size = bfd_section_size (abfd, stabsect);
stabstr_size = bfd_section_size (abfd, stabstrsect);
stabs = (bfd_byte *) xmalloc (stab_size);
strtab = (char *) xmalloc (stabstr_size);
-
+
if (! bfd_get_section_contents (abfd, stabsect, (PTR) stabs, 0, stab_size))
{
non_fatal (_("Reading %s section of %s failed: %s"),
printf ("\n%-6d ", i);
/* Either print the stab name, or, if unnamed, print its number
- again (makes consistent formatting for tools like awk). */
+ again (makes consistent formatting for tools like awk). */
name = bfd_get_stab_name (type);
if (name != NULL)
printf ("%-6s", name);
if (stop_offset > bfd_section_size (abfd, section) / opb)
stop_offset = bfd_section_size (abfd, section) / opb;
}
- for (addr_offset = start_offset;
- addr_offset < stop_offset; addr_offset += onaline)
+ for (addr_offset = start_offset;
+ addr_offset < stop_offset; addr_offset += onaline)
{
bfd_size_type j;
- printf (" %04lx ", (unsigned long int)
- (addr_offset + section->vma));
- for (j = addr_offset * opb;
- j < addr_offset * opb + onaline; j++)
+ printf (" %04lx ", (unsigned long int)
+ (addr_offset + section->vma));
+ for (j = addr_offset * opb;
+ j < addr_offset * opb + onaline; j++)
{
if (j < stop_offset * opb)
printf ("%02x", (unsigned) (data[j]));
enum demangling_styles style;
style = cplus_demangle_name_to_style (optarg);
- if (style == unknown_demangling)
+ if (style == unknown_demangling)
fatal (_("unknown demangling style `%s'"),
optarg);
cplus_demangle_set_style (style);
- }
+ }
break;
case 'w':
wide_output = true;
show_version = true;
seenflag = true;
break;
-
+
default:
usage (stderr, 1);
}