* po/bfd.pot: Updated by the Translation project.

* po/binutils.pot: Updated by the Translation project.
        * po/gold.pot: Updated by the Translation project.
        * po/gold.pot: Updated by the Translation project.
        * po/gprof.pot: Updated by the Translation project.
        * po/sv.po: Updated Swedish translation.
        * po/ld.pot: Updated by the Translation project.
        * po/fi.po: Updated Finnish translation.
        * po/ld.pot: Updated by the Translation project.
        * po/fi.po: Updated Finnish translation.

        Updated sources to compile cleanly with -Wc++-compat:
        * basic_blocks.c: Add casts.
        * cg_dfn.c: Add cast.
        * corefile.c: Add casts.
        * gmon_io.c: Add casts.
        * hist.c: Add cast.
        * source.c: Add cast.
        * sym_ids.c (struct match): Moved to top level.

        Updated soruces in ld/* to compile cleanly with -Wc++-compat:
        * ld.h (enum endian_enum,enum symbolic_enum,enum dynamic_list_enum): Move to top level.
        * ldcref.c: Add casts.
        * ldctor.c: Add casts.
        * ldexp.c
        * ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
        * ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead of integer.
        * ldlang.h (enum statement_enum): Move to top level.
        * ldmain.c: Add casts.
        * ldwrite.c: Add casts.
        * lexsup.c: Add casts. (enum control_enum): Move to top level.
        * mri.c: Add casts. (mri_draw_tree): Use enum name instead of integer.

        Updated sources to compile cleanly with -Wc++-compat:
        * basic_blocks.c: Add casts.
        * cg_dfn.c: Add cast.
        * corefile.c: Add casts.
        * gmon_io.c: Add casts.
        * hist.c: Add cast.
        * source.c: Add cast.
        * sym_ids.c (struct match): Moved to top level.

        * as.c (main): Call dwarf2_init.
        * config/obj-elf.c (struct group_list): New field.
        (build_group_lists): Use hash lookup.
        (free_section_idx): New function.
        (elf_frob_file): Adjust.
        * dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables.
        (get_line_subseg): Adjust.
        (dwarf2_init): New function.
        * dwarf2dbg.h (dwarf2_init): New declaration.
This commit is contained in:
Nick Clifton
2009-09-11 15:27:38 +00:00
parent e23bb3fc84
commit 1e9cc1c27b
57 changed files with 1414 additions and 1021 deletions

View File

@ -1,3 +1,7 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/bfd.pot: Updated by the Translation project.
2009-09-11 Philippe De Muyter <phdm@macqel.be>
* binary.c (binary_object_p): Remove bfd_external_binary_architecture

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:07+0200\n"
"POT-Creation-Date: 2009-09-07 14:05+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -367,7 +367,7 @@ msgstr ""
msgid "Relocation `%s' not yet implemented\n"
msgstr ""
#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5145
#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5143
msgid "%B: warning: illegal symbol index %ld in relocs"
msgstr ""
@ -437,56 +437,56 @@ msgstr ""
msgid "ignoring reloc %s\n"
msgstr ""
#: coffcode.h:962
#: coffcode.h:960
msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
msgstr ""
#. Generate a warning message rather using the 'unhandled'
#. variable as this will allow some .sys files generate by
#. other toolchains to be processed. See bugzilla issue 196.
#: coffcode.h:1178
#: coffcode.h:1176
msgid ""
"%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
msgstr ""
#: coffcode.h:1242
#: coffcode.h:1240
msgid "%B (%s): Section flag %s (0x%x) ignored"
msgstr ""
#: coffcode.h:2384
#: coffcode.h:2382
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
msgstr ""
#: coffcode.h:2698
#: coffcode.h:2696
msgid "%B: reloc against a non-existant symbol index: %ld"
msgstr ""
#: coffcode.h:3671
#: coffcode.h:3669
msgid "%B: section %s: string table overflow at offset %ld"
msgstr ""
#: coffcode.h:4479
#: coffcode.h:4477
msgid "%B: warning: line number table read failed"
msgstr ""
#: coffcode.h:4509
#: coffcode.h:4507
msgid "%B: warning: illegal symbol index %ld in line numbers"
msgstr ""
#: coffcode.h:4523
#: coffcode.h:4521
msgid "%B: warning: duplicate line number information for `%s'"
msgstr ""
#: coffcode.h:4914
#: coffcode.h:4912
msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
msgstr ""
#: coffcode.h:5040
#: coffcode.h:5038
msgid "warning: %B: local symbol `%s' has no section"
msgstr ""
#: coffcode.h:5183
#: coffcode.h:5181
msgid "%B: illegal relocation type %d at address 0x%lx"
msgstr ""

View File

@ -1,3 +1,7 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/binutils.pot: Updated by the Translation project.
2009-09-11 Philippe De Muyter <phdm@macqel.be>
* obcopy.c (copy_object): New parameter `input_arch', architecture

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:08+0200\n"
"POT-Creation-Date: 2009-09-07 14:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -1,3 +1,56 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/gas.pot: Updated by the Translation project.
2009-09-11 Martin Thuresson <martint@google.com>
* as.c (main): Call dwarf2_init.
* config/obj-elf.c (struct group_list): New field.
(build_group_lists): Use hash lookup.
(free_section_idx): New function.
(elf_frob_file): Adjust.
* dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables.
(get_line_subseg): Adjust.
(dwarf2_init): New function.
* dwarf2dbg.h (dwarf2_init): New declaration.
2009-09-11 Martin Thuresson <martint@google.com>
Updated sources to compile cleanly with -Wc++-compat:
* app.c: Add casts.
* as.c: Add casts.
* config/obj-elf.c: Add casts.
(obj_elf_type): Rename variable typename to type_name.
* config/tc-i386-intel.c (i386_operators): Rename member operator to op.
* config/tc-i386.c: Add casts.
(check_cpu_arch_compatible): Rename argument new to new_flag.
(gotrel): Update variable to use enum name instead of integer value.
* dw2gencfi.c: Add casts.
(struct cfi_escape_data): Move to top level.
* dwarf2dbg.c: Add cast.
* dwarf2dbg.h (dwarf2_loc_directive_seen): Make variable extern.
* ehopt.c Add casts.
(enum frame_state): Move to top level.
* expr.c (operatorf): Rename function operator to operatorf.
(operand): Rename variable operator to op.
(expr_set_rank): Rename argument operator to op.
* frags.c: Add cast.
* hash.c: Add casts.
* input-scrub.c: Add cast.
* listing.c: Add casts.
(enum edict_enum): Move to top level.
* macro.c: Add casts.
* macro.h (enum formal_type): Move to top level.
* read.c: Add casts.
(s_include): Rename variable try to try_file.
* remap.c: Add cast.
* stabs.c: Add casts.
* subsegs.c: Add casts.
* symbols.c: Add casts.
* write.c: Add casts.
* libiberty/regex.c (byte_re_match_2_internal): Introduce extra scope to avoid
initialization warning from goto.
2009-09-11 Hans-Peter Nilsson <hp@bitrange.com>
PR gas/10623
@ -225,7 +278,7 @@
2009-09-02 Jie Zhang <jie.zhang@analog.com>
From Bernd Schmidt <bernd.schmidt@analog.com>
* config/gas/bfin-parse.y (asm_1): Clean up and unify error handling
* config/bfin-parse.y (asm_1): Clean up and unify error handling
for load and store insns.
(neg_value): Delete function.
@ -427,7 +480,7 @@
Remove.
(mkdep section): Remove.
* Makefile.in: Regenerate.
* gas/po/POTFILES.in, gas/po/gas.pot: Regenerate.
* po/POTFILES.in, po/gas.pot: Regenerate.
* Makefile.am (install-pdf, install-pdf-recursive, install-html)
(install-html-recursive): Remove.
@ -492,7 +545,7 @@
* config/obj-coff.h (obj_coff_seh_do_final): Add new
function prototype.
(obj_coff_generate_pdata): New obj-coff hook.
* gas/write.c (size_seg): Avoid sizing of already sized
* write.c (size_seg): Avoid sizing of already sized
sections.
(write_object_file): Call conditional hook
objc_coff_generate_pdata.
@ -990,28 +1043,28 @@
2009-06-22 Martin Thuresson <martin@mtme.org>
* gas/app, gas/as.c, gas/as.h, gas/atof-generic.c, gas/cgen.c,
gas/config/atof-ieee.c, gas/config/obj-aout.c,
gas/config/obj-coff.c, gas/config/obj-ecoff.c,
gas/config/obj-elf.c, gas/config/obj-som.c, gas/config/tc-alpha.c,
gas/config/tc-arc.c, gas/config/tc-arm.c, gas/config/tc-cr16.c,
gas/config/tc-cris.c, gas/config/tc-crx.c, gas/config/tc-d30v.c,
gas/config/tc-dlx.c, gas/config/tc-hppa.c, gas/config/tc-i370.c,
gas/config/tc-i386-intel.c, gas/config/tc-i386.c,
gas/config/tc-i860.c, gas/config/tc-i960.c, gas/config/tc-ia64.c,
gas/config/tc-iq2000.c, gas/config/tc-m32c.c,
gas/config/tc-m32r.c, gas/config/tc-m68hc11.c,
gas/config/tc-m68k.c, gas/config/tc-maxq.c, gas/config/tc-mcore.c,
gas/config/tc-mep.c, gas/config/tc-mips.c, gas/config/tc-mmix.c,
gas/config/tc-mn10300.c, gas/config/tc-moxie.c,
gas/config/tc-ns32k.c, gas/config/tc-pj.c, gas/config/tc-ppc.c,
gas/config/tc-s390.c, gas/config/tc-score.c,
gas/config/tc-score7.c, gas/config/tc-sh.c, gas/config/tc-sparc.c,
gas/config/tc-spu.c, gas/config/tc-tic30.c, gas/config/tc-vax.c,
gas/config/tc-xtensa.c, gas/config/xtensa-relax.c,
gas/dw2gencfi.c, gas/dwarf2dbg.c, gas/ehopt.c, gas/expr.c,
gas/frags.c, gas/input-file.c, gas/read.c, gas/sb.c,
gas/subsegs.c, gas/symbols.c, gas/write.c: Change the name of the
* app, as.c, as.h, atof-generic.c, cgen.c,
config/atof-ieee.c, config/obj-aout.c,
config/obj-coff.c, config/obj-ecoff.c,
config/obj-elf.c, config/obj-som.c, config/tc-alpha.c,
config/tc-arc.c, config/tc-arm.c, config/tc-cr16.c,
config/tc-cris.c, config/tc-crx.c, config/tc-d30v.c,
config/tc-dlx.c, config/tc-hppa.c, config/tc-i370.c,
config/tc-i386-intel.c, config/tc-i386.c,
config/tc-i860.c, config/tc-i960.c, config/tc-ia64.c,
config/tc-iq2000.c, config/tc-m32c.c,
config/tc-m32r.c, config/tc-m68hc11.c,
config/tc-m68k.c, config/tc-maxq.c, config/tc-mcore.c,
config/tc-mep.c, config/tc-mips.c, config/tc-mmix.c,
config/tc-mn10300.c, config/tc-moxie.c,
config/tc-ns32k.c, config/tc-pj.c, config/tc-ppc.c,
config/tc-s390.c, config/tc-score.c,
config/tc-score7.c, config/tc-sh.c, config/tc-sparc.c,
config/tc-spu.c, config/tc-tic30.c, config/tc-vax.c,
config/tc-xtensa.c, config/xtensa-relax.c,
dw2gencfi.c, dwarf2dbg.c, ehopt.c, expr.c,
frags.c, input-file.c, read.c, sb.c,
subsegs.c, symbols.c, write.c: Change the name of the
gas macro `assert' to `gas_assert'.
2009-06-22 Daniel Gutson <dgutson@codesourcery.com>
@ -1084,7 +1137,7 @@
2009-06-18 Nick Clifton <nickc@redhat.com>
PR 10169
* gas/tc-arm.c (do_t_ssat): Move common code from here...
* tc-arm.c (do_t_ssat): Move common code from here...
(do_t_usat): ... and here to...
(do_t_ssat_usat): New function: ... here. Add code to check that
the shift value, if present, is in range.

View File

@ -258,7 +258,7 @@ app_push (void)
saved->saved_input = NULL;
else
{
saved->saved_input = xmalloc (saved_input_len);
saved->saved_input = (char *) xmalloc (saved_input_len);
memcpy (saved->saved_input, saved_input, saved_input_len);
saved->saved_input_len = saved_input_len;
}

View File

@ -506,7 +506,8 @@ parse_args (int * pargc, char *** pargv)
dependent list. Include space for an extra NULL option and
always NULL terminate. */
shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
longopts = xmalloc (sizeof (std_longopts) + md_longopts_size + sizeof (struct option));
longopts = (struct option *) xmalloc (sizeof (std_longopts)
+ md_longopts_size + sizeof (struct option));
memcpy (longopts, std_longopts, sizeof (std_longopts));
memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
memset (((char *) longopts) + sizeof (std_longopts) + md_longopts_size,
@ -517,7 +518,7 @@ parse_args (int * pargc, char *** pargv)
old_argv = *pargv;
/* Initialize a new argv that contains no options. */
new_argv = xmalloc (sizeof (char *) * (old_argc + 1));
new_argv = (char **) xmalloc (sizeof (char *) * (old_argc + 1));
new_argv[0] = old_argv[0];
new_argc = 1;
new_argv[new_argc] = NULL;
@ -646,7 +647,7 @@ This program has absolutely no warranty.\n"));
as_fatal (_("bad defsym; format is --defsym name=value"));
*s++ = '\0';
i = bfd_scan_vma (s, (const char **) NULL, 0);
n = xmalloc (sizeof *n);
n = (struct defsym_list *) xmalloc (sizeof *n);
n->next = defsyms;
n->name = optarg;
n->value = i;
@ -1158,6 +1159,8 @@ main (int argc, char ** argv)
itbl_init ();
dwarf2_init ();
/* Now that we have fully initialized, and have created the output
file, define any symbols requested by --defsym command line
arguments. */

View File

@ -269,7 +269,7 @@ elf_file_symbol (const char *s, int appfile)
if (name_length > strlen (S_GET_NAME (sym)))
{
obstack_grow (&notes, s, name_length + 1);
S_SET_NAME (sym, obstack_finish (&notes));
S_SET_NAME (sym, (const char *) obstack_finish (&notes));
}
else
strcpy ((char *) S_GET_NAME (sym), s);
@ -505,7 +505,7 @@ static struct section_stack *section_stack;
static bfd_boolean
get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
{
const char *gname = inf;
const char *gname = (const char *) inf;
const char *group_name = elf_group_name (sec);
return (group_name == gname
@ -555,7 +555,7 @@ obj_elf_change_section (const char *name,
if (push)
{
struct section_stack *elt;
elt = xmalloc (sizeof (struct section_stack));
elt = (struct section_stack *) xmalloc (sizeof (struct section_stack));
elt->next = section_stack;
elt->seg = now_seg;
elt->prev_seg = previous_section;
@ -885,7 +885,7 @@ obj_elf_section_name (void)
return NULL;
}
name = xmalloc (end - input_line_pointer + 1);
name = (char *) xmalloc (end - input_line_pointer + 1);
memcpy (name, input_line_pointer, end - input_line_pointer);
name[end - input_line_pointer] = '\0';
#ifdef tc_canonicalize_section_name
@ -1441,7 +1441,7 @@ elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
if (srcelf->size)
{
if (destelf->size == NULL)
destelf->size = xmalloc (sizeof (expressionS));
destelf->size = (expressionS *) xmalloc (sizeof (expressionS));
*destelf->size = *srcelf->size;
}
else
@ -1558,7 +1558,8 @@ obj_elf_size (int ignore ATTRIBUTE_UNUSED)
}
else
{
symbol_get_obj (sym)->size = xmalloc (sizeof (expressionS));
symbol_get_obj (sym)->size =
(expressionS *) xmalloc (sizeof (expressionS));
*symbol_get_obj (sym)->size = exp;
}
demand_empty_rest_of_line ();
@ -1609,7 +1610,7 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
char *name;
char c;
int type;
const char *typename;
const char *type_name;
symbolS *sym;
elf_symbol_type *elfsym;
@ -1630,28 +1631,28 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
|| *input_line_pointer == '%')
++input_line_pointer;
typename = obj_elf_type_name (& c);
type_name = obj_elf_type_name (& c);
type = 0;
if (strcmp (typename, "function") == 0
|| strcmp (typename, "2") == 0
|| strcmp (typename, "STT_FUNC") == 0)
if (strcmp (type_name, "function") == 0
|| strcmp (type_name, "2") == 0
|| strcmp (type_name, "STT_FUNC") == 0)
type = BSF_FUNCTION;
else if (strcmp (typename, "object") == 0
|| strcmp (typename, "1") == 0
|| strcmp (typename, "STT_OBJECT") == 0)
else if (strcmp (type_name, "object") == 0
|| strcmp (type_name, "1") == 0
|| strcmp (type_name, "STT_OBJECT") == 0)
type = BSF_OBJECT;
else if (strcmp (typename, "tls_object") == 0
|| strcmp (typename, "6") == 0
|| strcmp (typename, "STT_TLS") == 0)
else if (strcmp (type_name, "tls_object") == 0
|| strcmp (type_name, "6") == 0
|| strcmp (type_name, "STT_TLS") == 0)
type = BSF_OBJECT | BSF_THREAD_LOCAL;
else if (strcmp (typename, "notype") == 0
|| strcmp (typename, "0") == 0
|| strcmp (typename, "STT_NOTYPE") == 0)
else if (strcmp (type_name, "notype") == 0
|| strcmp (type_name, "0") == 0
|| strcmp (type_name, "STT_NOTYPE") == 0)
;
else if (strcmp (typename, "common") == 0
|| strcmp (typename, "5") == 0
|| strcmp (typename, "STT_COMMON") == 0)
else if (strcmp (type_name, "common") == 0
|| strcmp (type_name, "5") == 0
|| strcmp (type_name, "STT_COMMON") == 0)
{
type = BSF_OBJECT;
@ -1677,9 +1678,9 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
}
}
}
else if (strcmp (typename, "gnu_indirect_function") == 0
|| strcmp (typename, "10") == 0
|| strcmp (typename, "STT_GNU_IFUNC") == 0)
else if (strcmp (type_name, "gnu_indirect_function") == 0
|| strcmp (type_name, "10") == 0
|| strcmp (type_name, "STT_GNU_IFUNC") == 0)
{
const struct elf_backend_data *bed;
@ -1688,10 +1689,10 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
/* GNU/Linux is still using the default value 0. */
|| bed->elf_osabi == ELFOSABI_NONE))
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
typename);
type_name);
type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
}
else if (strcmp (typename, "gnu_unique_object") == 0)
else if (strcmp (type_name, "gnu_unique_object") == 0)
{
struct elf_backend_data *bed;
@ -1700,17 +1701,17 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
/* GNU/Linux is still using the default value 0. */
|| bed->elf_osabi == ELFOSABI_NONE))
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
typename);
type_name);
type = BSF_OBJECT | BSF_GNU_UNIQUE;
/* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols. */
bed->elf_osabi = ELFOSABI_LINUX;
}
#ifdef md_elf_symbol_type
else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1)
else if ((type = md_elf_symbol_type (type_name, sym, elfsym)) != -1)
;
#endif
else
as_bad (_("unrecognized symbol type \"%s\""), typename);
as_bad (_("unrecognized symbol type \"%s\""), type_name);
*input_line_pointer = c;
@ -1774,7 +1775,7 @@ obj_elf_init_stab_section (segT seg)
/* Zero it out. */
memset (p, 0, 12);
as_where (&file, NULL);
stabstr_name = xmalloc (strlen (segment_name (seg)) + 4);
stabstr_name = (char *) xmalloc (strlen (segment_name (seg)) + 4);
strcpy (stabstr_name, segment_name (seg));
strcat (stabstr_name, "str");
stroff = get_stab_string_offset (file, stabstr_name);
@ -1800,7 +1801,7 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
if (!strcmp ("str", sec->name + strlen (sec->name) - 3))
return;
name = alloca (strlen (sec->name) + 4);
name = (char *) alloca (strlen (sec->name) + 4);
strcpy (name, sec->name);
strcat (name, "str");
strsec = bfd_get_section_by_name (abfd, name);
@ -2006,6 +2007,7 @@ struct group_list
asection **head; /* Section lists. */
unsigned int *elt_count; /* Number of sections in each list. */
unsigned int num_group; /* Number of lists. */
struct hash_control *indexes; /* Maps group name to index in head array. */
};
/* Called via bfd_map_over_sections. If SEC is a member of a group,
@ -2016,25 +2018,25 @@ struct group_list
static void
build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
{
struct group_list *list = inf;
struct group_list *list = (struct group_list *) inf;
const char *group_name = elf_group_name (sec);
unsigned int i;
unsigned int *elem_idx;
unsigned int *idx_ptr;
if (group_name == NULL)
return;
/* If this group already has a list, add the section to the head of
the list. */
for (i = 0; i < list->num_group; i++)
elem_idx = (unsigned int *) hash_find (list->indexes, group_name);
if (elem_idx != NULL)
{
if (strcmp (group_name, elf_group_name (list->head[i])) == 0)
{
elf_next_in_group (sec) = list->head[i];
list->head[i] = sec;
list->elt_count[i] += 1;
elf_next_in_group (sec) = list->head[*elem_idx];
list->head[*elem_idx] = sec;
list->elt_count[*elem_idx] += 1;
return;
}
}
/* New group. Make the arrays bigger in chunks to minimize calls to
realloc. */
@ -2042,13 +2044,24 @@ build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
if ((i & 127) == 0)
{
unsigned int newsize = i + 128;
list->head = xrealloc (list->head, newsize * sizeof (*list->head));
list->elt_count = xrealloc (list->elt_count,
newsize * sizeof (*list->elt_count));
list->head = (asection **) xrealloc (list->head,
newsize * sizeof (*list->head));
list->elt_count = (unsigned int *)
xrealloc (list->elt_count, newsize * sizeof (*list->elt_count));
}
list->head[i] = sec;
list->elt_count[i] = 1;
list->num_group += 1;
/* Add index to hash. */
idx_ptr = xmalloc (sizeof (unsigned int));
*idx_ptr = i;
hash_insert (list->indexes, group_name, idx_ptr);
}
static void free_section_idx (const char *key ATTRIBUTE_UNUSED, void *val)
{
free ((unsigned int *) val);
}
void
@ -2063,6 +2076,7 @@ elf_frob_file (void)
list.num_group = 0;
list.head = NULL;
list.elt_count = NULL;
list.indexes = hash_new ();
bfd_map_over_sections (stdoutput, build_group_lists, &list);
/* Make the SHT_GROUP sections that describe each section group. We
@ -2128,6 +2142,10 @@ elf_frob_file (void)
#ifdef elf_tc_final_processing
elf_tc_final_processing ();
#endif
/* Cleanup hash. */
hash_traverse (list.indexes, free_section_idx);
hash_die (list.indexes);
}
/* It removes any unneeded versioned symbols from the symbol table. */

