* 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> 2009-09-11 Philippe De Muyter <phdm@macqel.be>
* binary.c (binary_object_p): Remove bfd_external_binary_architecture * binary.c (binary_object_p): Remove bfd_external_binary_architecture

View File

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

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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> 2009-09-11 Hans-Peter Nilsson <hp@bitrange.com>
PR gas/10623 PR gas/10623
@ -225,7 +278,7 @@
2009-09-02 Jie Zhang <jie.zhang@analog.com> 2009-09-02 Jie Zhang <jie.zhang@analog.com>
From Bernd Schmidt <bernd.schmidt@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. for load and store insns.
(neg_value): Delete function. (neg_value): Delete function.
@ -427,7 +480,7 @@
Remove. Remove.
(mkdep section): Remove. (mkdep section): Remove.
* Makefile.in: Regenerate. * 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) * Makefile.am (install-pdf, install-pdf-recursive, install-html)
(install-html-recursive): Remove. (install-html-recursive): Remove.
@ -492,7 +545,7 @@
* config/obj-coff.h (obj_coff_seh_do_final): Add new * config/obj-coff.h (obj_coff_seh_do_final): Add new
function prototype. function prototype.
(obj_coff_generate_pdata): New obj-coff hook. (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. sections.
(write_object_file): Call conditional hook (write_object_file): Call conditional hook
objc_coff_generate_pdata. objc_coff_generate_pdata.
@ -990,28 +1043,28 @@
2009-06-22 Martin Thuresson <martin@mtme.org> 2009-06-22 Martin Thuresson <martin@mtme.org>
* gas/app, gas/as.c, gas/as.h, gas/atof-generic.c, gas/cgen.c, * app, as.c, as.h, atof-generic.c, cgen.c,
gas/config/atof-ieee.c, gas/config/obj-aout.c, config/atof-ieee.c, config/obj-aout.c,
gas/config/obj-coff.c, gas/config/obj-ecoff.c, config/obj-coff.c, config/obj-ecoff.c,
gas/config/obj-elf.c, gas/config/obj-som.c, gas/config/tc-alpha.c, config/obj-elf.c, config/obj-som.c, config/tc-alpha.c,
gas/config/tc-arc.c, gas/config/tc-arm.c, gas/config/tc-cr16.c, config/tc-arc.c, config/tc-arm.c, config/tc-cr16.c,
gas/config/tc-cris.c, gas/config/tc-crx.c, gas/config/tc-d30v.c, config/tc-cris.c, config/tc-crx.c, config/tc-d30v.c,
gas/config/tc-dlx.c, gas/config/tc-hppa.c, gas/config/tc-i370.c, config/tc-dlx.c, config/tc-hppa.c, config/tc-i370.c,
gas/config/tc-i386-intel.c, gas/config/tc-i386.c, config/tc-i386-intel.c, config/tc-i386.c,
gas/config/tc-i860.c, gas/config/tc-i960.c, gas/config/tc-ia64.c, config/tc-i860.c, config/tc-i960.c, config/tc-ia64.c,
gas/config/tc-iq2000.c, gas/config/tc-m32c.c, config/tc-iq2000.c, config/tc-m32c.c,
gas/config/tc-m32r.c, gas/config/tc-m68hc11.c, config/tc-m32r.c, config/tc-m68hc11.c,
gas/config/tc-m68k.c, gas/config/tc-maxq.c, gas/config/tc-mcore.c, config/tc-m68k.c, config/tc-maxq.c, config/tc-mcore.c,
gas/config/tc-mep.c, gas/config/tc-mips.c, gas/config/tc-mmix.c, config/tc-mep.c, config/tc-mips.c, config/tc-mmix.c,
gas/config/tc-mn10300.c, gas/config/tc-moxie.c, config/tc-mn10300.c, config/tc-moxie.c,
gas/config/tc-ns32k.c, gas/config/tc-pj.c, gas/config/tc-ppc.c, config/tc-ns32k.c, config/tc-pj.c, config/tc-ppc.c,
gas/config/tc-s390.c, gas/config/tc-score.c, config/tc-s390.c, config/tc-score.c,
gas/config/tc-score7.c, gas/config/tc-sh.c, gas/config/tc-sparc.c, config/tc-score7.c, config/tc-sh.c, config/tc-sparc.c,
gas/config/tc-spu.c, gas/config/tc-tic30.c, gas/config/tc-vax.c, config/tc-spu.c, config/tc-tic30.c, config/tc-vax.c,
gas/config/tc-xtensa.c, gas/config/xtensa-relax.c, config/tc-xtensa.c, config/xtensa-relax.c,
gas/dw2gencfi.c, gas/dwarf2dbg.c, gas/ehopt.c, gas/expr.c, dw2gencfi.c, dwarf2dbg.c, ehopt.c, expr.c,
gas/frags.c, gas/input-file.c, gas/read.c, gas/sb.c, frags.c, input-file.c, read.c, sb.c,
gas/subsegs.c, gas/symbols.c, gas/write.c: Change the name of the subsegs.c, symbols.c, write.c: Change the name of the
gas macro `assert' to `gas_assert'. gas macro `assert' to `gas_assert'.
2009-06-22 Daniel Gutson <dgutson@codesourcery.com> 2009-06-22 Daniel Gutson <dgutson@codesourcery.com>
@ -1084,7 +1137,7 @@
2009-06-18 Nick Clifton <nickc@redhat.com> 2009-06-18 Nick Clifton <nickc@redhat.com>
PR 10169 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_usat): ... and here to...
(do_t_ssat_usat): New function: ... here. Add code to check that (do_t_ssat_usat): New function: ... here. Add code to check that
the shift value, if present, is in range. the shift value, if present, is in range.

View File

@ -258,7 +258,7 @@ app_push (void)
saved->saved_input = NULL; saved->saved_input = NULL;
else 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); memcpy (saved->saved_input, saved_input, saved_input_len);
saved->saved_input_len = 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 dependent list. Include space for an extra NULL option and
always NULL terminate. */ always NULL terminate. */
shortopts = concat (std_shortopts, md_shortopts, (char *) NULL); 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 (longopts, std_longopts, sizeof (std_longopts));
memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size); memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
memset (((char *) longopts) + sizeof (std_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; old_argv = *pargv;
/* Initialize a new argv that contains no options. */ /* 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_argv[0] = old_argv[0];
new_argc = 1; new_argc = 1;
new_argv[new_argc] = NULL; 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")); as_fatal (_("bad defsym; format is --defsym name=value"));
*s++ = '\0'; *s++ = '\0';
i = bfd_scan_vma (s, (const char **) NULL, 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->next = defsyms;
n->name = optarg; n->name = optarg;
n->value = i; n->value = i;
@ -1158,6 +1159,8 @@ main (int argc, char ** argv)
itbl_init (); itbl_init ();
dwarf2_init ();
/* Now that we have fully initialized, and have created the output /* Now that we have fully initialized, and have created the output
file, define any symbols requested by --defsym command line file, define any symbols requested by --defsym command line
arguments. */ arguments. */

View File

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

View File

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

View File

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

View File

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

View File

@ -168,6 +168,10 @@ struct line_seg {
/* Collects data for all line table entries during assembly. */ /* Collects data for all line table entries during assembly. */
static struct line_seg *all_segs; 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 { struct file_entry {
const char *filename; const char *filename;
@ -230,23 +234,25 @@ get_line_subseg (segT seg, subsegT subseg)
static subsegT last_subseg; static subsegT last_subseg;
static struct line_subseg *last_line_subseg; static struct line_subseg *last_line_subseg;
struct line_seg **ps, *s; struct line_seg *s;
struct line_subseg **pss, *ss; struct line_subseg **pss, *ss;
if (seg == last_seg && subseg == last_subseg) if (seg == last_seg && subseg == last_subseg)
return last_line_subseg; return last_line_subseg;
for (ps = &all_segs; (s = *ps) != NULL; ps = &s->next) s = (struct line_seg *) hash_find (all_segs_hash, seg->name);
if (s->seg == seg) if (s == NULL)
goto found_seg; {
s = (struct line_seg *) xmalloc (sizeof (*s)); s = (struct line_seg *) xmalloc (sizeof (*s));
s->next = NULL; s->next = NULL;
s->seg = seg; s->seg = seg;
s->head = NULL; 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) for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
{ {
if (ss->subseg == subseg) if (ss->subseg == subseg)
@ -467,7 +473,7 @@ get_filenum (const char *filename, unsigned int num)
xrealloc (dirs, (dir + 32) * sizeof (const char *)); 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); memcpy (dirs[dir], filename, dir_len);
dirs[dir][dir_len] = '\0'; dirs[dir][dir_len] = '\0';
dirs_in_use = dir + 1; 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); 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 /* Finish the dwarf2 debug sections. We emit .debug.line if there
were any .file/.loc directives, or --gdwarf2 was given, or if the 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, 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 /* True when we've seen a .loc directive recently. Used to avoid
doing work when there's nothing to do. */ 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 /* 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 is seen. Unless the target is doing Something Weird, just call
dwarf2_emit_label. */ dwarf2_emit_label. */
extern bfd_boolean dwarf2_loc_mark_labels; extern bfd_boolean dwarf2_loc_mark_labels;
extern void dwarf2_init (void);
extern void dwarf2_finish (void); extern void dwarf2_finish (void);
extern int dwarf2dbg_estimate_size_before_relax (fragS *); extern int dwarf2dbg_estimate_size_before_relax (fragS *);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 that goes with this #APP There is one. The specs
guarantee it... */ guarantee it... */
tmp_len = buffer_limit - s; tmp_len = buffer_limit - s;
tmp_buf = xmalloc (tmp_len + 1); tmp_buf = (char *) xmalloc (tmp_len + 1);
memcpy (tmp_buf, s, tmp_len); memcpy (tmp_buf, s, tmp_len);
do do
{ {
@ -1050,7 +1050,7 @@ read_a_source_file (char *name)
else else
num = buffer_limit - buffer; 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); memcpy (tmp_buf + tmp_len, buffer, num);
tmp_len += num; tmp_len += num;
} }
@ -1087,7 +1087,7 @@ read_a_source_file (char *name)
break; 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_tmp = new_buf + new_length;
new_length += 100; new_length += 100;
} }
@ -2097,7 +2097,7 @@ s_vendor_attribute (int vendor)
if (i == 0) if (i == 0)
goto bad; goto bad;
name = alloca (i + 1); name = (char *) alloca (i + 1);
memcpy (name, s, i); memcpy (name, s, i);
name[i] = '\0'; name[i] = '\0';
@ -3857,7 +3857,7 @@ s_reloc (int ignore ATTRIBUTE_UNUSED)
int c; int c;
struct reloc_list *reloc; struct reloc_list *reloc;
reloc = xmalloc (sizeof (*reloc)); reloc = (struct reloc_list *) xmalloc (sizeof (*reloc));
if (flag_mri) if (flag_mri)
stop = mri_comment_field (&stopc); 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 /* JF this next line is so demand_copy_C_string will return a
null terminated string. */ null terminated string. */
obstack_1grow (&notes, '\0'); obstack_1grow (&notes, '\0');
retval = obstack_finish (&notes); retval = (char *) obstack_finish (&notes);
} }
else else
{ {
@ -5516,7 +5516,7 @@ s_incbin (int x ATTRIBUTE_UNUSED)
{ {
int i; 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++) for (i = 0; i < include_dir_count; i++)
{ {
@ -5586,7 +5586,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
{ {
char *filename; char *filename;
int i; int i;
FILE *try; FILE *try_file;
char *path; char *path;
if (!flag_m68k_mri) if (!flag_m68k_mri)
@ -5613,22 +5613,23 @@ s_include (int arg ATTRIBUTE_UNUSED)
} }
obstack_1grow (&notes, '\0'); obstack_1grow (&notes, '\0');
filename = obstack_finish (&notes); filename = (char *) obstack_finish (&notes);
while (!is_end_of_line[(unsigned char) *input_line_pointer]) while (!is_end_of_line[(unsigned char) *input_line_pointer])
++input_line_pointer; ++input_line_pointer;
} }
demand_empty_rest_of_line (); 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++) for (i = 0; i < include_dir_count; i++)
{ {
strcpy (path, include_dirs[i]); strcpy (path, include_dirs[i]);
strcat (path, "/"); strcat (path, "/");
strcat (path, filename); 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; 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); as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
return; return;
} }
map = xmalloc (sizeof (debug_prefix_map)); map = (struct debug_prefix_map *) xmalloc (sizeof (debug_prefix_map));
o = xstrdup (arg); o = xstrdup (arg);
map->old_prefix = o; map->old_prefix = o;
map->old_len = p - arg; map->old_len = p - arg;

View File

@ -498,7 +498,7 @@ stabs_generate_asm_file (void)
char *dir2; char *dir2;
dir = remap_debug_filename (getpwd ()); dir = remap_debug_filename (getpwd ());
dir2 = alloca (strlen (dir) + 2); dir2 = (char *) alloca (strlen (dir) + 2);
sprintf (dir2, "%s%s", dir, "/"); sprintf (dir2, "%s%s", dir, "/");
generate_asm_file (N_SO, dir2); 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 /* Allocate enough space for the file name (possibly extended with
doubled up backslashes), the symbol name, and the other characters doubled up backslashes), the symbol name, and the other characters
that make up a stabs file directive. */ 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++ = '"'; *bufp++ = '"';

View File

@ -65,7 +65,7 @@ subseg_change (register segT seg, register int subseg)
if (! seginfo) if (! seginfo)
{ {
seginfo = xcalloc (1, sizeof (*seginfo)); seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
seginfo->bfd_section = seg; seginfo->bfd_section = seg;
bfd_set_section_userdata (stdoutput, seg, seginfo); 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. */ /* 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->frch_subseg = subseg;
newP->fix_root = NULL; newP->fix_root = NULL;
newP->fix_tail = NULL; newP->fix_tail = NULL;
@ -167,7 +167,7 @@ subseg_get (const char *segname, int force_new)
if (! seginfo) if (! seginfo)
{ {
secptr->output_section = secptr; secptr->output_section = secptr;
seginfo = xcalloc (1, sizeof (*seginfo)); seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
seginfo->bfd_section = secptr; seginfo->bfd_section = secptr;
bfd_set_section_userdata (stdoutput, secptr, seginfo); 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. */ name_length = strlen (name) + 1; /* +1 for \0. */
obstack_grow (&notes, name, name_length); obstack_grow (&notes, name, name_length);
ret = obstack_finish (&notes); ret = (char *) obstack_finish (&notes);
#ifdef tc_canonicalize_symbol_name #ifdef tc_canonicalize_symbol_name
ret = tc_canonicalize_symbol_name (ret); 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); 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. */ /* symbol must be born in some fixed state. This seems as good as any. */
memset (symbolP, 0, sizeof (symbolS)); 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); 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_marker = NULL;
ret->lsy_name = name_copy; ret->lsy_name = name_copy;
ret->lsy_section = section; ret->lsy_section = section;
@ -563,7 +563,7 @@ symbol_clone (symbolS *orgsymP, int replace)
orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP); orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
bsymorg = orgsymP->bsym; bsymorg = orgsymP->bsym;
newsymP = obstack_alloc (&notes, sizeof (*newsymP)); newsymP = (symbolS *) obstack_alloc (&notes, sizeof (*newsymP));
*newsymP = *orgsymP; *newsymP = *orgsymP;
bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg)); bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
if (bsymnew == NULL) if (bsymnew == NULL)
@ -1453,7 +1453,7 @@ static void
resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value) resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
{ {
if (value != NULL) if (value != NULL)
resolve_symbol_value (value); resolve_symbol_value ((symbolS *) value);
} }
/* Resolve all local symbols. */ /* Resolve all local symbols. */
@ -1603,7 +1603,7 @@ define_dollar_label (long label)
{ {
dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long)); dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
dollar_label_instances = (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_max = DOLLAR_LABEL_BUMP_BY;
dollar_label_count = 0; dollar_label_count = 0;
} }
@ -1614,7 +1614,7 @@ define_dollar_label (long label)
dollar_label_max * sizeof (long)); dollar_label_max * sizeof (long));
dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances, dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
dollar_label_max * sizeof (long)); 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 */ } /* if we needed to grow */
dollar_labels[dollar_label_count] = label; dollar_labels[dollar_label_count] = label;
@ -1887,7 +1887,7 @@ decode_local_label_name (char *s)
instance_number = (10 * instance_number) + *p - '0'; instance_number = (10 * instance_number) + *p - '0';
message_format = _("\"%d\" (instance number %d of a %s label)"); 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); sprintf (symbol_decode, message_format, label_number, instance_number, type);
return symbol_decode; return symbol_decode;

View File

@ -156,7 +156,7 @@ fix_new_internal (fragS *frag, /* Which frag? */
n_fixups++; n_fixups++;
fixP = obstack_alloc (&notes, sizeof (fixS)); fixP = (fixS *) obstack_alloc (&notes, sizeof (fixS));
fixP->fx_frag = frag; fixP->fx_frag = frag;
fixP->fx_where = where; fixP->fx_where = where;
@ -1170,7 +1170,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
rp = &r->next; rp = &r->next;
} }
relocs = xcalloc (n, sizeof (arelent *)); relocs = (arelent **) xcalloc (n, sizeof (arelent *));
i = 0; i = 0;
for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next) for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
@ -1398,7 +1398,7 @@ set_symtab (void)
int i; int i;
bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *); bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
asympp = bfd_alloc (stdoutput, amt); asympp = (asymbol **) bfd_alloc (stdoutput, amt);
symp = symbol_rootP; symp = symbol_rootP;
for (i = 0; i < nsyms; i++, symp = symbol_next (symp)) 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> 2009-09-08 Cary Coutant <ccoutant@google.com>
* output.cc (Output_file::open): Add execute permission to empty file. * 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> 2009-09-07 Tristan Gingold <gingold@adacore.com>
* po/gprof.pot: Regenerate. * po/gprof.pot: Regenerate.

View File

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

View File

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

View File

@ -493,13 +493,13 @@ gmon_out_read (const char *filename)
if (!histograms) if (!histograms)
{ {
num_histograms = 1; num_histograms = 1;
histograms = xmalloc (sizeof (struct histogram)); histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
histograms->lowpc = tmp.low_pc; histograms->lowpc = tmp.low_pc;
histograms->highpc = tmp.high_pc; histograms->highpc = tmp.high_pc;
histograms->num_bins = hist_num_bins; histograms->num_bins = hist_num_bins;
hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT)) hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
/ hist_num_bins; / hist_num_bins;
histograms->sample = xmalloc (hist_num_bins * sizeof (int)); histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
memset (histograms->sample, 0, memset (histograms->sample, 0,
hist_num_bins * sizeof (int)); 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 /* This is new record. Add it to global array and allocate space for
the samples. */ the samples. */
histograms = xrealloc (histograms, histograms = (struct histogram *)
sizeof (histogram) * (num_histograms + 1)); xrealloc (histograms, sizeof (histogram) * (num_histograms + 1));
memcpy (histograms + num_histograms, memcpy (histograms + num_histograms,
&n_record, sizeof (histogram)); &n_record, sizeof (histogram));
record = &histograms[num_histograms]; record = &histograms[num_histograms];

View File

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

View File

@ -1,18 +1,19 @@
# Swedish messages for gprof. # 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. # Christian Rose <menthos@menthos.com>, 2001, 2002, 2004.
# Daniel Nylander <po@danielnylander.se>, 2006, 2007. # Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2009.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gprof 2.17.90\n" "Project-Id-Version: gprof 2.19.90\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
"POT-Creation-Date: 2007-05-15 16:49+0930\n" "POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: 2007-08-24 13:42+0100\n" "PO-Revision-Date: 2009-09-11 09:46+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n" "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\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" "Content-Transfer-Encoding: 8bit\n"
#: alpha.c:102 mips.c:54 #: 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 #: basic_blocks.c:128 call_graph.c:89 hist.c:105
#, c-format #, c-format
msgid "%s: %s: unexpected end of file\n" 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 #: basic_blocks.c:196
#, c-format #, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n" 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. #. FIXME: This only works if bfd_vma is unsigned long.
#: basic_blocks.c:289 basic_blocks.c:299 #: 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 #: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>" msgid "<unknown>"
msgstr "<ok<EFBFBD>nd>" msgstr "<okänd>"
#: basic_blocks.c:543 #: basic_blocks.c:543
#, c-format #, c-format
@ -66,7 +67,7 @@ msgid ""
msgstr "" msgstr ""
"\n" "\n"
"\n" "\n"
"<EFBFBD>versta %d raderna:\n" "Översta %d raderna:\n"
"\n" "\n"
" Rad Antal\n" " Rad Antal\n"
"\n" "\n"
@ -114,18 +115,18 @@ msgstr "%9.2f Medelexekveringar per rad\n"
#: call_graph.c:68 #: call_graph.c:68
#, c-format #, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n" 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 #, c-format
msgid "" msgid ""
"\t\t Call graph (explanation follows)\n" "\t\t Call graph (explanation follows)\n"
"\n" "\n"
msgstr "" msgstr ""
"\t\t Angropsgraf (f<EFBFBD>rklaring f<EFBFBD>ljer)\n" "\t\t Angropsgraf (förklaring följer)\n"
"\n" "\n"
#: cg_print.c:75 #: cg_print.c:76
#, c-format #, c-format
msgid "" msgid ""
"\t\t\tCall graph\n" "\t\t\tCall graph\n"
@ -134,25 +135,25 @@ msgstr ""
"\t\t\tAnropsgraf\n" "\t\t\tAnropsgraf\n"
"\n" "\n"
#: cg_print.c:78 hist.c:466 #: cg_print.c:79 hist.c:466
#, c-format #, c-format
msgid "" msgid ""
"\n" "\n"
"granularity: each sample hit covers %ld byte(s)" "granularity: each sample hit covers %ld byte(s)"
msgstr "" msgstr ""
"\n" "\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 #, c-format
msgid "" msgid ""
" for %.2f%% of %.2f seconds\n" " for %.2f%% of %.2f seconds\n"
"\n" "\n"
msgstr "" msgstr ""
" f<EFBFBD>r %.2f%% p<EFBFBD> %.2f sekunder\n" " för %.2f%% på %.2f sekunder\n"
"\n" "\n"
#: cg_print.c:86 #: cg_print.c:87
#, c-format #, c-format
msgid "" msgid ""
" no time propagated\n" " no time propagated\n"
@ -161,64 +162,64 @@ msgstr ""
" ingen tid propagerad\n" " ingen tid propagerad\n"
"\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" msgid "called"
msgstr "anropad" msgstr "anropad"
#: cg_print.c:95 cg_print.c:100 #: cg_print.c:96 cg_print.c:101
msgid "total" msgid "total"
msgstr "totalt" msgstr "totalt"
#: cg_print.c:95 #: cg_print.c:96
msgid "parents" 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" msgid "index"
msgstr "index" msgstr "index"
#: cg_print.c:97 #: cg_print.c:98
#, c-format #, c-format
msgid "%time" msgid "%time"
msgstr "%tid" msgstr "%tid"
#: cg_print.c:97 cg_print.c:98 #: cg_print.c:98 cg_print.c:99
msgid "self" msgid "self"
msgstr "sj<EFBFBD>lv" msgstr "själv"
#: cg_print.c:97 #: cg_print.c:98
msgid "descendants" msgid "descendants"
msgstr "<EFBFBD>ttlingar" msgstr "ättlingar"
#: cg_print.c:98 hist.c:492 #: cg_print.c:99 hist.c:492
msgid "name" msgid "name"
msgstr "namn" msgstr "namn"
#: cg_print.c:100 #: cg_print.c:101
msgid "children" msgid "children"
msgstr "barn" msgstr "barn"
#: cg_print.c:105 #: cg_print.c:106
#, c-format #, c-format
msgid "index %% time self children called name\n" 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 #, c-format
msgid " <cycle %d as a whole> [%d]\n" msgid " <cycle %d as a whole> [%d]\n"
msgstr " <hela cykel %d> [%d]\n" msgstr " <hela cykel %d> [%d]\n"
#: cg_print.c:354 #: cg_print.c:355
#, c-format #, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontaneous>\n" 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" 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 #, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n" 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" 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 #, c-format
msgid "" msgid ""
"Index by function name\n" "Index by function name\n"
@ -227,152 +228,152 @@ msgstr ""
"Index efter funktionsnamn\n" "Index efter funktionsnamn\n"
"\n" "\n"
#: cg_print.c:646 cg_print.c:655 #: cg_print.c:647 cg_print.c:656
#, c-format #, c-format
msgid "<cycle %d>" msgid "<cycle %d>"
msgstr "<cykel %d>" msgstr "<cykel %d>"
#: corefile.c:59 #: corefile.c:60
#, c-format #, c-format
msgid "%s: unable to parse mapping file %s.\n" msgid "%s: unable to parse mapping file %s.\n"
msgstr "%s: kan inte tolka mappfilen %s.\n" msgstr "%s: kan inte tolka mappfilen %s.\n"
#: corefile.c:72 #: corefile.c:84 corefile.c:496
#, c-format #, c-format
msgid "%s: could not open %s.\n" 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 #, c-format
msgid "%s: %s: not in executable format\n" 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 #, c-format
msgid "%s: can't find .text section in %s\n" msgid "%s: can't find .text section in %s\n"
msgstr "%s: kan inte hitta .text-sektion i %s\n" msgstr "%s: kan inte hitta .text-sektion i %s\n"
#: corefile.c:252 #: corefile.c:269
#, c-format #, c-format
msgid "%s: ran out room for %lu bytes of text space\n" 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 #, c-format
msgid "%s: can't do -c\n" 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 #, c-format
msgid "%s: -c not supported on architecture %s\n" 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 #, c-format
msgid "%s: file `%s' has no symbols\n" msgid "%s: file `%s' has no symbols\n"
msgstr "%s: filen \"%s\" har inga symboler\n" msgstr "%s: filen \"%s\" har inga symboler\n"
#: corefile.c:772 #: corefile.c:848
#, c-format #, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n" 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 #, c-format
msgid "%s: address size has unexpected value of %u\n" 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 #, c-format
msgid "%s: file too short to be a gmon file\n" 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 #, c-format
msgid "%s: file `%s' has bad magic cookie\n" msgid "%s: file `%s' has bad magic cookie\n"
msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n" msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
#: gmon_io.c:341 #: gmon_io.c:340
#, c-format #, c-format
msgid "%s: file `%s' has unsupported version %d\n" 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 #, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n" 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 #, c-format
msgid "%s: profiling rate incompatible with first gmon file\n" 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 #, c-format
msgid "%s: incompatible with first gmon file\n" 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 #, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n" 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" msgstr "%s: filen \"%s\" verkar inte vara i gmon.out-format\n"
# Man brukar tala om "bins" i hashtabeller # Man brukar tala om "bins" i hashtabeller
# #
#: gmon_io.c:529 #: gmon_io.c:531
#, c-format #, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n" 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 #, c-format
msgid "time is in ticks, not seconds\n" 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 #, c-format
msgid "%s: don't know how to deal with file format %d\n" msgid "%s: don't know how to deal with file format %d\n"
msgstr "%s: vet inte hur fileformat %d ska hanteras\n" msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
#: gmon_io.c:576 #: gmon_io.c:578
#, c-format #, c-format
msgid "File `%s' (version %d) contains:\n" 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 #, c-format
msgid "\t%d histogram record\n" msgid "\t%d histogram record\n"
msgstr "\t%d histogrampost\n" msgstr "\t%d histogrampost\n"
#: gmon_io.c:580 #: gmon_io.c:582
#, c-format #, c-format
msgid "\t%d histogram records\n" msgid "\t%d histogram records\n"
msgstr "\t%d histogramposter\n" msgstr "\t%d histogramposter\n"
#: gmon_io.c:582 #: gmon_io.c:584
#, c-format #, c-format
msgid "\t%d call-graph record\n" msgid "\t%d call-graph record\n"
msgstr "\t%d anropsgrafpost\n" msgstr "\t%d anropsgrafpost\n"
#: gmon_io.c:583 #: gmon_io.c:585
#, c-format #, c-format
msgid "\t%d call-graph records\n" msgid "\t%d call-graph records\n"
msgstr "\t%d anropsgrafposter\n" msgstr "\t%d anropsgrafposter\n"
#: gmon_io.c:585 #: gmon_io.c:587
#, c-format #, c-format
msgid "\t%d basic-block count record\n" 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 #, c-format
msgid "\t%d basic-block count records\n" 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 #, c-format
msgid "" 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[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n" "\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=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[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n" "\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\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" "\t[image-file] [profile-file...]\n"
msgstr "" msgstr ""
"Anv<EFBFBD>ndning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I kataloger]\n" "Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I kataloger]\n"
"\t[-d[num]] [-k fr<EFBFBD>n/till] [-m min_antal] [-t tabell_l<EFBFBD>ngd]\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-]annotated-source[=namn]] [--[no-]exec-counts[=namn]]\n"
"\t[--[no-]flat-profile[=namn]] [--[no-]graph[=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[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=kataloger] [--display-unused-functions]\n" "\t[--directory-path=kataloger] [--display-unused-functions]\n"
"\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n" "\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\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[--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" "\t[bildfil] [profilfil...]\n"
#: gprof.c:174 #: gprof.c:175
#, c-format #, c-format
msgid "Report bugs to %s\n" msgid "Report bugs to %s\n"
msgstr "" msgstr ""
"Rapportera fel till %s,\n" "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 #, c-format
msgid "%s: debugging not supported; -d ignored\n" 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 #, c-format
msgid "%s: unknown file format %s\n" 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. #. This output is intended to follow the GNU standards document.
#: gprof.c:414 #: gprof.c:419
#, c-format #, c-format
msgid "GNU gprof %s\n" msgid "GNU gprof %s\n"
msgstr "GNU gprof %s\n" msgstr "GNU gprof %s\n"
#: gprof.c:415 #: gprof.c:420
#, c-format #, c-format
msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n" 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 #, c-format
msgid "This program is free software. This program has absolutely no warranty.\n" 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 #, c-format
msgid "%s: unknown demangling style `%s'\n" 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 #, c-format
msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n" 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" msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
#: gprof.c:527 #: gprof.c:534
#, c-format #, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n" 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 #, c-format
msgid "%s: gmon.out file is missing histogram\n" msgid "%s: gmon.out file is missing histogram\n"
msgstr "%s: gmon.out-filen saknar histogram\n" msgstr "%s: gmon.out-filen saknar histogram\n"
#: gprof.c:588 #: gprof.c:595
#, c-format #, c-format
msgid "%s: gmon.out file is missing call-graph data\n" msgid "%s: gmon.out file is missing call-graph data\n"
msgstr "%s: gmon.out-filen saknar anropsgrafdata\n" msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
@ -465,8 +466,8 @@ msgid ""
"%s: from '%s'\n" "%s: from '%s'\n"
"%s: to '%s'\n" "%s: to '%s'\n"
msgstr "" msgstr ""
"%s: dimensionsenhet <EFBFBD>ndrades mellan histogramposter\n" "%s: dimensionsenhet ändrades mellan histogramposter\n"
"%s: fr<EFBFBD>n \"%s\"\n" "%s: från \"%s\"\n"
"%s: till \"%s\"\n" "%s: till \"%s\"\n"
#: hist.c:143 #: hist.c:143
@ -476,8 +477,8 @@ msgid ""
"%s: from '%c'\n" "%s: from '%c'\n"
"%s: to '%c'\n" "%s: to '%c'\n"
msgstr "" msgstr ""
"%s: dimensionsf<EFBFBD>rkortning <EFBFBD>ndrades mellan histogramposter\n" "%s: dimensionsförkortning ändrades mellan histogramposter\n"
"%s: fr<EFBFBD>n \"%c\"\n" "%s: från \"%c\"\n"
"%s: till \"%c\"\n" "%s: till \"%c\"\n"
#: hist.c:157 #: hist.c:157
@ -488,12 +489,12 @@ msgstr "%s: olika skalor i histogramposter"
#: hist.c:194 #: hist.c:194
#, c-format #, c-format
msgid "%s: overlapping histogram records\n" msgid "%s: overlapping histogram records\n"
msgstr "%s: <EFBFBD>verlappande histogramposter\n" msgstr "%s: överlappande histogramposter\n"
#: hist.c:228 #: hist.c:228
#, c-format #, c-format
msgid "%s: %s: unexpected EOF after reading %u of %u samples\n" 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 #: hist.c:462
#, c-format #, c-format
@ -506,7 +507,7 @@ msgid ""
" for %.2f%% of %.2f %s\n" " for %.2f%% of %.2f %s\n"
"\n" "\n"
msgstr "" msgstr ""
" f<EFBFBD>r %.2f%% av %.2f %s\n" " för %.2f%% av %.2f %s\n"
"\n" "\n"
#: hist.c:476 #: hist.c:476
@ -516,7 +517,7 @@ msgid ""
"Each sample counts as %g %s.\n" "Each sample counts as %g %s.\n"
msgstr "" msgstr ""
"\n" "\n"
"Varje stickprov r<EFBFBD>knas som %g %s.\n" "Varje stickprov räknas som %g %s.\n"
#: hist.c:481 #: hist.c:481
#, c-format #, c-format
@ -533,7 +534,7 @@ msgstr "kumulativ"
#: hist.c:488 #: hist.c:488
msgid "self " msgid "self "
msgstr "sj<EFBFBD>lv" msgstr "själv"
#: hist.c:488 #: hist.c:488
msgid "total " msgid "total "
@ -568,14 +569,14 @@ msgstr "Platt profil:\n"
#: hist.c:705 #: hist.c:705
#, c-format #, c-format
msgid "%s: found a symbol that covers several histogram records" 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 #: mips.c:71
#, c-format #, c-format
msgid "[find_call] 0x%lx: jal" msgid "[find_call] 0x%lx: jal"
msgstr "[find_call] 0x%lx: jal" msgstr "[find_call] 0x%lx: jal"
#: mips.c:96 #: mips.c:99
#, c-format #, c-format
msgid "[find_call] 0x%lx: jalr\n" msgid "[find_call] 0x%lx: jalr\n"
msgstr "[find_call] 0x%lx: jalr\n" msgstr "[find_call] 0x%lx: jalr\n"
@ -596,7 +597,7 @@ msgid " <cycle %d>"
msgstr " <cykel %d>" msgstr " <cykel %d>"
#~ msgid "%s: `%s' is incompatible with first gmon file\n" #~ 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" #~ 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); fprintf (ofp, _("*** File %s:\n"), sf->name);
} }
annotation = xmalloc (max_width + 1); annotation = (char *) xmalloc (max_width + 1);
line_num = 1; line_num = 1;
new_line = TRUE; new_line = TRUE;

View File

@ -29,23 +29,25 @@
#include "sym_ids.h" #include "sym_ids.h"
#include "corefile.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 struct match
{ {
int prev_index; /* Index of prev match. */ int prev_index; /* Index of prev match. */
Sym *prev_match; /* Previous match. */ Sym *prev_match; /* Previous match. */
Sym *first_match; /* Chain of all matches. */ Sym *first_match; /* Chain of all matches. */
Sym sym; Sym sym;
} };
left, right;
} struct sym_id
*id_list; {
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 static void parse_spec
(char *, Sym *); (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> 2009-09-09 Alan Modra <amodra@bigpond.net.au>
* scripttempl/aix.sc: Only provide ENTRY on final link. * 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) || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
return FALSE; 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. */ /* Continue on with normal load_symbols processing. */
return FALSE; return FALSE;
@ -428,7 +429,7 @@ fragment <<EOF
&& (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0) && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED; 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. */ /* Add this file into the symbol table. */
if (! bfd_link_add_symbols (abfd, &link_info)) if (! bfd_link_add_symbols (abfd, &link_info))
@ -930,7 +931,7 @@ static bfd_boolean
gld${EMULATION_NAME}_write_build_id_section (bfd *abfd) gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
{ {
const struct elf_backend_data *bed = get_elf_backend_data (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; elf_tdata (abfd)->after_write_object_contents_info;
asection *asec; asection *asec;
Elf_Internal_Shdr *i_shdr; Elf_Internal_Shdr *i_shdr;
@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
if (i_shdr->contents == NULL) if (i_shdr->contents == NULL)
{ {
if (asec->contents == NULL) if (asec->contents == NULL)
asec->contents = xmalloc (asec->size); asec->contents = (unsigned char *) xmalloc (asec->size);
contents = asec->contents; contents = asec->contents;
} }
else else
contents = i_shdr->contents + asec->output_offset; 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 = offsetof (Elf_External_Note, name[sizeof "GNU"]);
size = (size + 3) & -(bfd_size_type) 4; size = (size + 3) & -(bfd_size_type) 4;
id_bits = contents + size; id_bits = contents + size;
@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
if (s != NULL && bfd_set_section_alignment (abfd, s, 2)) if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
{ {
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd); 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->style = link_info.emit_note_gnu_build_id;
b->sec = s; b->sec = s;
@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
continue; continue;
sz = s->size; 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, if (! bfd_get_section_contents (is->the_bfd, s, msg,
(file_ptr) 0, sz)) (file_ptr) 0, sz))
einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n", 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 LONG_SIZE (4)
#define QUAD_SIZE (8) #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 { typedef struct {
/* 1 => assign space to common symbols even if `relocatable_output'. */ /* 1 => assign space to common symbols even if `relocatable_output'. */
bfd_boolean force_common_definition; bfd_boolean force_common_definition;
@ -161,24 +177,14 @@ typedef struct {
bfd_boolean accept_unknown_input_arch; bfd_boolean accept_unknown_input_arch;
/* Big or little endian as set on command line. */ /* 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. */ /* -Bsymbolic and -Bsymbolic-functions, as set on command line. */
enum enum symbolic_enum symbolic;
{
symbolic_unset = 0,
symbolic,
symbolic_functions,
} symbolic;
/* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo /* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
and --dynamic-list FILE, as set on command line. */ and --dynamic-list FILE, as set on command line. */
enum enum dynamic_list_enum dynamic_list;
{
dynamic_list_unset = 0,
dynamic_list_data,
dynamic_list
} dynamic_list;
/* Name of runtime interpreter to invoke. */ /* Name of runtime interpreter to invoke. */
char *interpreter; char *interpreter;

View File

@ -179,7 +179,7 @@ add_cref (const char *name,
if (r == NULL) 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) if (r == NULL)
einfo (_("%X%P: cref alloc failed: %E\n")); einfo (_("%X%P: cref alloc failed: %E\n"));
r->next = h->refs; r->next = h->refs;
@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
static bfd_boolean static bfd_boolean
cref_fill_array (struct cref_hash_entry *h, void *data) 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); ASSERT (h->demangled == NULL);
h->demangled = bfd_demangle (link_info.output_bfd, h->root.string, 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 static int
cref_sort_array (const void *a1, const void *a2) cref_sort_array (const void *a1, const void *a2)
{ {
const struct cref_hash_entry * const *p1 = a1; const struct cref_hash_entry * const *p1 =
const struct cref_hash_entry * const *p2 = a2; (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); return strcmp ((*p1)->demangled, (*p2)->demangled);
} }
@ -378,7 +380,7 @@ output_cref (FILE *fp)
return; return;
} }
csyms = xmalloc (cref_symcount * sizeof (*csyms)); csyms = (struct cref_hash_entry **) xmalloc (cref_symcount * sizeof (*csyms));
csym_fill = csyms; csym_fill = csyms;
cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill); cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
@ -602,7 +604,7 @@ check_refs (const char *name,
static void static void
check_reloc_refs (bfd *abfd, asection *sec, void *iarg) 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; asection *outsec;
const char *outsecname; const char *outsecname;
asection *outdefsec; asection *outdefsec;
@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
if (relsize == 0) if (relsize == 0)
return; return;
relpp = xmalloc (relsize); relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols); relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0) if (relcount < 0)
einfo (_("%B%F: could not read relocs: %E\n"), abfd); 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) if (p == NULL)
{ {
p = xmalloc (sizeof (struct set_info)); p = (struct set_info *) xmalloc (sizeof (struct set_info));
p->next = sets; p->next = sets;
sets = p; sets = p;
p->h = h; 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->next = NULL;
e->name = name; e->name = name;
e->section = section; e->section = section;
@ -153,8 +153,10 @@ ctor_prio (const char *name)
static int static int
ctor_cmp (const void *p1, const void *p2) ctor_cmp (const void *p1, const void *p2)
{ {
const struct set_element * const *pe1 = p1; const struct set_element * const *pe1 =
const struct set_element * const *pe2 = p2; (const struct set_element * const *) p1;
const struct set_element * const *pe2 =
(const struct set_element * const *) p2;
const char *n1; const char *n1;
const char *n2; const char *n2;
int prio1; int prio1;
@ -223,7 +225,7 @@ ldctor_build_sets (void)
for (e = p->elements; e != NULL; e = e->next) for (e = p->elements; e != NULL; e = e->next)
++c; ++c;
array = xmalloc (c * sizeof *array); array = (struct set_element **) xmalloc (c * sizeof *array);
i = 0; i = 0;
for (e = p->elements; e != NULL; e = e->next) 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; 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.node_code = '=';
n->assign.type.lineno = src->type.lineno; n->assign.type.lineno = src->type.lineno;
n->assign.type.node_class = etree_provide; n->assign.type.node_class = etree_provide;
@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
{ {
etree_type *n; 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.node_code = '!';
n->assert_s.type.lineno = exp->type.lineno; n->assert_s.type.lineno = exp->type.lineno;
n->assert_s.type.node_class = etree_assert; 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 *dst;
unsigned char *s; 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; fill->size = (len + 1) / 2;
dst = fill->data; dst = fill->data;
s = (unsigned char *) expld.result.str; s = (unsigned char *) expld.result.str;
@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
} }
else else
{ {
fill = xmalloc (4 + sizeof (*fill) - 1); fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
val = expld.result.value; val = expld.result.value;
fill->data[0] = (val >> 24) & 0xff; fill->data[0] = (val >> 24) & 0xff;
fill->data[1] = (val >> 16) & 0xff; fill->data[1] = (val >> 16) & 0xff;

View File

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

View File

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

View File

@ -66,9 +66,6 @@ typedef struct memory_region_struct
bfd_boolean had_full_message; bfd_boolean had_full_message;
} lang_memory_region_type; } lang_memory_region_type;
typedef struct lang_statement_header_struct
{
union lang_statement_union *next;
enum statement_enum enum statement_enum
{ {
lang_output_section_statement_enum, lang_output_section_statement_enum,
@ -87,7 +84,12 @@ typedef struct lang_statement_header_struct
lang_group_statement_enum, lang_group_statement_enum,
lang_insert_statement_enum, lang_insert_statement_enum,
lang_constructors_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; } lang_statement_header_type;
typedef struct typedef struct

View File

@ -399,7 +399,7 @@ main (int argc, char **argv)
{ {
static const int ld_bufsz = 8193; static const int ld_bufsz = 8193;
size_t n; size_t n;
char *buf = xmalloc (ld_bufsz); char *buf = (char *) xmalloc (ld_bufsz);
rewind (saved_script_handle); rewind (saved_script_handle);
while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0) while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
@ -503,9 +503,9 @@ main (int argc, char **argv)
FILE *src; FILE *src;
FILE *dst; FILE *dst;
const int bsize = 4096; const int bsize = 4096;
char *buf = xmalloc (bsize); char *buf = (char *) xmalloc (bsize);
int l; int l;
char *dst_name = xmalloc (len + 5); char *dst_name = (char *) xmalloc (len + 5);
strcpy (dst_name, output_filename); strcpy (dst_name, output_filename);
strcat (dst_name, ".exe"); strcat (dst_name, ".exe");
@ -540,7 +540,7 @@ main (int argc, char **argv)
if (config.stats) if (config.stats)
{ {
#ifdef HAVE_SBRK #ifdef HAVE_SBRK
char *lim = sbrk (0); char *lim = (char *) sbrk (0);
#endif #endif
long run_time = get_run_time () - start_time; long run_time = get_run_time () - start_time;
@ -672,7 +672,8 @@ add_ysym (const char *name)
{ {
if (link_info.notice_hash == NULL) 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, if (!bfd_hash_table_init_n (link_info.notice_hash,
bfd_hash_newfunc, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry), sizeof (struct bfd_hash_entry),
@ -691,7 +692,8 @@ add_wrap (const char *name)
{ {
if (link_info.wrap_hash == NULL) 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, if (!bfd_hash_table_init_n (link_info.wrap_hash,
bfd_hash_newfunc, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry), sizeof (struct bfd_hash_entry),
@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
return; 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, if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry))) sizeof (struct bfd_hash_entry)))
einfo (_("%P%F: bfd_hash_table_init failed: %E\n")); einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
bufsize = 100; bufsize = 100;
buf = xmalloc (bufsize); buf = (char *) xmalloc (bufsize);
c = getc (file); c = getc (file);
while (c != EOF) while (c != EOF)
@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
if (len >= bufsize) if (len >= bufsize)
{ {
bufsize *= 2; bufsize *= 2;
buf = xrealloc (buf, bufsize); buf = (char *) xrealloc (buf, bufsize);
} }
c = getc (file); c = getc (file);
} }
@ -780,7 +783,8 @@ add_archive_element (struct bfd_link_info *info,
{ {
lang_input_statement_type *input; 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->filename = abfd->filename;
input->local_sym_name = abfd->filename; input->local_sym_name = abfd->filename;
input->the_bfd = abfd; input->the_bfd = abfd;
@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
static void static void
warning_find_reloc (bfd *abfd, asection *sec, void *iarg) 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; long relsize;
arelent **relpp; arelent **relpp;
long relcount; long relcount;
@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
if (relsize == 0) if (relsize == 0)
return; return;
relpp = xmalloc (relsize); relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols); relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0) if (relcount < 0)
einfo (_("%B%F: could not read relocs: %E\n"), abfd); 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. */ /* Only warn once about a particular undefined symbol. */
if (hash == NULL) 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, if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry))) sizeof (struct bfd_hash_entry)))
einfo (_("%F%P: bfd_hash_table_init failed: %E\n")); einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
if (name == NULL) if (name == NULL)
{ {
if (command_line.cref || nocrossref_list != 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; 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->type = bfd_data_link_order;
link_order->offset = statement->data_statement.output_offset; 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; 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->offset = rs->output_offset;
link_order->size = bfd_get_reloc_size (rs->howto); 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->reloc = rs->reloc;
link_order->u.reloc.p->addend = rs->addend_value; 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 /* Invent a section name from the section name and a dotted numeric
suffix. */ suffix. */
len = strlen (name); len = strlen (name);
tname = xmalloc (len + 1); tname = (char *) xmalloc (len + 1);
memcpy (tname, name, len + 1); memcpy (tname, name, len + 1);
/* Remove a dotted number suffix, from a previous split link. */ /* Remove a dotted number suffix, from a previous split link. */
while (len && ISDIGIT (tname[len-1])) 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 /* The long options. This structure is used for both the option
parsing and the help text. */ parsing and the help text. */
struct ld_option enum control_enum {
{
/* 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 {
/* Use one dash before long option name. */ /* Use one dash before long option name. */
ONE_DASH, ONE_DASH,
/* Use two dashes before long option name. */ /* Use two dashes before long option name. */
@ -200,7 +189,20 @@ struct ld_option
EXACTLY_TWO_DASHES, EXACTLY_TWO_DASHES,
/* Don't mention this option in --help output. */ /* Don't mention this option in --help output. */
NO_HELP 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[] = static const struct ld_option ld_options[] =
@ -590,9 +592,11 @@ parse_args (unsigned argc, char **argv)
int last_optind; int last_optind;
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR; enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
shortopts = xmalloc (OPTION_COUNT * 3 + 2); shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1)); longopts = (struct option *)
really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1)); 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 /* Starting the short option string with '-' is for programs that
expect options and other ARGV-elements in any order and that care about 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; char *n;
n = xmalloc (strlen (argv[i]) + 20); n = (char *) xmalloc (strlen (argv[i]) + 20);
sprintf (n, "--library=%s", argv[i] + 2); sprintf (n, "--library=%s", argv[i] + 2);
argv[i] = n; argv[i] = n;
} }
@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
case 'f': case 'f':
if (command_line.auxiliary_filters == NULL) 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[0] = optarg;
command_line.auxiliary_filters[1] = NULL; command_line.auxiliary_filters[1] = NULL;
} }
@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
c = 0; c = 0;
for (p = command_line.auxiliary_filters; *p != NULL; p++) for (p = command_line.auxiliary_filters; *p != NULL; p++)
++c; ++c;
command_line.auxiliary_filters command_line.auxiliary_filters = (char **)
= xrealloc (command_line.auxiliary_filters, xrealloc (command_line.auxiliary_filters,
(c + 2) * sizeof (char *)); (c + 2) * sizeof (char *));
command_line.auxiliary_filters[c] = optarg; command_line.auxiliary_filters[c] = optarg;
command_line.auxiliary_filters[c + 1] = NULL; command_line.auxiliary_filters[c + 1] = NULL;
@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
if (cp == NULL) 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, sprintf (buf, "%s%c%s", command_line.rpath,
config.rpath_separator, optarg); config.rpath_separator, optarg);
free (command_line.rpath); free (command_line.rpath);
@ -1107,7 +1112,7 @@ parse_args (unsigned argc, char **argv)
{ {
char *buf; char *buf;
buf = xmalloc (strlen (command_line.rpath_link) buf = (char *) xmalloc (strlen (command_line.rpath_link)
+ strlen (optarg) + strlen (optarg)
+ 2); + 2);
sprintf (buf, "%s%c%s", command_line.rpath_link, 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 /* We must copy the section name as set_section_start
doesn't do it for us. */ doesn't do it for us. */
len = optarg2 - optarg; len = optarg2 - optarg;
sec_name = xmalloc (len); sec_name = (char *) xmalloc (len);
memcpy (sec_name, optarg, len - 1); memcpy (sec_name, optarg, len - 1);
sec_name[len - 1] = 0; 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 /* There was no existing value so we must create a new segment
entry. */ entry. */
seg = stat_alloc (sizeof (*seg)); seg = (segment_type *) stat_alloc (sizeof (*seg));
seg->name = name; seg->name = name;
seg->value = val; seg->value = val;
seg->used = FALSE; seg->used = FALSE;

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\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 /* If we haven't matched the entire string, and we want the
longest match, try backtracking. */ longest match, try backtracking. */
if (d != end_match_2) 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) /* 1 if this match ends in the same string (string1 or string2)
as the best previous match. */ as the best previous match. */
boolean same_str_p = (FIRST_STRING_P (match_end) boolean same_str_p = (FIRST_STRING_P (match_end)
== MATCHING_IN_FIRST_STRING); == 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 /* AIX compiler got confused when this was combined
with the previous declaration. */ 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; best_match_p = !MATCHING_IN_FIRST_STRING;
DEBUG_PRINT1 ("backtracking.\n"); DEBUG_PRINT1 ("backtracking.\n");
}
if (!FAIL_STACK_EMPTY ()) if (!FAIL_STACK_EMPTY ())
{ /* More failure points to try. */ { /* 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> 2009-09-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* s390-dis.c (print_insn_s390): Avoid 'long long'. * s390-dis.c (print_insn_s390): Avoid 'long long'.

View File

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