Organization Tag Organization Name
---------------- -----------------
-csl CodeSourcery, LLC
+csl CodeSourcery, LLC
This table lists branches created by particular organizations. Please
include the branch name, and a description of the branch. The branch
description should name the owner of the branch (i.e., the person to
contact regarding the branch) and a description of the commit policy
for the branch (e.g., "no commits without permission of X or Y").
-
+
Organization Branches Description
--------------------- -----------
binutils-csl-arm-2005q1-branch
* srconv.c (usage): Likewise.
* strings.c (usage): Likewise.
* windres.c (usage): Likewise.
- * doc/binutils.texi: Add section on common options.
+ * doc/binutils.texi: Add section on common options.
2005-10-03 H.J. Lu <hongjiu.lu@intel.com>
* sysdump.c (main): Likewise.
* sysinfo.y (main): Likewise.
* windres.c (main): Likewise.
-
+
2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am: Run "make dep-am".
of each copied archive element, otherwise force them to be one
specific file format.
(copy_file): Compute force_output_target parameter to pass to
- copy_archive.
+ copy_archive.
2006-09-05 Nick Clifton <nickc@redhat.com>
Nigel Stephens <nigel@mips.com>
* readelf.c (dump_relocations): Handle MIPS-specific
- SHN_MIPS_SCOMMON and SHN_MIPS_SUNDEFINED.
+ SHN_MIPS_SCOMMON and SHN_MIPS_SUNDEFINED.
(get_symbol_index_type): Similarly.
2006-07-24 Ralk Wildenhues <Ralf.Wildenhues@gmx.de>
* readelf.c (arm_attr_tag_ABI_FP_16bit_format): New.
(arm_attr_tag_VFP_HP_extension): New.
(arm_attr_public_tag arm_attr_public_tags): Support
- new attributes.
+ new attributes.
2008-11-17 Nick Clifton <nickc@redhat.com>
2008-07-15 H.J. Lu <hongjiu.lu@intel.com>
- * objdump.c (load_debug_section): Initialize section_is_compressed
+ * objdump.c (load_debug_section): Initialize section_is_compressed
for gcc 3.4/ia64.
* readelf.c (load_debug_section): Likewise.
(is_32bit_abs_reloc): Add support for xc16c 32-bit absolute reloc.
(is_16bit_abs_reloc): Add support for xc16c 16-bit absolute reloc.
(is_none_reloc): Add support for xc16c null reloc.
-
+
2009-11-20 Ben Elliston <bje@au.ibm.com>
* Makefile.am (syslex.o): Use $(NO_WERROR) not -Wno-error.
x86_64 H.J. Lu <hjl.tools@gmail.com>
XCOFF Richard Sandiford <r.sandiford@uk.ibm.com>
XGATE Sean Keys <skeys@ipdatasys.com>
- Xtensa Sterling Augustine <augustine.sterling@gmail.com>
+ Xtensa Sterling Augustine <augustine.sterling@gmail.com>
z80 Arnold Metselaar <arnold.metselaar@planet.nl>
z8k Christian Groessler <chris@groessler.org>
* Add new option --use-nul-prefixed-import-tables to dlltool to allow fall-
back to old import table generation with null element prefix.
-* Added --identify-strict switch to cause --identify <implib> to
+* Added --identify-strict switch to cause --identify <implib> to
report an error when the import library is associated with
multiple DLLs.
object files rather than the files themselves and which contain a
flattened symbol index for all objects, and archives, which have been
added to the archive.
-
+
* Added -F switch to objdump to include file offsets in the disassembly.
* Added -c switch to readelf to allow string dumps of archive symbol index.
* Add "--globalize-symbol <name>" and "--globalize-symbols <filename>" switches
to objcopy to convert local symbols into global symbols.
-
+
* gprof now allows input files to have histogram records for
- several memory ranges, provided those ranges are disjoint.
+ several memory ranges, provided those ranges are disjoint.
Changes in 2.16:
* objcopy now accepts --add-gnu-debuglink=<file> to insert a .gnu_debuglink
section into a (presumably stripped) executable. This allows the debug
information for the file to be held in a separate file.
-
+
* BFD marks the sections .comment and .note as 'n' in the BSD/POSIX
single-character representation. This can be checked by running nm
with the -a switch.
which they are built. When doing cross development, use the --target
configure option to specify a different target, eg:
- ./configure --target=foo-elf
+ ./configure --target=foo-elf
The --enable-targets option adds support for more binary file formats
besides the default. List them as the argument to --enable-targets,
bfd_get_filename (arch));
goto bloser;
}
- }
+ }
last_one = &(arch->archive_next);
/* Read all the contents right away, regardless. */
#ifndef YY_NO_UNPUT
#define YY_NO_UNPUT
#endif
-
+
extern int yylex (void);
int linenumber;
"(" { return '('; }
")" { return ')'; }
"," { return ','; }
-[A-Za-z0-9/\\$:.\-\_]+ {
+[A-Za-z0-9/\\$:.\-\_]+ {
yylval.name = xstrdup (yytext);
return FILENAME;
}
"*".* { }
";".* { }
" " { }
-"\n" { linenumber ++; return NEWLINE; }
+"\n" { linenumber ++; return NEWLINE; }
%%
#ifndef yywrap
%token SAVE
%token OPEN
-%type <list> modulelist
+%type <list> modulelist
%type <list> modulename
%type <name> optional_filename
%%
;
command:
- open_command
- | create_command
+ open_command
+ | create_command
| verbose_command
| directory_command
| addlib_command
{ ar_extract($2); }
;
-replace_command:
+replace_command:
REPLACE modulename
{ ar_replace($2); }
;
-
+
clear_command:
CLEAR
{ ar_clear(); }
{ ar_addmod($2); }
;
-list_command:
+list_command:
LIST
{ ar_list(); }
;
-save_command:
+save_command:
SAVE
{ ar_save(); }
;
open_command:
- OPEN FILENAME
+ OPEN FILENAME
{ ar_open($2,0); }
;
create_command:
- CREATE FILENAME
+ CREATE FILENAME
{ ar_open($2,1); }
;
;
modulelist:
- '(' modulename ')'
+ '(' modulename ')'
{ $$ = $2; }
|
{ $$ = 0; }
modulename:
modulename optcomma FILENAME
{ struct list *n = (struct list *) malloc(sizeof(struct list));
- n->next = $1;
+ n->next = $1;
n->name = $3;
$$ = n;
}
| { $$ = 0; }
;
-
+
optcomma:
','
|
;
-
-
+
+
verbose_command:
- VERBOSE
+ VERBOSE
{ verbose = !verbose; }
;
section_name = NULL;
va_start (args, format);
fprintf (stderr, "%s", program_name);
-
+
if (abfd)
{
if (!filename)
get_file_size (const char * file_name)
{
struct stat statbuf;
-
+
if (stat (file_name, &statbuf) < 0)
{
if (errno == ENOENT)
else
non_fatal (_("Warning: could not locate '%s'. reason: %s"),
file_name, strerror (errno));
- }
+ }
else if (! S_ISREG (statbuf.st_mode))
non_fatal (_("Warning: '%s' is not an ordinary file"), file_name);
else if (statbuf.st_size < 0)
size_t needed;
assert (abfd != NULL);
-
+
if (!abfd->my_archive)
return bfd_get_filename (abfd);
non_fatal (_("%s: is not a COFF format file"), bfd_get_filename (abfd));
return NULL;
}
-
+
storage = bfd_get_symtab_upper_bound (abfd);
if (storage < 0)
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3 of the License, or
dnl (at your option) any later version.
-dnl
+dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
-dnl
+dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; see the file COPYING3. If not see
dnl <http://www.gnu.org/licenses/>.
$! This file configures binutils for use with openVMS/Alpha
$! We do not use the configure script, since we do not have /bin/sh
$! to execute it.
-$!
+$!
$! Copyright (C) 2012-2015 Free Software Foundation, Inc.
$!
$! This file is free software; you can redistribute it and/or modify
$! it under the terms of the GNU General Public License as published by
$! the Free Software Foundation; either version 3 of the License, or
$! (at your option) any later version.
-$!
+$!
$! This program is distributed in the hope that it will be useful,
$! but WITHOUT ANY WARRANTY; without even the implied warranty of
$! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
$! GNU General Public License for more details.
-$!
+$!
$! You should have received a copy of the GNU General Public License
$! along with this program; see the file COPYING3. If not see
$! <http://www.gnu.org/licenses/>.
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
case "${targ}" in
powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
- targ_emul=aix
- targ_emul_vector=bin_aix_emulation
+ targ_emul=aix
+ targ_emul_vector=bin_aix_emulation
;;
powerpc-*-aix4.3* | rs6000-*-aix4.3*)
- targ_emul=aix
- targ_emul_vector=bin_aix_emulation
+ targ_emul=aix
+ targ_emul_vector=bin_aix_emulation
;;
*)
- targ_emul=vanilla
- targ_emul_vector=bin_vanilla_emulation
+ targ_emul=vanilla
+ targ_emul_vector=bin_vanilla_emulation
;;
esac
%{/* deflex.l - Lexer for .def files */
/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
-
+
This file is part of GNU Binutils.
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
"TERMINSTANCE" { return TERMINSTANCE;}
"TERMGLOBAL" { return TERMGLOBAL;}
-[0-9][x0-9A-Fa-f]* { yylval.number = strtol (yytext,0,0);
+[0-9][x0-9A-Fa-f]* { yylval.number = strtol (yytext,0,0);
return NUMBER; }
-(@)?[A-Za-z$:\-\_?][A-Za-z0-9/$:\<\>\-\_@?]* {
+(@)?[A-Za-z$:\-\_?][A-Za-z0-9/$:\<\>\-\_@?]* {
yylval.id = xstrdup (yytext);
return ID;
}
%{ /* defparse.y - parser for .def files */
/* Copyright (C) 1995-2015 Free Software Foundation, Inc.
-
+
This file is part of GNU Binutils.
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
| command
;
-command:
+command:
NAME opt_name opt_base { def_name ($2, $3); }
| LIBRARY opt_name opt_base option_list { def_library ($2, $3); }
- | EXPORTS explist
+ | EXPORTS explist
| DESCRIPTION ID { def_description ($2);}
| STACKSIZE NUMBER opt_number { def_stacksize ($2, $3);}
| HEAPSIZE NUMBER opt_number { def_heapsize ($2, $3);}
opt_import_name
{ def_exports ($1, $2, $3, $4, $5, $6, $7, $8);}
;
-implist:
+implist:
implist impline
| impline
;
opt_comma:
','
- |
+ |
;
opt_number: ',' NUMBER { $$=$2;}
| { $$=-1;}
;
-
+
attr:
READ { $$ = 1; }
| WRITE { $$ = 2; }
$$ = name;
}
| '.' opt_name2
- {
+ {
char *name = xmalloc (strlen ($2) + 2);
sprintf (name, ".%s", $2);
$$ = name;
}
| keyword_as_name '.' opt_name2
- {
+ {
char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
sprintf (name, "%s.%s", $1, $3);
$$ = name;
}
| ID '.' opt_name2
- {
+ {
char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
sprintf (name, "%s.%s", $1, $3);
$$ = name;
| { $$=""; }
;
-opt_ordinal:
+opt_ordinal:
'@' NUMBER { $$=$2;}
| { $$=-1;}
;
opt_equal_name:
'=' opt_name2 { $$ = $2; }
- | { $$ = 0; }
+ | { $$ = 0; }
;
opt_base: BASE '=' NUMBER { $$= $3;}
{
dll_name_list_node_type * head;
dll_name_list_node_type * tail;
-} dll_name_list_type;
+} dll_name_list_type;
/* Types used to pass data to iterator functions. */
typedef struct symname_search_data_t
{
dll_name_list_type * list;
bfd_boolean ms_style_implib;
-} identify_data_type;
+} identify_data_type;
static char *head_label;
#endif
/* What's the right name for this ? */
-#define PATHMAX 250
+#define PATHMAX 250
/* External name alias numbering starts here. */
#define PREFIX_ALIAS_BASE 20000
static bfd_vma ppc_glue_insn = 0x80410004;
#endif
-static const char i386_trampoline[] =
+static const char i386_trampoline[] =
"\tpushl %%ecx\n"
"\tpushl %%edx\n"
"\tpushl %%eax\n"
"\tpopl %%ecx\n"
"\tjmp *%%eax\n";
-static const char i386_x64_trampoline[] =
+static const char i386_x64_trampoline[] =
"\tpushq %%rcx\n"
"\tpushq %%rdx\n"
"\tpushq %%r8\n"
if (image_basename != name)
non_fatal (_("%s: Path components stripped from image name, '%s'."),
def_file, name);
- /* Append the default suffix, if none specified. */
+ /* Append the default suffix, if none specified. */
if (strchr (image_basename, '.') == 0)
{
const char * suffix = is_dll ? ".dll" : ".exe";
fatal (_("Unable to open temporary assembler file: %s"), TMP_ASM);
temp_file_to_remove[TEMP_EXPORT_FILE] = TMP_ASM;
-
+
/* xgettext:c-format */
inform (_("Opened temporary file: %s"), TMP_ASM);
{
si->data = xmalloc (4);
si->size = 4;
-
+
if (exp->noname)
{
si->data[0] = exp->ordinal ;
/* xgettext:c-format */
fatal (_("bfd_open failed reopen stub file: %s: %s"),
outname, bfd_get_errmsg ());
-
+
return abfd;
}
inform (_("Creating library file: %s"), imp_name);
xatexit (unlink_temp_files);
-
+
bfd_set_format (outarch, bfd_archive);
outarch->has_armap = 1;
outarch->is_thin_archive = 0;
/* Count the number of entries in list. */
-static int
+static int
dll_name_list_count (dll_name_list_type * list)
{
dll_name_list_node_type * p;
/* Print each entry in list to stdout. */
-static void
+static void
dll_name_list_print (dll_name_list_type * list)
{
dll_name_list_node_type * p;
/* Recursive function to free all nodes entry->next->next...
as well as entry itself. */
-static void
+static void
dll_name_list_free_contents (dll_name_list_node_type * entry)
{
if (entry)
/* Allocate and initialize a dll_name_list_type object,
including its sentinel node. Caller is responsible
- for calling dll_name_list_free when finished with
+ for calling dll_name_list_free when finished with
the list. */
static dll_name_list_type *
OBJ (where obj is cast to const char *). If found, set global variable
identify_member_contains_symname_result TRUE. It is the caller's
responsibility to set the result variable FALSE before iterating with
- this function. */
+ this function. */
-static void
+static void
identify_member_contains_symname (bfd * abfd,
bfd * archive_bfd ATTRIBUTE_UNUSED,
void * obj)
of all sections which meet the criteria to a linked list of dll names.
Finally, print them all to stdout. (If --identify-strict, an error is
- reported if more than one match was found). */
+ reported if more than one match was found). */
-static void
+static void
identify_dll_for_implib (void)
{
bfd * abfd = NULL;
(void *)(& search_data));
if (search_data.found)
identify_data.ms_style_implib = TRUE;
-
+
/* Rewind the bfd. */
if (! bfd_close (abfd))
bfd_fatal (identify_imp_name);
fatal (_("%s is not a library"), identify_imp_name);
}
-
+
/* Now search for the dll name. */
identify_search_archive (abfd,
identify_search_member,
/* Loop over all members of the archive, applying the supplied function to
each member that is a bfd_object. The function will be called as if:
- func (member_bfd, abfd, user_storage) */
+ func (member_bfd, abfd, user_storage) */
static void
-identify_search_archive (bfd * abfd,
+identify_search_archive (bfd * abfd,
void (* operation) (bfd *, bfd *, void *),
void * user_storage)
{
}
/* Call the identify_search_section() function for each section of this
- archive member. */
+ archive member. */
static void
identify_search_member (bfd *abfd,
/* This predicate returns true if section->name matches the desired value.
By default, this is .idata$7 (.idata$6 on PPC, or if the import
- library is ms-style). */
+ library is ms-style). */
static bfd_boolean
identify_process_section_p (asection * section, bfd_boolean ms_style_implib)
".idata$7";
#endif
static const char * MS_SECTION_NAME = ".idata$6";
-
+
const char * section_name =
(ms_style_implib ? MS_SECTION_NAME : SECTION_NAME);
-
+
if (strcmp (section_name, section->name) == 0)
return TRUE;
return FALSE;
/* Use a heuristic to determine if data is a dll name.
Possible to defeat this if (a) the library has MANY
- (more than 0x302f) imports, (b) it is an ms-style
+ (more than 0x302f) imports, (b) it is an ms-style
import library, but (c) it is buggy, in that the SEC_DATA
flag is set on the "wrong" sections. This heuristic might
also fail to record a valid dll name if the dllname uses
{
/* If we are inferring dll_name from exp_name,
strip off any path components, without emitting
- a warning. */
- const char* exp_basename = lbasename (exp_name);
+ a warning. */
+ const char* exp_basename = lbasename (exp_name);
const int len = strlen (exp_basename) + 5;
dll_name = xmalloc (len);
strcpy (dll_name, exp_basename);
{
fprintf (file, _("Usage %s <option(s)> <object-file(s)>\n"), prog_name);
fprintf (file, _(" Generic options:\n"));
- fprintf (file, _(" @<file> Read options from <file>\n"));
+ fprintf (file, _(" @<file> Read options from <file>\n"));
fprintf (file, _(" --quiet, -q Work quietly\n"));
fprintf (file, _(" --verbose, -v Verbose\n"));
fprintf (file, _(" --version Print dllwrap version\n"));
/* Step 1. Call GCC/LD to create base relocation file. If using GCC, the
driver command line will look like the following:
-
+
% gcc -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
-
+
If the user does not specify a base name, create temporary one that
is deleted at exit. */
/* Step 2. generate the exp file by running dlltool.
dlltool command line will look like the following:
-
+
% dlltool -Wl,--dll --Wl,--base-file,foo.base [rest of command line]
-
+
If the user does not specify a base name, create temporary one that
is deleted at exit. */
row, ncols);
return 0;
}
-
+
if (do_display)
printf (_(" [%3d] 0x%s"),
i, dwarf_vmatoa64 (signature_high, signature_low,
/* Try to keep warning messages in sync with the program's normal output. */
fflush (stdout);
-
+
va_start (args, message);
fprintf (stderr, _("%s: Warning: "), program_name);
vfprintf (stderr, message, args);
name_len);
return NULL;
}
-
+
member_file_name = (char *) malloc (amt);
if (member_file_name == NULL)
{
unsigned char * index_buffer;
assert (sizeof_ar_index <= sizeof integer_buffer);
-
+
/* Check the size of the archive index. */
if (size < sizeof_ar_index)
{
error (_("Archive member uses long names, but no longname table found\n"));
return NULL;
}
-
+
arch->nested_member_origin = 0;
k = j = strtoul (arch->arhdr.ar_name + 1, &endp, 10);
if (arch->is_thin_archive && endp != NULL && * endp == ':')
error (_("Invalid Thin archive member name\n"));
return NULL;
}
-
+
/* This is a proxy for a member of a nested archive.
Find the name of the member in that archive. */
member_file_name = adjust_relative_path (arch->file_name,
nested_arch->file_name, member_name);
else
snprintf (name, len, "%s[%s(%s)]", arch->file_name,
- error_name, member_name);
+ error_name, member_name);
}
else if (arch->is_thin_archive)
snprintf (name, len, "%s[%s]", arch->file_name, member_name);
-#! /bin/sh
+#! /bin/sh
# Embed an SPU ELF executable into a PowerPC object file.
#
# Copyright (C) 2006-2015 Free Software Foundation, Inc.
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU General Public License
# along with this program; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
%{ /* mcparse.y -- parser for Windows mc files
Copyright (C) 2007-2015 Free Software Foundation, Inc.
-
+
Parser for Windows mc files
Written by Kai Tietz, Onevision.
-
+
This file is part of GNU Binutils.
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
{
const int max_len = NLM_MODULE_NAME_SIZE - 2;
const char * filename = lbasename (output_file);
-
+
len = strlen (filename);
if (len > max_len)
len = max_len;
(long) rel->address);
break;
}
-
+
assert (rel->howto->size == 2 && rel->howto->pcrel_offset);
val = bfd_get_32 (outbfd, (bfd_byte *) contents + rel->address);
val = ((val &~ rel->howto->dst_mask)
(long) rel->address);
break;
}
-
+
val = bfd_get_16 (outbfd,
(bfd_byte *) contents + rel->address);
val = ((val &~ rel->howto->dst_mask)
(long) rel->address);
break;
}
-
+
val = bfd_get_32 (outbfd,
(bfd_byte *) contents + rel->address);
val = ((val &~ rel->howto->dst_mask)
SYMCOUNT is the number of symbols in MINISYMS and SYNTH_COUNT
is the number of these that are synthetic. Synthetic symbols,
if any are present, always come at the end of the MINISYMS.
-
+
SIZE is the size of a symbol in MINISYMS. */
static void
non_fatal (_("%s: no symbols"), bfd_get_filename (abfd));
return;
}
-
+
if (show_synthetic && size == sizeof (asymbol *))
{
asymbol *synthsyms;
We need to be careful in how we match section names because of the support
for wildcard characters. For example suppose that the user has invoked
objcopy like this:
-
+
--set-section-flags .debug_*=debug
--set-section-flags .debug_str=readonly,debug
--change-section-address .debug_*ranges=0x1000
struct section_list *p;
/* assert ((context & ((1 << 7) - 1)) != 0); */
-
+
for (p = change_sections; p != NULL; p = p->next)
{
if (add)
_("can't dump section - it has no contents"));
continue;
}
-
+
bfd_size_type size = bfd_get_section_size (sec);
if (size == 0)
{
free (contents);
}
}
-
+
if (gnu_debuglink_filename != NULL)
{
/* PR 15125: Give a helpful warning message if
dump_sections = init_section_add (optarg, dump_sections,
"--dump-section");
break;
-
+
case OPTION_CHANGE_START:
change_start = parse_vma (optarg, "--change-start");
break;
relocations, debugging directives and more.
The flow of execution is as follows:
-
+
1. Command line arguments are checked for control switches and the
information to be displayed is selected.
-
+
2. Any remaining arguments are assumed to be object files, and they are
processed in order by display_bfd(). If the file is an archive each
of its elements is processed in turn.
-
+
3. The file's target architecture and binary file format are determined
by bfd_check_format(). If they are recognised, then dump_bfd() is
called.
sections have overlapping memory ranges, but in that case there's
no way to tell what's desired without looking at the relocation
table.
-
+
Also give the target a chance to reject symbols. */
want_section = (aux->require_sec
|| ((abfd->flags & HAS_RELOC) != 0
struct print_file_list *next;
const char *filename;
const char *modname;
- const char *map;
+ const char *map;
size_t mapsize;
- const char **linemap;
+ const char **linemap;
unsigned maxline;
unsigned last_line;
int first;
/* Precompute array of lines for a mapped file. */
-static const char **
-index_file (const char *map, size_t size, unsigned int *maxline)
+static const char **
+index_file (const char *map, size_t size, unsigned int *maxline)
{
const char *p, *lstart, *end;
int chars_per_line = 45; /* First iteration will use 40. */
unsigned int lineno;
- const char **linemap = NULL;
+ const char **linemap = NULL;
unsigned long line_map_size = 0;
-
+
lineno = 0;
lstart = map;
end = map + size;
- for (p = map; p < end; p++)
- {
- if (*p == '\n')
- {
- if (p + 1 < end && p[1] == '\r')
- p++;
- }
- else if (*p == '\r')
- {
+ for (p = map; p < end; p++)
+ {
+ if (*p == '\n')
+ {
+ if (p + 1 < end && p[1] == '\r')
+ p++;
+ }
+ else if (*p == '\r')
+ {
if (p + 1 < end && p[1] == '\n')
p++;
}
else
continue;
-
+
/* End of line found. */
- if (linemap == NULL || line_map_size < lineno + 1)
- {
+ if (linemap == NULL || line_map_size < lineno + 1)
+ {
unsigned long newsize;
chars_per_line -= line_map_decrease;
linemap = (const char **) xrealloc (linemap, newsize);
}
- linemap[lineno++] = lstart;
- lstart = p + 1;
+ linemap[lineno++] = lstart;
+ lstart = p + 1;
}
-
- *maxline = lineno;
+
+ *maxline = lineno;
return linemap;
}
free (p);
return NULL;
}
-
+
p->linemap = index_file (p->map, p->mapsize, &p->maxline);
p->last_line = 0;
p->filename = origname;
/* Print a source file line. */
-static void
+static void
print_line (struct print_file_list *p, unsigned int linenum)
{
const char *l;
size_t len;
-
- --linenum;
+
+ --linenum;
if (linenum >= p->maxline)
return;
l = p->linemap [linenum];
{
if (p->map == NULL)
return;
- while (start <= end)
+ while (start <= end)
{
print_line (p, start);
start++;
&& (prev_functionname == NULL
|| strcmp (functionname, prev_functionname) != 0))
printf ("%s():\n", functionname);
- if (linenumber > 0 && (linenumber != prev_line ||
+ if (linenumber > 0 && (linenumber != prev_line ||
(discriminator != prev_discriminator)))
- {
+ {
if (discriminator > 0)
printf ("%s:%u (discriminator %u)\n", filename == NULL ? "???" : filename,
linenumber, discriminator);
if (p != NULL && linenumber != p->last_line)
{
- if (file_start_context && p->first)
+ if (file_start_context && p->first)
l = 1;
- else
+ else
{
l = linenumber - SHOW_PRECEDING_CONTEXT_LINES;
- if (l >= linenumber)
+ if (l >= linenumber)
l = 1;
if (p->last_line >= l && p->last_line <= linenumber)
l = p->last_line + 1;
while (1)
{
size_t space = f->alloc - f->pos;
-
+
va_start (args, format);
n = vsnprintf (f->buffer + f->pos, space, format, args);
va_end (args);
if (space > n)
break;
-
+
f->alloc = (f->alloc + n) * 2;
f->buffer = (char *) xrealloc (f->buffer, f->alloc);
}
f->pos += n;
-
+
return n;
}
sfile.alloc = 120;
sfile.buffer = (char *) xmalloc (sfile.alloc);
sfile.pos = 0;
-
+
if (insn_width)
octets_per_line = insn_width;
else if (insns)
the boundaries between instructions. We only do this when
disassembling code of course, and when -D is in effect. */
inf->stop_vma = section->vma + stop_offset;
-
+
octets = (*disassemble_fn) (section->vma + addr_offset, inf);
inf->stop_vma = 0;
((SYM)->section == section \
&& (bfd_asymbol_value (SYM) > bfd_asymbol_value (sym)) \
&& pinfo->symbol_is_valid (SYM, pinfo))
-
+
/* Search forward for the next appropriate symbol in
SECTION. Note that all the symbols are sorted
together into one big array, and that some sections
disassemble_bytes (pinfo, paux->disassemble_fn, insns, data,
addr_offset, nextstop_offset,
rel_offset, &rel_pp, rel_ppend);
-
+
addr_offset = nextstop_offset;
sym = nextsym;
}
if (dump_dynamic_reloc_info)
{
long relsize = bfd_get_dynamic_reloc_upper_bound (abfd);
-
+
if (relsize < 0)
bfd_fatal (bfd_get_filename (abfd));
return 1;
section->reloc_info = NULL;
- section->num_relocs = 0;
+ section->num_relocs = 0;
section->address = bfd_get_section_vma (abfd, sec);
section->size = bfd_get_section_size (sec);
section->start = NULL;
section, abfd))
{
debug_displays [i].display (sec, abfd);
-
+
if (i != info && i != abbrev)
free_debug_section ((enum dwarf_section_display_enum) i);
}
if (strtab == NULL)
strtab = read_section_stabs (abfd, sought->string_section_name,
&stabstr_size);
-
+
if (strtab)
{
stabs = (bfd_byte *) read_section_stabs (abfd, section->name,
if (! process_section_p (section))
return;
-
+
if ((datasize = bfd_section_size (abfd, section)) == 0)
return;
if (start_offset >= stop_offset)
return;
-
+
printf (_("Contents of section %s:"), section->name);
if (display_file_offsets)
printf (_(" (Starting at file offset: 0x%lx)"),
info in the file, try DWARF instead. */
else if (! dump_dwarf_section_info)
{
- dwarf_select_sections_all ();
+ dwarf_select_sections_all ();
dump_dwarf (abfd);
}
}
++s;
while (ISSPACE (*s))
++s;
-
+
/* Check for #pragma code_page ( DEFAULT | <nr>). */
len = strlen (s);
mlen = strlen ("pragma");
c = -1;
}
while (c != -1);
-
+
if (rclex_peekch () == '"')
rclex_readch ();
else
/* Clear token. */
rclex_tok_pos = 0;
rclex_tok[0] = 0;
-
+
if ((ch = rclex_readch ()) == -1)
return -1;
if (ch == '\n')
cpp_line ();
ch = IGNORED_TOKEN;
break;
-
+
case '{':
ch = IGNORE_CPP (BEG);
break;
-
+
case '}':
ch = IGNORE_CPP (END);
break;
-
+
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
yylval.i.val = read_digit (ch);
base_style = BS_AUTO3STATE;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_AUTOCHECKBOX;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_AUTORADIOBUTTON;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_CHECKBOX | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = 0;
class.named = 0;
class.u.id = CTL_COMBOBOX;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = SS_CENTER;
class.named = 0;
class.u.id = CTL_STATIC;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_DEFPUSHBUTTON | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = BS_GROUPBOX;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = ES_LEFT | WS_BORDER | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_EDIT;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = LBS_NOTIFY | WS_BORDER;
class.named = 0;
class.u.id = CTL_LISTBOX;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = SS_LEFT;
class.named = 0;
class.u.id = CTL_STATIC;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_PUSHBUTTON | WS_TABSTOP;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = BS_RADIOBUTTON;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = SS_RIGHT;
class.named = 0;
class.u.id = CTL_STATIC;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
base_style = 0;
class.named = 0;
class.u.id = CTL_SCROLLBAR;
- res_text_field = res_null_text;
+ res_text_field = res_null_text;
}
control_params
{
base_style = BS_3STATE;
class.named = 0;
class.u.id = CTL_BUTTON;
- res_text_field = $2;
+ res_text_field = $2;
}
control_params
{
$$ = $4;
}
| USERBUTTON resref numexpr ',' numexpr ',' numexpr ','
- numexpr ',' numexpr ','
+ numexpr ',' numexpr ','
{ style = WS_CHILD | WS_VISIBLE; }
styleexpr optcnumexpr
{
/* Stringtable resources. */
stringtable:
- STRINGTABLE suboptions BEG
+ STRINGTABLE suboptions BEG
{ sub_res_info = $2; rcparse_rcdata (); }
string_data END { rcparse_normal (); }
;
verlen -= off;
stverlen -= off;
-
+
vst->strings = NULL;
ppvs = &vst->strings;
if (wrbfd)
{
struct bin_res_id bri;
-
+
windres_put_16 (wrbfd, bri.sig, 0xffff);
windres_put_16 (wrbfd, bri.id, id.u.id);
set_windres_bfd_content (wrbfd, &bri, off, BIN_RES_ID);
windres_put_32 (wrbfd, bdc.id, dc->id);
set_windres_bfd_content (wrbfd, &bdc, off, BIN_DIALOGEX_CONTROL_SIZE);
}
- }
+ }
off += (dialogex != 0 ? BIN_DIALOGEX_CONTROL_SIZE : BIN_DIALOG_CONTROL_SIZE);
off = resid_to_bin (wrbfd, off, dc->class);
this will have to be cleaned up. */
ret = read_coff_res_dir (&wrbfd, data, &flaginfo, (const rc_res_id *) NULL, 0);
-
+
bfd_close (abfd);
return ret;
default:
res_id_print (e, *type, 0);
break;
-
+
PRINT_RT_NAME(RT_MANIFEST);
PRINT_RT_NAME(RT_ANICURSOR);
PRINT_RT_NAME(RT_ANIICON);
indent (e, 2);
if (it->id.u.id == 0)
fprintf (e, "SEPARATOR\n");
- else
+ else
fprintf (e, "BUTTON %d\n", (int) it->id.u.id);
it = it->next;
}
int has_nl;
rc_uint_type c;
rc_uint_type i;
-
+
if (length <= 1)
return 0;
if (i < length)
fprintf (e, "\n");
}
-
+
if (i == 0)
{
indent (e, 2);
u = (const unichar *) &data[i];
indent (e, 2);
fprintf (e, "L\"");
-
+
for (c = 0; i < length && c < 160 && u[c] != '\n'; c++, i += 2)
;
if (i < length && u[c] == '\n')
{
rc_uint_type k;
rc_uint_type comment_start;
-
+
comment_start = i;
-
+
if (! first)
indent (e, 2);
if (wrbfd)
{
struct bin_res_info l;
-
+
windres_put_32 (wrbfd, l.version, info->version);
windres_put_16 (wrbfd, l.memflags, info->memflags);
windres_put_16 (wrbfd, l.language, info->language);
context for a function with no arguments. */
if (dc->u.s_binary.left == NULL)
break;
-
+
arg = stab_demangle_v3_arg (dhandle, info, dc->u.s_binary.left,
NULL, &varargs);
if (arg == NULL)
bfd_size_type *filesizep;
bfd_size_type sectsize;
void *mem;
-
+
if ((sect->flags & DATA_FLAGS) != DATA_FLAGS)
return;
sectsize = bfd_get_section_size (sect);
-
+
if (sectsize <= 0)
return;
if (*filesizep == 0)
{
struct stat st;
-
+
if (bfd_stat (abfd, &st))
return;
%union {
int i;
char *s;
-}
+}
%token COND
%token REPEAT
%token '(' ')'
%token <s> TYPE
%token <s> NAME
%token <i> NUMBER UNIT
-%type <i> attr_size
+%type <i> attr_size
%type <s> attr_desc attr_id attr_type
%%
{
case 'i':
printf("#ifdef SYSROFF_SWAP_IN\n");
- break;
+ break;
case 'p':
printf("#ifdef SYSROFF_p\n");
- break;
+ break;
case 'd':
break;
case 'g':
printf("#include <ansidecl.h>\n");
break;
}
- }
+ }
it_list {
switch (writecode) {
case 'i':
case 'g':
case 'c':
printf("#endif\n");
- break;
+ break;
case 'd':
break;
}
;
it:
- '(' NAME NUMBER
+ '(' NAME NUMBER
{
it = $2; code = $3;
- switch (writecode)
+ switch (writecode)
{
case 'd':
printf("\n\n\n#define IT_%s_CODE 0x%x\n", it,code);
printf("\tunsigned char raw[255];\n");
printf("\tint idx = 0;\n");
printf("\tint size;\n");
- printf("\tmemset(raw,0,255);\n");
+ printf("\tmemset(raw,0,255);\n");
printf("\tmemset(ptr,0,sizeof(*ptr));\n");
printf("\tsize = fillup(raw);\n");
break;
break;
}
- }
- it_field_list
+ }
+ it_field_list
')'
{
switch (writecode) {
- case 'd':
+ case 'd':
printf("};\n");
break;
case 'g':
printf("\tchecksum(ffile,raw, idx, IT_%s_CODE);\n", it);
-
+
case 'i':
case 'o':
it_field_list:
it_field it_field_list
- | cond_it_field it_field_list
+ | cond_it_field it_field_list
| repeat_it_field it_field_list
|
;
repeat_it_field: '(' REPEAT NAME
{
rdepth++;
- switch (writecode)
+ switch (writecode)
{
case 'c':
if (rdepth==1)
case 'g':
case 'o':
- if (rdepth==1)
+ if (rdepth==1)
{
printf("\t{ int n; for (n = 0; n < %s; n++) {\n", $3);
}
if (rdepth == 2) {
printf("\t{ int m; for (m = 0; m < %s[n]; m++) {\n", $3);
- }
+ }
break;
}
repeat = $3;
}
- it_field_list ')'
+ it_field_list ')'
{
repeat = oldrepeat;
cond_it_field: '(' COND NAME
{
- switch (writecode)
+ switch (writecode)
{
case 'i':
case 'g':
}
}
- it_field_list ')'
+ it_field_list ')'
{
switch (writecode)
{
;
it_field:
- '(' attr_desc '(' attr_type attr_size ')' attr_id
- {name = $7; }
+ '(' attr_desc '(' attr_type attr_size ')' attr_id
+ {name = $7; }
enums ')'
{
char *desc = $2;
char *id = $7;
char *p = names[rdepth];
char *ptr = pnames[rdepth];
- switch (writecode)
+ switch (writecode)
{
case 'g':
- if (size % 8)
+ if (size % 8)
{
-
+
printf("\twriteBITS(ptr->%s%s,raw,&idx,%d);\n",
id,
names[rdepth], size);
id,
names[rdepth],size/8);
}
- break;
+ break;
case 'i':
{
if (rdepth >= 1)
{
- printf("if (!ptr->%s) ptr->%s = (%s*)xcalloc(%s, sizeof(ptr->%s[0]));\n",
- id,
+ printf("if (!ptr->%s) ptr->%s = (%s*)xcalloc(%s, sizeof(ptr->%s[0]));\n",
+ id,
id,
type,
repeat,
if (rdepth == 2)
{
- printf("if (!ptr->%s[n]) ptr->%s[n] = (%s**)xcalloc(%s[n], sizeof(ptr->%s[n][0]));\n",
- id,
+ printf("if (!ptr->%s[n]) ptr->%s[n] = (%s**)xcalloc(%s[n], sizeof(ptr->%s[n][0]));\n",
+ id,
id,
type,
repeat,
}
- if (size % 8)
+ if (size % 8)
{
printf("\tptr->%s%s = getBITS(raw,&idx, %d,size);\n",
id,
- names[rdepth],
+ names[rdepth],
size);
}
else {
printf("\tput%s(raw,%d,%d,&idx,ptr->%s%s);\n", type,size/8,size%8,id,names[rdepth]);
break;
case 'd':
- if (repeat)
+ if (repeat)
printf("\t/* repeat %s */\n", repeat);
if (type[0] == 'I') {
else if (type[0] == 'C')
printf("\tprintf(\"%%s\\n\",ptr->%s%s);\n", id,p);
- else if (type[0] == 'B')
+ else if (type[0] == 'B')
{
printf("\tpbarray(&ptr->%s%s);\n", id,p);
}
;
-attr_type:
+attr_type:
TYPE { $$ = $1; }
| { $$ = "INT";}
;
-attr_desc:
- '(' NAME ')'
+attr_desc:
+ '(' NAME ')'
{ $$ = $2; }
;
attr_size:
- NUMBER UNIT
+ NUMBER UNIT
{ $$ = $1 * $2; }
;
attr_id:
'(' NAME ')' { $$ = $2; }
| { $$ = "dummy";}
- ;
-
-enums:
+ ;
+
+enums:
| '(' enum_list ')' ;
enum_list:
|
- enum_list '(' NAME NAME ')' {
- switch (writecode)
+ enum_list '(' NAME NAME ')' {
+ switch (writecode)
{
case 'd':
printf("#define %s %s\n", $3,$4);
int yydebug;
-int
+int
main (int ac, char **av)
{
yydebug=0;
"[" { return '[';}
"]" { return ']';}
" " { ; }
-";".* { ; }
+";".* { ; }
"\t" { ; }
"\n" { ; }
"\""[^\"]*"\"" {
/* Copyright (C) 2012-2015 Free Software Foundation, Inc.
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
(("segment shift") (1 byte) ("segsh"))
(("entry point") (1 byte) ("ep"))
(cond "ptr->ep"
- (cond "ptr->mt != MTYPE_ABS_LM"
+ (cond "ptr->mt != MTYPE_ABS_LM"
(("unit appearance number") (2 bytes) ("uan"))
(("section appearance number") (2 bytes) ("sa")))
(cond "segmented_p"
("sc" 0x08
- (("format") (2 bits) ("format"))
+ (("format") (2 bits) ("format"))
(("spare") (6 bits) ("spare"))
(("segment address") (segsize bytes) ("segadd"))
(("address") (addrsize bytes) ("addr"))
("ss" 0x09
(("neg number") (2 bytes) ("neg")))
-
+
("er" 0x0c
(("symbol type") (2 bits) ("type")
(("ER_ENTRY" "0")
("ER_NOTSPEC" "3")))
(("spare") (6 bits) ("spare"))
(("symbol name") (chars variable byte) ("name")))
-
+
("ed" 0x14
(("section appearance number") (2 bytes) ("section"))
(cond "ptr->cpf"
(("comp reps") (addrsize bytes) ("compreps")))
(("data") (barray counted byte) ("data")))
-
+
("rl" 0x20
(("boundary of relocatable area") (4 bits) ("boundary"))
("OP_EXT_REF" "2")))
(cond "ptr->op == OP_EXT_REF"
(("symbol number") (2 bytes) ("symn")) )
-
+
(cond "ptr->op == OP_SEC_REF"
(("section number") (2 bytes) ("secn"))
(("const opcode") (1 byte) ("copcode_is_3"))
(("dunno") (2 bytes) ("dunno")))
(("end") (1 byte) ("end")))
-
+
("du" 0x30
(("format") (2 bits) ("format"))
(cond "ptr->type == STYPE_TAG"
(("magic") (1 byte) ("magic"))))
-
+
("dul" 0x52
(("max declaration type flag") (1 bit) ("max_variable"))
(("minimum") (addrsize bytes) ("min"))))
(("negotiation") (2 bytes) ("neg")))
-
+
("dso" 0x3a
(("function name") (2 bytes) ("sid"))
(("sp update count") (4 bytes) ("spupdates"))
(("call count") (2 bytes) ("cc"))
)
(("neg") (2 bytes) ("neg")))
-
+
("dpp" 0x46
(("start/end") (1 bit) ("end"))
(("spare") (7 bits) ("spare"))
(("rules") (chars variable byte) ("rules"))
(("number of symbols") (2 bytes) ("nsymbols"))
(("unknown" ) (2 bytes) ("fixme")))
-
+
("pss" 0x40
(("negotiation number") (2 bytes) ("efn"))
(("number of source files") (2 bytes) ("ns"))
(("directory reference bit") (1 bit) ("drb"))
(("spare") (7 bits) ("spare"))
(("completed file name") (chars variable byte) ("fname"))
- (cond "ptr->drb[n]"
+ (cond "ptr->drb[n]"
(("directory apperance number") (2 bytes) ("dan"))))
-
+
(("number of directories") (2 bytes) ("ndir"))
(repeat "ptr->ndir"
(("directory name") (chars variable bytes) ("dname"))))
-; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared
+; FIXME: the tr block has no contents. sysinfo, etc. aren't prepared
; to deal with that.
; ("tr" 0x7f)
(("directory reference bit") (1 bit) ("drb"))
(("spare") (7 bits) ("spare"))
(("completed file name") (chars variable byte) ("fname"))
- (cond "ptr->drb[n]"
+ (cond "ptr->drb[n]"
(("directory apperance number") (2 bytes) ("dan"))))
(("number of directories") (2 bytes) ("ndir"))
(repeat "ptr->ndir"
(("address") (addrsize bytes) ("address"))
(("block size") (addrsize bytes) ("block_size"))
(("nesting") (1 byte) ("nesting"))
- (cond "ptr->type == BLOCK_TYPE_PROCEDURE
+ (cond "ptr->type == BLOCK_TYPE_PROCEDURE
|| ptr->type == BLOCK_TYPE_FUNCTION"
(("return address") (1 bit) ("retaddr"))
(("interrupt function flag") (1 bit) ("intrflag"))
{
struct stat statbuf;
char modebuf[11];
-
+
if (stat (optarg, & statbuf) == 0
/* Coded this way to avoid importing knowledge of S_ISDIR into this file. */
&& (mode_string (statbuf.st_mode, modebuf), modebuf[0] == 'd'))
if (rdmode && ! bfd_check_format (abfd, bfd_object))
fatal ("can't open `%s' for input.", filename);
-
+
return abfd;
}
target_get_8 (const void *p, rc_uint_type length)
{
rc_uint_type ret;
-
+
if (length < 1)
fatal ("Resource too small for getting 8-bit value.");
{
if (length < 2)
fatal ("Resource too small for getting 16-bit value.");
-
+
if (target_is_bigendian)
return bfd_getb16 (p);
else
{
if (length < 4)
fatal ("Resource too small for getting 32-bit value.");
-
+
if (target_is_bigendian)
return bfd_getb32 (p);
else
target_put_16 (void *p, rc_uint_type value)
{
assert (!! p);
-
+
if (target_is_bigendian)
bfd_putb16 (value, p);
else
target_put_32 (void *p, rc_uint_type value)
{
assert (!! p);
-
+
if (target_is_bigendian)
bfd_putb32 (value, p);
else
va_start (arg, fmt);
r += vfprintf (e, fmt, arg);
va_end (arg);
- return r;
+ return r;
}