View File

@ -65,7 +65,7 @@ intel_state;
static struct
{
const char *name;
operatorT operator;
operatorT op;
unsigned int operands;
}
const i386_operators[] =
@ -91,7 +91,7 @@ const i386_operators[] =
static struct
{
const char *name;
operatorT operator;
operatorT op;
unsigned short sz[3];
}
const i386_types[] =
@ -158,7 +158,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
if (i386_operators[j].operands
&& i386_operators[j].operands != operands)
return O_illegal;
return i386_operators[j].operator;
return i386_operators[j].op;
}
for (j = 0; i386_types[j].name; ++j)
@ -175,7 +175,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
*pc = c;
if (intel_syntax > 0 || operands != 1)
return O_illegal;
return i386_types[j].operator;
return i386_types[j].op;
}
*input_line_pointer = c;

View File

@ -1851,7 +1851,7 @@ add_prefix (unsigned int prefix)
static void
set_code_flag (int value)
{
flag_code = value;
flag_code = (enum flag_code) value;
if (flag_code == CODE_64BIT)
{
cpu_arch_flags.bitfield.cpu64 = 1;
@ -1876,7 +1876,7 @@ set_code_flag (int value)
static void
set_16bit_gcc_code_flag (int new_code_flag)
{
flag_code = new_code_flag;
flag_code = (enum flag_code) new_code_flag;
if (flag_code != CODE_16BIT)
abort ();
cpu_arch_flags.bitfield.cpu64 = 0;
@ -1961,7 +1961,7 @@ set_sse_check (int dummy ATTRIBUTE_UNUSED)
static void
check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
i386_cpu_flags new ATTRIBUTE_UNUSED)
i386_cpu_flags new_flag ATTRIBUTE_UNUSED)
{
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
static const char *arch;
@ -1981,7 +1981,7 @@ check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
/* If we are targeting Intel L1OM, we must enable it. */
if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
|| new.bitfield.cpul1om)
|| new_flag.bitfield.cpul1om)
return;
as_bad (_("`%s' is not supported on `%s'"), name, arch);
@ -6019,28 +6019,28 @@ lex_got (enum bfd_reloc_code_real *reloc,
const enum bfd_reloc_code_real rel[2];
const i386_operand_type types64;
} gotrel[] = {
{ "PLTOFF", { 0,
{ "PLTOFF", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_PLTOFF64 },
OPERAND_TYPE_IMM64 },
{ "PLT", { BFD_RELOC_386_PLT32,
BFD_RELOC_X86_64_PLT32 },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "GOTPLT", { 0,
{ "GOTPLT", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_GOTPLT64 },
OPERAND_TYPE_IMM64_DISP64 },
{ "GOTOFF", { BFD_RELOC_386_GOTOFF,
BFD_RELOC_X86_64_GOTOFF64 },
OPERAND_TYPE_IMM64_DISP64 },
{ "GOTPCREL", { 0,
{ "GOTPCREL", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_GOTPCREL },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "TLSGD", { BFD_RELOC_386_TLS_GD,
BFD_RELOC_X86_64_TLSGD },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "TLSLDM", { BFD_RELOC_386_TLS_LDM,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "TLSLD", { 0,
{ "TLSLD", { _dummy_first_bfd_reloc_code_real,
BFD_RELOC_X86_64_TLSLD },
OPERAND_TYPE_IMM32_32S_DISP32 },
{ "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
@ -6050,17 +6050,17 @@ lex_got (enum bfd_reloc_code_real *reloc,
BFD_RELOC_X86_64_TPOFF32 },
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
{ "NTPOFF", { BFD_RELOC_386_TLS_LE,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "DTPOFF", { BFD_RELOC_386_TLS_LDO_32,
BFD_RELOC_X86_64_DTPOFF32 },
OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
{ "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
0 },
_dummy_first_bfd_reloc_code_real },
OPERAND_TYPE_NONE },
{ "GOT", { BFD_RELOC_386_GOT32,
BFD_RELOC_X86_64_GOT32 },
@ -6125,7 +6125,7 @@ lex_got (enum bfd_reloc_code_real *reloc,
/* Allocate and copy string. The trailing NUL shouldn't
be necessary, but be safe. */
tmpbuf = xmalloc (first + second + 2);
tmpbuf = (char *) xmalloc (first + second + 2);
memcpy (tmpbuf, input_line_pointer, first);
if (second != 0 && *past_reloc != ' ')
/* Replace the relocation token with ' ', so that
@ -7104,7 +7104,7 @@ md_estimate_size_before_relax (fragP, segment)
int old_fr_fix;
if (fragP->fr_var != NO_RELOC)
reloc_type = fragP->fr_var;
reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
else if (size == 2)
reloc_type = BFD_RELOC_16_PCREL;
else
@ -7553,7 +7553,7 @@ parse_real_register (char *reg_string, char **end_op)
if (*s == ')')
{
*end_op = s + 1;
r = hash_find (reg_hash, "st(0)");
r = (const reg_entry *) hash_find (reg_hash, "st(0)");
know (r);
return r + fpr;
}

View File

@ -63,6 +63,10 @@
# define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
#endif
struct cfi_escape_data {
struct cfi_escape_data *next;
expressionS exp;
};
struct cfi_insn_data
{
@ -87,10 +91,7 @@ struct cfi_insn_data
symbolS *lab2;
} ll;
struct cfi_escape_data {
struct cfi_escape_data *next;
expressionS exp;
} *esc;
struct cfi_escape_data *esc;
struct {
unsigned reg, encoding;
@ -155,9 +156,11 @@ struct frch_cfi_data
static struct fde_entry *
alloc_fde_entry (void)
{
struct fde_entry *fde = xcalloc (1, sizeof (struct fde_entry));
struct fde_entry *fde = (struct fde_entry *)
xcalloc (1, sizeof (struct fde_entry));
frchain_now->frch_cfi_data = xcalloc (1, sizeof (struct frch_cfi_data));
frchain_now->frch_cfi_data = (struct frch_cfi_data *)
xcalloc (1, sizeof (struct frch_cfi_data));
frchain_now->frch_cfi_data->cur_fde_data = fde;
*last_fde_data = fde;
last_fde_data = &fde->next;
@ -179,7 +182,8 @@ alloc_fde_entry (void)
static struct cfi_insn_data *
alloc_cfi_insn_data (void)
{
struct cfi_insn_data *insn = xcalloc (1, sizeof (struct cfi_insn_data));
struct cfi_insn_data *insn = (struct cfi_insn_data *)
xcalloc (1, sizeof (struct cfi_insn_data));
struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
*cur_fde_data->last = insn;
@ -353,7 +357,7 @@ cfi_add_CFA_remember_state (void)
cfi_add_CFA_insn (DW_CFA_remember_state);
p = xmalloc (sizeof (*p));
p = (struct cfa_save_data *) xmalloc (sizeof (*p));
p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
p->next = frchain_now->frch_cfi_data->cfa_save_stack;
frchain_now->frch_cfi_data->cfa_save_stack = p;
@ -637,7 +641,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
tail = &head;
do
{
e = xmalloc (sizeof (*e));
e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
do_parse_cons_expression (&e->exp, 1);
*tail = e;
tail = &e->next;
@ -1454,7 +1458,7 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
fail:;
}
cie = xmalloc (sizeof (struct cie_entry));
cie = (struct cie_entry *) xmalloc (sizeof (struct cie_entry));
cie->next = cie_root;
cie_root = cie;
cie->return_column = fde->return_column;

View File

@ -168,6 +168,10 @@ struct line_seg {
/* Collects data for all line table entries during assembly. */
static struct line_seg *all_segs;
/* Hash used to quickly lookup a segment by name, avoiding the need to search
through the all_segs list. */
static struct hash_control *all_segs_hash;
static struct line_seg **last_seg_ptr;
struct file_entry {
const char *filename;
@ -230,23 +234,25 @@ get_line_subseg (segT seg, subsegT subseg)
static subsegT last_subseg;
static struct line_subseg *last_line_subseg;
struct line_seg **ps, *s;
struct line_seg *s;
struct line_subseg **pss, *ss;
if (seg == last_seg && subseg == last_subseg)
return last_line_subseg;
for (ps = &all_segs; (s = *ps) != NULL; ps = &s->next)
if (s->seg == seg)
goto found_seg;
s = (struct line_seg *) hash_find (all_segs_hash, seg->name);
if (s == NULL)
{
s = (struct line_seg *) xmalloc (sizeof (*s));
s->next = NULL;
s->seg = seg;
s->head = NULL;
*ps = s;
*last_seg_ptr = s;
last_seg_ptr = &s->next;
hash_insert (all_segs_hash, seg->name, s);
}
gas_assert (seg == s->seg);
found_seg:
for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
{
if (ss->subseg == subseg)
@ -467,7 +473,7 @@ get_filenum (const char *filename, unsigned int num)
xrealloc (dirs, (dir + 32) * sizeof (const char *));
}
dirs[dir] = xmalloc (dir_len + 1);
dirs[dir] = (char *) xmalloc (dir_len + 1);
memcpy (dirs[dir], filename, dir_len);
dirs[dir][dir_len] = '\0';
dirs_in_use = dir + 1;
@ -1702,6 +1708,14 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg)
symbol_set_value_now (info_end);
}
void
dwarf2_init (void)
{
all_segs_hash = hash_new ();
last_seg_ptr = &all_segs;
}
/* Finish the dwarf2 debug sections. We emit .debug.line if there
were any .file/.loc directives, or --gdwarf2 was given, or if the
file has a non-empty .debug_info section. If we emit .debug_line,

View File

@ -83,13 +83,15 @@ extern void dwarf2_emit_label (symbolS *);
/* True when we've seen a .loc directive recently. Used to avoid
doing work when there's nothing to do. */
bfd_boolean dwarf2_loc_directive_seen;
extern bfd_boolean dwarf2_loc_directive_seen;
/* True when we're supposed to set the basic block mark whenever a label
is seen. Unless the target is doing Something Weird, just call
dwarf2_emit_label. */
extern bfd_boolean dwarf2_loc_mark_labels;
extern void dwarf2_init (void);
extern void dwarf2_finish (void);
extern int dwarf2dbg_estimate_size_before_relax (fragS *);

View File

@ -227,6 +227,19 @@ get_cie_info (struct cie_info *info)
return 1;
}
enum frame_state
{
state_idle,
state_saw_size,
state_saw_cie_offset,
state_saw_pc_begin,
state_seeing_aug_size,
state_skipping_aug,
state_wait_loc4,
state_saw_loc4,
state_error,
};
/* This function is called from emit_expr. It looks for cases which
we can optimize.
@ -245,18 +258,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
{
struct frame_data
{
enum frame_state
{
state_idle,
state_saw_size,
state_saw_cie_offset,
state_saw_pc_begin,
state_seeing_aug_size,
state_skipping_aug,
state_wait_loc4,
state_saw_loc4,
state_error,
} state;
enum frame_state state;
int cie_info_ok;
struct cie_info cie_info;
@ -324,7 +326,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
case state_saw_size:
case state_saw_cie_offset:
/* Assume whatever form it appears in, it appears atomically. */
d->state += 1;
d->state = (enum frame_state) (d->state + 1);
break;
case state_saw_pc_begin:

View File

@ -48,7 +48,7 @@ static void mri_char_constant (expressionS *);
static void current_location (expressionS *);
static void clean_up_expression (expressionS * expressionP);
static segT operand (expressionS *, enum expr_mode);
static operatorT operator (int *);
static operatorT operatorf (int *);
extern const char EXP_CHARS[], FLT_CHARS[];
@ -1228,9 +1228,9 @@ operand (expressionS *expressionP, enum expr_mode mode)
#ifdef md_operator
{
operatorT operator = md_operator (name, 1, &c);
operatorT op = md_operator (name, 1, &c);
switch (operator)
switch (op)
{
case O_uminus:
*input_line_pointer = c;
@ -1250,14 +1250,14 @@ operand (expressionS *expressionP, enum expr_mode mode)
default:
break;
}
if (operator != O_absent && operator != O_illegal)
if (op != O_absent && op != O_illegal)
{
*input_line_pointer = c;
expr (9, expressionP, mode);
expressionP->X_add_symbol = make_expr_symbol (expressionP);
expressionP->X_op_symbol = NULL;
expressionP->X_add_number = 0;
expressionP->X_op = operator;
expressionP->X_op = op;
break;
}
}
@ -1546,10 +1546,10 @@ expr_set_precedence (void)
}
void
expr_set_rank (operatorT operator, operator_rankT rank)
expr_set_rank (operatorT op, operator_rankT rank)
{
gas_assert (operator >= O_md1 && operator < ARRAY_SIZE (op_rank));
op_rank[operator] = rank;
gas_assert (op >= O_md1 && op < ARRAY_SIZE (op_rank));
op_rank[op] = rank;
}
/* Initialize the expression parser. */
@ -1572,7 +1572,7 @@ expr_begin (void)
Does not advance INPUT_LINE_POINTER. */
static inline operatorT
operator (int *num_chars)
operatorf (int *num_chars)
{
int c;
operatorT ret;
@ -1732,7 +1732,7 @@ expr (int rankarg, /* Larger # is higher rank. */
/* operand () gobbles spaces. */
know (*input_line_pointer != ' ');
op_left = operator (&op_chars);
op_left = operatorf (&op_chars);
while (op_left != O_illegal && op_rank[(int) op_left] > rank)
{
segT rightseg;
@ -1763,7 +1763,7 @@ expr (int rankarg, /* Larger # is higher rank. */
}
}
op_right = operator (&op_chars);
op_right = operatorf (&op_chars);
know (op_right == O_illegal || op_left == O_index
|| op_rank[(int) op_right] <= op_rank[(int) op_left]);

View File

@ -69,7 +69,7 @@ frag_alloc (struct obstack *ob)
(void) obstack_alloc (ob, 0);
oalign = obstack_alignment_mask (ob);
obstack_alignment_mask (ob) = 0;
ptr = obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
ptr = (fragS *) obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
obstack_alignment_mask (ob) = oalign;
memset (ptr, 0, SIZEOF_STRUCT_FRAG);
return ptr;

View File

@ -113,10 +113,10 @@ hash_new (void)
size = get_gas_hash_table_size ();
ret = xmalloc (sizeof *ret);
ret = (struct hash_control *) xmalloc (sizeof *ret);
obstack_begin (&ret->memory, chunksize);
alloc = size * sizeof (struct hash_entry *);
ret->table = obstack_alloc (&ret->memory, alloc);
ret->table = (struct hash_entry **) obstack_alloc (&ret->memory, alloc);
memset (ret->table, 0, alloc);
ret->size = size;
@ -237,7 +237,7 @@ hash_insert (struct hash_control *table, const char *key, void *value)
++table->insertions;
#endif
p = obstack_alloc (&table->memory, sizeof (*p));
p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
p->string = key;
p->hash = hash;
p->data = value;
@ -274,7 +274,7 @@ hash_jam (struct hash_control *table, const char *key, void *value)
++table->insertions;
#endif
p = obstack_alloc (&table->memory, sizeof (*p));
p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
p->string = key;
p->hash = hash;
p->data = value;

View File

@ -165,7 +165,8 @@ input_scrub_push (char *saved_position)
buffer_length = input_file_buffer_size ();
sb_index = -1;
buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
+ buffer_length + AFTER_SIZE));
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
return saved;
@ -209,7 +210,8 @@ input_scrub_begin (void)
buffer_length = input_file_buffer_size ();
buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
+ buffer_length + AFTER_SIZE));
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
/* Line number things. */
@ -363,7 +365,7 @@ input_scrub_next_buffer (char **bufp)
limoff = limit - buffer_start;
buffer_length += input_file_buffer_size ();
buffer_start = xrealloc (buffer_start,
buffer_start = (char *) xrealloc (buffer_start,
(BEFORE_SIZE
+ 2 * buffer_length
+ AFTER_SIZE));

View File

@ -130,6 +130,18 @@ typedef struct file_info_struct
int at_end;
} file_info_type;
enum edict_enum
{
EDICT_NONE,
EDICT_SBTTL,
EDICT_TITLE,
EDICT_NOLIST,
EDICT_LIST,
EDICT_NOLIST_NEXT,
EDICT_EJECT
};
/* This structure remembers which line from which file goes into which
frag. */
struct list_info_struct
@ -160,16 +172,7 @@ struct list_info_struct
/* Pointer to any error message associated with this line. */
char *message;
enum
{
EDICT_NONE,
EDICT_SBTTL,
EDICT_TITLE,
EDICT_NOLIST,
EDICT_LIST,
EDICT_NOLIST_NEXT,
EDICT_EJECT
} edict;
enum edict_enum edict;
char *edict_arg;
/* Nonzero if this line is to be omitted because it contains
@ -260,7 +263,7 @@ file_info (const char *file_name)
}
/* Make new entry. */
p = xmalloc (sizeof (file_info_type));
p = (file_info_type *) xmalloc (sizeof (file_info_type));
p->next = file_info_head;
file_info_head = p;
p->filename = xstrdup (file_name);
@ -352,7 +355,7 @@ listing_newline (char *ps)
len = (copy - input_line_pointer) + 2;
copy = xmalloc (len);
copy = (char *) xmalloc (len);
if (copy != NULL)
{
@ -1147,8 +1150,8 @@ listing_listing (char *name ATTRIBUTE_UNUSED)
int show_listing = 1;
unsigned int width;
buffer = xmalloc (listing_rhs_width);
data_buffer = xmalloc (MAX_BYTES);
buffer = (char *) xmalloc (listing_rhs_width);
data_buffer = (char *) xmalloc (MAX_BYTES);
eject = 1;
list = head->next;
@ -1509,7 +1512,7 @@ listing_title (int depth)
if (listing)
{
length = input_line_pointer - start;
ttl = xmalloc (length + 1);
ttl = (char *) xmalloc (length + 1);
memcpy (ttl, start, length);
ttl[length] = 0;
listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;

View File

@ -393,7 +393,7 @@ get_any_string (int idx, sb *in, sb *out)
}
else
{
char *br_buf = xmalloc(1);
char *br_buf = (char *) xmalloc(1);
char *in_br = br_buf;
*in_br = '\0';
@ -424,7 +424,7 @@ get_any_string (int idx, sb *in, sb *out)
--in_br;
else
{
br_buf = xmalloc(strlen(in_br) + 2);
br_buf = (char *) xmalloc(strlen(in_br) + 2);
strcpy(br_buf + 1, in_br);
free(in_br);
in_br = br_buf;
@ -457,7 +457,7 @@ new_formal (void)
{
formal_entry *formal;
formal = xmalloc (sizeof (formal_entry));
formal = (formal_entry *) xmalloc (sizeof (formal_entry));
sb_new (&formal->name);
sb_new (&formal->def);
@ -1273,7 +1273,7 @@ delete_macro (const char *name)
/* We can only ask hash_delete to free memory if we are deleting
macros in reverse order to their definition.
So just clear out the entry. */
if ((macro = hash_find (macro_hash, copy)) != NULL)
if ((macro = (macro_entry *) hash_find (macro_hash, copy)) != NULL)
{
hash_jam (macro_hash, copy, NULL);
free_macro (macro);

View File

@ -34,6 +34,13 @@
name and its default value. Each time the macro is expanded, the
formals get the actual values attached to them. */
enum formal_type
{
FORMAL_OPTIONAL,
FORMAL_REQUIRED,
FORMAL_VARARG
};
/* Describe the formal arguments to a macro. */
typedef struct formal_struct {
@ -42,12 +49,7 @@ typedef struct formal_struct {
sb def; /* The default value. */
sb actual; /* The actual argument (changed on each expansion). */
int index; /* The index of the formal 0..formal_count - 1. */
enum formal_type
{
FORMAL_OPTIONAL,
FORMAL_REQUIRED,
FORMAL_VARARG
} type; /* The kind of the formal. */
enum formal_type type; /* The kind of the formal. */
} formal_entry;
/* Other values found in the index field of a formal_entry. */

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:09+0200\n"
"POT-Creation-Date: 2009-09-07 14:09+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -1034,7 +1034,7 @@ read_a_source_file (char *name)
that goes with this #APP There is one. The specs
guarantee it... */
tmp_len = buffer_limit - s;
tmp_buf = xmalloc (tmp_len + 1);
tmp_buf = (char *) xmalloc (tmp_len + 1);
memcpy (tmp_buf, s, tmp_len);
do
{
@ -1050,7 +1050,7 @@ read_a_source_file (char *name)
else
num = buffer_limit - buffer;
tmp_buf = xrealloc (tmp_buf, tmp_len + num);
tmp_buf = (char *) xrealloc (tmp_buf, tmp_len + num);
memcpy (tmp_buf + tmp_len, buffer, num);
tmp_len += num;
}
@ -1087,7 +1087,7 @@ read_a_source_file (char *name)
break;
}
new_buf = xrealloc (new_buf, new_length + 100);
new_buf = (char *) xrealloc (new_buf, new_length + 100);
new_tmp = new_buf + new_length;
new_length += 100;
}
@ -2097,7 +2097,7 @@ s_vendor_attribute (int vendor)
if (i == 0)
goto bad;
name = alloca (i + 1);
name = (char *) alloca (i + 1);
memcpy (name, s, i);
name[i] = '\0';
@ -3857,7 +3857,7 @@ s_reloc (int ignore ATTRIBUTE_UNUSED)
int c;
struct reloc_list *reloc;
reloc = xmalloc (sizeof (*reloc));
reloc = (struct reloc_list *) xmalloc (sizeof (*reloc));
if (flag_mri)
stop = mri_comment_field (&stopc);
@ -5407,7 +5407,7 @@ demand_copy_string (int *lenP)
/* JF this next line is so demand_copy_C_string will return a
null terminated string. */
obstack_1grow (&notes, '\0');
retval = obstack_finish (&notes);
retval = (char *) obstack_finish (&notes);
}
else
{
@ -5516,7 +5516,7 @@ s_incbin (int x ATTRIBUTE_UNUSED)
{
int i;
path = xmalloc ((unsigned long) len + include_dir_maxlen + 5);
path = (char *) xmalloc ((unsigned long) len + include_dir_maxlen + 5);
for (i = 0; i < include_dir_count; i++)
{
@ -5586,7 +5586,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
{
char *filename;
int i;
FILE *try;
FILE *try_file;
char *path;
if (!flag_m68k_mri)
@ -5613,22 +5613,23 @@ s_include (int arg ATTRIBUTE_UNUSED)
}
obstack_1grow (&notes, '\0');
filename = obstack_finish (&notes);
filename = (char *) obstack_finish (&notes);
while (!is_end_of_line[(unsigned char) *input_line_pointer])
++input_line_pointer;
}
demand_empty_rest_of_line ();
path = xmalloc ((unsigned long) i + include_dir_maxlen + 5 /* slop */ );
path = (char *) xmalloc ((unsigned long) i
+ include_dir_maxlen + 5 /* slop */ );
for (i = 0; i < include_dir_count; i++)
{
strcpy (path, include_dirs[i]);
strcat (path, "/");
strcat (path, filename);
if (0 != (try = fopen (path, FOPEN_RT)))
if (0 != (try_file = fopen (path, FOPEN_RT)))
{
fclose (try);
fclose (try_file);
goto gotit;
}
}

View File

@ -52,7 +52,7 @@ add_debug_prefix_map (const char *arg)
as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
return;
}
map = xmalloc (sizeof (debug_prefix_map));
map = (struct debug_prefix_map *) xmalloc (sizeof (debug_prefix_map));
o = xstrdup (arg);
map->old_prefix = o;
map->old_len = p - arg;

View File

@ -498,7 +498,7 @@ stabs_generate_asm_file (void)
char *dir2;
dir = remap_debug_filename (getpwd ());
dir2 = alloca (strlen (dir) + 2);
dir2 = (char *) alloca (strlen (dir) + 2);
sprintf (dir2, "%s%s", dir, "/");
generate_asm_file (N_SO, dir2);
}
@ -536,7 +536,7 @@ generate_asm_file (int type, char *file)
/* Allocate enough space for the file name (possibly extended with
doubled up backslashes), the symbol name, and the other characters
that make up a stabs file directive. */
bufp = buf = xmalloc (2 * strlen (file) + strlen (sym) + 12);
bufp = buf = (char *) xmalloc (2 * strlen (file) + strlen (sym) + 12);
*bufp++ = '"';

View File

@ -65,7 +65,7 @@ subseg_change (register segT seg, register int subseg)
if (! seginfo)
{
seginfo = xcalloc (1, sizeof (*seginfo));
seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
seginfo->bfd_section = seg;
bfd_set_section_userdata (stdoutput, seg, seginfo);
}
@ -103,7 +103,7 @@ subseg_set_rest (segT seg, subsegT subseg)
{
/* This should be the only code that creates a frchainS. */
newP = obstack_alloc (&frchains, sizeof (frchainS));
newP = (frchainS *) obstack_alloc (&frchains, sizeof (frchainS));
newP->frch_subseg = subseg;
newP->fix_root = NULL;
newP->fix_tail = NULL;
@ -167,7 +167,7 @@ subseg_get (const char *segname, int force_new)
if (! seginfo)
{
secptr->output_section = secptr;
seginfo = xcalloc (1, sizeof (*seginfo));
seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
seginfo->bfd_section = secptr;
bfd_set_section_userdata (stdoutput, secptr, seginfo);
}

View File

@ -109,7 +109,7 @@ save_symbol_name (const char *name)
name_length = strlen (name) + 1; /* +1 for \0. */
obstack_grow (&notes, name, name_length);
ret = obstack_finish (&notes);
ret = (char *) obstack_finish (&notes);
#ifdef tc_canonicalize_symbol_name
ret = tc_canonicalize_symbol_name (ret);
@ -137,7 +137,7 @@ symbol_create (const char *name, /* It is copied, the caller can destroy/modify.
preserved_copy_of_name = save_symbol_name (name);
symbolP = obstack_alloc (&notes, sizeof (symbolS));
symbolP = (symbolS *) obstack_alloc (&notes, sizeof (symbolS));
/* symbol must be born in some fixed state. This seems as good as any. */
memset (symbolP, 0, sizeof (symbolS));
@ -197,7 +197,7 @@ local_symbol_make (const char *name, segT section, valueT value, fragS *frag)
name_copy = save_symbol_name (name);
ret = obstack_alloc (&notes, sizeof *ret);
ret = (struct local_symbol *) obstack_alloc (&notes, sizeof *ret);
ret->lsy_marker = NULL;
ret->lsy_name = name_copy;
ret->lsy_section = section;
@ -563,7 +563,7 @@ symbol_clone (symbolS *orgsymP, int replace)
orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
bsymorg = orgsymP->bsym;
newsymP = obstack_alloc (&notes, sizeof (*newsymP));
newsymP = (symbolS *) obstack_alloc (&notes, sizeof (*newsymP));
*newsymP = *orgsymP;
bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
if (bsymnew == NULL)
@ -1453,7 +1453,7 @@ static void
resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
{
if (value != NULL)
resolve_symbol_value (value);
resolve_symbol_value ((symbolS *) value);
}
/* Resolve all local symbols. */
@ -1603,7 +1603,7 @@ define_dollar_label (long label)
{
dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
dollar_label_instances = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
dollar_label_defines = xmalloc (DOLLAR_LABEL_BUMP_BY);
dollar_label_defines = (char *) xmalloc (DOLLAR_LABEL_BUMP_BY);
dollar_label_max = DOLLAR_LABEL_BUMP_BY;
dollar_label_count = 0;
}
@ -1614,7 +1614,7 @@ define_dollar_label (long label)
dollar_label_max * sizeof (long));
dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
dollar_label_max * sizeof (long));
dollar_label_defines = xrealloc (dollar_label_defines, dollar_label_max);
dollar_label_defines = (char *) xrealloc (dollar_label_defines, dollar_label_max);
} /* if we needed to grow */
dollar_labels[dollar_label_count] = label;
@ -1887,7 +1887,7 @@ decode_local_label_name (char *s)
instance_number = (10 * instance_number) + *p - '0';
message_format = _("\"%d\" (instance number %d of a %s label)");
symbol_decode = obstack_alloc (&notes, strlen (message_format) + 30);
symbol_decode = (char *) obstack_alloc (&notes, strlen (message_format) + 30);
sprintf (symbol_decode, message_format, label_number, instance_number, type);
return symbol_decode;

View File

@ -156,7 +156,7 @@ fix_new_internal (fragS *frag, /* Which frag? */
n_fixups++;
fixP = obstack_alloc (&notes, sizeof (fixS));
fixP = (fixS *) obstack_alloc (&notes, sizeof (fixS));
fixP->fx_frag = frag;
fixP->fx_where = where;
@ -1170,7 +1170,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
rp = &r->next;
}
relocs = xcalloc (n, sizeof (arelent *));
relocs = (arelent **) xcalloc (n, sizeof (arelent *));
i = 0;
for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
@ -1398,7 +1398,7 @@ set_symtab (void)
int i;
bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
asympp = bfd_alloc (stdoutput, amt);
asympp = (asymbol **) bfd_alloc (stdoutput, amt);
symp = symbol_rootP;
for (i = 0; i < nsyms; i++, symp = symbol_next (symp))
{

View File

@ -1,3 +1,7 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/gold.pot: Updated by the Translation project.
2009-09-08 Cary Coutant <ccoutant@google.com>
* output.cc (Output_file::open): Add execute permission to empty file.

View File

@ -1,3 +1,19 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/gprof.pot: Updated by the Translation project.
* po/sv.po: Updated Swedish translation.
2009-09-11 Martin Thuresson <martint@google.com>
Updated sources to compile cleanly with -Wc++-compat:
* basic_blocks.c: Add casts.
* cg_dfn.c: Add cast.
* corefile.c: Add casts.
* gmon_io.c: Add casts.
* hist.c: Add cast.
* source.c: Add cast.
* sym_ids.c (struct match): Moved to top level.
2009-09-07 Tristan Gingold <gingold@adacore.com>
* po/gprof.pot: Regenerate.

View File

@ -319,7 +319,7 @@ print_exec_counts ()
static void
annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
{
Source_File *sf = arg;
Source_File *sf = (Source_File *) arg;
Sym *b;
unsigned int i;
static unsigned long last_count;
@ -328,7 +328,7 @@ annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
b = NULL;
if (line_num <= sf->num_lines)
b = sf->line[line_num - 1];
b = (Sym *) sf->line[line_num - 1];
if (!b)
{
@ -488,7 +488,7 @@ print_annotated_source ()
{
if (sf->num_lines > 0)
{
sf->line = (void *) xmalloc (sf->num_lines * sizeof (sf->line[0]));
sf->line = (void **) xmalloc (sf->num_lines * sizeof (sf->line[0]));
memset (sf->line, 0, sf->num_lines * sizeof (sf->line[0]));
}
}
@ -502,7 +502,7 @@ print_annotated_source ()
&& !sym_lookup (&syms[EXCL_ANNO], sym->addr))))
{
sym->file->ncalls += sym->ncalls;
line_stats = sym->file->line[sym->line_num - 1];
line_stats = (Sym *) sym->file->line[sym->line_num - 1];
if (!line_stats)
{
@ -552,7 +552,7 @@ print_annotated_source ()
for (i = 0; i < table_len; ++i)
{
sym = sf->line[i];
sym = (Sym *) sf->line[i];
if (!sym || sym->ncalls == 0)
break;

View File

@ -217,7 +217,8 @@ pre_visit (Sym *parent)
if (dfn_depth >= dfn_maxdepth)
{
dfn_maxdepth += DFN_INCR_DEPTH;
dfn_stack = xrealloc (dfn_stack, dfn_maxdepth * sizeof *dfn_stack);
dfn_stack = (DFN_Stack *) xrealloc (dfn_stack,
dfn_maxdepth * sizeof *dfn_stack);
}
dfn_stack[dfn_depth].sym = parent;

View File

@ -140,7 +140,7 @@ read_function_mappings (const char *filename)
}
/* dummy has the filename, go ahead and copy it. */
symbol_map[count].file_name = xmalloc (strlen (dummy) + 1);
symbol_map[count].file_name = (char *) xmalloc (strlen (dummy) + 1);
strcpy (symbol_map[count].file_name, dummy);
/* Now we need the function name. */
@ -148,7 +148,7 @@ read_function_mappings (const char *filename)
if (!matches)
parse_error (filename);
tmp = strrchr (dummy, ' ') + 1;
symbol_map[count].function_name = xmalloc (strlen (tmp) + 1);
symbol_map[count].function_name = (char *) xmalloc (strlen (tmp) + 1);
strcpy (symbol_map[count].function_name, tmp);
count++;
}
@ -227,7 +227,7 @@ core_init (const char * aout_name)
long i;
new_size = (core_num_syms + synth_count + 1) * sizeof (*core_syms);
core_syms = xrealloc (core_syms, new_size);
core_syms = (asymbol **) xrealloc (core_syms, new_size);
symp = core_syms + core_num_syms;
core_num_syms += synth_count;
for (i = 0; i < synth_count; i++)
@ -577,8 +577,10 @@ core_create_function_syms (void)
/* Don't create a symtab entry for a function that has
a mapping to a file, unless it's the first function
in the file. */
found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
sizeof (struct function_map), search_mapped_symbol);
found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
symbol_map_count,
sizeof (struct function_map),
search_mapped_symbol);
if (found == NULL || found->is_first)
++symtab.len;
}
@ -609,7 +611,8 @@ core_create_function_syms (void)
continue;
}
found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
symbol_map_count,
sizeof (struct function_map), search_mapped_symbol);
if (found && ! found->is_first)
continue;
@ -726,8 +729,8 @@ core_create_line_syms (void)
BFD would provide an iterator for enumerating all line infos. */
prev_name_len = PATH_MAX;
prev_filename_len = PATH_MAX;
prev_name = xmalloc (prev_name_len);
prev_filename = xmalloc (prev_filename_len);
prev_name = (char *) xmalloc (prev_name_len);
prev_filename = (char *) xmalloc (prev_filename_len);
ltab.len = 0;
prev_line_num = 0;
@ -751,7 +754,7 @@ core_create_line_syms (void)
{
prev_name_len = len + 1024;
free (prev_name);
prev_name = xmalloc (prev_name_len);
prev_name = (char *) xmalloc (prev_name_len);
}
strcpy (prev_name, dummy.name);
@ -761,7 +764,7 @@ core_create_line_syms (void)
{
prev_filename_len = len + 1024;
free (prev_filename);
prev_filename = xmalloc (prev_filename_len);
prev_filename = (char *) xmalloc (prev_filename_len);
}
strcpy (prev_filename, filename);

View File

@ -493,13 +493,13 @@ gmon_out_read (const char *filename)
if (!histograms)
{
num_histograms = 1;
histograms = xmalloc (sizeof (struct histogram));
histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
histograms->lowpc = tmp.low_pc;
histograms->highpc = tmp.high_pc;
histograms->num_bins = hist_num_bins;
hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
/ hist_num_bins;
histograms->sample = xmalloc (hist_num_bins * sizeof (int));
histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
memset (histograms->sample, 0,
hist_num_bins * sizeof (int));
}

View File

@ -198,8 +198,8 @@ hist_read_rec (FILE * ifp, const char *filename)
/* This is new record. Add it to global array and allocate space for
the samples. */
histograms = xrealloc (histograms,
sizeof (histogram) * (num_histograms + 1));
histograms = (struct histogram *)
xrealloc (histograms, sizeof (histogram) * (num_histograms + 1));
memcpy (histograms + num_histograms,
&n_record, sizeof (histogram));
record = &histograms[num_histograms];

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:10+0200\n"
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -1,18 +1,19 @@
# Swedish messages for gprof.
# Copyright (C) 2001, 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
# Copyright (C) 2001, 2002, 2004, 2006, 2007, 2009 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
# Christian Rose <menthos@menthos.com>, 2001, 2002, 2004.
# Daniel Nylander <po@danielnylander.se>, 2006, 2007.
# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: gprof 2.17.90\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2007-05-15 16:49+0930\n"
"PO-Revision-Date: 2007-08-24 13:42+0100\n"
"Project-Id-Version: gprof 2.19.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: 2009-09-11 09:46+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: alpha.c:102 mips.c:54
@ -37,12 +38,12 @@ msgstr "[find_call] 0x%lx: bsr"
#: basic_blocks.c:128 call_graph.c:89 hist.c:105
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr "%s: %s: ov<EFBFBD>ntat filslut\n"
msgstr "%s: %s: oväntat filslut\n"
#: basic_blocks.c:196
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr "%s: varning: ignorerar exekveringsr<EFBFBD>kning f<EFBFBD>r grundblock (anv<EFBFBD>nd -l eller --line)\n"
msgstr "%s: varning: ignorerar exekveringsräkning för grundblock (använd -l eller --line)\n"
#. FIXME: This only works if bfd_vma is unsigned long.
#: basic_blocks.c:289 basic_blocks.c:299
@ -52,7 +53,7 @@ msgstr "%s:%d: (%s:0x%lx) %lu exekveringar\n"
#: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>"
msgstr "<ok<EFBFBD>nd>"
msgstr "<okänd>"
#: basic_blocks.c:543
#, c-format
@ -66,7 +67,7 @@ msgid ""
msgstr ""
"\n"
"\n"
"<EFBFBD>versta %d raderna:\n"
"Översta %d raderna:\n"
"\n"
" Rad Antal\n"
"\n"
@ -114,18 +115,18 @@ msgstr "%9.2f Medelexekveringar per rad\n"
#: call_graph.c:68
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr "[cg_tally] b<EFBFBD>ge fr<EFBFBD>n %s till %s traverserad %lu g<EFBFBD>nger\n"
msgstr "[cg_tally] båge från %s till %s traverserad %lu gånger\n"
#: cg_print.c:73
#: cg_print.c:74
#, c-format
msgid ""
"\t\t Call graph (explanation follows)\n"
"\n"
msgstr ""
"\t\t Angropsgraf (f<EFBFBD>rklaring f<EFBFBD>ljer)\n"
"\t\t Angropsgraf (förklaring följer)\n"
"\n"
#: cg_print.c:75
#: cg_print.c:76
#, c-format
msgid ""
"\t\t\tCall graph\n"
@ -134,25 +135,25 @@ msgstr ""
"\t\t\tAnropsgraf\n"
"\n"
#: cg_print.c:78 hist.c:466
#: cg_print.c:79 hist.c:466
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
"\n"
"uppl<EFBFBD>sning: varje stickprov t<EFBFBD>cker %ld byte"
"upplösning: varje stickprov täcker %ld byte"
#: cg_print.c:82
#: cg_print.c:83
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
" f<EFBFBD>r %.2f%% p<EFBFBD> %.2f sekunder\n"
" för %.2f%% på %.2f sekunder\n"
"\n"
#: cg_print.c:86
#: cg_print.c:87
#, c-format
msgid ""
" no time propagated\n"
@ -161,64 +162,64 @@ msgstr ""
" ingen tid propagerad\n"
"\n"
#: cg_print.c:95 cg_print.c:98 cg_print.c:100
#: cg_print.c:96 cg_print.c:99 cg_print.c:101
msgid "called"
msgstr "anropad"
#: cg_print.c:95 cg_print.c:100
#: cg_print.c:96 cg_print.c:101
msgid "total"
msgstr "totalt"
#: cg_print.c:95
#: cg_print.c:96
msgid "parents"
msgstr "f<EFBFBD>r<EFBFBD>ldrar"
msgstr "föräldrar"
#: cg_print.c:97 cg_print.c:98
#: cg_print.c:98 cg_print.c:99
msgid "index"
msgstr "index"
#: cg_print.c:97
#: cg_print.c:98
#, c-format
msgid "%time"
msgstr "%tid"
#: cg_print.c:97 cg_print.c:98
#: cg_print.c:98 cg_print.c:99
msgid "self"
msgstr "sj<EFBFBD>lv"
msgstr "själv"
#: cg_print.c:97
#: cg_print.c:98
msgid "descendants"
msgstr "<EFBFBD>ttlingar"
msgstr "ättlingar"
#: cg_print.c:98 hist.c:492
#: cg_print.c:99 hist.c:492
msgid "name"
msgstr "namn"
#: cg_print.c:100
#: cg_print.c:101
msgid "children"
msgstr "barn"
#: cg_print.c:105
#: cg_print.c:106
#, c-format
msgid "index %% time self children called name\n"
msgstr "index %% tid sj<EFBFBD>lv barn anropad namn\n"
msgstr "index %% tid själv barn anropad namn\n"
#: cg_print.c:128
#: cg_print.c:129
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr " <hela cykel %d> [%d]\n"
#: cg_print.c:354
#: cg_print.c:355
#, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontant>\n"
#: cg_print.c:355
#: cg_print.c:356
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n"
msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontant>\n"
#: cg_print.c:589
#: cg_print.c:590
#, c-format
msgid ""
"Index by function name\n"
@ -227,152 +228,152 @@ msgstr ""
"Index efter funktionsnamn\n"
"\n"
#: cg_print.c:646 cg_print.c:655
#: cg_print.c:647 cg_print.c:656
#, c-format
msgid "<cycle %d>"
msgstr "<cykel %d>"
#: corefile.c:59
#: corefile.c:60
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: kan inte tolka mappfilen %s.\n"
#: corefile.c:72
#: corefile.c:84 corefile.c:496
#, c-format
msgid "%s: could not open %s.\n"
msgstr "%s: kunde inte <EFBFBD>ppna %s.\n"
msgstr "%s: kunde inte öppna %s.\n"
#: corefile.c:166
#: corefile.c:183
#, c-format
msgid "%s: %s: not in executable format\n"
msgstr "%s: %s: inte i ett k<EFBFBD>rbart format\n"
msgstr "%s: %s: inte i ett körbart format\n"
#: corefile.c:177
#: corefile.c:194
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr "%s: kan inte hitta .text-sektion i %s\n"
#: corefile.c:252
#: corefile.c:269
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr "%s: slut p<EFBFBD> utrymme f<EFBFBD>r %lu byte textutrymme\n"
msgstr "%s: slut på utrymme för %lu byte textutrymme\n"
#: corefile.c:266
#: corefile.c:283
#, c-format
msgid "%s: can't do -c\n"
msgstr "%s: kan inte g<EFBFBD>ra -c\n"
msgstr "%s: kan inte göra -c\n"
#: corefile.c:305
#: corefile.c:322
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr "%s: -c st<EFBFBD>ds inte p<EFBFBD> arkitekturen %s\n"
msgstr "%s: -c stöds inte på arkitekturen %s\n"
#: corefile.c:470
#: corefile.c:505 corefile.c:588
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr "%s: filen \"%s\" har inga symboler\n"
#: corefile.c:772
#: corefile.c:848
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr "%s: n<EFBFBD>gon r<EFBFBD>knade fel: ltab.len=%d ist<EFBFBD>llet f<EFBFBD>r %ld\n"
msgstr "%s: någon räknade fel: ltab.len=%d istället för %ld\n"
#: gmon_io.c:83
#: gmon_io.c:84
#, c-format
msgid "%s: address size has unexpected value of %u\n"
msgstr "%s: adresstorleken har ett ov<EFBFBD>ntat v<EFBFBD>rde p<EFBFBD> %u\n"
msgstr "%s: adresstorleken har ett oväntat värde på %u\n"
#: gmon_io.c:320 gmon_io.c:416
#: gmon_io.c:319 gmon_io.c:415
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr "%s: filen <EFBFBD>r f<EFBFBD>r kort f<EFBFBD>r att vara en gmon-fil\n"
msgstr "%s: filen är för kort för att vara en gmon-fil\n"
#: gmon_io.c:330 gmon_io.c:459
#: gmon_io.c:329 gmon_io.c:458
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
#: gmon_io.c:341
#: gmon_io.c:340
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr "%s: filen \"%s\" har version %d som inte st<EFBFBD>ds\n"
msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
#: gmon_io.c:371
#: gmon_io.c:370
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr "%s: %s: hittade felaktig tagg %d (<EFBFBD>r filen skadad?)\n"
msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
#: gmon_io.c:438
#: gmon_io.c:437
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr "%s: profileringshastighet <EFBFBD>r inkompatibel med f<EFBFBD>rsta gmon-filen\n"
msgstr "%s: profileringshastighet är inkompatibel med första gmon-filen\n"
#: gmon_io.c:489
#: gmon_io.c:488
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr "%s: inkompatibel med f<EFBFBD>rsta gmon-filen\n"
msgstr "%s: inkompatibel med första gmon-filen\n"
#: gmon_io.c:516
#: gmon_io.c:518
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr "%s: filen \"%s\" verkar inte vara i gmon.out-format\n"
# Man brukar tala om "bins" i hashtabeller
#
#: gmon_io.c:529
#: gmon_io.c:531
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr "%s: ov<EFBFBD>ntat filslut efter l<EFBFBD>sning av %d/%d poster\n"
msgstr "%s: oväntat filslut efter läsning av %d/%d poster\n"
#: gmon_io.c:563
#: gmon_io.c:565
#, c-format
msgid "time is in ticks, not seconds\n"
msgstr "tiden <EFBFBD>r i tick, inte sekunder\n"
msgstr "tiden är i tick, inte sekunder\n"
#: gmon_io.c:569 gmon_io.c:746
#: gmon_io.c:571 gmon_io.c:748
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
#: gmon_io.c:576
#: gmon_io.c:578
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr "Filen \"%s\" (version %d) inneh<EFBFBD>ller:\n"
msgstr "Filen \"%s\" (version %d) innehåller:\n"
#: gmon_io.c:579
#: gmon_io.c:581
#, c-format
msgid "\t%d histogram record\n"
msgstr "\t%d histogrampost\n"
#: gmon_io.c:580
#: gmon_io.c:582
#, c-format
msgid "\t%d histogram records\n"
msgstr "\t%d histogramposter\n"
#: gmon_io.c:582
#: gmon_io.c:584
#, c-format
msgid "\t%d call-graph record\n"
msgstr "\t%d anropsgrafpost\n"
#: gmon_io.c:583
#: gmon_io.c:585
#, c-format
msgid "\t%d call-graph records\n"
msgstr "\t%d anropsgrafposter\n"
#: gmon_io.c:585
#: gmon_io.c:587
#, c-format
msgid "\t%d basic-block count record\n"
msgstr "\t%d grundblocksr<EFBFBD>kningspost\n"
msgstr "\t%d grundblocksräkningspost\n"
#: gmon_io.c:586
#: gmon_io.c:588
#, c-format
msgid "\t%d basic-block count records\n"
msgstr "\t%d grundblocksr<EFBFBD>kningsposter\n"
msgstr "\t%d grundblocksräkningsposter\n"
#: gprof.c:158
#: gprof.c:159
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n"
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
@ -383,77 +384,77 @@ msgid ""
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [@FILE]\n"
"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
"Anv<EFBFBD>ndning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I kataloger]\n"
"\t[-d[num]] [-k fr<EFBFBD>n/till] [-m min_antal] [-t tabell_l<EFBFBD>ngd]\n"
"Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I kataloger]\n"
"\t[-d[num]] [-k från/till] [-m min_antal] [-t tabell_längd]\n"
"\t[--[no-]annotated-source[=namn]] [--[no-]exec-counts[=namn]]\n"
"\t[--[no-]flat-profile[=namn]] [--[no-]graph[=namn]]\n"
"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=niv<EFBFBD>]]\n"
"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=nivå]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=kataloger] [--display-unused-functions]\n"
"\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=l<EFBFBD>ngd] [--traditional]\n"
"\t[--static-call-graph] [--sum] [--table-length=längd] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STIL]] [--no-demangle] [@FIL]\n"
"\t[--demangle[=STIL]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
"\t[bildfil] [profilfil...]\n"
#: gprof.c:174
#: gprof.c:175
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
"Rapportera fel till %s,\n"
"Rapportera synpunkter p<EFBFBD> <20>vers<EFBFBD>ttningen till tp-sv@listor.tp-sv.se\n"
"Rapportera synpunkter på översättningen till tp-sv@listor.tp-sv.se\n"
#: gprof.c:250
#: gprof.c:251
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr "%s: fels<EFBFBD>kning st<EFBFBD>ds inte; -d ignorerades\n"
msgstr "%s: felsökning stöds inte; -d ignorerades\n"
#: gprof.c:330
#: gprof.c:331
#, c-format
msgid "%s: unknown file format %s\n"
msgstr "%s: ok<EFBFBD>nt filformat %s\n"
msgstr "%s: okänt filformat %s\n"
#. This output is intended to follow the GNU standards document.
#: gprof.c:414
#: gprof.c:419
#, c-format
msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n"
#: gprof.c:415
#: gprof.c:420
#, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Baserat p<EFBFBD> BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr "Baserat på BSD gprof, copyright 1983 Regents of the University of California.\n"
#: gprof.c:416
#: gprof.c:421
#, c-format
msgid "This program is free software. This program has absolutely no warranty.\n"
msgstr "Detta program <EFBFBD>r fri programvara. Detta program har ingen som helst garanti.\n"
msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
#: gprof.c:457
#: gprof.c:462
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr "%s: ok<EFBFBD>nd avmanglingsstil \"%s\"\n"
msgstr "%s: okänd avmanglingsstil \"%s\"\n"
#: gprof.c:477
#: gprof.c:482
#, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
#: gprof.c:527
#: gprof.c:534
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr "%s: tyv<EFBFBD>rr, filformatet \"prof\" st<EFBFBD>ds inte <EFBFBD>n\n"
msgstr "%s: tyvärr, filformatet \"prof\" stöds inte än\n"
#: gprof.c:581
#: gprof.c:588
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: gmon.out-filen saknar histogram\n"
#: gprof.c:588
#: gprof.c:595
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
@ -465,8 +466,8 @@ msgid ""
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
"%s: dimensionsenhet <EFBFBD>ndrades mellan histogramposter\n"
"%s: fr<EFBFBD>n \"%s\"\n"
"%s: dimensionsenhet ändrades mellan histogramposter\n"
"%s: från \"%s\"\n"
"%s: till \"%s\"\n"
#: hist.c:143
@ -476,8 +477,8 @@ msgid ""
"%s: from '%c'\n"
"%s: to '%c'\n"
msgstr ""
"%s: dimensionsf<EFBFBD>rkortning <EFBFBD>ndrades mellan histogramposter\n"
"%s: fr<EFBFBD>n \"%c\"\n"
"%s: dimensionsförkortning ändrades mellan histogramposter\n"
"%s: från \"%c\"\n"
"%s: till \"%c\"\n"
#: hist.c:157
@ -488,12 +489,12 @@ msgstr "%s: olika skalor i histogramposter"
#: hist.c:194
#, c-format
msgid "%s: overlapping histogram records\n"
msgstr "%s: <EFBFBD>verlappande histogramposter\n"
msgstr "%s: överlappande histogramposter\n"
#: hist.c:228
#, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
msgstr "%s: %s: ov<EFBFBD>ntat filslut efter l<EFBFBD>sning av %u av %u stickprov\n"
msgstr "%s: %s: oväntat filslut efter läsning av %u av %u stickprov\n"
#: hist.c:462
#, c-format
@ -506,7 +507,7 @@ msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
" f<EFBFBD>r %.2f%% av %.2f %s\n"
" för %.2f%% av %.2f %s\n"
"\n"
#: hist.c:476
@ -516,7 +517,7 @@ msgid ""
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
"Varje stickprov r<EFBFBD>knas som %g %s.\n"
"Varje stickprov räknas som %g %s.\n"
#: hist.c:481
#, c-format
@ -533,7 +534,7 @@ msgstr "kumulativ"
#: hist.c:488
msgid "self "
msgstr "sj<EFBFBD>lv"
msgstr "själv"
#: hist.c:488
msgid "total "
@ -568,14 +569,14 @@ msgstr "Platt profil:\n"
#: hist.c:705
#, c-format
msgid "%s: found a symbol that covers several histogram records"
msgstr "%s: hittade en symbol som t<EFBFBD>cker in flera histogramposter"
msgstr "%s: hittade en symbol som täcker in flera histogramposter"
#: mips.c:71
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: jal"
#: mips.c:96
#: mips.c:99
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: jalr\n"
@ -596,7 +597,7 @@ msgid " <cycle %d>"
msgstr " <cykel %d>"
#~ msgid "%s: `%s' is incompatible with first gmon file\n"
#~ msgstr "%s: \"%s\" <EFBFBD>r inkompatibel med f<EFBFBD>rsta gmon-filen\n"
#~ msgstr "%s: \"%s\" är inkompatibel med första gmon-filen\n"
#~ msgid "%s: bfd_vma has unexpected size of %ld bytes\n"
#~ msgstr "%s: bfd_vma har en ov<EFBFBD>ntad storlek p<EFBFBD> %ld byte\n"
#~ msgstr "%s: bfd_vma har en oväntad storlek på %ld byte\n"

View File

@ -237,7 +237,7 @@ annotate_source (Source_File *sf, unsigned int max_width,
fprintf (ofp, _("*** File %s:\n"), sf->name);
}
annotation = xmalloc (max_width + 1);
annotation = (char *) xmalloc (max_width + 1);
line_num = 1;
new_line = TRUE;

View File

@ -29,23 +29,25 @@
#include "sym_ids.h"
#include "corefile.h"
static struct sym_id
{
struct sym_id *next;
char *spec; /* Parsing modifies this. */
Table_Id which_table;
bfd_boolean has_right;
struct match
{
int prev_index; /* Index of prev match. */
Sym *prev_match; /* Previous match. */
Sym *first_match; /* Chain of all matches. */
Sym sym;
}
left, right;
}
*id_list;
};
struct sym_id
{
struct sym_id *next;
char *spec; /* Parsing modifies this. */
Table_Id which_table;
bfd_boolean has_right;
struct match left, right;
};
static struct sym_id *id_list;
static void parse_spec
(char *, Sym *);

View File

@ -1,3 +1,26 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/ld.pot: Updated by the Translation project.
* po/fi.po: Updated Finnish translation.
2009-09-11 Martin Thuresson <martint@google.com>
Updated sources to compile cleanly with -Wc++-compat:
* ld.h (enum endian_enum,enum symbolic_enum,enum
dynamic_list_enum): Move to top level.
* ldcref.c: Add casts.
* ldctor.c: Add casts.
* ldexp.c
* ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
* ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead
of integer.
* ldlang.h (enum statement_enum): Move to top level.
* ldmain.c: Add casts.
* ldwrite.c: Add casts.
* lexsup.c: Add casts. (enum control_enum): Move to top level.
* mri.c: Add casts. (mri_draw_tree): Use enum name instead of
integer.
2009-09-09 Alan Modra <amodra@bigpond.net.au>
* scripttempl/aix.sc: Only provide ENTRY on final link.

View File

@ -137,7 +137,8 @@ gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
|| (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
return FALSE;
bfd_elf_set_dyn_lib_class (entry->the_bfd, link_class);
bfd_elf_set_dyn_lib_class (entry->the_bfd,
(enum dynamic_lib_link_class) link_class);
/* Continue on with normal load_symbols processing. */
return FALSE;
@ -428,7 +429,7 @@ fragment <<EOF
&& (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
bfd_elf_set_dyn_lib_class (abfd, link_class);
bfd_elf_set_dyn_lib_class (abfd, (enum dynamic_lib_link_class) link_class);
/* Add this file into the symbol table. */
if (! bfd_link_add_symbols (abfd, &link_info))
@ -930,7 +931,7 @@ static bfd_boolean
gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
struct build_id_info *info =
struct build_id_info *info = (struct build_id_info *)
elf_tdata (abfd)->after_write_object_contents_info;
asection *asec;
Elf_Internal_Shdr *i_shdr;
@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
if (i_shdr->contents == NULL)
{
if (asec->contents == NULL)
asec->contents = xmalloc (asec->size);
asec->contents = (unsigned char *) xmalloc (asec->size);
contents = asec->contents;
}
else
contents = i_shdr->contents + asec->output_offset;
e_note = (void *) contents;
e_note = (Elf_External_Note *) contents;
size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
size = (size + 3) & -(bfd_size_type) 4;
id_bits = contents + size;
@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
{
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
struct build_id_info *b = xmalloc (sizeof *b);
struct build_id_info *b =
(struct build_id_info *) xmalloc (sizeof *b);
b->style = link_info.emit_note_gnu_build_id;
b->sec = s;
@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
continue;
sz = s->size;
msg = xmalloc ((size_t) (sz + 1));
msg = (char *) xmalloc ((size_t) (sz + 1));
if (! bfd_get_section_contents (is->the_bfd, s, msg,
(file_ptr) 0, sz))
einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",

32
ld/ld.h
View File

@ -124,6 +124,22 @@ typedef struct fat_user_section_struct {
#define LONG_SIZE (4)
#define QUAD_SIZE (8)
enum endian_enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE };
enum symbolic_enum
{
symbolic_unset = 0,
symbolic,
symbolic_functions,
};
enum dynamic_list_enum
{
dynamic_list_unset = 0,
dynamic_list_data,
dynamic_list
};
typedef struct {
/* 1 => assign space to common symbols even if `relocatable_output'. */
bfd_boolean force_common_definition;
@ -161,24 +177,14 @@ typedef struct {
bfd_boolean accept_unknown_input_arch;
/* Big or little endian as set on command line. */
enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian;
enum endian_enum endian;
/* -Bsymbolic and -Bsymbolic-functions, as set on command line. */
enum
{
symbolic_unset = 0,
symbolic,
symbolic_functions,
} symbolic;
enum symbolic_enum symbolic;
/* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
and --dynamic-list FILE, as set on command line. */
enum
{
dynamic_list_unset = 0,
dynamic_list_data,
dynamic_list
} dynamic_list;
enum dynamic_list_enum dynamic_list;
/* Name of runtime interpreter to invoke. */
char *interpreter;

View File

@ -179,7 +179,7 @@ add_cref (const char *name,
if (r == NULL)
{
r = bfd_hash_allocate (&cref_table.root, sizeof *r);
r = (struct cref_ref *) bfd_hash_allocate (&cref_table.root, sizeof *r);
if (r == NULL)
einfo (_("%X%P: cref alloc failed: %E\n"));
r->next = h->refs;
@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
static bfd_boolean
cref_fill_array (struct cref_hash_entry *h, void *data)
{
struct cref_hash_entry ***pph = data;
struct cref_hash_entry ***pph = (struct cref_hash_entry ***) data;
ASSERT (h->demangled == NULL);
h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
@ -344,8 +344,10 @@ cref_fill_array (struct cref_hash_entry *h, void *data)
static int
cref_sort_array (const void *a1, const void *a2)
{
const struct cref_hash_entry * const *p1 = a1;
const struct cref_hash_entry * const *p2 = a2;
const struct cref_hash_entry * const *p1 =
(const struct cref_hash_entry * const *) a1;
const struct cref_hash_entry * const *p2 =
(const struct cref_hash_entry * const *) a2;
return strcmp ((*p1)->demangled, (*p2)->demangled);
}
@ -378,7 +380,7 @@ output_cref (FILE *fp)
return;
}
csyms = xmalloc (cref_symcount * sizeof (*csyms));
csyms = (struct cref_hash_entry **) xmalloc (cref_symcount * sizeof (*csyms));
csym_fill = csyms;
cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
@ -602,7 +604,7 @@ check_refs (const char *name,
static void
check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
{
struct check_refs_info *info = iarg;
struct check_refs_info *info = (struct check_refs_info *) iarg;
asection *outsec;
const char *outsecname;
asection *outdefsec;
@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
if (relsize == 0)
return;
relpp = xmalloc (relsize);
relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0)
einfo (_("%B%F: could not read relocs: %E\n"), abfd);

View File

@ -70,7 +70,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
if (p == NULL)
{
p = xmalloc (sizeof (struct set_info));
p = (struct set_info *) xmalloc (sizeof (struct set_info));
p->next = sets;
sets = p;
p->h = h;
@ -106,7 +106,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
}
}
e = xmalloc (sizeof (struct set_element));
e = (struct set_element *) xmalloc (sizeof (struct set_element));
e->next = NULL;
e->name = name;
e->section = section;
@ -153,8 +153,10 @@ ctor_prio (const char *name)
static int
ctor_cmp (const void *p1, const void *p2)
{
const struct set_element * const *pe1 = p1;
const struct set_element * const *pe2 = p2;
const struct set_element * const *pe1 =
(const struct set_element * const *) p1;
const struct set_element * const *pe2 =
(const struct set_element * const *) p2;
const char *n1;
const char *n2;
int prio1;
@ -223,7 +225,7 @@ ldctor_build_sets (void)
for (e = p->elements; e != NULL; e = e->next)
++c;
array = xmalloc (c * sizeof *array);
array = (struct set_element **) xmalloc (c * sizeof *array);
i = 0;
for (e = p->elements; e != NULL; e = e->next)

View File

@ -946,7 +946,7 @@ exp_provide (const char *dst, etree_type *src, bfd_boolean hidden)
{
etree_type *n;
n = stat_alloc (sizeof (n->assign));
n = (etree_type *) stat_alloc (sizeof (n->assign));
n->assign.type.node_code = '=';
n->assign.type.lineno = src->type.lineno;
n->assign.type.node_class = etree_provide;
@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
{
etree_type *n;
n = stat_alloc (sizeof (n->assert_s));
n = (etree_type *) stat_alloc (sizeof (n->assert_s));
n->assert_s.type.node_code = '!';
n->assert_s.type.lineno = exp->type.lineno;
n->assert_s.type.node_class = etree_assert;
@ -1095,7 +1095,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
{
unsigned char *dst;
unsigned char *s;
fill = xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
fill = (fill_type *) xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
fill->size = (len + 1) / 2;
dst = fill->data;
s = (unsigned char *) expld.result.str;
@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
}
else
{
fill = xmalloc (4 + sizeof (*fill) - 1);
fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
val = expld.result.value;
fill->data[0] = (val >> 24) & 0xff;
fill->data[1] = (val >> 16) & 0xff;

View File

@ -30,10 +30,7 @@ typedef struct {
bfd_boolean valid_p;
} etree_value_type;
typedef struct {
int node_code;
unsigned int lineno;
enum {
enum node_tree_enum {
etree_binary,
etree_trinary,
etree_unary,
@ -44,7 +41,12 @@ typedef struct {
etree_value,
etree_assert,
etree_rel
} node_class;
};
typedef struct {
int node_code;
unsigned int lineno;
enum node_tree_enum node_class;
} node_type;
typedef union etree_union {
@ -100,6 +102,21 @@ typedef enum {
union lang_statement_union;
enum phase_enum {
exp_dataseg_none,
exp_dataseg_align_seen,
exp_dataseg_relro_seen,
exp_dataseg_end_seen,
exp_dataseg_relro_adjust,
exp_dataseg_adjust
};
enum relro_enum {
exp_dataseg_relro_none,
exp_dataseg_relro_start,
exp_dataseg_relro_end,
};
struct ldexp_control {
/* Modify expression evaluation depending on this. */
lang_phase_type phase;
@ -117,22 +134,11 @@ struct ldexp_control {
/* State machine and results for DATASEG. */
struct {
enum {
exp_dataseg_none,
exp_dataseg_align_seen,
exp_dataseg_relro_seen,
exp_dataseg_end_seen,
exp_dataseg_relro_adjust,
exp_dataseg_adjust
} phase;
enum phase_enum phase;
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
enum {
exp_dataseg_relro_none,
exp_dataseg_relro_start,
exp_dataseg_relro_end,
} relro;
enum relro_enum relro;
union lang_statement_union *relro_start_stat;
union lang_statement_union *relro_end_stat;

View File

@ -307,7 +307,7 @@ typedef struct
static bfd_boolean
section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
{
section_iterator_callback_data *d = data;
section_iterator_callback_data *d = (section_iterator_callback_data *) data;
if (d->found_section != NULL)
{
@ -452,7 +452,7 @@ output_section_callback_fast (lang_wild_statement_type *ptr,
if (unique_section_p (section))
return;
node = xmalloc (sizeof (lang_section_bst_type));
node = (lang_section_bst_type *) xmalloc (sizeof (lang_section_bst_type));
node->left = 0;
node->right = 0;
node->section = section;
@ -813,7 +813,9 @@ walk_wild_file (lang_wild_statement_type *s,
lang_input_statement. */
if (member->usrdata != NULL)
{
walk_wild_section (s, member->usrdata, callback, data);
walk_wild_section (s,
(lang_input_statement_type *) member->usrdata,
callback, data);
}
member = bfd_openr_next_archived_file (f->the_bfd, member);
@ -1095,7 +1097,8 @@ output_section_statement_newfunc (struct bfd_hash_entry *entry,
if (entry == NULL)
{
entry = bfd_hash_allocate (table, sizeof (*ret));
entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
sizeof (*ret));
if (entry == NULL)
return entry;
}
@ -1296,7 +1299,7 @@ lang_memory_region_alias (const char * alias, const char * region_name)
alias);
/* Add alias to region name list. */
n = stat_alloc (sizeof (lang_memory_region_name));
n = (lang_memory_region_name *) stat_alloc (sizeof (lang_memory_region_name));
n->name = xstrdup (alias);
n->next = region->name_list.next;
region->name_list.next = n;
@ -1717,8 +1720,8 @@ lang_insert_orphan (asection *s,
os_tail = ((lang_output_section_statement_type **)
lang_output_section_statement.tail);
os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
NULL, constraint);
os = lang_enter_output_section_statement (secname, address, normal_section,
NULL, NULL, NULL, constraint);
ps = NULL;
if (config.build_constructors && *os_tail == os)
@ -2012,18 +2015,20 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
struct fat_user_section_struct *ud;
struct map_symbol_def *def;
ud = get_userdata (hash_entry->u.def.section);
ud = (struct fat_user_section_struct *)
get_userdata (hash_entry->u.def.section);
if (! ud)
{
/* ??? What do we have to do to initialize this beforehand? */
/* The first time we get here is bfd_abs_section... */
init_map_userdata (0, hash_entry->u.def.section, 0);
ud = get_userdata (hash_entry->u.def.section);
ud = (struct fat_user_section_struct *)
get_userdata (hash_entry->u.def.section);
}
else if (!ud->map_symbol_def_tail)
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
def = obstack_alloc (&map_obstack, sizeof *def);
def = (struct map_symbol_def *) obstack_alloc (&map_obstack, sizeof *def);
def->entry = hash_entry;
*(ud->map_symbol_def_tail) = def;
ud->map_symbol_def_tail = &def->next;
@ -2139,7 +2144,7 @@ exp_init_os (etree_type *exp)
static void
section_already_linked (bfd *abfd, asection *sec, void *data)
{
lang_input_statement_type *entry = data;
lang_input_statement_type *entry = (lang_input_statement_type *) data;
/* If we are only reading symbols from this object, then we want to
discard all sections. */
@ -2528,9 +2533,9 @@ add_excluded_libs (const char *list)
end = strpbrk (p, ",:");
if (end == NULL)
end = p + strlen (p);
entry = xmalloc (sizeof (*entry));
entry = (struct excluded_lib *) xmalloc (sizeof (*entry));
entry->next = excluded_libs;
entry->name = xmalloc (end - p + 1);
entry->name = (char *) xmalloc (end - p + 1);
memcpy (entry->name, p, end - p);
entry->name[end - p] = '\0';
excluded_libs = entry;
@ -2751,7 +2756,7 @@ wild (lang_wild_statement_type *s,
static int
get_target (const bfd_target *target, void *data)
{
const char *sought = data;
const char *sought = (const char *) data;
return strcmp (target->name, sought) == 0;
}
@ -2798,8 +2803,8 @@ name_compare (char *first, char *second)
char *copy2;
int result;
copy1 = xmalloc (strlen (first) + 1);
copy2 = xmalloc (strlen (second) + 1);
copy1 = (char *) xmalloc (strlen (first) + 1);
copy2 = (char *) xmalloc (strlen (second) + 1);
/* Convert the names to lower case. */
stricpy (copy1, first);
@ -2837,7 +2842,7 @@ static const bfd_target *winner;
static int
closest_target_match (const bfd_target *target, void *data)
{
const bfd_target *original = data;
const bfd_target *original = (const bfd_target *) data;
if (command_line.endian == ENDIAN_BIG
&& target->byteorder != BFD_ENDIAN_BIG)
@ -3932,7 +3937,7 @@ print_input_statement (lang_input_statement_type *statm)
static bfd_boolean
print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
{
asection *sec = ptr;
asection *sec = (asection *) ptr;
if ((hash_entry->type == bfd_link_hash_defined
|| hash_entry->type == bfd_link_hash_defweak)
@ -3970,7 +3975,8 @@ hash_entry_addr_cmp (const void *a, const void *b)
static void
print_all_symbols (asection *sec)
{
struct fat_user_section_struct *ud = get_userdata (sec);
struct fat_user_section_struct *ud =
(struct fat_user_section_struct *) get_userdata (sec);
struct map_symbol_def *def;
struct bfd_link_hash_entry **entries;
unsigned int i;
@ -3981,8 +3987,8 @@ print_all_symbols (asection *sec)
*ud->map_symbol_def_tail = 0;
/* Sort the symbols by address. */
entries = obstack_alloc (&map_obstack,
ud->map_symbol_def_count * sizeof (*entries));
entries = (struct bfd_link_hash_entry **)
obstack_alloc (&map_obstack, ud->map_symbol_def_count * sizeof (*entries));
for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
entries[i] = def->entry;
@ -4419,7 +4425,8 @@ insert_pad (lang_statement_union_type **ptr,
else
{
/* Make a new padding statement, linked into existing chain. */
pad = stat_alloc (sizeof (lang_padding_statement_type));
pad = (lang_statement_union_type *)
stat_alloc (sizeof (lang_padding_statement_type));
pad->header.next = *ptr;
*ptr = pad;
pad->header.type = lang_padding_statement_enum;
@ -4535,7 +4542,7 @@ lang_check_section_addresses (void)
return;
amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
sections = xmalloc (amt);
sections = (asection **) xmalloc (amt);
/* Scan all sections in the output list. */
count = 0;
@ -5465,7 +5472,7 @@ lang_set_startof (void)
struct bfd_link_hash_entry *h;
secname = bfd_get_section_name (link_info.output_bfd, s);
buf = xmalloc (10 + strlen (secname));
buf = (char *) xmalloc (10 + strlen (secname));
sprintf (buf, ".startof.%s", secname);
h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
@ -6762,7 +6769,7 @@ lang_new_phdr (const char *name,
{
struct lang_phdr *n, **pp;
n = stat_alloc (sizeof (struct lang_phdr));
n = (struct lang_phdr *) stat_alloc (sizeof (struct lang_phdr));
n->next = NULL;
n->name = name;
n->type = exp_get_value_int (type, 0, "program header type");
@ -6789,7 +6796,7 @@ lang_record_phdrs (void)
lang_output_section_statement_type *os;
alc = 10;
secs = xmalloc (alc * sizeof (asection *));
secs = (asection **) xmalloc (alc * sizeof (asection *));
last = NULL;
for (l = lang_phdr_list; l != NULL; l = l->next)
@ -6856,7 +6863,8 @@ lang_record_phdrs (void)
if (c >= alc)
{
alc *= 2;
secs = xrealloc (secs, alc * sizeof (asection *));
secs = (asection **) xrealloc (secs,
alc * sizeof (asection *));
}
secs[c] = os->bfd_section;
++c;
@ -6910,7 +6918,7 @@ lang_add_nocrossref (lang_nocrossref_type *l)
{
struct lang_nocrossrefs *n;
n = xmalloc (sizeof *n);
n = (struct lang_nocrossrefs *) xmalloc (sizeof *n);
n->next = nocrossref_list;
n->list = l;
nocrossref_list = n;
@ -6972,7 +6980,7 @@ lang_enter_overlay_section (const char *name)
overlay_vma = exp_nameop (ADDR, name);
/* Remember the section. */
n = xmalloc (sizeof *n);
n = (struct overlay_list *) xmalloc (sizeof *n);
n->os = current_section;
n->next = overlay_list;
overlay_list = n;
@ -7008,20 +7016,20 @@ lang_leave_overlay_section (fill_type *fill,
/* Define the magic symbols. */
clean = xmalloc (strlen (name) + 1);
clean = (char *) xmalloc (strlen (name) + 1);
s2 = clean;
for (s1 = name; *s1 != '\0'; s1++)
if (ISALNUM (*s1) || *s1 == '_')
*s2++ = *s1;
*s2 = '\0';
buf = xmalloc (strlen (clean) + sizeof "__load_start_");
buf = (char *) xmalloc (strlen (clean) + sizeof "__load_start_");
sprintf (buf, "__load_start_%s", clean);
lang_add_assignment (exp_provide (buf,
exp_nameop (LOADADDR, name),
FALSE));
buf = xmalloc (strlen (clean) + sizeof "__load_stop_");
buf = (char *) xmalloc (strlen (clean) + sizeof "__load_stop_");
sprintf (buf, "__load_stop_%s", clean);
lang_add_assignment (exp_provide (buf,
exp_binop ('+',
@ -7087,7 +7095,7 @@ lang_leave_overlay (etree_type *lma_expr,
{
lang_nocrossref_type *nc;
nc = xmalloc (sizeof *nc);
nc = (lang_nocrossref_type *) xmalloc (sizeof *nc);
nc->name = l->os->name;
nc->next = nocrossref;
nocrossref = nc;
@ -7148,7 +7156,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
if (head->mask & BFD_ELF_VERSION_C_TYPE)
{
e.pattern = sym;
expr = htab_find (head->htab, &e);
expr = (struct bfd_elf_version_expr *)
htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, sym) == 0)
if (expr->mask == BFD_ELF_VERSION_C_TYPE)
goto out_ret;
@ -7160,7 +7169,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
{
e.pattern = cxx_sym;
expr = htab_find (head->htab, &e);
expr = (struct bfd_elf_version_expr *)
htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, cxx_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
goto out_ret;
@ -7172,7 +7182,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
{
e.pattern = java_sym;
expr = htab_find (head->htab, &e);
expr = (struct bfd_elf_version_expr *)
htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, java_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
goto out_ret;
@ -7226,7 +7237,7 @@ realsymbol (const char *pattern)
{
const char *p;
bfd_boolean changed = FALSE, backslash = FALSE;
char *s, *symbol = xmalloc (strlen (pattern) + 1);
char *s, *symbol = (char *) xmalloc (strlen (pattern) + 1);
for (p = pattern, s = symbol; *p != '\0'; ++p)
{
@ -7313,7 +7324,7 @@ lang_new_vers_node (struct bfd_elf_version_expr *globals,
{
struct bfd_elf_version_tree *ret;
ret = xcalloc (1, sizeof *ret);
ret = (struct bfd_elf_version_tree *) xcalloc (1, sizeof *ret);
ret->globals.list = globals;
ret->locals.list = locals;
ret->match = lang_vers_match;
@ -7328,7 +7339,8 @@ static int version_index;
static hashval_t
version_expr_head_hash (const void *p)
{
const struct bfd_elf_version_expr *e = p;
const struct bfd_elf_version_expr *e =
(const struct bfd_elf_version_expr *) p;
return htab_hash_string (e->pattern);
}
@ -7336,8 +7348,10 @@ version_expr_head_hash (const void *p)
static int
version_expr_head_eq (const void *p1, const void *p2)
{
const struct bfd_elf_version_expr *e1 = p1;
const struct bfd_elf_version_expr *e2 = p2;
const struct bfd_elf_version_expr *e1 =
(const struct bfd_elf_version_expr *) p1;
const struct bfd_elf_version_expr *e2 =
(const struct bfd_elf_version_expr *) p2;
return strcmp (e1->pattern, e2->pattern) == 0;
}
@ -7372,13 +7386,13 @@ lang_finalize_version_expr_head (struct bfd_elf_version_expr_head *head)
}
else
{
void **loc = htab_find_slot (head->htab, e, INSERT);
void **loc = htab_find_slot ((htab_t) head->htab, e, INSERT);
if (*loc)
{
struct bfd_elf_version_expr *e1, *last;
e1 = *loc;
e1 = (struct bfd_elf_version_expr *) *loc;
last = NULL;
do
{
@ -7463,7 +7477,8 @@ lang_register_vers_node (const char *name,
if (t->locals.htab && e1->literal)
{
e2 = htab_find (t->locals.htab, e1);
e2 = (struct bfd_elf_version_expr *)
htab_find ((htab_t) t->locals.htab, e1);
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
{
if (e1->mask == e2->mask)
@ -7489,7 +7504,8 @@ lang_register_vers_node (const char *name,
if (t->globals.htab && e1->literal)
{
e2 = htab_find (t->globals.htab, e1);
e2 = (struct bfd_elf_version_expr *)
htab_find ((htab_t) t->globals.htab, e1);
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
{
if (e1->mask == e2->mask)
@ -7531,7 +7547,7 @@ lang_add_vers_depend (struct bfd_elf_version_deps *list, const char *name)
struct bfd_elf_version_deps *ret;
struct bfd_elf_version_tree *t;
ret = xmalloc (sizeof *ret);
ret = (struct bfd_elf_version_deps *) xmalloc (sizeof *ret);
ret->next = list;
for (t = lang_elf_version_info; t != NULL; t = t->next)
@ -7563,7 +7579,7 @@ lang_do_version_exports_section (void)
continue;
len = sec->size;
contents = xmalloc (len);
contents = (char *) xmalloc (len);
if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
einfo (_("%X%P: unable to read .exports section contents\n"), sec);
@ -7594,7 +7610,7 @@ lang_add_unique (const char *name)
if (strcmp (ent->name, name) == 0)
return;
ent = xmalloc (sizeof *ent);
ent = (struct unique_sections *) xmalloc (sizeof *ent);
ent->name = xstrdup (name);
ent->next = unique_section_list;
unique_section_list = ent;
@ -7617,7 +7633,7 @@ lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic)
{
struct bfd_elf_dynamic_list *d;
d = xcalloc (1, sizeof *d);
d = (struct bfd_elf_dynamic_list *) xcalloc (1, sizeof *d);
d->head.list = dynamic;
d->match = lang_vers_match;
link_info.dynamic_list = d;

View File

@ -66,9 +66,6 @@ typedef struct memory_region_struct
bfd_boolean had_full_message;
} lang_memory_region_type;
typedef struct lang_statement_header_struct
{
union lang_statement_union *next;
enum statement_enum
{
lang_output_section_statement_enum,
@ -87,7 +84,12 @@ typedef struct lang_statement_header_struct
lang_group_statement_enum,
lang_insert_statement_enum,
lang_constructors_statement_enum
} type;
};
typedef struct lang_statement_header_struct
{
union lang_statement_union *next;
enum statement_enum type;
} lang_statement_header_type;
typedef struct

View File

@ -399,7 +399,7 @@ main (int argc, char **argv)
{
static const int ld_bufsz = 8193;
size_t n;
char *buf = xmalloc (ld_bufsz);
char *buf = (char *) xmalloc (ld_bufsz);
rewind (saved_script_handle);
while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
@ -503,9 +503,9 @@ main (int argc, char **argv)
FILE *src;
FILE *dst;
const int bsize = 4096;
char *buf = xmalloc (bsize);
char *buf = (char *) xmalloc (bsize);
int l;
char *dst_name = xmalloc (len + 5);
char *dst_name = (char *) xmalloc (len + 5);
strcpy (dst_name, output_filename);
strcat (dst_name, ".exe");
@ -540,7 +540,7 @@ main (int argc, char **argv)
if (config.stats)
{
#ifdef HAVE_SBRK
char *lim = sbrk (0);
char *lim = (char *) sbrk (0);
#endif
long run_time = get_run_time () - start_time;
@ -672,7 +672,8 @@ add_ysym (const char *name)
{
if (link_info.notice_hash == NULL)
{
link_info.notice_hash = xmalloc (sizeof (struct bfd_hash_table));
link_info.notice_hash =
(struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init_n (link_info.notice_hash,
bfd_hash_newfunc,
sizeof (struct bfd_hash_entry),
@ -691,7 +692,8 @@ add_wrap (const char *name)
{
if (link_info.wrap_hash == NULL)
{
link_info.wrap_hash = xmalloc (sizeof (struct bfd_hash_table));
link_info.wrap_hash =
(struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init_n (link_info.wrap_hash,
bfd_hash_newfunc,
sizeof (struct bfd_hash_entry),
@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
return;
}
link_info.keep_hash = xmalloc (sizeof (struct bfd_hash_table));
link_info.keep_hash = (struct bfd_hash_table *)
xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry)))
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
bufsize = 100;
buf = xmalloc (bufsize);
buf = (char *) xmalloc (bufsize);
c = getc (file);
while (c != EOF)
@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
if (len >= bufsize)
{
bufsize *= 2;
buf = xrealloc (buf, bufsize);
buf = (char *) xrealloc (buf, bufsize);
}
c = getc (file);
}
@ -780,7 +783,8 @@ add_archive_element (struct bfd_link_info *info,
{
lang_input_statement_type *input;
input = xcalloc (1, sizeof (lang_input_statement_type));
input = (lang_input_statement_type *)
xcalloc (1, sizeof (lang_input_statement_type));
input->filename = abfd->filename;
input->local_sym_name = abfd->filename;
input->the_bfd = abfd;
@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
static void
warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
{
struct warning_callback_info *info = iarg;
struct warning_callback_info *info = (struct warning_callback_info *) iarg;
long relsize;
arelent **relpp;
long relcount;
@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
if (relsize == 0)
return;
relpp = xmalloc (relsize);
relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0)
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
@ -1190,7 +1194,8 @@ undefined_symbol (struct bfd_link_info *info ATTRIBUTE_UNUSED,
/* Only warn once about a particular undefined symbol. */
if (hash == NULL)
{
hash = xmalloc (sizeof (struct bfd_hash_table));
hash = (struct bfd_hash_table *)
xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry)))
einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
if (name == NULL)
{
if (command_line.cref || nocrossref_list != NULL)
return handle_asneeded_cref (abfd, value);
return handle_asneeded_cref (abfd, (enum notice_asneeded_action) value);
return TRUE;
}

View File

@ -57,7 +57,7 @@ build_link_order (lang_statement_union_type *statement)
link_order->type = bfd_data_link_order;
link_order->offset = statement->data_statement.output_offset;
link_order->u.data.contents = xmalloc (QUAD_SIZE);
link_order->u.data.contents = (bfd_byte *) xmalloc (QUAD_SIZE);
value = statement->data_statement.value;
@ -198,7 +198,8 @@ build_link_order (lang_statement_union_type *statement)
link_order->offset = rs->output_offset;
link_order->size = bfd_get_reloc_size (rs->howto);
link_order->u.reloc.p = xmalloc (sizeof (struct bfd_link_order_reloc));
link_order->u.reloc.p = (struct bfd_link_order_reloc *)
xmalloc (sizeof (struct bfd_link_order_reloc));
link_order->u.reloc.p->reloc = rs->reloc;
link_order->u.reloc.p->addend = rs->addend_value;
@ -333,7 +334,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
/* Invent a section name from the section name and a dotted numeric
suffix. */
len = strlen (name);
tname = xmalloc (len + 1);
tname = (char *) xmalloc (len + 1);
memcpy (tname, name, len + 1);
/* Remove a dotted number suffix, from a previous split link. */
while (len && ISDIGIT (tname[len-1]))

View File

@ -172,18 +172,7 @@ enum option_values
/* The long options. This structure is used for both the option
parsing and the help text. */
struct ld_option
{
/* The long option information. */
struct option opt;
/* The short option with the same meaning ('\0' if none). */
char shortopt;
/* The name of the argument (NULL if none). */
const char *arg;
/* The documentation string. If this is NULL, this is a synonym for
the previous option. */
const char *doc;
enum {
enum control_enum {
/* Use one dash before long option name. */
ONE_DASH,
/* Use two dashes before long option name. */
@ -200,7 +189,20 @@ struct ld_option
EXACTLY_TWO_DASHES,
/* Don't mention this option in --help output. */
NO_HELP
} control;
};
struct ld_option
{
/* The long option information. */
struct option opt;
/* The short option with the same meaning ('\0' if none). */
char shortopt;
/* The name of the argument (NULL if none). */
const char *arg;
/* The documentation string. If this is NULL, this is a synonym for
the previous option. */
const char *doc;
enum control_enum control;
};
static const struct ld_option ld_options[] =
@ -590,9 +592,11 @@ parse_args (unsigned argc, char **argv)
int last_optind;
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
shortopts = xmalloc (OPTION_COUNT * 3 + 2);
longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
longopts = (struct option *)
xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
really_longopts = (struct option *)
malloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
/* Starting the short option string with '-' is for programs that
expect options and other ARGV-elements in any order and that care about
@ -677,7 +681,7 @@ parse_args (unsigned argc, char **argv)
{
char *n;
n = xmalloc (strlen (argv[i]) + 20);
n = (char *) xmalloc (strlen (argv[i]) + 20);
sprintf (n, "--library=%s", argv[i] + 2);
argv[i] = n;
}
@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
case 'f':
if (command_line.auxiliary_filters == NULL)
{
command_line.auxiliary_filters = xmalloc (2 * sizeof (char *));
command_line.auxiliary_filters = (char **)
xmalloc (2 * sizeof (char *));
command_line.auxiliary_filters[0] = optarg;
command_line.auxiliary_filters[1] = NULL;
}
@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
c = 0;
for (p = command_line.auxiliary_filters; *p != NULL; p++)
++c;
command_line.auxiliary_filters
= xrealloc (command_line.auxiliary_filters,
command_line.auxiliary_filters = (char **)
xrealloc (command_line.auxiliary_filters,
(c + 2) * sizeof (char *));
command_line.auxiliary_filters[c] = optarg;
command_line.auxiliary_filters[c + 1] = NULL;
@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
if (cp == NULL)
{
buf = xmalloc (rpath_len + optarg_len + 2);
buf = (char *) xmalloc (rpath_len + optarg_len + 2);
sprintf (buf, "%s%c%s", command_line.rpath,
config.rpath_separator, optarg);
free (command_line.rpath);
@ -1107,7 +1112,7 @@ parse_args (unsigned argc, char **argv)
{
char *buf;
buf = xmalloc (strlen (command_line.rpath_link)
buf = (char *) xmalloc (strlen (command_line.rpath_link)
+ strlen (optarg)
+ 2);
sprintf (buf, "%s%c%s", command_line.rpath_link,
@ -1224,7 +1229,7 @@ parse_args (unsigned argc, char **argv)
/* We must copy the section name as set_section_start
doesn't do it for us. */
len = optarg2 - optarg;
sec_name = xmalloc (len);
sec_name = (char *) xmalloc (len);
memcpy (sec_name, optarg, len - 1);
sec_name[len - 1] = 0;
@ -1549,7 +1554,7 @@ set_segment_start (const char *section, char *valstr)
}
/* There was no existing value so we must create a new segment
entry. */
seg = stat_alloc (sizeof (*seg));
seg = (segment_type *) stat_alloc (sizeof (*seg));
seg->name = name;
seg->value = val;
seg->used = FALSE;

View File

@ -68,7 +68,8 @@ lookup (const char *name, struct section_name_struct **list)
ptr = &((*ptr)->next);
}
*ptr = xmalloc (sizeof (struct section_name_struct));
*ptr = (struct section_name_struct *)
xmalloc (sizeof (struct section_name_struct));
return ptr;
}
@ -206,10 +207,10 @@ mri_draw_tree (void)
base = p->vma ? p->vma : exp_nameop (NAME, ".");
lang_enter_output_section_statement (p->name, base,
p->ok_to_load ? 0 : noload_section,
p->ok_to_load ? normal_section : noload_section,
align, subalign, NULL, 0);
base = 0;
tmp = xmalloc (sizeof *tmp);
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = NULL;
tmp->spec.name = p->name;
tmp->spec.exclude_name_list = NULL;
@ -220,7 +221,7 @@ mri_draw_tree (void)
for (aptr = alias; aptr; aptr = aptr->next)
if (strcmp (aptr->alias, p->name) == 0)
{
tmp = xmalloc (sizeof *tmp);
tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = NULL;
tmp->spec.name = aptr->name;
tmp->spec.exclude_name_list = NULL;

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-04 14:36+0200\n"
"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -5907,13 +5907,15 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
/* If we haven't matched the entire string, and we want the
longest match, try backtracking. */
if (d != end_match_2)
{
/* 1 if this match is the best seen so far. */
boolean best_match_p;
{
/* 1 if this match ends in the same string (string1 or string2)
as the best previous match. */
boolean same_str_p = (FIRST_STRING_P (match_end)
== MATCHING_IN_FIRST_STRING);
/* 1 if this match is the best seen so far. */
boolean best_match_p;
/* AIX compiler got confused when this was combined
with the previous declaration. */
@ -5923,7 +5925,7 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
best_match_p = !MATCHING_IN_FIRST_STRING;
DEBUG_PRINT1 ("backtracking.\n");
}
if (!FAIL_STACK_EMPTY ())
{ /* More failure points to try. */

View File

@ -1,3 +1,22 @@
2009-09-11 Nick Clifton <nickc@redhat.com>
* po/opcodes.pot: Updated by the Translation project.
2009-09-11 Martin Thuresson <martint@google.com>
Updated sources to compile cleanly with -Wc++-compat:
* ld.h (enum endian_enum,enum symbolic_enum,enum dynamic_list_enum): Move to top level.
* ldcref.c: Add casts.
* ldctor.c: Add casts.
* ldexp.c
* ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
* ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead of integer.
* ldlang.h (enum statement_enum): Move to top level.
* ldmain.c: Add casts.
* ldwrite.c: Add casts.
* lexsup.c: Add casts. (enum control_enum): Move to top level.
* mri.c: Add casts. (mri_draw_tree): Use enum name instead of integer.
2009-09-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* s390-dis.c (print_insn_s390): Avoid 'long long'.

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2009-09-07 12:08+0200\n"
"POT-Creation-Date: 2009-09-07 14:08+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"