OSDN Git Service

* po/bfd.pot: Updated by the Translation project.
authornickc <nickc>
Fri, 11 Sep 2009 15:27:32 +0000 (15:27 +0000)
committernickc <nickc>
Fri, 11 Sep 2009 15:27:32 +0000 (15:27 +0000)
        * 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.

57 files changed:
bfd/ChangeLog
bfd/po/bfd.pot
binutils/ChangeLog
binutils/po/binutils.pot
gas/ChangeLog
gas/app.c
gas/as.c
gas/config/obj-elf.c
gas/config/tc-i386-intel.c
gas/config/tc-i386.c
gas/dw2gencfi.c
gas/dwarf2dbg.c
gas/dwarf2dbg.h
gas/ehopt.c
gas/expr.c
gas/frags.c
gas/hash.c
gas/input-scrub.c
gas/listing.c
gas/macro.c
gas/macro.h
gas/po/gas.pot
gas/read.c
gas/remap.c
gas/stabs.c
gas/subsegs.c
gas/symbols.c
gas/write.c
gold/ChangeLog
gprof/ChangeLog
gprof/basic_blocks.c
gprof/cg_dfn.c
gprof/corefile.c
gprof/gmon_io.c
gprof/hist.c
gprof/po/gprof.pot
gprof/po/sv.po
gprof/source.c
gprof/sym_ids.c
ld/ChangeLog
ld/emultempl/elf32.em
ld/ld.h
ld/ldcref.c
ld/ldctor.c
ld/ldexp.c
ld/ldexp.h
ld/ldlang.c
ld/ldlang.h
ld/ldmain.c
ld/ldwrite.c
ld/lexsup.c
ld/mri.c
ld/po/fi.po
ld/po/ld.pot
libiberty/regex.c
opcodes/ChangeLog
opcodes/po/opcodes.pot

index 795f00d..650f268 100644 (file)
@@ -1,3 +1,7 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/bfd.pot: Updated by the Translation project.
+
 2009-09-11  Philippe De Muyter  <phdm@macqel.be>
 
        * binary.c (binary_object_p): Remove bfd_external_binary_architecture
 2009-09-11  Philippe De Muyter  <phdm@macqel.be>
 
        * binary.c (binary_object_p): Remove bfd_external_binary_architecture
index f60bb85..5f00211 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:07+0200\n"
+"POT-Creation-Date: 2009-09-07 14:05+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -367,7 +367,7 @@ msgstr ""
 msgid "Relocation `%s' not yet implemented\n"
 msgstr ""
 
 msgid "Relocation `%s' not yet implemented\n"
 msgstr ""
 
-#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5145
+#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5143
 msgid "%B: warning: illegal symbol index %ld in relocs"
 msgstr ""
 
 msgid "%B: warning: illegal symbol index %ld in relocs"
 msgstr ""
 
@@ -437,56 +437,56 @@ msgstr ""
 msgid "ignoring reloc %s\n"
 msgstr ""
 
 msgid "ignoring reloc %s\n"
 msgstr ""
 
-#: coffcode.h:962
+#: coffcode.h:960
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr ""
 
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr ""
 
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1178
+#: coffcode.h:1176
 msgid ""
 "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr ""
 
 msgid ""
 "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr ""
 
-#: coffcode.h:1242
+#: coffcode.h:1240
 msgid "%B (%s): Section flag %s (0x%x) ignored"
 msgstr ""
 
 msgid "%B (%s): Section flag %s (0x%x) ignored"
 msgstr ""
 
-#: coffcode.h:2384
+#: coffcode.h:2382
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
 msgstr ""
 
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
 msgstr ""
 
-#: coffcode.h:2698
+#: coffcode.h:2696
 msgid "%B: reloc against a non-existant symbol index: %ld"
 msgstr ""
 
 msgid "%B: reloc against a non-existant symbol index: %ld"
 msgstr ""
 
-#: coffcode.h:3671
+#: coffcode.h:3669
 msgid "%B: section %s: string table overflow at offset %ld"
 msgstr ""
 
 msgid "%B: section %s: string table overflow at offset %ld"
 msgstr ""
 
-#: coffcode.h:4479
+#: coffcode.h:4477
 msgid "%B: warning: line number table read failed"
 msgstr ""
 
 msgid "%B: warning: line number table read failed"
 msgstr ""
 
-#: coffcode.h:4509
+#: coffcode.h:4507
 msgid "%B: warning: illegal symbol index %ld in line numbers"
 msgstr ""
 
 msgid "%B: warning: illegal symbol index %ld in line numbers"
 msgstr ""
 
-#: coffcode.h:4523
+#: coffcode.h:4521
 msgid "%B: warning: duplicate line number information for `%s'"
 msgstr ""
 
 msgid "%B: warning: duplicate line number information for `%s'"
 msgstr ""
 
-#: coffcode.h:4914
+#: coffcode.h:4912
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
 msgstr ""
 
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
 msgstr ""
 
-#: coffcode.h:5040
+#: coffcode.h:5038
 msgid "warning: %B: local symbol `%s' has no section"
 msgstr ""
 
 msgid "warning: %B: local symbol `%s' has no section"
 msgstr ""
 
-#: coffcode.h:5183
+#: coffcode.h:5181
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr ""
 
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr ""
 
index e7bc712..7962c5e 100644 (file)
@@ -1,3 +1,7 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/binutils.pot: Updated by the Translation project.
+
 2009-09-11  Philippe De Muyter  <phdm@macqel.be>
 
        * obcopy.c (copy_object): New parameter `input_arch', architecture
 2009-09-11  Philippe De Muyter  <phdm@macqel.be>
 
        * obcopy.c (copy_object): New parameter `input_arch', architecture
index 4055165..6a5ec37 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:08+0200\n"
+"POT-Creation-Date: 2009-09-07 14:08+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 6dc5e82..fe66a37 100644 (file)
@@ -1,3 +1,56 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/gas.pot: Updated by the Translation project.
+
+2009-09-11  Martin Thuresson  <martint@google.com>
+
+       * as.c (main): Call dwarf2_init.
+       * config/obj-elf.c (struct group_list): New field.
+       (build_group_lists): Use hash lookup.
+       (free_section_idx): New function.
+       (elf_frob_file): Adjust.
+       * dwarf2dbg.c (all_segs_hash, last_seg_ptr): New variables.
+       (get_line_subseg): Adjust.
+       (dwarf2_init): New function.
+       * dwarf2dbg.h (dwarf2_init): New declaration.
+
+2009-09-11  Martin Thuresson  <martint@google.com>
+
+       Updated sources to compile cleanly with -Wc++-compat:
+       * app.c: Add casts.
+       * as.c: Add casts.
+       * config/obj-elf.c: Add casts.
+       (obj_elf_type): Rename variable typename to type_name.
+       * config/tc-i386-intel.c (i386_operators): Rename member operator to op.
+       * config/tc-i386.c: Add casts.
+       (check_cpu_arch_compatible): Rename argument new to new_flag.
+       (gotrel): Update variable to use enum name instead of integer value.
+       * dw2gencfi.c: Add casts.
+       (struct cfi_escape_data): Move to top level.
+       * dwarf2dbg.c: Add cast.
+       * dwarf2dbg.h (dwarf2_loc_directive_seen): Make variable extern.
+       * ehopt.c Add casts.
+       (enum frame_state): Move to top level.
+       * expr.c (operatorf): Rename function operator to operatorf.
+       (operand): Rename variable operator to op.
+       (expr_set_rank): Rename argument operator to op.
+       * frags.c: Add cast.
+       * hash.c: Add casts.
+       * input-scrub.c: Add cast.
+       * listing.c: Add casts.
+       (enum edict_enum): Move to top level.
+       * macro.c: Add casts.
+       * macro.h (enum formal_type): Move to top level.
+       * read.c: Add casts.
+       (s_include): Rename variable try to try_file.
+       * remap.c: Add cast.
+       * stabs.c: Add casts.
+       * subsegs.c: Add casts.
+       * symbols.c: Add casts.
+       * write.c: Add casts.
+       * libiberty/regex.c (byte_re_match_2_internal): Introduce extra scope to avoid
+       initialization warning from goto.
+
 2009-09-11  Hans-Peter Nilsson  <hp@bitrange.com>
 
        PR gas/10623
 2009-09-11  Hans-Peter Nilsson  <hp@bitrange.com>
 
        PR gas/10623
 2009-09-02  Jie Zhang  <jie.zhang@analog.com>
 
        From  Bernd Schmidt  <bernd.schmidt@analog.com>
 2009-09-02  Jie Zhang  <jie.zhang@analog.com>
 
        From  Bernd Schmidt  <bernd.schmidt@analog.com>
-       * config/gas/bfin-parse.y (asm_1): Clean up and unify error handling
+       * config/bfin-parse.y (asm_1): Clean up and unify error handling
        for load and store insns.
        (neg_value): Delete function.
 
        for load and store insns.
        (neg_value): Delete function.
 
        Remove.
        (mkdep section): Remove.
        * Makefile.in: Regenerate.
        Remove.
        (mkdep section): Remove.
        * Makefile.in: Regenerate.
-       * gas/po/POTFILES.in, gas/po/gas.pot: Regenerate.
+       * po/POTFILES.in, po/gas.pot: Regenerate.
 
        * Makefile.am (install-pdf, install-pdf-recursive, install-html)
        (install-html-recursive): Remove.
 
        * Makefile.am (install-pdf, install-pdf-recursive, install-html)
        (install-html-recursive): Remove.
        * config/obj-coff.h (obj_coff_seh_do_final): Add new
        function prototype.
        (obj_coff_generate_pdata): New obj-coff hook.
        * config/obj-coff.h (obj_coff_seh_do_final): Add new
        function prototype.
        (obj_coff_generate_pdata): New obj-coff hook.
-       * gas/write.c (size_seg): Avoid sizing of already sized
+       * write.c (size_seg): Avoid sizing of already sized
        sections.
        (write_object_file): Call conditional hook
        objc_coff_generate_pdata.
        sections.
        (write_object_file): Call conditional hook
        objc_coff_generate_pdata.
 
 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,
-       gas/config/atof-ieee.c, gas/config/obj-aout.c,
-       gas/config/obj-coff.c, gas/config/obj-ecoff.c,
-       gas/config/obj-elf.c, gas/config/obj-som.c, gas/config/tc-alpha.c,
-       gas/config/tc-arc.c, gas/config/tc-arm.c, gas/config/tc-cr16.c,
-       gas/config/tc-cris.c, gas/config/tc-crx.c, gas/config/tc-d30v.c,
-       gas/config/tc-dlx.c, gas/config/tc-hppa.c, gas/config/tc-i370.c,
-       gas/config/tc-i386-intel.c, gas/config/tc-i386.c,
-       gas/config/tc-i860.c, gas/config/tc-i960.c, gas/config/tc-ia64.c,
-       gas/config/tc-iq2000.c, gas/config/tc-m32c.c,
-       gas/config/tc-m32r.c, gas/config/tc-m68hc11.c,
-       gas/config/tc-m68k.c, gas/config/tc-maxq.c, gas/config/tc-mcore.c,
-       gas/config/tc-mep.c, gas/config/tc-mips.c, gas/config/tc-mmix.c,
-       gas/config/tc-mn10300.c, gas/config/tc-moxie.c,
-       gas/config/tc-ns32k.c, gas/config/tc-pj.c, gas/config/tc-ppc.c,
-       gas/config/tc-s390.c, gas/config/tc-score.c,
-       gas/config/tc-score7.c, gas/config/tc-sh.c, gas/config/tc-sparc.c,
-       gas/config/tc-spu.c, gas/config/tc-tic30.c, gas/config/tc-vax.c,
-       gas/config/tc-xtensa.c, gas/config/xtensa-relax.c,
-       gas/dw2gencfi.c, gas/dwarf2dbg.c, gas/ehopt.c, gas/expr.c,
-       gas/frags.c, gas/input-file.c, gas/read.c, gas/sb.c,
-       gas/subsegs.c, gas/symbols.c, gas/write.c: Change the name of the
+       * app, as.c, as.h, atof-generic.c, cgen.c,
+       config/atof-ieee.c, config/obj-aout.c,
+       config/obj-coff.c, config/obj-ecoff.c,
+       config/obj-elf.c, config/obj-som.c, config/tc-alpha.c,
+       config/tc-arc.c, config/tc-arm.c, config/tc-cr16.c,
+       config/tc-cris.c, config/tc-crx.c, config/tc-d30v.c,
+       config/tc-dlx.c, config/tc-hppa.c, config/tc-i370.c,
+       config/tc-i386-intel.c, config/tc-i386.c,
+       config/tc-i860.c, config/tc-i960.c, config/tc-ia64.c,
+       config/tc-iq2000.c, config/tc-m32c.c,
+       config/tc-m32r.c, config/tc-m68hc11.c,
+       config/tc-m68k.c, config/tc-maxq.c, config/tc-mcore.c,
+       config/tc-mep.c, config/tc-mips.c, config/tc-mmix.c,
+       config/tc-mn10300.c, config/tc-moxie.c,
+       config/tc-ns32k.c, config/tc-pj.c, config/tc-ppc.c,
+       config/tc-s390.c, config/tc-score.c,
+       config/tc-score7.c, config/tc-sh.c, config/tc-sparc.c,
+       config/tc-spu.c, config/tc-tic30.c, config/tc-vax.c,
+       config/tc-xtensa.c, config/xtensa-relax.c,
+       dw2gencfi.c, dwarf2dbg.c, ehopt.c, expr.c,
+       frags.c, input-file.c, read.c, sb.c,
+       subsegs.c, symbols.c, write.c: Change the name of the
        gas macro `assert' to `gas_assert'.
 
 2009-06-22  Daniel Gutson <dgutson@codesourcery.com>
        gas macro `assert' to `gas_assert'.
 
 2009-06-22  Daniel Gutson <dgutson@codesourcery.com>
 2009-06-18  Nick Clifton  <nickc@redhat.com>
 
        PR 10169
 2009-06-18  Nick Clifton  <nickc@redhat.com>
 
        PR 10169
-       * gas/tc-arm.c (do_t_ssat): Move common code from here...
+       * tc-arm.c (do_t_ssat): Move common code from here...
        (do_t_usat): ... and here to...
        (do_t_ssat_usat): New function: ... here.  Add code to check that
        the shift value, if present, is in range.
        (do_t_usat): ... and here to...
        (do_t_ssat_usat): New function: ... here.  Add code to check that
        the shift value, if present, is in range.
index 8668519..56a0e12 100644 (file)
--- a/gas/app.c
+++ b/gas/app.c
@@ -258,7 +258,7 @@ app_push (void)
     saved->saved_input = NULL;
   else
     {
     saved->saved_input = NULL;
   else
     {
-      saved->saved_input = xmalloc (saved_input_len);
+      saved->saved_input = (char *) xmalloc (saved_input_len);
       memcpy (saved->saved_input, saved_input, saved_input_len);
       saved->saved_input_len = saved_input_len;
     }
       memcpy (saved->saved_input, saved_input, saved_input_len);
       saved->saved_input_len = saved_input_len;
     }
index 87f6c46..4d1c00f 100644 (file)
--- a/gas/as.c
+++ b/gas/as.c
@@ -506,7 +506,8 @@ parse_args (int * pargc, char *** pargv)
      dependent list.  Include space for an extra NULL option and
      always NULL terminate.  */
   shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
      dependent list.  Include space for an extra NULL option and
      always NULL terminate.  */
   shortopts = concat (std_shortopts, md_shortopts, (char *) NULL);
-  longopts = xmalloc (sizeof (std_longopts) + md_longopts_size + sizeof (struct option));
+  longopts = (struct option *) xmalloc (sizeof (std_longopts)
+                                        + md_longopts_size + sizeof (struct option));
   memcpy (longopts, std_longopts, sizeof (std_longopts));
   memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
   memset (((char *) longopts) + sizeof (std_longopts) + md_longopts_size,
   memcpy (longopts, std_longopts, sizeof (std_longopts));
   memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
   memset (((char *) longopts) + sizeof (std_longopts) + md_longopts_size,
@@ -517,7 +518,7 @@ parse_args (int * pargc, char *** pargv)
   old_argv = *pargv;
 
   /* Initialize a new argv that contains no options.  */
   old_argv = *pargv;
 
   /* Initialize a new argv that contains no options.  */
-  new_argv = xmalloc (sizeof (char *) * (old_argc + 1));
+  new_argv = (char **) xmalloc (sizeof (char *) * (old_argc + 1));
   new_argv[0] = old_argv[0];
   new_argc = 1;
   new_argv[new_argc] = NULL;
   new_argv[0] = old_argv[0];
   new_argc = 1;
   new_argv[new_argc] = NULL;
@@ -646,7 +647,7 @@ This program has absolutely no warranty.\n"));
              as_fatal (_("bad defsym; format is --defsym name=value"));
            *s++ = '\0';
            i = bfd_scan_vma (s, (const char **) NULL, 0);
              as_fatal (_("bad defsym; format is --defsym name=value"));
            *s++ = '\0';
            i = bfd_scan_vma (s, (const char **) NULL, 0);
-           n = xmalloc (sizeof *n);
+           n = (struct defsym_list *) xmalloc (sizeof *n);
            n->next = defsyms;
            n->name = optarg;
            n->value = i;
            n->next = defsyms;
            n->name = optarg;
            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
      file, define any symbols requested by --defsym command line
      arguments.  */
   /* Now that we have fully initialized, and have created the output
      file, define any symbols requested by --defsym command line
      arguments.  */
index c7e2a83..d477b4e 100644 (file)
@@ -269,7 +269,7 @@ elf_file_symbol (const char *s, int appfile)
       if (name_length > strlen (S_GET_NAME (sym)))
        {
          obstack_grow (&notes, s, name_length + 1);
       if (name_length > strlen (S_GET_NAME (sym)))
        {
          obstack_grow (&notes, s, name_length + 1);
-         S_SET_NAME (sym, obstack_finish (&notes));
+         S_SET_NAME (sym, (const char *) obstack_finish (&notes));
        }
       else
        strcpy ((char *) S_GET_NAME (sym), s);
        }
       else
        strcpy ((char *) S_GET_NAME (sym), s);
@@ -505,7 +505,7 @@ static struct section_stack *section_stack;
 static bfd_boolean
 get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
 {
 static bfd_boolean
 get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
 {
-  const char *gname = inf;
+  const char *gname = (const char *) inf;
   const char *group_name = elf_group_name (sec);
 
   return (group_name == gname
   const char *group_name = elf_group_name (sec);
 
   return (group_name == gname
@@ -555,7 +555,7 @@ obj_elf_change_section (const char *name,
   if (push)
     {
       struct section_stack *elt;
   if (push)
     {
       struct section_stack *elt;
-      elt = xmalloc (sizeof (struct section_stack));
+      elt = (struct section_stack *) xmalloc (sizeof (struct section_stack));
       elt->next = section_stack;
       elt->seg = now_seg;
       elt->prev_seg = previous_section;
       elt->next = section_stack;
       elt->seg = now_seg;
       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);
       name[end - input_line_pointer] = '\0';
 #ifdef tc_canonicalize_section_name
       memcpy (name, input_line_pointer, end - input_line_pointer);
       name[end - input_line_pointer] = '\0';
 #ifdef tc_canonicalize_section_name
@@ -1441,7 +1441,7 @@ elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
   if (srcelf->size)
     {
       if (destelf->size == NULL)
   if (srcelf->size)
     {
       if (destelf->size == NULL)
-       destelf->size = xmalloc (sizeof (expressionS));
+       destelf->size = (expressionS *) xmalloc (sizeof (expressionS));
       *destelf->size = *srcelf->size;
     }
   else
       *destelf->size = *srcelf->size;
     }
   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;
     }
   demand_empty_rest_of_line ();
       *symbol_get_obj (sym)->size = exp;
     }
   demand_empty_rest_of_line ();
@@ -1609,7 +1610,7 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
   char *name;
   char c;
   int type;
   char *name;
   char c;
   int type;
-  const char *typename;
+  const char *type_name;
   symbolS *sym;
   elf_symbol_type *elfsym;
 
   symbolS *sym;
   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
-      || strcmp (typename, "2") == 0
-      || strcmp (typename, "STT_FUNC") == 0)
+  if (strcmp (type_name, "function") == 0
+      || strcmp (type_name, "2") == 0
+      || strcmp (type_name, "STT_FUNC") == 0)
     type = BSF_FUNCTION;
     type = BSF_FUNCTION;
-  else if (strcmp (typename, "object") == 0
-          || strcmp (typename, "1") == 0
-          || strcmp (typename, "STT_OBJECT") == 0)
+  else if (strcmp (type_name, "object") == 0
+          || strcmp (type_name, "1") == 0
+          || strcmp (type_name, "STT_OBJECT") == 0)
     type = BSF_OBJECT;
     type = BSF_OBJECT;
-  else if (strcmp (typename, "tls_object") == 0
-          || strcmp (typename, "6") == 0
-          || strcmp (typename, "STT_TLS") == 0)
+  else if (strcmp (type_name, "tls_object") == 0
+          || strcmp (type_name, "6") == 0
+          || strcmp (type_name, "STT_TLS") == 0)
     type = BSF_OBJECT | BSF_THREAD_LOCAL;
     type = BSF_OBJECT | BSF_THREAD_LOCAL;
-  else if (strcmp (typename, "notype") == 0
-          || strcmp (typename, "0") == 0
-          || strcmp (typename, "STT_NOTYPE") == 0)
+  else if (strcmp (type_name, "notype") == 0
+          || strcmp (type_name, "0") == 0
+          || strcmp (type_name, "STT_NOTYPE") == 0)
     ;
     ;
-  else if (strcmp (typename, "common") == 0
-          || strcmp (typename, "5") == 0
-          || strcmp (typename, "STT_COMMON") == 0)
+  else if (strcmp (type_name, "common") == 0
+          || strcmp (type_name, "5") == 0
+          || strcmp (type_name, "STT_COMMON") == 0)
     {
       type = BSF_OBJECT;
 
     {
       type = BSF_OBJECT;
 
@@ -1677,9 +1678,9 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
            }
        }
     }
            }
        }
     }
-  else if (strcmp (typename, "gnu_indirect_function") == 0
-          || strcmp (typename, "10") == 0
-          || strcmp (typename, "STT_GNU_IFUNC") == 0)
+  else if (strcmp (type_name, "gnu_indirect_function") == 0
+          || strcmp (type_name, "10") == 0
+          || strcmp (type_name, "STT_GNU_IFUNC") == 0)
     {
       const struct elf_backend_data *bed;
 
     {
       const struct elf_backend_data *bed;
 
@@ -1688,10 +1689,10 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
            /* GNU/Linux is still using the default value 0.  */
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
            /* GNU/Linux is still using the default value 0.  */
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
-               typename);
+               type_name);
       type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
     }
       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.  */
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
            /* GNU/Linux is still using the default value 0.  */
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
-               typename);
+               type_name);
       type = BSF_OBJECT | BSF_GNU_UNIQUE;
       /* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols.  */
       bed->elf_osabi = ELFOSABI_LINUX;
     }
 #ifdef md_elf_symbol_type
       type = BSF_OBJECT | BSF_GNU_UNIQUE;
       /* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols.  */
       bed->elf_osabi = ELFOSABI_LINUX;
     }
 #ifdef md_elf_symbol_type
-  else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1)
+  else if ((type = md_elf_symbol_type (type_name, sym, elfsym)) != -1)
     ;
 #endif
   else
     ;
 #endif
   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.  */
   memset (p, 0, 12);
   as_where (&file, NULL);
   /* Zero it out.  */
   memset (p, 0, 12);
   as_where (&file, NULL);
-  stabstr_name = xmalloc (strlen (segment_name (seg)) + 4);
+  stabstr_name = (char *) xmalloc (strlen (segment_name (seg)) + 4);
   strcpy (stabstr_name, segment_name (seg));
   strcat (stabstr_name, "str");
   stroff = get_stab_string_offset (file, stabstr_name);
   strcpy (stabstr_name, segment_name (seg));
   strcat (stabstr_name, "str");
   stroff = get_stab_string_offset (file, stabstr_name);
@@ -1800,7 +1801,7 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
   if (!strcmp ("str", sec->name + strlen (sec->name) - 3))
     return;
 
   if (!strcmp ("str", sec->name + strlen (sec->name) - 3))
     return;
 
-  name = alloca (strlen (sec->name) + 4);
+  name = (char *) alloca (strlen (sec->name) + 4);
   strcpy (name, sec->name);
   strcat (name, "str");
   strsec = bfd_get_section_by_name (abfd, name);
   strcpy (name, sec->name);
   strcat (name, "str");
   strsec = bfd_get_section_by_name (abfd, name);
@@ -2006,6 +2007,7 @@ struct group_list
   asection **head;             /* Section lists.  */
   unsigned int *elt_count;     /* Number of sections in each list.  */
   unsigned int num_group;      /* Number of lists.  */
   asection **head;             /* Section lists.  */
   unsigned int *elt_count;     /* Number of sections in each list.  */
   unsigned int num_group;      /* Number of lists.  */
+  struct hash_control *indexes; /* Maps group name to index in head array.  */
 };
 
 /* Called via bfd_map_over_sections.  If SEC is a member of a group,
 };
 
 /* Called via bfd_map_over_sections.  If SEC is a member of a group,
@@ -2016,24 +2018,24 @@ struct group_list
 static void
 build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
 {
 static void
 build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
 {
-  struct group_list *list = inf;
+  struct group_list *list = (struct group_list *) inf;
   const char *group_name = elf_group_name (sec);
   unsigned int i;
   const char *group_name = elf_group_name (sec);
   unsigned int i;
+  unsigned int *elem_idx;
+  unsigned int *idx_ptr;
 
   if (group_name == NULL)
     return;
 
   /* If this group already has a list, add the section to the head of
      the list.  */
 
   if (group_name == NULL)
     return;
 
   /* If this group already has a list, add the section to the head of
      the list.  */
-  for (i = 0; i < list->num_group; i++)
+  elem_idx = (unsigned int *) hash_find (list->indexes, group_name);
+  if (elem_idx != NULL)
     {
     {
-      if (strcmp (group_name, elf_group_name (list->head[i])) == 0)
-       {
-         elf_next_in_group (sec) = list->head[i];
-         list->head[i] = sec;
-         list->elt_count[i] += 1;
-         return;
-       }
+      elf_next_in_group (sec) = list->head[*elem_idx];
+      list->head[*elem_idx] = sec;
+      list->elt_count[*elem_idx] += 1;
+      return;
     }
 
   /* New group.  Make the arrays bigger in chunks to minimize calls to
     }
 
   /* New group.  Make the arrays bigger in chunks to minimize calls to
@@ -2042,13 +2044,24 @@ build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
   if ((i & 127) == 0)
     {
       unsigned int newsize = i + 128;
   if ((i & 127) == 0)
     {
       unsigned int newsize = i + 128;
-      list->head = xrealloc (list->head, newsize * sizeof (*list->head));
-      list->elt_count = xrealloc (list->elt_count,
-                                 newsize * sizeof (*list->elt_count));
+      list->head = (asection **) xrealloc (list->head,
+                                           newsize * sizeof (*list->head));
+      list->elt_count = (unsigned int *)
+          xrealloc (list->elt_count, newsize * sizeof (*list->elt_count));
     }
   list->head[i] = sec;
   list->elt_count[i] = 1;
   list->num_group += 1;
     }
   list->head[i] = sec;
   list->elt_count[i] = 1;
   list->num_group += 1;
+
+  /* Add index to hash.  */
+  idx_ptr = xmalloc (sizeof (unsigned int));
+  *idx_ptr = i;
+  hash_insert (list->indexes, group_name, idx_ptr);
+}
+
+static void free_section_idx (const char *key ATTRIBUTE_UNUSED, void *val)
+{
+  free ((unsigned int *) val);
 }
 
 void
 }
 
 void
@@ -2063,6 +2076,7 @@ elf_frob_file (void)
   list.num_group = 0;
   list.head = NULL;
   list.elt_count = NULL;
   list.num_group = 0;
   list.head = NULL;
   list.elt_count = NULL;
+  list.indexes  = hash_new ();
   bfd_map_over_sections (stdoutput, build_group_lists, &list);
 
   /* Make the SHT_GROUP sections that describe each section group.  We
   bfd_map_over_sections (stdoutput, build_group_lists, &list);
 
   /* Make the SHT_GROUP sections that describe each section group.  We
@@ -2128,6 +2142,10 @@ elf_frob_file (void)
 #ifdef elf_tc_final_processing
   elf_tc_final_processing ();
 #endif
 #ifdef elf_tc_final_processing
   elf_tc_final_processing ();
 #endif
+
+  /* Cleanup hash.  */
+  hash_traverse (list.indexes, free_section_idx);
+  hash_die (list.indexes);
 }
 
 /* It removes any unneeded versioned symbols from the symbol table.  */
 }
 
 /* It removes any unneeded versioned symbols from the symbol table.  */
index c12569f..ff20874 100644 (file)
@@ -65,7 +65,7 @@ intel_state;
 static struct
   {
     const char *name;
 static struct
   {
     const char *name;
-    operatorT operator;
+    operatorT op;
     unsigned int operands;
   }
 const i386_operators[] =
     unsigned int operands;
   }
 const i386_operators[] =
@@ -91,7 +91,7 @@ const i386_operators[] =
 static struct
   {
     const char *name;
 static struct
   {
     const char *name;
-    operatorT operator;
+    operatorT op;
     unsigned short sz[3];
   }
 const i386_types[] =
     unsigned short sz[3];
   }
 const i386_types[] =
@@ -158,7 +158,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
        if (i386_operators[j].operands
            && i386_operators[j].operands != operands)
          return O_illegal;
        if (i386_operators[j].operands
            && i386_operators[j].operands != operands)
          return O_illegal;
-       return i386_operators[j].operator;
+       return i386_operators[j].op;
       }
 
   for (j = 0; i386_types[j].name; ++j)
       }
 
   for (j = 0; i386_types[j].name; ++j)
@@ -175,7 +175,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
          *pc = c;
          if (intel_syntax > 0 || operands != 1)
            return O_illegal;
          *pc = c;
          if (intel_syntax > 0 || operands != 1)
            return O_illegal;
-         return i386_types[j].operator;
+         return i386_types[j].op;
        }
 
       *input_line_pointer = c;
        }
 
       *input_line_pointer = c;
index af1994d..a8dc7fc 100644 (file)
@@ -1851,7 +1851,7 @@ add_prefix (unsigned int prefix)
 static void
 set_code_flag (int value)
 {
 static void
 set_code_flag (int value)
 {
-  flag_code = value;
+  flag_code = (enum flag_code) value;
   if (flag_code == CODE_64BIT)
     {
       cpu_arch_flags.bitfield.cpu64 = 1;
   if (flag_code == CODE_64BIT)
     {
       cpu_arch_flags.bitfield.cpu64 = 1;
@@ -1876,7 +1876,7 @@ set_code_flag (int value)
 static void
 set_16bit_gcc_code_flag (int new_code_flag)
 {
 static void
 set_16bit_gcc_code_flag (int new_code_flag)
 {
-  flag_code = new_code_flag;
+  flag_code = (enum flag_code) new_code_flag;
   if (flag_code != CODE_16BIT)
     abort ();
   cpu_arch_flags.bitfield.cpu64 = 0;
   if (flag_code != CODE_16BIT)
     abort ();
   cpu_arch_flags.bitfield.cpu64 = 0;
@@ -1961,7 +1961,7 @@ set_sse_check (int dummy ATTRIBUTE_UNUSED)
 
 static void
 check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
 
 static void
 check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
-                          i386_cpu_flags new ATTRIBUTE_UNUSED)
+                          i386_cpu_flags new_flag ATTRIBUTE_UNUSED)
 {
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
   static const char *arch;
 {
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
   static const char *arch;
@@ -1981,7 +1981,7 @@ check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
 
   /* If we are targeting Intel L1OM, we must enable it.  */
   if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
 
   /* If we are targeting Intel L1OM, we must enable it.  */
   if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
-      || new.bitfield.cpul1om)
+      || new_flag.bitfield.cpul1om)
     return;
   
   as_bad (_("`%s' is not supported on `%s'"), name, arch);
     return;
   
   as_bad (_("`%s' is not supported on `%s'"), name, arch);
@@ -6019,28 +6019,28 @@ lex_got (enum bfd_reloc_code_real *reloc,
     const enum bfd_reloc_code_real rel[2];
     const i386_operand_type types64;
   } gotrel[] = {
     const enum bfd_reloc_code_real rel[2];
     const i386_operand_type types64;
   } gotrel[] = {
-    { "PLTOFF",   { 0,
+    { "PLTOFF",   { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_PLTOFF64 },
       OPERAND_TYPE_IMM64 },
     { "PLT",      { BFD_RELOC_386_PLT32,
                    BFD_RELOC_X86_64_PLT32    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
                    BFD_RELOC_X86_64_PLTOFF64 },
       OPERAND_TYPE_IMM64 },
     { "PLT",      { BFD_RELOC_386_PLT32,
                    BFD_RELOC_X86_64_PLT32    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
-    { "GOTPLT",   { 0,
+    { "GOTPLT",   { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_GOTPLT64 },
       OPERAND_TYPE_IMM64_DISP64 },
     { "GOTOFF",   { BFD_RELOC_386_GOTOFF,
                    BFD_RELOC_X86_64_GOTOFF64 },
       OPERAND_TYPE_IMM64_DISP64 },
                    BFD_RELOC_X86_64_GOTPLT64 },
       OPERAND_TYPE_IMM64_DISP64 },
     { "GOTOFF",   { BFD_RELOC_386_GOTOFF,
                    BFD_RELOC_X86_64_GOTOFF64 },
       OPERAND_TYPE_IMM64_DISP64 },
-    { "GOTPCREL", { 0,
+    { "GOTPCREL", { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_GOTPCREL },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSGD",    { BFD_RELOC_386_TLS_GD,
                    BFD_RELOC_X86_64_TLSGD    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSLDM",   { BFD_RELOC_386_TLS_LDM,
                    BFD_RELOC_X86_64_GOTPCREL },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSGD",    { BFD_RELOC_386_TLS_GD,
                    BFD_RELOC_X86_64_TLSGD    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSLDM",   { BFD_RELOC_386_TLS_LDM,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
       OPERAND_TYPE_NONE },
-    { "TLSLD",    { 0,
+    { "TLSLD",    { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_TLSLD    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
                    BFD_RELOC_X86_64_TLSLD    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
@@ -6050,17 +6050,17 @@ lex_got (enum bfd_reloc_code_real *reloc,
                    BFD_RELOC_X86_64_TPOFF32  },
       OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "NTPOFF",   { BFD_RELOC_386_TLS_LE,
                    BFD_RELOC_X86_64_TPOFF32  },
       OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "NTPOFF",   { BFD_RELOC_386_TLS_LE,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
     { "DTPOFF",   { BFD_RELOC_386_TLS_LDO_32,
                    BFD_RELOC_X86_64_DTPOFF32 },
 
       OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
       OPERAND_TYPE_NONE },
     { "DTPOFF",   { BFD_RELOC_386_TLS_LDO_32,
                    BFD_RELOC_X86_64_DTPOFF32 },
 
       OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
     { "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
       OPERAND_TYPE_NONE },
     { "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
     { "GOT",      { BFD_RELOC_386_GOT32,
                    BFD_RELOC_X86_64_GOT32    },
       OPERAND_TYPE_NONE },
     { "GOT",      { BFD_RELOC_386_GOT32,
                    BFD_RELOC_X86_64_GOT32    },
@@ -6125,7 +6125,7 @@ lex_got (enum bfd_reloc_code_real *reloc,
 
              /* Allocate and copy string.  The trailing NUL shouldn't
                 be necessary, but be safe.  */
 
              /* Allocate and copy string.  The trailing NUL shouldn't
                 be necessary, but be safe.  */
-             tmpbuf = xmalloc (first + second + 2);
+             tmpbuf = (char *) xmalloc (first + second + 2);
              memcpy (tmpbuf, input_line_pointer, first);
              if (second != 0 && *past_reloc != ' ')
                /* Replace the relocation token with ' ', so that
              memcpy (tmpbuf, input_line_pointer, first);
              if (second != 0 && *past_reloc != ' ')
                /* Replace the relocation token with ' ', so that
@@ -7104,7 +7104,7 @@ md_estimate_size_before_relax (fragP, segment)
       int old_fr_fix;
 
       if (fragP->fr_var != NO_RELOC)
       int old_fr_fix;
 
       if (fragP->fr_var != NO_RELOC)
-       reloc_type = fragP->fr_var;
+       reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
       else if (size == 2)
        reloc_type = BFD_RELOC_16_PCREL;
       else
       else if (size == 2)
        reloc_type = BFD_RELOC_16_PCREL;
       else
@@ -7553,7 +7553,7 @@ parse_real_register (char *reg_string, char **end_op)
              if (*s == ')')
                {
                  *end_op = s + 1;
              if (*s == ')')
                {
                  *end_op = s + 1;
-                 r = hash_find (reg_hash, "st(0)");
+                 r = (const reg_entry *) hash_find (reg_hash, "st(0)");
                  know (r);
                  return r + fpr;
                }
                  know (r);
                  return r + fpr;
                }
index 0b4a64f..e8ba916 100644 (file)
 # define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
 #endif
 
 # define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
 #endif
 
+struct cfi_escape_data {
+  struct cfi_escape_data *next;
+  expressionS exp;
+};
 
 struct cfi_insn_data
 {
 
 struct cfi_insn_data
 {
@@ -87,10 +91,7 @@ struct cfi_insn_data
       symbolS *lab2;
     } ll;
 
       symbolS *lab2;
     } ll;
 
-    struct cfi_escape_data {
-      struct cfi_escape_data *next;
-      expressionS exp;
-    } *esc;
+    struct cfi_escape_data *esc;
 
     struct {
       unsigned reg, encoding;
 
     struct {
       unsigned reg, encoding;
@@ -155,9 +156,11 @@ struct frch_cfi_data
 static struct fde_entry *
 alloc_fde_entry (void)
 {
 static struct fde_entry *
 alloc_fde_entry (void)
 {
-  struct fde_entry *fde = xcalloc (1, sizeof (struct fde_entry));
+  struct fde_entry *fde = (struct fde_entry *)
+      xcalloc (1, sizeof (struct fde_entry));
 
 
-  frchain_now->frch_cfi_data = xcalloc (1, sizeof (struct frch_cfi_data));
+  frchain_now->frch_cfi_data = (struct frch_cfi_data *)
+      xcalloc (1, sizeof (struct frch_cfi_data));
   frchain_now->frch_cfi_data->cur_fde_data = fde;
   *last_fde_data = fde;
   last_fde_data = &fde->next;
   frchain_now->frch_cfi_data->cur_fde_data = fde;
   *last_fde_data = fde;
   last_fde_data = &fde->next;
@@ -179,7 +182,8 @@ alloc_fde_entry (void)
 static struct cfi_insn_data *
 alloc_cfi_insn_data (void)
 {
 static struct cfi_insn_data *
 alloc_cfi_insn_data (void)
 {
-  struct cfi_insn_data *insn = xcalloc (1, sizeof (struct cfi_insn_data));
+  struct cfi_insn_data *insn = (struct cfi_insn_data *)
+      xcalloc (1, sizeof (struct cfi_insn_data));
   struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
 
   *cur_fde_data->last = insn;
   struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
 
   *cur_fde_data->last = insn;
@@ -353,7 +357,7 @@ cfi_add_CFA_remember_state (void)
 
   cfi_add_CFA_insn (DW_CFA_remember_state);
 
 
   cfi_add_CFA_insn (DW_CFA_remember_state);
 
-  p = xmalloc (sizeof (*p));
+  p = (struct cfa_save_data *) xmalloc (sizeof (*p));
   p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
   p->next = frchain_now->frch_cfi_data->cfa_save_stack;
   frchain_now->frch_cfi_data->cfa_save_stack = p;
   p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
   p->next = frchain_now->frch_cfi_data->cfa_save_stack;
   frchain_now->frch_cfi_data->cfa_save_stack = p;
@@ -637,7 +641,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
   tail = &head;
   do
     {
   tail = &head;
   do
     {
-      e = xmalloc (sizeof (*e));
+      e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
       do_parse_cons_expression (&e->exp, 1);
       *tail = e;
       tail = &e->next;
       do_parse_cons_expression (&e->exp, 1);
       *tail = e;
       tail = &e->next;
@@ -1454,7 +1458,7 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
     fail:;
     }
 
     fail:;
     }
 
-  cie = xmalloc (sizeof (struct cie_entry));
+  cie = (struct cie_entry *) xmalloc (sizeof (struct cie_entry));
   cie->next = cie_root;
   cie_root = cie;
   cie->return_column = fde->return_column;
   cie->next = cie_root;
   cie_root = cie;
   cie->return_column = fde->return_column;
index 4d03659..42d7267 100644 (file)
@@ -168,6 +168,10 @@ struct line_seg {
 
 /* Collects data for all line table entries during assembly.  */
 static struct line_seg *all_segs;
 
 /* Collects data for all line table entries during assembly.  */
 static struct line_seg *all_segs;
+/* Hash used to quickly lookup a segment by name, avoiding the need to search
+   through the all_segs list.  */
+static struct hash_control *all_segs_hash;
+static struct line_seg **last_seg_ptr;
 
 struct file_entry {
   const char *filename;
 
 struct file_entry {
   const char *filename;
@@ -230,23 +234,25 @@ get_line_subseg (segT seg, subsegT subseg)
   static subsegT last_subseg;
   static struct line_subseg *last_line_subseg;
 
   static subsegT last_subseg;
   static struct line_subseg *last_line_subseg;
 
-  struct line_seg **ps, *s;
+  struct line_seg *s;
   struct line_subseg **pss, *ss;
 
   if (seg == last_seg && subseg == last_subseg)
     return last_line_subseg;
 
   struct line_subseg **pss, *ss;
 
   if (seg == last_seg && subseg == last_subseg)
     return last_line_subseg;
 
-  for (ps = &all_segs; (s = *ps) != NULL; ps = &s->next)
-    if (s->seg == seg)
-      goto found_seg;
-
-  s = (struct line_seg *) xmalloc (sizeof (*s));
-  s->next = NULL;
-  s->seg = seg;
-  s->head = NULL;
-  *ps = s;
+  s = (struct line_seg *) hash_find (all_segs_hash, seg->name);
+  if (s == NULL)
+    {
+      s = (struct line_seg *) xmalloc (sizeof (*s));
+      s->next = NULL;
+      s->seg = seg;
+      s->head = NULL;
+      *last_seg_ptr = s;
+      last_seg_ptr = &s->next;
+      hash_insert (all_segs_hash, seg->name, s);
+    }
+  gas_assert (seg == s->seg);
 
 
- found_seg:
   for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
     {
       if (ss->subseg == subseg)
   for (pss = &s->head; (ss = *pss) != NULL ; pss = &ss->next)
     {
       if (ss->subseg == subseg)
@@ -467,7 +473,7 @@ get_filenum (const char *filename, unsigned int num)
                     xrealloc (dirs, (dir + 32) * sizeof (const char *));
            }
 
                     xrealloc (dirs, (dir + 32) * sizeof (const char *));
            }
 
-         dirs[dir] = xmalloc (dir_len + 1);
+         dirs[dir] = (char *) xmalloc (dir_len + 1);
          memcpy (dirs[dir], filename, dir_len);
          dirs[dir][dir_len] = '\0';
          dirs_in_use = dir + 1;
          memcpy (dirs[dir], filename, dir_len);
          dirs[dir][dir_len] = '\0';
          dirs_in_use = dir + 1;
@@ -1702,6 +1708,14 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg)
   symbol_set_value_now (info_end);
 }
 
   symbol_set_value_now (info_end);
 }
 
+void
+dwarf2_init (void)
+{
+  all_segs_hash = hash_new ();
+  last_seg_ptr = &all_segs;
+}
+
+
 /* Finish the dwarf2 debug sections.  We emit .debug.line if there
    were any .file/.loc directives, or --gdwarf2 was given, or if the
    file has a non-empty .debug_info section.  If we emit .debug_line,
 /* Finish the dwarf2 debug sections.  We emit .debug.line if there
    were any .file/.loc directives, or --gdwarf2 was given, or if the
    file has a non-empty .debug_info section.  If we emit .debug_line,
index b019b28..fdeac47 100644 (file)
@@ -83,13 +83,15 @@ extern void dwarf2_emit_label (symbolS *);
 
 /* True when we've seen a .loc directive recently.  Used to avoid
    doing work when there's nothing to do.  */
 
 /* True when we've seen a .loc directive recently.  Used to avoid
    doing work when there's nothing to do.  */
-bfd_boolean dwarf2_loc_directive_seen;
+extern bfd_boolean dwarf2_loc_directive_seen;
 
 /* True when we're supposed to set the basic block mark whenever a label
    is seen.  Unless the target is doing Something Weird, just call 
    dwarf2_emit_label.  */
 extern bfd_boolean dwarf2_loc_mark_labels;
 
 
 /* True when we're supposed to set the basic block mark whenever a label
    is seen.  Unless the target is doing Something Weird, just call 
    dwarf2_emit_label.  */
 extern bfd_boolean dwarf2_loc_mark_labels;
 
+extern void dwarf2_init (void);
+
 extern void dwarf2_finish (void);
 
 extern int dwarf2dbg_estimate_size_before_relax (fragS *);
 extern void dwarf2_finish (void);
 
 extern int dwarf2dbg_estimate_size_before_relax (fragS *);
index 1c1ac60..c09eb15 100644 (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
    we can optimize.
 
 /* This function is called from emit_expr.  It looks for cases which
    we can optimize.
 
@@ -245,18 +258,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
 {
   struct frame_data
   {
 {
   struct frame_data
   {
-    enum frame_state
-    {
-      state_idle,
-      state_saw_size,
-      state_saw_cie_offset,
-      state_saw_pc_begin,
-      state_seeing_aug_size,
-      state_skipping_aug,
-      state_wait_loc4,
-      state_saw_loc4,
-      state_error,
-    } state;
+    enum frame_state state;
 
     int cie_info_ok;
     struct cie_info cie_info;
 
     int cie_info_ok;
     struct cie_info cie_info;
@@ -324,7 +326,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
     case state_saw_size:
     case state_saw_cie_offset:
       /* Assume whatever form it appears in, it appears atomically.  */
     case state_saw_size:
     case state_saw_cie_offset:
       /* Assume whatever form it appears in, it appears atomically.  */
-      d->state += 1;
+      d->state = (enum frame_state) (d->state + 1);
       break;
 
     case state_saw_pc_begin:
       break;
 
     case state_saw_pc_begin:
index e549622..b9ce574 100644 (file)
@@ -48,7 +48,7 @@ static void mri_char_constant (expressionS *);
 static void current_location (expressionS *);
 static void clean_up_expression (expressionS * expressionP);
 static segT operand (expressionS *, enum expr_mode);
 static void current_location (expressionS *);
 static void clean_up_expression (expressionS * expressionP);
 static segT operand (expressionS *, enum expr_mode);
-static operatorT operator (int *);
+static operatorT operatorf (int *);
 
 extern const char EXP_CHARS[], FLT_CHARS[];
 
 
 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:
                *input_line_pointer = c;
              {
              case O_uminus:
                *input_line_pointer = c;
@@ -1250,14 +1250,14 @@ operand (expressionS *expressionP, enum expr_mode mode)
              default:
                break;
              }
              default:
                break;
              }
-           if (operator != O_absent && operator != O_illegal)
+           if (op != O_absent && op != O_illegal)
              {
                *input_line_pointer = c;
                expr (9, expressionP, mode);
                expressionP->X_add_symbol = make_expr_symbol (expressionP);
                expressionP->X_op_symbol = NULL;
                expressionP->X_add_number = 0;
              {
                *input_line_pointer = c;
                expr (9, expressionP, mode);
                expressionP->X_add_symbol = make_expr_symbol (expressionP);
                expressionP->X_op_symbol = NULL;
                expressionP->X_add_number = 0;
-               expressionP->X_op = operator;
+               expressionP->X_op = op;
                break;
              }
          }
                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));
-  op_rank[operator] = rank;
+  gas_assert (op >= O_md1 && op < ARRAY_SIZE (op_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.  */
 
 static inline operatorT
    Does not advance INPUT_LINE_POINTER.  */
 
 static inline operatorT
-operator (int *num_chars)
+operatorf (int *num_chars)
 {
   int c;
   operatorT ret;
 {
   int c;
   operatorT ret;
@@ -1732,7 +1732,7 @@ expr (int rankarg,                /* Larger # is higher rank.  */
   /* operand () gobbles spaces.  */
   know (*input_line_pointer != ' ');
 
   /* operand () gobbles spaces.  */
   know (*input_line_pointer != ' ');
 
-  op_left = operator (&op_chars);
+  op_left = operatorf (&op_chars);
   while (op_left != O_illegal && op_rank[(int) op_left] > rank)
     {
       segT rightseg;
   while (op_left != O_illegal && op_rank[(int) op_left] > rank)
     {
       segT rightseg;
@@ -1763,7 +1763,7 @@ expr (int rankarg,                /* Larger # is higher rank.  */
            }
        }
 
            }
        }
 
-      op_right = operator (&op_chars);
+      op_right = operatorf (&op_chars);
 
       know (op_right == O_illegal || op_left == O_index
            || op_rank[(int) op_right] <= op_rank[(int) op_left]);
 
       know (op_right == O_illegal || op_left == O_index
            || op_rank[(int) op_right] <= op_rank[(int) op_left]);
index af9af5c..fe3b4cc 100644 (file)
@@ -69,7 +69,7 @@ frag_alloc (struct obstack *ob)
   (void) obstack_alloc (ob, 0);
   oalign = obstack_alignment_mask (ob);
   obstack_alignment_mask (ob) = 0;
   (void) obstack_alloc (ob, 0);
   oalign = obstack_alignment_mask (ob);
   obstack_alignment_mask (ob) = 0;
-  ptr = obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
+  ptr = (fragS *) obstack_alloc (ob, SIZEOF_STRUCT_FRAG);
   obstack_alignment_mask (ob) = oalign;
   memset (ptr, 0, SIZEOF_STRUCT_FRAG);
   return ptr;
   obstack_alignment_mask (ob) = oalign;
   memset (ptr, 0, SIZEOF_STRUCT_FRAG);
   return ptr;
index 06fadcb..9d71ba8 100644 (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);
   alloc = size * sizeof (struct hash_entry *);
   obstack_begin (&ret->memory, chunksize);
   alloc = size * sizeof (struct hash_entry *);
-  ret->table = obstack_alloc (&ret->memory, alloc);
+  ret->table = (struct hash_entry **) obstack_alloc (&ret->memory, alloc);
   memset (ret->table, 0, alloc);
   ret->size = size;
 
   memset (ret->table, 0, alloc);
   ret->size = size;
 
@@ -237,7 +237,7 @@ hash_insert (struct hash_control *table, const char *key, void *value)
   ++table->insertions;
 #endif
 
   ++table->insertions;
 #endif
 
-  p = obstack_alloc (&table->memory, sizeof (*p));
+  p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
   p->string = key;
   p->hash = hash;
   p->data = value;
   p->string = key;
   p->hash = hash;
   p->data = value;
@@ -274,7 +274,7 @@ hash_jam (struct hash_control *table, const char *key, void *value)
       ++table->insertions;
 #endif
 
       ++table->insertions;
 #endif
 
-      p = obstack_alloc (&table->memory, sizeof (*p));
+      p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
       p->string = key;
       p->hash = hash;
       p->data = value;
       p->string = key;
       p->hash = hash;
       p->data = value;
index 522b485..a2cd31b 100644 (file)
@@ -165,7 +165,8 @@ input_scrub_push (char *saved_position)
   buffer_length = input_file_buffer_size ();
   sb_index = -1;
 
   buffer_length = input_file_buffer_size ();
   sb_index = -1;
 
-  buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
+  buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
+                                    + buffer_length + AFTER_SIZE));
   memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
 
   return saved;
   memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
 
   return saved;
@@ -209,7 +210,8 @@ input_scrub_begin (void)
 
   buffer_length = input_file_buffer_size ();
 
 
   buffer_length = input_file_buffer_size ();
 
-  buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
+  buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
+                                    + buffer_length + AFTER_SIZE));
   memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
 
   /* Line number things.  */
   memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
 
   /* Line number things.  */
@@ -363,10 +365,10 @@ input_scrub_next_buffer (char **bufp)
 
          limoff = limit - buffer_start;
          buffer_length += input_file_buffer_size ();
 
          limoff = limit - buffer_start;
          buffer_length += input_file_buffer_size ();
-         buffer_start = xrealloc (buffer_start,
-                                  (BEFORE_SIZE
-                                   + 2 * buffer_length
-                                   + AFTER_SIZE));
+         buffer_start = (char *) xrealloc (buffer_start,
+                                            (BEFORE_SIZE
+                                             + 2 * buffer_length
+                                             + AFTER_SIZE));
          *bufp = buffer_start + BEFORE_SIZE;
          limit = input_file_give_next_buffer (buffer_start + limoff);
 
          *bufp = buffer_start + BEFORE_SIZE;
          limit = input_file_give_next_buffer (buffer_start + limoff);
 
index d6777f2..c8b6d63 100644 (file)
@@ -130,6 +130,18 @@ typedef struct file_info_struct
   int                       at_end;
 } file_info_type;
 
   int                       at_end;
 } file_info_type;
 
+enum edict_enum
+{
+  EDICT_NONE,
+  EDICT_SBTTL,
+  EDICT_TITLE,
+  EDICT_NOLIST,
+  EDICT_LIST,
+  EDICT_NOLIST_NEXT,
+  EDICT_EJECT
+};
+
+
 /* This structure remembers which line from which file goes into which
    frag.  */
 struct list_info_struct
 /* This structure remembers which line from which file goes into which
    frag.  */
 struct list_info_struct
@@ -160,16 +172,7 @@ struct list_info_struct
   /* Pointer to any error message associated with this line.  */
   char *message;
 
   /* Pointer to any error message associated with this line.  */
   char *message;
 
-  enum
-    {
-      EDICT_NONE,
-      EDICT_SBTTL,
-      EDICT_TITLE,
-      EDICT_NOLIST,
-      EDICT_LIST,
-      EDICT_NOLIST_NEXT,
-      EDICT_EJECT
-    } edict;
+  enum edict_enum edict;
   char *edict_arg;
 
   /* Nonzero if this line is to be omitted because it contains
   char *edict_arg;
 
   /* Nonzero if this line is to be omitted because it contains
@@ -260,7 +263,7 @@ file_info (const char *file_name)
     }
 
   /* Make new entry.  */
     }
 
   /* Make new entry.  */
-  p = xmalloc (sizeof (file_info_type));
+  p = (file_info_type *) xmalloc (sizeof (file_info_type));
   p->next = file_info_head;
   file_info_head = p;
   p->filename = xstrdup (file_name);
   p->next = file_info_head;
   file_info_head = p;
   p->filename = xstrdup (file_name);
@@ -352,7 +355,7 @@ listing_newline (char *ps)
 
          len = (copy - input_line_pointer) + 2;
 
 
          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;
   unsigned int width;
 
   int show_listing = 1;
   unsigned int width;
 
-  buffer = xmalloc (listing_rhs_width);
-  data_buffer = xmalloc (MAX_BYTES);
+  buffer = (char *) xmalloc (listing_rhs_width);
+  data_buffer = (char *) xmalloc (MAX_BYTES);
   eject = 1;
   list = head->next;
 
   eject = 1;
   list = head->next;
 
@@ -1509,7 +1512,7 @@ listing_title (int depth)
          if (listing)
            {
              length = input_line_pointer - start;
          if (listing)
            {
              length = input_line_pointer - start;
-             ttl = xmalloc (length + 1);
+             ttl = (char *) xmalloc (length + 1);
              memcpy (ttl, start, length);
              ttl[length] = 0;
              listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;
              memcpy (ttl, start, length);
              ttl[length] = 0;
              listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;
index 2c72331..dd7f9a2 100644 (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;
 
          *in_br = '\0';
          char *in_br = br_buf;
 
          *in_br = '\0';
@@ -424,7 +424,7 @@ get_any_string (int idx, sb *in, sb *out)
                    --in_br;
                  else
                    {
                    --in_br;
                  else
                    {
-                     br_buf = xmalloc(strlen(in_br) + 2);
+                     br_buf = (char *) xmalloc(strlen(in_br) + 2);
                      strcpy(br_buf + 1, in_br);
                      free(in_br);
                      in_br = br_buf;
                      strcpy(br_buf + 1, in_br);
                      free(in_br);
                      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->def);
 
   sb_new (&formal->name);
   sb_new (&formal->def);
@@ -1273,7 +1273,7 @@ delete_macro (const char *name)
   /* We can only ask hash_delete to free memory if we are deleting
      macros in reverse order to their definition.
      So just clear out the entry.  */
   /* We can only ask hash_delete to free memory if we are deleting
      macros in reverse order to their definition.
      So just clear out the entry.  */
-  if ((macro = hash_find (macro_hash, copy)) != NULL)
+  if ((macro = (macro_entry *) hash_find (macro_hash, copy)) != NULL)
     {
       hash_jam (macro_hash, copy, NULL);
       free_macro (macro);
     {
       hash_jam (macro_hash, copy, NULL);
       free_macro (macro);
index 4db8018..edc1b6b 100644 (file)
    name and its default value.  Each time the macro is expanded, the
    formals get the actual values attached to them.  */
 
    name and its default value.  Each time the macro is expanded, the
    formals get the actual values attached to them.  */
 
+enum formal_type
+  {
+    FORMAL_OPTIONAL,
+    FORMAL_REQUIRED,
+    FORMAL_VARARG
+  };
+
 /* Describe the formal arguments to a macro.  */
 
 typedef struct formal_struct {
 /* Describe the formal arguments to a macro.  */
 
 typedef struct formal_struct {
@@ -42,12 +49,7 @@ typedef struct formal_struct {
   sb def;                      /* The default value.  */
   sb actual;                   /* The actual argument (changed on each expansion).  */
   int index;                   /* The index of the formal 0..formal_count - 1.  */
   sb def;                      /* The default value.  */
   sb actual;                   /* The actual argument (changed on each expansion).  */
   int index;                   /* The index of the formal 0..formal_count - 1.  */
-  enum formal_type
-    {
-      FORMAL_OPTIONAL,
-      FORMAL_REQUIRED,
-      FORMAL_VARARG
-    } type;                    /* The kind of the formal.  */
+  enum formal_type type;       /* The kind of the formal.  */
 } formal_entry;
 
 /* Other values found in the index field of a formal_entry.  */
 } formal_entry;
 
 /* Other values found in the index field of a formal_entry.  */
index 14e3db3..a091ff3 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:09+0200\n"
+"POT-Creation-Date: 2009-09-07 14:09+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 5a384a6..5ebe288 100644 (file)
@@ -1034,7 +1034,7 @@ read_a_source_file (char *name)
                     that goes with this #APP  There is one.  The specs
                     guarantee it...  */
                  tmp_len = buffer_limit - s;
                     that goes with this #APP  There is one.  The specs
                     guarantee it...  */
                  tmp_len = buffer_limit - s;
-                 tmp_buf = xmalloc (tmp_len + 1);
+                 tmp_buf = (char *) xmalloc (tmp_len + 1);
                  memcpy (tmp_buf, s, tmp_len);
                  do
                    {
                  memcpy (tmp_buf, s, tmp_len);
                  do
                    {
@@ -1050,7 +1050,7 @@ read_a_source_file (char *name)
                      else
                        num = buffer_limit - buffer;
 
                      else
                        num = buffer_limit - buffer;
 
-                     tmp_buf = xrealloc (tmp_buf, tmp_len + num);
+                     tmp_buf = (char *) xrealloc (tmp_buf, tmp_len + num);
                      memcpy (tmp_buf + tmp_len, buffer, num);
                      tmp_len += num;
                    }
                      memcpy (tmp_buf + tmp_len, buffer, 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_length += 100;
                }
                  new_tmp = new_buf + new_length;
                  new_length += 100;
                }
@@ -2097,7 +2097,7 @@ s_vendor_attribute (int vendor)
       if (i == 0)
        goto bad;
 
       if (i == 0)
        goto bad;
 
-      name = alloca (i + 1);
+      name = (char *) alloca (i + 1);
       memcpy (name, s, i);
       name[i] = '\0';
 
       memcpy (name, s, i);
       name[i] = '\0';
 
@@ -3857,7 +3857,7 @@ s_reloc (int ignore ATTRIBUTE_UNUSED)
   int c;
   struct reloc_list *reloc;
 
   int c;
   struct reloc_list *reloc;
 
-  reloc = xmalloc (sizeof (*reloc));
+  reloc = (struct reloc_list *) xmalloc (sizeof (*reloc));
 
   if (flag_mri)
     stop = mri_comment_field (&stopc);
 
   if (flag_mri)
     stop = mri_comment_field (&stopc);
@@ -5407,7 +5407,7 @@ demand_copy_string (int *lenP)
       /* JF this next line is so demand_copy_C_string will return a
         null terminated string.  */
       obstack_1grow (&notes, '\0');
       /* JF this next line is so demand_copy_C_string will return a
         null terminated string.  */
       obstack_1grow (&notes, '\0');
-      retval = obstack_finish (&notes);
+      retval = (char *) obstack_finish (&notes);
     }
   else
     {
     }
   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;
   int i;
 {
   char *filename;
   int i;
-  FILE *try;
+  FILE *try_file;
   char *path;
 
   if (!flag_m68k_mri)
   char *path;
 
   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])
        ++input_line_pointer;
     }
 
   demand_empty_rest_of_line ();
       while (!is_end_of_line[(unsigned char) *input_line_pointer])
        ++input_line_pointer;
     }
 
   demand_empty_rest_of_line ();
-  path = xmalloc ((unsigned long) i + include_dir_maxlen + 5 /* slop */ );
+  path = (char *) xmalloc ((unsigned long) i
+                           + include_dir_maxlen + 5 /* slop */ );
 
   for (i = 0; i < include_dir_count; i++)
     {
       strcpy (path, include_dirs[i]);
       strcat (path, "/");
       strcat (path, filename);
 
   for (i = 0; i < include_dir_count; i++)
     {
       strcpy (path, include_dirs[i]);
       strcat (path, "/");
       strcat (path, filename);
-      if (0 != (try = fopen (path, FOPEN_RT)))
+      if (0 != (try_file = fopen (path, FOPEN_RT)))
        {
        {
-         fclose (try);
+         fclose (try_file);
          goto gotit;
        }
     }
          goto gotit;
        }
     }
index ae07896..b334b2c 100644 (file)
@@ -52,7 +52,7 @@ add_debug_prefix_map (const char *arg)
       as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
       return;
     }
       as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
       return;
     }
-  map = xmalloc (sizeof (debug_prefix_map));
+  map = (struct debug_prefix_map *) xmalloc (sizeof (debug_prefix_map));
   o = xstrdup (arg);
   map->old_prefix = o;
   map->old_len = p - arg;
   o = xstrdup (arg);
   map->old_prefix = o;
   map->old_len = p - arg;
index 69cca1d..da399ad 100644 (file)
@@ -498,7 +498,7 @@ stabs_generate_asm_file (void)
       char *dir2;
 
       dir = remap_debug_filename (getpwd ());
       char *dir2;
 
       dir = remap_debug_filename (getpwd ());
-      dir2 = alloca (strlen (dir) + 2);
+      dir2 = (char *) alloca (strlen (dir) + 2);
       sprintf (dir2, "%s%s", dir, "/");
       generate_asm_file (N_SO, dir2);
     }
       sprintf (dir2, "%s%s", dir, "/");
       generate_asm_file (N_SO, dir2);
     }
@@ -536,7 +536,7 @@ generate_asm_file (int type, char *file)
   /* Allocate enough space for the file name (possibly extended with
      doubled up backslashes), the symbol name, and the other characters
      that make up a stabs file directive.  */
   /* Allocate enough space for the file name (possibly extended with
      doubled up backslashes), the symbol name, and the other characters
      that make up a stabs file directive.  */
-  bufp = buf = xmalloc (2 * strlen (file) + strlen (sym) + 12);
+  bufp = buf = (char *) xmalloc (2 * strlen (file) + strlen (sym) + 12);
 
   *bufp++ = '"';
 
 
   *bufp++ = '"';
 
index 0fcd19c..30f8704 100644 (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;
       bfd_set_section_userdata (stdoutput, seg, seginfo);
     }
       seginfo->bfd_section = seg;
       bfd_set_section_userdata (stdoutput, seg, seginfo);
     }
@@ -103,7 +103,7 @@ subseg_set_rest (segT seg, subsegT subseg)
     {
       /* This should be the only code that creates a frchainS.  */
 
     {
       /* This should be the only code that creates a frchainS.  */
 
-      newP = obstack_alloc (&frchains, sizeof (frchainS));
+      newP = (frchainS *) obstack_alloc (&frchains, sizeof (frchainS));
       newP->frch_subseg = subseg;
       newP->fix_root = NULL;
       newP->fix_tail = NULL;
       newP->frch_subseg = subseg;
       newP->fix_root = NULL;
       newP->fix_tail = NULL;
@@ -167,7 +167,7 @@ subseg_get (const char *segname, int force_new)
   if (! seginfo)
     {
       secptr->output_section = secptr;
   if (! seginfo)
     {
       secptr->output_section = secptr;
-      seginfo = xcalloc (1, sizeof (*seginfo));
+      seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
       seginfo->bfd_section = secptr;
       bfd_set_section_userdata (stdoutput, secptr, seginfo);
     }
       seginfo->bfd_section = secptr;
       bfd_set_section_userdata (stdoutput, secptr, seginfo);
     }
index 9ce4588..6162318 100644 (file)
@@ -109,7 +109,7 @@ save_symbol_name (const char *name)
 
   name_length = strlen (name) + 1;     /* +1 for \0.  */
   obstack_grow (&notes, name, name_length);
 
   name_length = strlen (name) + 1;     /* +1 for \0.  */
   obstack_grow (&notes, name, name_length);
-  ret = obstack_finish (&notes);
+  ret = (char *) obstack_finish (&notes);
 
 #ifdef tc_canonicalize_symbol_name
   ret = tc_canonicalize_symbol_name (ret);
 
 #ifdef tc_canonicalize_symbol_name
   ret = tc_canonicalize_symbol_name (ret);
@@ -137,7 +137,7 @@ symbol_create (const char *name, /* It is copied, the caller can destroy/modify.
 
   preserved_copy_of_name = save_symbol_name (name);
 
 
   preserved_copy_of_name = save_symbol_name (name);
 
-  symbolP = obstack_alloc (&notes, sizeof (symbolS));
+  symbolP = (symbolS *) obstack_alloc (&notes, sizeof (symbolS));
 
   /* symbol must be born in some fixed state.  This seems as good as any.  */
   memset (symbolP, 0, sizeof (symbolS));
 
   /* symbol must be born in some fixed state.  This seems as good as any.  */
   memset (symbolP, 0, sizeof (symbolS));
@@ -197,7 +197,7 @@ local_symbol_make (const char *name, segT section, valueT value, fragS *frag)
 
   name_copy = save_symbol_name (name);
 
 
   name_copy = save_symbol_name (name);
 
-  ret = obstack_alloc (&notes, sizeof *ret);
+  ret = (struct local_symbol *) obstack_alloc (&notes, sizeof *ret);
   ret->lsy_marker = NULL;
   ret->lsy_name = name_copy;
   ret->lsy_section = section;
   ret->lsy_marker = NULL;
   ret->lsy_name = name_copy;
   ret->lsy_section = section;
@@ -563,7 +563,7 @@ symbol_clone (symbolS *orgsymP, int replace)
     orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
   bsymorg = orgsymP->bsym;
 
     orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
   bsymorg = orgsymP->bsym;
 
-  newsymP = obstack_alloc (&notes, sizeof (*newsymP));
+  newsymP = (symbolS *) obstack_alloc (&notes, sizeof (*newsymP));
   *newsymP = *orgsymP;
   bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
   if (bsymnew == NULL)
   *newsymP = *orgsymP;
   bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
   if (bsymnew == NULL)
@@ -1453,7 +1453,7 @@ static void
 resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
 {
   if (value != NULL)
 resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
 {
   if (value != NULL)
-    resolve_symbol_value (value);
+    resolve_symbol_value ((symbolS *) value);
 }
 
 /* Resolve all local symbols.  */
 }
 
 /* Resolve all local symbols.  */
@@ -1603,7 +1603,7 @@ define_dollar_label (long label)
     {
       dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
       dollar_label_instances = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
     {
       dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
       dollar_label_instances = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
-      dollar_label_defines = xmalloc (DOLLAR_LABEL_BUMP_BY);
+      dollar_label_defines = (char *) xmalloc (DOLLAR_LABEL_BUMP_BY);
       dollar_label_max = DOLLAR_LABEL_BUMP_BY;
       dollar_label_count = 0;
     }
       dollar_label_max = DOLLAR_LABEL_BUMP_BY;
       dollar_label_count = 0;
     }
@@ -1614,7 +1614,7 @@ define_dollar_label (long label)
                                         dollar_label_max * sizeof (long));
       dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
                                          dollar_label_max * sizeof (long));
                                         dollar_label_max * sizeof (long));
       dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
                                          dollar_label_max * sizeof (long));
-      dollar_label_defines = xrealloc (dollar_label_defines, dollar_label_max);
+      dollar_label_defines = (char *) xrealloc (dollar_label_defines, dollar_label_max);
     }                          /* if we needed to grow  */
 
   dollar_labels[dollar_label_count] = label;
     }                          /* if we needed to grow  */
 
   dollar_labels[dollar_label_count] = label;
@@ -1887,7 +1887,7 @@ decode_local_label_name (char *s)
     instance_number = (10 * instance_number) + *p - '0';
 
   message_format = _("\"%d\" (instance number %d of a %s label)");
     instance_number = (10 * instance_number) + *p - '0';
 
   message_format = _("\"%d\" (instance number %d of a %s label)");
-  symbol_decode = obstack_alloc (&notes, strlen (message_format) + 30);
+  symbol_decode = (char *) obstack_alloc (&notes, strlen (message_format) + 30);
   sprintf (symbol_decode, message_format, label_number, instance_number, type);
 
   return symbol_decode;
   sprintf (symbol_decode, message_format, label_number, instance_number, type);
 
   return symbol_decode;
index c941ae6..8adb87b 100644 (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_where = where;
 
   fixP->fx_frag = frag;
   fixP->fx_where = where;
@@ -1170,7 +1170,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
        rp = &r->next;
     }
 
        rp = &r->next;
     }
 
-  relocs = xcalloc (n, sizeof (arelent *));
+  relocs = (arelent **) xcalloc (n, sizeof (arelent *));
 
   i = 0;
   for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
 
   i = 0;
   for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
@@ -1398,7 +1398,7 @@ set_symtab (void)
       int i;
       bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
 
       int i;
       bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
 
-      asympp = bfd_alloc (stdoutput, amt);
+      asympp = (asymbol **) bfd_alloc (stdoutput, amt);
       symp = symbol_rootP;
       for (i = 0; i < nsyms; i++, symp = symbol_next (symp))
        {
       symp = symbol_rootP;
       for (i = 0; i < nsyms; i++, symp = symbol_next (symp))
        {
index b486aea..006a226 100644 (file)
@@ -1,3 +1,7 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/gold.pot: Updated by the Translation project.
+
 2009-09-08  Cary Coutant  <ccoutant@google.com>
 
        * output.cc (Output_file::open): Add execute permission to empty file.
 2009-09-08  Cary Coutant  <ccoutant@google.com>
 
        * output.cc (Output_file::open): Add execute permission to empty file.
index 927cae6..a9cedc4 100644 (file)
@@ -1,3 +1,19 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/gprof.pot: Updated by the Translation project.
+       * po/sv.po: Updated Swedish translation.
+
+2009-09-11  Martin Thuresson  <martint@google.com>
+
+       Updated sources to compile cleanly with -Wc++-compat:
+       * basic_blocks.c: Add casts.
+       * cg_dfn.c: Add cast.
+       * corefile.c: Add casts.
+       * gmon_io.c: Add casts.
+       * hist.c: Add cast.
+       * source.c: Add cast.
+       * sym_ids.c (struct match): Moved to top level.
+
 2009-09-07  Tristan Gingold  <gingold@adacore.com>
 
        * po/gprof.pot: Regenerate.
 2009-09-07  Tristan Gingold  <gingold@adacore.com>
 
        * po/gprof.pot: Regenerate.
index bd24d00..20dd7c3 100644 (file)
@@ -319,7 +319,7 @@ print_exec_counts ()
 static void
 annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
 {
 static void
 annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
 {
-  Source_File *sf = arg;
+  Source_File *sf = (Source_File *) arg;
   Sym *b;
   unsigned int i;
   static unsigned long last_count;
   Sym *b;
   unsigned int i;
   static unsigned long last_count;
@@ -328,7 +328,7 @@ annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
   b = NULL;
 
   if (line_num <= sf->num_lines)
   b = NULL;
 
   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->file->ncalls += sym->ncalls;
                  && !sym_lookup (&syms[EXCL_ANNO], sym->addr))))
        {
          sym->file->ncalls += sym->ncalls;
-         line_stats = sym->file->line[sym->line_num - 1];
+         line_stats = (Sym *) sym->file->line[sym->line_num - 1];
 
          if (!line_stats)
            {
 
          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)
                  break;
 
              if (!sym || sym->ncalls == 0)
                  break;
index 6d19afc..6ded556 100644 (file)
@@ -217,7 +217,8 @@ pre_visit (Sym *parent)
   if (dfn_depth >= dfn_maxdepth)
     {
       dfn_maxdepth += DFN_INCR_DEPTH;
   if (dfn_depth >= dfn_maxdepth)
     {
       dfn_maxdepth += DFN_INCR_DEPTH;
-      dfn_stack = xrealloc (dfn_stack, dfn_maxdepth * sizeof *dfn_stack);
+      dfn_stack = (DFN_Stack *) xrealloc (dfn_stack,
+                                          dfn_maxdepth * sizeof *dfn_stack);
     }
 
   dfn_stack[dfn_depth].sym = parent;
     }
 
   dfn_stack[dfn_depth].sym = parent;
index 5c6fe6b..4cca080 100644 (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);
 
       /* Now we need the function name.  */
       strcpy (symbol_map[count].file_name, dummy);
 
       /* Now we need the function name.  */
@@ -148,7 +148,7 @@ read_function_mappings (const char *filename)
       if (!matches)
        parse_error (filename);
       tmp = strrchr (dummy, ' ') + 1;
       if (!matches)
        parse_error (filename);
       tmp = strrchr (dummy, ' ') + 1;
-      symbol_map[count].function_name = xmalloc (strlen (tmp) + 1);
+      symbol_map[count].function_name = (char *) xmalloc (strlen (tmp) + 1);
       strcpy (symbol_map[count].function_name, tmp);
       count++;
     }
       strcpy (symbol_map[count].function_name, tmp);
       count++;
     }
@@ -227,7 +227,7 @@ core_init (const char * aout_name)
       long i;
 
       new_size = (core_num_syms + synth_count + 1) * sizeof (*core_syms);
       long i;
 
       new_size = (core_num_syms + synth_count + 1) * sizeof (*core_syms);
-      core_syms = xrealloc (core_syms, new_size);
+      core_syms = (asymbol **) xrealloc (core_syms, new_size);
       symp = core_syms + core_num_syms;
       core_num_syms += synth_count;
       for (i = 0; i < synth_count; i++)
       symp = core_syms + core_num_syms;
       core_num_syms += synth_count;
       for (i = 0; i < synth_count; i++)
@@ -577,8 +577,10 @@ core_create_function_syms (void)
       /* Don't create a symtab entry for a function that has
         a mapping to a file, unless it's the first function
         in the file.  */
       /* Don't create a symtab entry for a function that has
         a mapping to a file, unless it's the first function
         in the file.  */
-      found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
-                      sizeof (struct function_map), search_mapped_symbol);
+      found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
+                                               symbol_map_count,
+                                               sizeof (struct function_map),
+                                               search_mapped_symbol);
       if (found == NULL || found->is_first)
        ++symtab.len;
     }
       if (found == NULL || found->is_first)
        ++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);
       if (found && ! found->is_first)
        continue;
                       sizeof (struct function_map), search_mapped_symbol);
       if (found && ! found->is_first)
        continue;
@@ -726,8 +729,8 @@ core_create_line_syms (void)
      BFD would provide an iterator for enumerating all line infos.  */
   prev_name_len = PATH_MAX;
   prev_filename_len = PATH_MAX;
      BFD would provide an iterator for enumerating all line infos.  */
   prev_name_len = PATH_MAX;
   prev_filename_len = PATH_MAX;
-  prev_name = xmalloc (prev_name_len);
-  prev_filename = xmalloc (prev_filename_len);
+  prev_name = (char *) xmalloc (prev_name_len);
+  prev_filename = (char *) xmalloc (prev_filename_len);
   ltab.len = 0;
   prev_line_num = 0;
 
   ltab.len = 0;
   prev_line_num = 0;
 
@@ -751,7 +754,7 @@ core_create_line_syms (void)
        {
          prev_name_len = len + 1024;
          free (prev_name);
        {
          prev_name_len = len + 1024;
          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;
          free (prev_filename);
        {
          prev_filename_len = len + 1024;
          free (prev_filename);
-         prev_filename = xmalloc (prev_filename_len);
+         prev_filename = (char *) xmalloc (prev_filename_len);
        }
 
       strcpy (prev_filename, filename);
        }
 
       strcpy (prev_filename, filename);
index bf74c26..f48d3bc 100644 (file)
@@ -493,13 +493,13 @@ gmon_out_read (const char *filename)
       if (!histograms)
        {
          num_histograms = 1;
       if (!histograms)
        {
          num_histograms = 1;
-         histograms = xmalloc (sizeof (struct histogram));
+         histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
          histograms->lowpc = tmp.low_pc;
          histograms->highpc = tmp.high_pc;
          histograms->num_bins = hist_num_bins;
          hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
            / hist_num_bins;
          histograms->lowpc = tmp.low_pc;
          histograms->highpc = tmp.high_pc;
          histograms->num_bins = hist_num_bins;
          hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
            / hist_num_bins;
-         histograms->sample = xmalloc (hist_num_bins * sizeof (int));
+         histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
          memset (histograms->sample, 0, 
                  hist_num_bins * sizeof (int));
        }
          memset (histograms->sample, 0, 
                  hist_num_bins * sizeof (int));
        }
index d0c02d3..a790fd4 100644 (file)
@@ -198,8 +198,8 @@ hist_read_rec (FILE * ifp, const char *filename)
 
       /* This is new record.  Add it to global array and allocate space for
         the samples.  */
 
       /* This is new record.  Add it to global array and allocate space for
         the samples.  */
-      histograms = xrealloc (histograms,
-                            sizeof (histogram) * (num_histograms + 1));
+      histograms = (struct histogram *)
+          xrealloc (histograms, sizeof (histogram) * (num_histograms + 1));
       memcpy (histograms + num_histograms,
              &n_record, sizeof (histogram));
       record = &histograms[num_histograms];      
       memcpy (histograms + num_histograms,
              &n_record, sizeof (histogram));
       record = &histograms[num_histograms];      
index 74db7e4..68a77a1 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:10+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 7adaaee..d57f270 100644 (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 ""
 msgstr ""
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gprof 2.17.90\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-15 16:49+0930\n"
-"PO-Revision-Date: 2007-08-24 13:42+0100\n"
+"Project-Id-Version: gprof 2.19.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
+"PO-Revision-Date: 2009-09-11 09:46+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #: alpha.c:102 mips.c:54
 "Content-Transfer-Encoding: 8bit\n"
 
 #: alpha.c:102 mips.c:54
@@ -37,12 +38,12 @@ msgstr "[find_call] 0x%lx: bsr"
 #: basic_blocks.c:128 call_graph.c:89 hist.c:105
 #, c-format
 msgid "%s: %s: unexpected end of file\n"
 #: basic_blocks.c:128 call_graph.c:89 hist.c:105
 #, c-format
 msgid "%s: %s: unexpected end of file\n"
-msgstr "%s: %s: oväntat filslut\n"
+msgstr "%s: %s: oväntat filslut\n"
 
 #: basic_blocks.c:196
 #, c-format
 msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
 
 #: basic_blocks.c:196
 #, c-format
 msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
-msgstr "%s: varning: ignorerar exekveringsräkning för grundblock (använd -l eller --line)\n"
+msgstr "%s: varning: ignorerar exekveringsräkning för grundblock (använd -l eller --line)\n"
 
 #. FIXME: This only works if bfd_vma is unsigned long.
 #: basic_blocks.c:289 basic_blocks.c:299
 
 #. FIXME: This only works if bfd_vma is unsigned long.
 #: basic_blocks.c:289 basic_blocks.c:299
@@ -52,7 +53,7 @@ msgstr "%s:%d: (%s:0x%lx) %lu exekveringar\n"
 
 #: basic_blocks.c:290 basic_blocks.c:300
 msgid "<unknown>"
 
 #: basic_blocks.c:290 basic_blocks.c:300
 msgid "<unknown>"
-msgstr "<okänd>"
+msgstr "<okänd>"
 
 #: basic_blocks.c:543
 #, c-format
 
 #: basic_blocks.c:543
 #, c-format
@@ -66,7 +67,7 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
 msgstr ""
 "\n"
 "\n"
-"Översta %d raderna:\n"
+"Översta %d raderna:\n"
 "\n"
 "     Rad       Antal\n"
 "\n"
 "\n"
 "     Rad       Antal\n"
 "\n"
@@ -114,18 +115,18 @@ msgstr "%9.2f   Medelexekveringar per rad\n"
 #: call_graph.c:68
 #, c-format
 msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
 #: call_graph.c:68
 #, c-format
 msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
-msgstr "[cg_tally] båge från %s till %s traverserad %lu gånger\n"
+msgstr "[cg_tally] båge från %s till %s traverserad %lu gånger\n"
 
 
-#: cg_print.c:73
+#: cg_print.c:74
 #, c-format
 msgid ""
 "\t\t     Call graph (explanation follows)\n"
 "\n"
 msgstr ""
 #, c-format
 msgid ""
 "\t\t     Call graph (explanation follows)\n"
 "\n"
 msgstr ""
-"\t\t     Angropsgraf (förklaring följer)\n"
+"\t\t     Angropsgraf (förklaring följer)\n"
 "\n"
 
 "\n"
 
-#: cg_print.c:75
+#: cg_print.c:76
 #, c-format
 msgid ""
 "\t\t\tCall graph\n"
 #, c-format
 msgid ""
 "\t\t\tCall graph\n"
@@ -134,25 +135,25 @@ msgstr ""
 "\t\t\tAnropsgraf\n"
 "\n"
 
 "\t\t\tAnropsgraf\n"
 "\n"
 
-#: cg_print.c:78 hist.c:466
+#: cg_print.c:79 hist.c:466
 #, c-format
 msgid ""
 "\n"
 "granularity: each sample hit covers %ld byte(s)"
 msgstr ""
 "\n"
 #, c-format
 msgid ""
 "\n"
 "granularity: each sample hit covers %ld byte(s)"
 msgstr ""
 "\n"
-"upplösning: varje stickprov täcker %ld byte"
+"upplösning: varje stickprov täcker %ld byte"
 
 
-#: cg_print.c:82
+#: cg_print.c:83
 #, c-format
 msgid ""
 " for %.2f%% of %.2f seconds\n"
 "\n"
 msgstr ""
 #, c-format
 msgid ""
 " for %.2f%% of %.2f seconds\n"
 "\n"
 msgstr ""
-" för %.2f%% på %.2f sekunder\n"
+" för %.2f%% på %.2f sekunder\n"
 "\n"
 
 "\n"
 
-#: cg_print.c:86
+#: cg_print.c:87
 #, c-format
 msgid ""
 " no time propagated\n"
 #, c-format
 msgid ""
 " no time propagated\n"
@@ -161,64 +162,64 @@ msgstr ""
 " ingen tid propagerad\n"
 "\n"
 
 " ingen tid propagerad\n"
 "\n"
 
-#: cg_print.c:95 cg_print.c:98 cg_print.c:100
+#: cg_print.c:96 cg_print.c:99 cg_print.c:101
 msgid "called"
 msgstr "anropad"
 
 msgid "called"
 msgstr "anropad"
 
-#: cg_print.c:95 cg_print.c:100
+#: cg_print.c:96 cg_print.c:101
 msgid "total"
 msgstr "totalt"
 
 msgid "total"
 msgstr "totalt"
 
-#: cg_print.c:95
+#: cg_print.c:96
 msgid "parents"
 msgid "parents"
-msgstr "föräldrar"
+msgstr "föräldrar"
 
 
-#: cg_print.c:97 cg_print.c:98
+#: cg_print.c:98 cg_print.c:99
 msgid "index"
 msgstr "index"
 
 msgid "index"
 msgstr "index"
 
-#: cg_print.c:97
+#: cg_print.c:98
 #, c-format
 msgid "%time"
 msgstr "%tid"
 
 #, c-format
 msgid "%time"
 msgstr "%tid"
 
-#: cg_print.c:97 cg_print.c:98
+#: cg_print.c:98 cg_print.c:99
 msgid "self"
 msgid "self"
-msgstr "själv"
+msgstr "själv"
 
 
-#: cg_print.c:97
+#: cg_print.c:98
 msgid "descendants"
 msgid "descendants"
-msgstr "ättlingar"
+msgstr "ättlingar"
 
 
-#: cg_print.c:98 hist.c:492
+#: cg_print.c:99 hist.c:492
 msgid "name"
 msgstr "namn"
 
 msgid "name"
 msgstr "namn"
 
-#: cg_print.c:100
+#: cg_print.c:101
 msgid "children"
 msgstr "barn"
 
 msgid "children"
 msgstr "barn"
 
-#: cg_print.c:105
+#: cg_print.c:106
 #, c-format
 msgid "index %% time    self  children    called     name\n"
 #, c-format
 msgid "index %% time    self  children    called     name\n"
-msgstr "index %% tid     själv barn        anropad    namn\n"
+msgstr "index %% tid     själv barn        anropad    namn\n"
 
 
-#: cg_print.c:128
+#: cg_print.c:129
 #, c-format
 msgid " <cycle %d as a whole> [%d]\n"
 msgstr " <hela cykel %d> [%d]\n"
 
 #, c-format
 msgid " <cycle %d as a whole> [%d]\n"
 msgstr " <hela cykel %d> [%d]\n"
 
-#: cg_print.c:354
+#: cg_print.c:355
 #, c-format
 msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
 msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontant>\n"
 
 #, c-format
 msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
 msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontant>\n"
 
-#: cg_print.c:355
+#: cg_print.c:356
 #, c-format
 msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
 msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontant>\n"
 
 #, c-format
 msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
 msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontant>\n"
 
-#: cg_print.c:589
+#: cg_print.c:590
 #, c-format
 msgid ""
 "Index by function name\n"
 #, c-format
 msgid ""
 "Index by function name\n"
@@ -227,152 +228,152 @@ msgstr ""
 "Index efter funktionsnamn\n"
 "\n"
 
 "Index efter funktionsnamn\n"
 "\n"
 
-#: cg_print.c:646 cg_print.c:655
+#: cg_print.c:647 cg_print.c:656
 #, c-format
 msgid "<cycle %d>"
 msgstr "<cykel %d>"
 
 #, c-format
 msgid "<cycle %d>"
 msgstr "<cykel %d>"
 
-#: corefile.c:59
+#: corefile.c:60
 #, c-format
 msgid "%s: unable to parse mapping file %s.\n"
 msgstr "%s: kan inte tolka mappfilen %s.\n"
 
 #, c-format
 msgid "%s: unable to parse mapping file %s.\n"
 msgstr "%s: kan inte tolka mappfilen %s.\n"
 
-#: corefile.c:72
+#: corefile.c:84 corefile.c:496
 #, c-format
 msgid "%s: could not open %s.\n"
 #, c-format
 msgid "%s: could not open %s.\n"
-msgstr "%s: kunde inte öppna %s.\n"
+msgstr "%s: kunde inte öppna %s.\n"
 
 
-#: corefile.c:166
+#: corefile.c:183
 #, c-format
 msgid "%s: %s: not in executable format\n"
 #, c-format
 msgid "%s: %s: not in executable format\n"
-msgstr "%s: %s: inte i ett körbart format\n"
+msgstr "%s: %s: inte i ett körbart format\n"
 
 
-#: corefile.c:177
+#: corefile.c:194
 #, c-format
 msgid "%s: can't find .text section in %s\n"
 msgstr "%s: kan inte hitta .text-sektion i %s\n"
 
 #, c-format
 msgid "%s: can't find .text section in %s\n"
 msgstr "%s: kan inte hitta .text-sektion i %s\n"
 
-#: corefile.c:252
+#: corefile.c:269
 #, c-format
 msgid "%s: ran out room for %lu bytes of text space\n"
 #, c-format
 msgid "%s: ran out room for %lu bytes of text space\n"
-msgstr "%s: slut på utrymme för %lu byte textutrymme\n"
+msgstr "%s: slut på utrymme för %lu byte textutrymme\n"
 
 
-#: corefile.c:266
+#: corefile.c:283
 #, c-format
 msgid "%s: can't do -c\n"
 #, c-format
 msgid "%s: can't do -c\n"
-msgstr "%s: kan inte göra -c\n"
+msgstr "%s: kan inte göra -c\n"
 
 
-#: corefile.c:305
+#: corefile.c:322
 #, c-format
 msgid "%s: -c not supported on architecture %s\n"
 #, c-format
 msgid "%s: -c not supported on architecture %s\n"
-msgstr "%s: -c stöds inte på arkitekturen %s\n"
+msgstr "%s: -c stöds inte på arkitekturen %s\n"
 
 
-#: corefile.c:470
+#: corefile.c:505 corefile.c:588
 #, c-format
 msgid "%s: file `%s' has no symbols\n"
 msgstr "%s: filen \"%s\" har inga symboler\n"
 
 #, c-format
 msgid "%s: file `%s' has no symbols\n"
 msgstr "%s: filen \"%s\" har inga symboler\n"
 
-#: corefile.c:772
+#: corefile.c:848
 #, c-format
 msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
 #, c-format
 msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
-msgstr "%s: någon räknade fel: ltab.len=%d istället för %ld\n"
+msgstr "%s: någon räknade fel: ltab.len=%d istället för %ld\n"
 
 
-#: gmon_io.c:83
+#: gmon_io.c:84
 #, c-format
 msgid "%s: address size has unexpected value of %u\n"
 #, c-format
 msgid "%s: address size has unexpected value of %u\n"
-msgstr "%s: adresstorleken har ett oväntat värde på %u\n"
+msgstr "%s: adresstorleken har ett oväntat värde på %u\n"
 
 
-#: gmon_io.c:320 gmon_io.c:416
+#: gmon_io.c:319 gmon_io.c:415
 #, c-format
 msgid "%s: file too short to be a gmon file\n"
 #, c-format
 msgid "%s: file too short to be a gmon file\n"
-msgstr "%s: filen är för kort för att vara en gmon-fil\n"
+msgstr "%s: filen är för kort för att vara en gmon-fil\n"
 
 
-#: gmon_io.c:330 gmon_io.c:459
+#: gmon_io.c:329 gmon_io.c:458
 #, c-format
 msgid "%s: file `%s' has bad magic cookie\n"
 msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
 
 #, c-format
 msgid "%s: file `%s' has bad magic cookie\n"
 msgstr "%s: filen \"%s\" har felaktigt magiskt tal\n"
 
-#: gmon_io.c:341
+#: gmon_io.c:340
 #, c-format
 msgid "%s: file `%s' has unsupported version %d\n"
 #, c-format
 msgid "%s: file `%s' has unsupported version %d\n"
-msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
+msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
 
 
-#: gmon_io.c:371
+#: gmon_io.c:370
 #, c-format
 msgid "%s: %s: found bad tag %d (file corrupted?)\n"
 #, c-format
 msgid "%s: %s: found bad tag %d (file corrupted?)\n"
-msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
+msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
 
 
-#: gmon_io.c:438
+#: gmon_io.c:437
 #, c-format
 msgid "%s: profiling rate incompatible with first gmon file\n"
 #, c-format
 msgid "%s: profiling rate incompatible with first gmon file\n"
-msgstr "%s: profileringshastighet är inkompatibel med första gmon-filen\n"
+msgstr "%s: profileringshastighet är inkompatibel med första gmon-filen\n"
 
 
-#: gmon_io.c:489
+#: gmon_io.c:488
 #, c-format
 msgid "%s: incompatible with first gmon file\n"
 #, c-format
 msgid "%s: incompatible with first gmon file\n"
-msgstr "%s: inkompatibel med första gmon-filen\n"
+msgstr "%s: inkompatibel med första gmon-filen\n"
 
 
-#: gmon_io.c:516
+#: gmon_io.c:518
 #, c-format
 msgid "%s: file '%s' does not appear to be in gmon.out format\n"
 msgstr "%s: filen \"%s\" verkar inte vara i gmon.out-format\n"
 
 # Man brukar tala om "bins" i hashtabeller
 #
 #, c-format
 msgid "%s: file '%s' does not appear to be in gmon.out format\n"
 msgstr "%s: filen \"%s\" verkar inte vara i gmon.out-format\n"
 
 # Man brukar tala om "bins" i hashtabeller
 #
-#: gmon_io.c:529
+#: gmon_io.c:531
 #, c-format
 msgid "%s: unexpected EOF after reading %d/%d bins\n"
 #, c-format
 msgid "%s: unexpected EOF after reading %d/%d bins\n"
-msgstr "%s: oväntat filslut efter läsning av %d/%d poster\n"
+msgstr "%s: oväntat filslut efter läsning av %d/%d poster\n"
 
 
-#: gmon_io.c:563
+#: gmon_io.c:565
 #, c-format
 msgid "time is in ticks, not seconds\n"
 #, c-format
 msgid "time is in ticks, not seconds\n"
-msgstr "tiden är i tick, inte sekunder\n"
+msgstr "tiden är i tick, inte sekunder\n"
 
 
-#: gmon_io.c:569 gmon_io.c:746
+#: gmon_io.c:571 gmon_io.c:748
 #, c-format
 msgid "%s: don't know how to deal with file format %d\n"
 msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
 
 #, c-format
 msgid "%s: don't know how to deal with file format %d\n"
 msgstr "%s: vet inte hur fileformat %d ska hanteras\n"
 
-#: gmon_io.c:576
+#: gmon_io.c:578
 #, c-format
 msgid "File `%s' (version %d) contains:\n"
 #, c-format
 msgid "File `%s' (version %d) contains:\n"
-msgstr "Filen \"%s\" (version %d) innehåller:\n"
+msgstr "Filen \"%s\" (version %d) innehåller:\n"
 
 
-#: gmon_io.c:579
+#: gmon_io.c:581
 #, c-format
 msgid "\t%d histogram record\n"
 msgstr "\t%d histogrampost\n"
 
 #, c-format
 msgid "\t%d histogram record\n"
 msgstr "\t%d histogrampost\n"
 
-#: gmon_io.c:580
+#: gmon_io.c:582
 #, c-format
 msgid "\t%d histogram records\n"
 msgstr "\t%d histogramposter\n"
 
 #, c-format
 msgid "\t%d histogram records\n"
 msgstr "\t%d histogramposter\n"
 
-#: gmon_io.c:582
+#: gmon_io.c:584
 #, c-format
 msgid "\t%d call-graph record\n"
 msgstr "\t%d anropsgrafpost\n"
 
 #, c-format
 msgid "\t%d call-graph record\n"
 msgstr "\t%d anropsgrafpost\n"
 
-#: gmon_io.c:583
+#: gmon_io.c:585
 #, c-format
 msgid "\t%d call-graph records\n"
 msgstr "\t%d anropsgrafposter\n"
 
 #, c-format
 msgid "\t%d call-graph records\n"
 msgstr "\t%d anropsgrafposter\n"
 
-#: gmon_io.c:585
+#: gmon_io.c:587
 #, c-format
 msgid "\t%d basic-block count record\n"
 #, c-format
 msgid "\t%d basic-block count record\n"
-msgstr "\t%d grundblocksräkningspost\n"
+msgstr "\t%d grundblocksräkningspost\n"
 
 
-#: gmon_io.c:586
+#: gmon_io.c:588
 #, c-format
 msgid "\t%d basic-block count records\n"
 #, c-format
 msgid "\t%d basic-block count records\n"
-msgstr "\t%d grundblocksräkningsposter\n"
+msgstr "\t%d grundblocksräkningsposter\n"
 
 
-#: gprof.c:158
+#: gprof.c:159
 #, c-format
 msgid ""
 #, c-format
 msgid ""
-"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n"
+"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
 "\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
 "\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
 "\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
 "\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
 "\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
 "\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
@@ -383,77 +384,77 @@ msgid ""
 "\t[--no-static] [--print-path] [--separate-files]\n"
 "\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
 "\t[--version] [--width=n] [--ignore-non-functions]\n"
 "\t[--no-static] [--print-path] [--separate-files]\n"
 "\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
 "\t[--version] [--width=n] [--ignore-non-functions]\n"
-"\t[--demangle[=STYLE]] [--no-demangle] [@FILE]\n"
+"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
 "\t[image-file] [profile-file...]\n"
 msgstr ""
 "\t[image-file] [profile-file...]\n"
 msgstr ""
-"Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I kataloger]\n"
-"\t[-d[num]] [-k från/till] [-m min_antal] [-t tabell_längd]\n"
+"Användning: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I kataloger]\n"
+"\t[-d[num]] [-k från/till] [-m min_antal] [-t tabell_längd]\n"
 "\t[--[no-]annotated-source[=namn]] [--[no-]exec-counts[=namn]]\n"
 "\t[--[no-]flat-profile[=namn]] [--[no-]graph[=namn]]\n"
 "\t[--[no-]annotated-source[=namn]] [--[no-]exec-counts[=namn]]\n"
 "\t[--[no-]flat-profile[=namn]] [--[no-]graph[=namn]]\n"
-"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=nivå]]\n"
+"\t[--[no-]time=namn] [--all-lines] [--brief] [--debug[=nivå]]\n"
 "\t[--function-ordering] [--file-ordering]\n"
 "\t[--directory-path=kataloger] [--display-unused-functions]\n"
 "\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
 "\t[--no-static] [--print-path] [--separate-files]\n"
 "\t[--function-ordering] [--file-ordering]\n"
 "\t[--directory-path=kataloger] [--display-unused-functions]\n"
 "\t[--file-format=namn] [--file-info] [--help] [--line] [--min-count=n]\n"
 "\t[--no-static] [--print-path] [--separate-files]\n"
-"\t[--static-call-graph] [--sum] [--table-length=lä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
 msgid "Report bugs to %s\n"
 msgstr ""
 "Rapportera fel till %s,\n"
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 "Rapportera fel till %s,\n"
-"Rapportera synpunkter på översättningen till tp-sv@listor.tp-sv.se\n"
+"Rapportera synpunkter på översättningen till tp-sv@listor.tp-sv.se\n"
 
 
-#: gprof.c:250
+#: gprof.c:251
 #, c-format
 msgid "%s: debugging not supported; -d ignored\n"
 #, c-format
 msgid "%s: debugging not supported; -d ignored\n"
-msgstr "%s: felsökning stöds inte; -d ignorerades\n"
+msgstr "%s: felsökning stöds inte; -d ignorerades\n"
 
 
-#: gprof.c:330
+#: gprof.c:331
 #, c-format
 msgid "%s: unknown file format %s\n"
 #, c-format
 msgid "%s: unknown file format %s\n"
-msgstr "%s: okä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
 msgid "GNU gprof %s\n"
 msgstr "GNU gprof %s\n"
 
 #, c-format
 msgid "GNU gprof %s\n"
 msgstr "GNU gprof %s\n"
 
-#: gprof.c:415
+#: gprof.c:420
 #, c-format
 msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
 #, c-format
 msgid "Based on 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"
+msgstr "Baserat på BSD gprof, copyright 1983 Regents of the University of California.\n"
 
 
-#: gprof.c:416
+#: gprof.c:421
 #, c-format
 msgid "This program is free software.  This program has absolutely no warranty.\n"
 #, c-format
 msgid "This program is free software.  This program has absolutely no warranty.\n"
-msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
+msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
 
 
-#: gprof.c:457
+#: gprof.c:462
 #, c-format
 msgid "%s: unknown demangling style `%s'\n"
 #, c-format
 msgid "%s: unknown demangling style `%s'\n"
-msgstr "%s: okänd avmanglingsstil \"%s\"\n"
+msgstr "%s: okänd avmanglingsstil \"%s\"\n"
 
 
-#: gprof.c:477
+#: gprof.c:482
 #, c-format
 msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
 msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
 
 #, c-format
 msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
 msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
 
-#: gprof.c:527
+#: gprof.c:534
 #, c-format
 msgid "%s: sorry, file format `prof' is not yet supported\n"
 #, c-format
 msgid "%s: sorry, file format `prof' is not yet supported\n"
-msgstr "%s: tyvärr, filformatet \"prof\" stöds inte än\n"
+msgstr "%s: tyvärr, filformatet \"prof\" stöds inte än\n"
 
 
-#: gprof.c:581
+#: gprof.c:588
 #, c-format
 msgid "%s: gmon.out file is missing histogram\n"
 msgstr "%s: gmon.out-filen saknar histogram\n"
 
 #, c-format
 msgid "%s: gmon.out file is missing histogram\n"
 msgstr "%s: gmon.out-filen saknar histogram\n"
 
-#: gprof.c:588
+#: gprof.c:595
 #, c-format
 msgid "%s: gmon.out file is missing call-graph data\n"
 msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
 #, c-format
 msgid "%s: gmon.out file is missing call-graph data\n"
 msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
@@ -465,8 +466,8 @@ msgid ""
 "%s: from '%s'\n"
 "%s: to '%s'\n"
 msgstr ""
 "%s: from '%s'\n"
 "%s: to '%s'\n"
 msgstr ""
-"%s: dimensionsenhet ändrades mellan histogramposter\n"
-"%s: från \"%s\"\n"
+"%s: dimensionsenhet ändrades mellan histogramposter\n"
+"%s: från \"%s\"\n"
 "%s: till \"%s\"\n"
 
 #: hist.c:143
 "%s: till \"%s\"\n"
 
 #: hist.c:143
@@ -476,8 +477,8 @@ msgid ""
 "%s: from '%c'\n"
 "%s: to '%c'\n"
 msgstr ""
 "%s: from '%c'\n"
 "%s: to '%c'\n"
 msgstr ""
-"%s: dimensionsförkortning ändrades mellan histogramposter\n"
-"%s: från \"%c\"\n"
+"%s: dimensionsförkortning ändrades mellan histogramposter\n"
+"%s: från \"%c\"\n"
 "%s: till \"%c\"\n"
 
 #: hist.c:157
 "%s: till \"%c\"\n"
 
 #: hist.c:157
@@ -488,12 +489,12 @@ msgstr "%s: olika skalor i histogramposter"
 #: hist.c:194
 #, c-format
 msgid "%s: overlapping histogram records\n"
 #: hist.c:194
 #, c-format
 msgid "%s: overlapping histogram records\n"
-msgstr "%s: överlappande histogramposter\n"
+msgstr "%s: överlappande histogramposter\n"
 
 #: hist.c:228
 #, c-format
 msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
 
 #: hist.c:228
 #, c-format
 msgid "%s: %s: unexpected EOF after reading %u of %u samples\n"
-msgstr "%s: %s: oväntat filslut efter läsning av %u av %u stickprov\n"
+msgstr "%s: %s: oväntat filslut efter läsning av %u av %u stickprov\n"
 
 #: hist.c:462
 #, c-format
 
 #: hist.c:462
 #, c-format
@@ -506,7 +507,7 @@ msgid ""
 " for %.2f%% of %.2f %s\n"
 "\n"
 msgstr ""
 " for %.2f%% of %.2f %s\n"
 "\n"
 msgstr ""
-" för %.2f%% av %.2f %s\n"
+" för %.2f%% av %.2f %s\n"
 "\n"
 
 #: hist.c:476
 "\n"
 
 #: hist.c:476
@@ -516,7 +517,7 @@ msgid ""
 "Each sample counts as %g %s.\n"
 msgstr ""
 "\n"
 "Each sample counts as %g %s.\n"
 msgstr ""
 "\n"
-"Varje stickprov räknas som %g %s.\n"
+"Varje stickprov räknas som %g %s.\n"
 
 #: hist.c:481
 #, c-format
 
 #: hist.c:481
 #, c-format
@@ -533,7 +534,7 @@ msgstr "kumulativ"
 
 #: hist.c:488
 msgid "self  "
 
 #: hist.c:488
 msgid "self  "
-msgstr "själv"
+msgstr "själv"
 
 #: hist.c:488
 msgid "total "
 
 #: hist.c:488
 msgid "total "
@@ -568,14 +569,14 @@ msgstr "Platt profil:\n"
 #: hist.c:705
 #, c-format
 msgid "%s: found a symbol that covers several histogram records"
 #: hist.c:705
 #, c-format
 msgid "%s: found a symbol that covers several histogram records"
-msgstr "%s: hittade en symbol som täcker in flera histogramposter"
+msgstr "%s: hittade en symbol som täcker in flera histogramposter"
 
 #: mips.c:71
 #, c-format
 msgid "[find_call] 0x%lx: jal"
 msgstr "[find_call] 0x%lx: jal"
 
 
 #: mips.c:71
 #, c-format
 msgid "[find_call] 0x%lx: jal"
 msgstr "[find_call] 0x%lx: jal"
 
-#: mips.c:96
+#: mips.c:99
 #, c-format
 msgid "[find_call] 0x%lx: jalr\n"
 msgstr "[find_call] 0x%lx: jalr\n"
 #, c-format
 msgid "[find_call] 0x%lx: jalr\n"
 msgstr "[find_call] 0x%lx: jalr\n"
@@ -596,7 +597,7 @@ msgid " <cycle %d>"
 msgstr " <cykel %d>"
 
 #~ msgid "%s: `%s' is incompatible with first gmon file\n"
 msgstr " <cykel %d>"
 
 #~ msgid "%s: `%s' is incompatible with first gmon file\n"
-#~ msgstr "%s: \"%s\" är inkompatibel med fö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äntad storlek på %ld byte\n"
+#~ msgstr "%s: bfd_vma har en oväntad storlek på %ld byte\n"
index 3943f33..1a445d3 100644 (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;
   new_line = TRUE;
 
   line_num = 1;
   new_line = TRUE;
 
index 657957e..1b58978 100644 (file)
 #include "sym_ids.h"
 #include "corefile.h"
 
 #include "sym_ids.h"
 #include "corefile.h"
 
-static struct sym_id
+struct match
+  {
+    int prev_index;    /* Index of prev match.  */
+    Sym *prev_match;   /* Previous match.  */
+    Sym *first_match;  /* Chain of all matches.  */
+    Sym sym;
+  };
+
+struct sym_id
   {
     struct sym_id *next;
     char *spec;                        /* Parsing modifies this.  */
     Table_Id which_table;
     bfd_boolean has_right;
 
   {
     struct sym_id *next;
     char *spec;                        /* Parsing modifies this.  */
     Table_Id which_table;
     bfd_boolean has_right;
 
-    struct match
-      {
-       int prev_index;         /* Index of prev match.  */
-       Sym *prev_match;        /* Previous match.  */
-       Sym *first_match;       /* Chain of all matches.  */
-       Sym sym;
-      }
-    left, right;
-  }
- *id_list;
+    struct match left, right;
+  };
+
+static struct sym_id  *id_list;
 
 static void parse_spec
   (char *, Sym *);
 
 static void parse_spec
   (char *, Sym *);
index 721ba25..8d72882 100644 (file)
@@ -1,3 +1,26 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/ld.pot: Updated by the Translation project.
+       * po/fi.po: Updated Finnish translation.
+
+2009-09-11  Martin Thuresson  <martint@google.com>
+
+       Updated sources to compile cleanly with -Wc++-compat:
+       * ld.h (enum endian_enum,enum symbolic_enum,enum
+       dynamic_list_enum): Move to top level.
+       * ldcref.c: Add casts.
+       * ldctor.c: Add casts.
+       * ldexp.c
+       * ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
+       * ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead
+       of integer.
+       * ldlang.h (enum statement_enum): Move to top level.
+       * ldmain.c: Add casts.
+       * ldwrite.c: Add casts.
+       * lexsup.c: Add casts. (enum control_enum): Move to top level.
+       * mri.c: Add casts. (mri_draw_tree): Use enum name instead of
+       integer.
+
 2009-09-09  Alan Modra  <amodra@bigpond.net.au>
 
        * scripttempl/aix.sc: Only provide ENTRY on final link.
 2009-09-09  Alan Modra  <amodra@bigpond.net.au>
 
        * scripttempl/aix.sc: Only provide ENTRY on final link.
index 6f285ae..9518714 100644 (file)
@@ -137,7 +137,8 @@ gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
       || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
     return FALSE;
 
       || (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
     return FALSE;
 
-  bfd_elf_set_dyn_lib_class (entry->the_bfd, link_class);
+  bfd_elf_set_dyn_lib_class (entry->the_bfd,
+                             (enum dynamic_lib_link_class) link_class);
 
   /* Continue on with normal load_symbols processing.  */
   return FALSE;
 
   /* Continue on with normal load_symbols processing.  */
   return FALSE;
@@ -428,7 +429,7 @@ fragment <<EOF
       && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
     link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
 
       && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
     link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
 
-  bfd_elf_set_dyn_lib_class (abfd, link_class);
+  bfd_elf_set_dyn_lib_class (abfd, (enum dynamic_lib_link_class) link_class);
 
   /* Add this file into the symbol table.  */
   if (! bfd_link_add_symbols (abfd, &link_info))
 
   /* Add this file into the symbol table.  */
   if (! bfd_link_add_symbols (abfd, &link_info))
@@ -930,7 +931,7 @@ static bfd_boolean
 gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
 {
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
 gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
 {
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  struct build_id_info *info =
+  struct build_id_info *info = (struct build_id_info *)
     elf_tdata (abfd)->after_write_object_contents_info;
   asection *asec;
   Elf_Internal_Shdr *i_shdr;
     elf_tdata (abfd)->after_write_object_contents_info;
   asection *asec;
   Elf_Internal_Shdr *i_shdr;
@@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
   if (i_shdr->contents == NULL)
     {
       if (asec->contents == NULL)
   if (i_shdr->contents == NULL)
     {
       if (asec->contents == NULL)
-       asec->contents = xmalloc (asec->size);
+       asec->contents = (unsigned char *) xmalloc (asec->size);
       contents = asec->contents;
     }
   else
     contents = i_shdr->contents + asec->output_offset;
 
       contents = asec->contents;
     }
   else
     contents = i_shdr->contents + asec->output_offset;
 
-  e_note = (void *) contents;
+  e_note = (Elf_External_Note *) contents;
   size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
   size = (size + 3) & -(bfd_size_type) 4;
   id_bits = contents + size;
   size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
   size = (size + 3) & -(bfd_size_type) 4;
   id_bits = contents + size;
@@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
              if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
                {
                  struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
              if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
                {
                  struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
-                 struct build_id_info *b = xmalloc (sizeof *b);
+                 struct build_id_info *b =
+                      (struct build_id_info *) xmalloc (sizeof *b);
 
                  b->style = link_info.emit_note_gnu_build_id;
                  b->sec = s;
 
                  b->style = link_info.emit_note_gnu_build_id;
                  b->sec = s;
@@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
          continue;
 
        sz = s->size;
          continue;
 
        sz = s->size;
-       msg = xmalloc ((size_t) (sz + 1));
+       msg = (char *) xmalloc ((size_t) (sz + 1));
        if (! bfd_get_section_contents (is->the_bfd, s, msg,
                                        (file_ptr) 0, sz))
          einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
        if (! bfd_get_section_contents (is->the_bfd, s, msg,
                                        (file_ptr) 0, sz))
          einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
diff --git a/ld/ld.h b/ld/ld.h
index 32a140a..10d2b33 100644 (file)
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -124,6 +124,22 @@ typedef struct fat_user_section_struct {
 #define LONG_SIZE      (4)
 #define QUAD_SIZE      (8)
 
 #define LONG_SIZE      (4)
 #define QUAD_SIZE      (8)
 
+enum endian_enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE };
+
+enum symbolic_enum
+  {
+    symbolic_unset = 0,
+    symbolic,
+    symbolic_functions,
+  };
+
+enum dynamic_list_enum
+  {
+    dynamic_list_unset = 0,
+    dynamic_list_data,
+    dynamic_list
+  };
+
 typedef struct {
   /* 1 => assign space to common symbols even if `relocatable_output'.  */
   bfd_boolean force_common_definition;
 typedef struct {
   /* 1 => assign space to common symbols even if `relocatable_output'.  */
   bfd_boolean force_common_definition;
@@ -161,24 +177,14 @@ typedef struct {
   bfd_boolean accept_unknown_input_arch;
 
   /* Big or little endian as set on command line.  */
   bfd_boolean accept_unknown_input_arch;
 
   /* Big or little endian as set on command line.  */
-  enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian;
+  enum endian_enum endian;
 
   /* -Bsymbolic and -Bsymbolic-functions, as set on command line.  */
 
   /* -Bsymbolic and -Bsymbolic-functions, as set on command line.  */
-  enum
-    {
-      symbolic_unset = 0,
-      symbolic,
-      symbolic_functions,
-    } symbolic;
+  enum symbolic_enum symbolic;
 
   /* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
      and --dynamic-list FILE, as set on command line.  */
 
   /* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
      and --dynamic-list FILE, as set on command line.  */
-  enum
-    {
-      dynamic_list_unset = 0,
-      dynamic_list_data,
-      dynamic_list
-    } dynamic_list;
+  enum dynamic_list_enum dynamic_list;
 
   /* Name of runtime interpreter to invoke.  */
   char *interpreter;
 
   /* Name of runtime interpreter to invoke.  */
   char *interpreter;
index 479cac9..c329d7d 100644 (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)
        einfo (_("%X%P: cref alloc failed: %E\n"));
       r->next = h->refs;
       if (r == NULL)
        einfo (_("%X%P: cref alloc failed: %E\n"));
       r->next = h->refs;
@@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
 static bfd_boolean
 cref_fill_array (struct cref_hash_entry *h, void *data)
 {
 static bfd_boolean
 cref_fill_array (struct cref_hash_entry *h, void *data)
 {
-  struct cref_hash_entry ***pph = data;
+  struct cref_hash_entry ***pph = (struct cref_hash_entry ***) data;
 
   ASSERT (h->demangled == NULL);
   h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
 
   ASSERT (h->demangled == NULL);
   h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
@@ -344,8 +344,10 @@ cref_fill_array (struct cref_hash_entry *h, void *data)
 static int
 cref_sort_array (const void *a1, const void *a2)
 {
 static int
 cref_sort_array (const void *a1, const void *a2)
 {
-  const struct cref_hash_entry * const *p1 = a1;
-  const struct cref_hash_entry * const *p2 = a2;
+  const struct cref_hash_entry * const *p1 =
+      (const struct cref_hash_entry * const *) a1;
+  const struct cref_hash_entry * const *p2 =
+      (const struct cref_hash_entry * const *) a2;
 
   return strcmp ((*p1)->demangled, (*p2)->demangled);
 }
 
   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;
   cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
 
   csym_fill = csyms;
   cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
@@ -602,7 +604,7 @@ check_refs (const char *name,
 static void
 check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
 {
 static void
 check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
 {
-  struct check_refs_info *info = iarg;
+  struct check_refs_info *info = (struct check_refs_info *) iarg;
   asection *outsec;
   const char *outsecname;
   asection *outdefsec;
   asection *outsec;
   const char *outsecname;
   asection *outdefsec;
@@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
   if (relsize == 0)
     return;
 
   if (relsize == 0)
     return;
 
-  relpp = xmalloc (relsize);
+  relpp = (arelent **) xmalloc (relsize);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
     einfo (_("%B%F: could not read relocs: %E\n"), abfd);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
     einfo (_("%B%F: could not read relocs: %E\n"), abfd);
index 636b971..c4fd9e8 100644 (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;
       sets = p;
       p->h = h;
       p->next = sets;
       sets = p;
       p->h = h;
@@ -106,7 +106,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
        }
     }
 
        }
     }
 
-  e = xmalloc (sizeof (struct set_element));
+  e = (struct set_element *) xmalloc (sizeof (struct set_element));
   e->next = NULL;
   e->name = name;
   e->section = section;
   e->next = NULL;
   e->name = name;
   e->section = section;
@@ -153,8 +153,10 @@ ctor_prio (const char *name)
 static int
 ctor_cmp (const void *p1, const void *p2)
 {
 static int
 ctor_cmp (const void *p1, const void *p2)
 {
-  const struct set_element * const *pe1 = p1;
-  const struct set_element * const *pe2 = p2;
+  const struct set_element * const *pe1 =
+      (const struct set_element * const *) p1;
+  const struct set_element * const *pe2 =
+      (const struct set_element * const *) p2;
   const char *n1;
   const char *n2;
   int prio1;
   const char *n1;
   const char *n2;
   int prio1;
@@ -223,7 +225,7 @@ ldctor_build_sets (void)
          for (e = p->elements; e != NULL; e = e->next)
            ++c;
 
          for (e = p->elements; e != NULL; e = e->next)
            ++c;
 
-         array = xmalloc (c * sizeof *array);
+         array = (struct set_element **) xmalloc (c * sizeof *array);
 
          i = 0;
          for (e = p->elements; e != NULL; e = e->next)
 
          i = 0;
          for (e = p->elements; e != NULL; e = e->next)
index 3168138..2d03828 100644 (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.lineno = src->type.lineno;
   n->assign.type.node_class = etree_provide;
   n->assign.type.node_code = '=';
   n->assign.type.lineno = src->type.lineno;
   n->assign.type.node_class = etree_provide;
@@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
 {
   etree_type *n;
 
 {
   etree_type *n;
 
-  n = stat_alloc (sizeof (n->assert_s));
+  n = (etree_type *) stat_alloc (sizeof (n->assert_s));
   n->assert_s.type.node_code = '!';
   n->assert_s.type.lineno = exp->type.lineno;
   n->assert_s.type.node_class = etree_assert;
   n->assert_s.type.node_code = '!';
   n->assert_s.type.lineno = exp->type.lineno;
   n->assert_s.type.node_class = etree_assert;
@@ -1095,7 +1095,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
     {
       unsigned char *dst;
       unsigned char *s;
     {
       unsigned char *dst;
       unsigned char *s;
-      fill = xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
+      fill = (fill_type *) xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
       fill->size = (len + 1) / 2;
       dst = fill->data;
       s = (unsigned char *) expld.result.str;
       fill->size = (len + 1) / 2;
       dst = fill->data;
       s = (unsigned char *) expld.result.str;
@@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
     }
   else
     {
     }
   else
     {
-      fill = xmalloc (4 + sizeof (*fill) - 1);
+      fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
       val = expld.result.value;
       fill->data[0] = (val >> 24) & 0xff;
       fill->data[1] = (val >> 16) & 0xff;
       val = expld.result.value;
       fill->data[0] = (val >> 24) & 0xff;
       fill->data[1] = (val >> 16) & 0xff;
index 1e0069d..a15f64a 100644 (file)
@@ -30,21 +30,23 @@ typedef struct {
   bfd_boolean valid_p;
 } etree_value_type;
 
   bfd_boolean valid_p;
 } etree_value_type;
 
+enum node_tree_enum {
+  etree_binary,
+  etree_trinary,
+  etree_unary,
+  etree_name,
+  etree_assign,
+  etree_provide,
+  etree_provided,
+  etree_value,
+  etree_assert,
+  etree_rel
+};
+
 typedef struct {
   int node_code;
   unsigned int lineno;
 typedef struct {
   int node_code;
   unsigned int lineno;
-  enum {
-    etree_binary,
-    etree_trinary,
-    etree_unary,
-    etree_name,
-    etree_assign,
-    etree_provide,
-    etree_provided,
-    etree_value,
-    etree_assert,
-    etree_rel
-  } node_class;
+  enum  node_tree_enum node_class;
 } node_type;
 
 typedef union etree_union {
 } node_type;
 
 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 {
   /* Modify expression evaluation depending on this.  */
   lang_phase_type phase;
 struct ldexp_control {
   /* Modify expression evaluation depending on this.  */
   lang_phase_type phase;
@@ -117,22 +134,11 @@ struct ldexp_control {
 
   /* State machine and results for DATASEG.  */
   struct {
 
   /* State machine and results for DATASEG.  */
   struct {
-    enum {
-      exp_dataseg_none,
-      exp_dataseg_align_seen,
-      exp_dataseg_relro_seen,
-      exp_dataseg_end_seen,
-      exp_dataseg_relro_adjust,
-      exp_dataseg_adjust
-    } phase;
+    enum phase_enum phase;
 
     bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
 
 
     bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
 
-    enum {
-      exp_dataseg_relro_none,
-      exp_dataseg_relro_start,
-      exp_dataseg_relro_end,
-    } relro;
+    enum relro_enum relro;
 
     union lang_statement_union *relro_start_stat;
     union lang_statement_union *relro_end_stat;
 
     union lang_statement_union *relro_start_stat;
     union lang_statement_union *relro_end_stat;
index ca18af9..e9f032e 100644 (file)
@@ -307,7 +307,7 @@ typedef struct
 static bfd_boolean
 section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
 {
 static bfd_boolean
 section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
 {
-  section_iterator_callback_data *d = data;
+  section_iterator_callback_data *d = (section_iterator_callback_data *) data;
 
   if (d->found_section != NULL)
     {
 
   if (d->found_section != NULL)
     {
@@ -452,7 +452,7 @@ output_section_callback_fast (lang_wild_statement_type *ptr,
   if (unique_section_p (section))
     return;
 
   if (unique_section_p (section))
     return;
 
-  node = xmalloc (sizeof (lang_section_bst_type));
+  node = (lang_section_bst_type *) xmalloc (sizeof (lang_section_bst_type));
   node->left = 0;
   node->right = 0;
   node->section = section;
   node->left = 0;
   node->right = 0;
   node->section = section;
@@ -813,7 +813,9 @@ walk_wild_file (lang_wild_statement_type *s,
             lang_input_statement.  */
          if (member->usrdata != NULL)
            {
             lang_input_statement.  */
          if (member->usrdata != NULL)
            {
-             walk_wild_section (s, member->usrdata, callback, data);
+             walk_wild_section (s,
+                                 (lang_input_statement_type *) member->usrdata,
+                                 callback, data);
            }
 
          member = bfd_openr_next_archived_file (f->the_bfd, member);
            }
 
          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)
        return entry;
     }
       if (entry == NULL)
        return entry;
     }
@@ -1296,7 +1299,7 @@ lang_memory_region_alias (const char * alias, const char * region_name)
            alias);
 
   /* Add alias to region name list.  */
            alias);
 
   /* Add alias to region name list.  */
-  n = stat_alloc (sizeof (lang_memory_region_name));
+  n = (lang_memory_region_name *) stat_alloc (sizeof (lang_memory_region_name));
   n->name = xstrdup (alias);
   n->next = region->name_list.next;
   region->name_list.next = n;
   n->name = xstrdup (alias);
   n->next = region->name_list.next;
   region->name_list.next = n;
@@ -1717,8 +1720,8 @@ lang_insert_orphan (asection *s,
 
   os_tail = ((lang_output_section_statement_type **)
             lang_output_section_statement.tail);
 
   os_tail = ((lang_output_section_statement_type **)
             lang_output_section_statement.tail);
-  os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
-                                           NULL, constraint);
+  os = lang_enter_output_section_statement (secname, address, normal_section,
+                                            NULL, NULL, NULL, constraint);
 
   ps = NULL;
   if (config.build_constructors && *os_tail == os)
 
   ps = NULL;
   if (config.build_constructors && *os_tail == os)
@@ -2012,18 +2015,20 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
       struct fat_user_section_struct *ud;
       struct map_symbol_def *def;
 
       struct fat_user_section_struct *ud;
       struct map_symbol_def *def;
 
-      ud = get_userdata (hash_entry->u.def.section);
+      ud = (struct fat_user_section_struct *)
+          get_userdata (hash_entry->u.def.section);
       if  (! ud)
        {
          /* ??? What do we have to do to initialize this beforehand?  */
          /* The first time we get here is bfd_abs_section...  */
          init_map_userdata (0, hash_entry->u.def.section, 0);
       if  (! ud)
        {
          /* ??? What do we have to do to initialize this beforehand?  */
          /* The first time we get here is bfd_abs_section...  */
          init_map_userdata (0, hash_entry->u.def.section, 0);
-         ud = get_userdata (hash_entry->u.def.section);
+         ud = (struct fat_user_section_struct *)
+              get_userdata (hash_entry->u.def.section);
        }
       else if  (!ud->map_symbol_def_tail)
        ud->map_symbol_def_tail = &ud->map_symbol_def_head;
 
        }
       else if  (!ud->map_symbol_def_tail)
        ud->map_symbol_def_tail = &ud->map_symbol_def_head;
 
-      def = obstack_alloc (&map_obstack, sizeof *def);
+      def = (struct map_symbol_def *) obstack_alloc (&map_obstack, sizeof *def);
       def->entry = hash_entry;
       *(ud->map_symbol_def_tail) = def;
       ud->map_symbol_def_tail = &def->next;
       def->entry = hash_entry;
       *(ud->map_symbol_def_tail) = def;
       ud->map_symbol_def_tail = &def->next;
@@ -2139,7 +2144,7 @@ exp_init_os (etree_type *exp)
 static void
 section_already_linked (bfd *abfd, asection *sec, void *data)
 {
 static void
 section_already_linked (bfd *abfd, asection *sec, void *data)
 {
-  lang_input_statement_type *entry = data;
+  lang_input_statement_type *entry = (lang_input_statement_type *) data;
 
   /* If we are only reading symbols from this object, then we want to
      discard all sections.  */
 
   /* If we are only reading symbols from this object, then we want to
      discard all sections.  */
@@ -2528,9 +2533,9 @@ add_excluded_libs (const char *list)
       end = strpbrk (p, ",:");
       if (end == NULL)
        end = p + strlen (p);
       end = strpbrk (p, ",:");
       if (end == NULL)
        end = p + strlen (p);
-      entry = xmalloc (sizeof (*entry));
+      entry = (struct excluded_lib *) xmalloc (sizeof (*entry));
       entry->next = excluded_libs;
       entry->next = excluded_libs;
-      entry->name = xmalloc (end - p + 1);
+      entry->name = (char *) xmalloc (end - p + 1);
       memcpy (entry->name, p, end - p);
       entry->name[end - p] = '\0';
       excluded_libs = entry;
       memcpy (entry->name, p, end - p);
       entry->name[end - p] = '\0';
       excluded_libs = entry;
@@ -2751,7 +2756,7 @@ wild (lang_wild_statement_type *s,
 static int
 get_target (const bfd_target *target, void *data)
 {
 static int
 get_target (const bfd_target *target, void *data)
 {
-  const char *sought = data;
+  const char *sought = (const char *) data;
 
   return strcmp (target->name, sought) == 0;
 }
 
   return strcmp (target->name, sought) == 0;
 }
@@ -2798,8 +2803,8 @@ name_compare (char *first, char *second)
   char *copy2;
   int result;
 
   char *copy2;
   int result;
 
-  copy1 = xmalloc (strlen (first) + 1);
-  copy2 = xmalloc (strlen (second) + 1);
+  copy1 = (char *) xmalloc (strlen (first) + 1);
+  copy2 = (char *) xmalloc (strlen (second) + 1);
 
   /* Convert the names to lower case.  */
   stricpy (copy1, first);
 
   /* Convert the names to lower case.  */
   stricpy (copy1, first);
@@ -2837,7 +2842,7 @@ static const bfd_target *winner;
 static int
 closest_target_match (const bfd_target *target, void *data)
 {
 static int
 closest_target_match (const bfd_target *target, void *data)
 {
-  const bfd_target *original = data;
+  const bfd_target *original = (const bfd_target *) data;
 
   if (command_line.endian == ENDIAN_BIG
       && target->byteorder != BFD_ENDIAN_BIG)
 
   if (command_line.endian == ENDIAN_BIG
       && target->byteorder != BFD_ENDIAN_BIG)
@@ -3932,7 +3937,7 @@ print_input_statement (lang_input_statement_type *statm)
 static bfd_boolean
 print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
 {
 static bfd_boolean
 print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
 {
-  asection *sec = ptr;
+  asection *sec = (asection *) ptr;
 
   if ((hash_entry->type == bfd_link_hash_defined
        || hash_entry->type == bfd_link_hash_defweak)
 
   if ((hash_entry->type == bfd_link_hash_defined
        || hash_entry->type == bfd_link_hash_defweak)
@@ -3970,7 +3975,8 @@ hash_entry_addr_cmp (const void *a, const void *b)
 static void
 print_all_symbols (asection *sec)
 {
 static void
 print_all_symbols (asection *sec)
 {
-  struct fat_user_section_struct *ud = get_userdata (sec);
+  struct fat_user_section_struct *ud =
+      (struct fat_user_section_struct *) get_userdata (sec);
   struct map_symbol_def *def;
   struct bfd_link_hash_entry **entries;
   unsigned int i;
   struct map_symbol_def *def;
   struct bfd_link_hash_entry **entries;
   unsigned int i;
@@ -3981,8 +3987,8 @@ print_all_symbols (asection *sec)
   *ud->map_symbol_def_tail = 0;
   
   /* Sort the symbols by address.  */
   *ud->map_symbol_def_tail = 0;
   
   /* Sort the symbols by address.  */
-  entries = obstack_alloc (&map_obstack,
-                           ud->map_symbol_def_count * sizeof (*entries));
+  entries = (struct bfd_link_hash_entry **)
+      obstack_alloc (&map_obstack, ud->map_symbol_def_count * sizeof (*entries));
 
   for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
     entries[i] = def->entry;
 
   for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
     entries[i] = def->entry;
@@ -4419,7 +4425,8 @@ insert_pad (lang_statement_union_type **ptr,
   else
     {
       /* Make a new padding statement, linked into existing chain.  */
   else
     {
       /* Make a new padding statement, linked into existing chain.  */
-      pad = stat_alloc (sizeof (lang_padding_statement_type));
+      pad = (lang_statement_union_type *)
+          stat_alloc (sizeof (lang_padding_statement_type));
       pad->header.next = *ptr;
       *ptr = pad;
       pad->header.type = lang_padding_statement_enum;
       pad->header.next = *ptr;
       *ptr = pad;
       pad->header.type = lang_padding_statement_enum;
@@ -4535,7 +4542,7 @@ lang_check_section_addresses (void)
     return;
 
   amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
     return;
 
   amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
-  sections = xmalloc (amt);
+  sections = (asection **) xmalloc (amt);
 
   /* Scan all sections in the output list.  */
   count = 0;
 
   /* Scan all sections in the output list.  */
   count = 0;
@@ -5465,7 +5472,7 @@ lang_set_startof (void)
       struct bfd_link_hash_entry *h;
 
       secname = bfd_get_section_name (link_info.output_bfd, s);
       struct bfd_link_hash_entry *h;
 
       secname = bfd_get_section_name (link_info.output_bfd, s);
-      buf = xmalloc (10 + strlen (secname));
+      buf = (char *) xmalloc (10 + strlen (secname));
 
       sprintf (buf, ".startof.%s", secname);
       h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
 
       sprintf (buf, ".startof.%s", secname);
       h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
@@ -6762,7 +6769,7 @@ lang_new_phdr (const char *name,
 {
   struct lang_phdr *n, **pp;
 
 {
   struct lang_phdr *n, **pp;
 
-  n = stat_alloc (sizeof (struct lang_phdr));
+  n = (struct lang_phdr *) stat_alloc (sizeof (struct lang_phdr));
   n->next = NULL;
   n->name = name;
   n->type = exp_get_value_int (type, 0, "program header type");
   n->next = NULL;
   n->name = name;
   n->type = exp_get_value_int (type, 0, "program header type");
@@ -6789,7 +6796,7 @@ lang_record_phdrs (void)
   lang_output_section_statement_type *os;
 
   alc = 10;
   lang_output_section_statement_type *os;
 
   alc = 10;
-  secs = xmalloc (alc * sizeof (asection *));
+  secs = (asection **) xmalloc (alc * sizeof (asection *));
   last = NULL;
 
   for (l = lang_phdr_list; l != NULL; l = l->next)
   last = NULL;
 
   for (l = lang_phdr_list; l != NULL; l = l->next)
@@ -6856,7 +6863,8 @@ lang_record_phdrs (void)
                  if (c >= alc)
                    {
                      alc *= 2;
                  if (c >= alc)
                    {
                      alc *= 2;
-                     secs = xrealloc (secs, alc * sizeof (asection *));
+                     secs = (asection **) xrealloc (secs,
+                                                     alc * sizeof (asection *));
                    }
                  secs[c] = os->bfd_section;
                  ++c;
                    }
                  secs[c] = os->bfd_section;
                  ++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->list = l;
   nocrossref_list = n;
   n->next = nocrossref_list;
   n->list = l;
   nocrossref_list = n;
@@ -6972,7 +6980,7 @@ lang_enter_overlay_section (const char *name)
     overlay_vma = exp_nameop (ADDR, name);
 
   /* Remember the section.  */
     overlay_vma = exp_nameop (ADDR, name);
 
   /* Remember the section.  */
-  n = xmalloc (sizeof *n);
+  n = (struct overlay_list *) xmalloc (sizeof *n);
   n->os = current_section;
   n->next = overlay_list;
   overlay_list = n;
   n->os = current_section;
   n->next = overlay_list;
   overlay_list = n;
@@ -7008,20 +7016,20 @@ lang_leave_overlay_section (fill_type *fill,
 
   /* Define the magic symbols.  */
 
 
   /* Define the magic symbols.  */
 
-  clean = xmalloc (strlen (name) + 1);
+  clean = (char *) xmalloc (strlen (name) + 1);
   s2 = clean;
   for (s1 = name; *s1 != '\0'; s1++)
     if (ISALNUM (*s1) || *s1 == '_')
       *s2++ = *s1;
   *s2 = '\0';
 
   s2 = clean;
   for (s1 = name; *s1 != '\0'; s1++)
     if (ISALNUM (*s1) || *s1 == '_')
       *s2++ = *s1;
   *s2 = '\0';
 
-  buf = xmalloc (strlen (clean) + sizeof "__load_start_");
+  buf = (char *) xmalloc (strlen (clean) + sizeof "__load_start_");
   sprintf (buf, "__load_start_%s", clean);
   lang_add_assignment (exp_provide (buf,
                                    exp_nameop (LOADADDR, name),
                                    FALSE));
 
   sprintf (buf, "__load_start_%s", clean);
   lang_add_assignment (exp_provide (buf,
                                    exp_nameop (LOADADDR, name),
                                    FALSE));
 
-  buf = xmalloc (strlen (clean) + sizeof "__load_stop_");
+  buf = (char *) xmalloc (strlen (clean) + sizeof "__load_stop_");
   sprintf (buf, "__load_stop_%s", clean);
   lang_add_assignment (exp_provide (buf,
                                    exp_binop ('+',
   sprintf (buf, "__load_stop_%s", clean);
   lang_add_assignment (exp_provide (buf,
                                    exp_binop ('+',
@@ -7087,7 +7095,7 @@ lang_leave_overlay (etree_type *lma_expr,
        {
          lang_nocrossref_type *nc;
 
        {
          lang_nocrossref_type *nc;
 
-         nc = xmalloc (sizeof *nc);
+         nc = (lang_nocrossref_type *) xmalloc (sizeof *nc);
          nc->name = l->os->name;
          nc->next = nocrossref;
          nocrossref = nc;
          nc->name = l->os->name;
          nc->next = nocrossref;
          nocrossref = nc;
@@ -7148,7 +7156,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
          if (head->mask & BFD_ELF_VERSION_C_TYPE)
            {
              e.pattern = sym;
          if (head->mask & BFD_ELF_VERSION_C_TYPE)
            {
              e.pattern = sym;
-             expr = htab_find (head->htab, &e);
+             expr = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) head->htab, &e);
              while (expr && strcmp (expr->pattern, sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_C_TYPE)
                  goto out_ret;
              while (expr && strcmp (expr->pattern, sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_C_TYPE)
                  goto out_ret;
@@ -7160,7 +7169,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
          if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
            {
              e.pattern = cxx_sym;
          if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
            {
              e.pattern = cxx_sym;
-             expr = htab_find (head->htab, &e);
+             expr = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) head->htab, &e);
              while (expr && strcmp (expr->pattern, cxx_sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
                  goto out_ret;
              while (expr && strcmp (expr->pattern, cxx_sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
                  goto out_ret;
@@ -7172,7 +7182,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
          if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
            {
              e.pattern = java_sym;
          if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
            {
              e.pattern = java_sym;
-             expr = htab_find (head->htab, &e);
+             expr = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) head->htab, &e);
              while (expr && strcmp (expr->pattern, java_sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
                  goto out_ret;
              while (expr && strcmp (expr->pattern, java_sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
                  goto out_ret;
@@ -7226,7 +7237,7 @@ realsymbol (const char *pattern)
 {
   const char *p;
   bfd_boolean changed = FALSE, backslash = FALSE;
 {
   const char *p;
   bfd_boolean changed = FALSE, backslash = FALSE;
-  char *s, *symbol = xmalloc (strlen (pattern) + 1);
+  char *s, *symbol = (char *) xmalloc (strlen (pattern) + 1);
 
   for (p = pattern, s = symbol; *p != '\0'; ++p)
     {
 
   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->locals.list = locals;
   ret->match = lang_vers_match;
   ret->globals.list = globals;
   ret->locals.list = locals;
   ret->match = lang_vers_match;
@@ -7328,7 +7339,8 @@ static int version_index;
 static hashval_t
 version_expr_head_hash (const void *p)
 {
 static hashval_t
 version_expr_head_hash (const void *p)
 {
-  const struct bfd_elf_version_expr *e = p;
+  const struct bfd_elf_version_expr *e =
+      (const struct bfd_elf_version_expr *) p;
 
   return htab_hash_string (e->pattern);
 }
 
   return htab_hash_string (e->pattern);
 }
@@ -7336,8 +7348,10 @@ version_expr_head_hash (const void *p)
 static int
 version_expr_head_eq (const void *p1, const void *p2)
 {
 static int
 version_expr_head_eq (const void *p1, const void *p2)
 {
-  const struct bfd_elf_version_expr *e1 = p1;
-  const struct bfd_elf_version_expr *e2 = p2;
+  const struct bfd_elf_version_expr *e1 =
+      (const struct bfd_elf_version_expr *) p1;
+  const struct bfd_elf_version_expr *e2 =
+      (const struct bfd_elf_version_expr *) p2;
 
   return strcmp (e1->pattern, e2->pattern) == 0;
 }
 
   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)
                {
                  struct bfd_elf_version_expr *e1, *last;
 
 
              if (*loc)
                {
                  struct bfd_elf_version_expr *e1, *last;
 
-                 e1 = *loc;
+                 e1 = (struct bfd_elf_version_expr *) *loc;
                  last = NULL;
                  do
                    {
                  last = NULL;
                  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)
                {
                  if (e1->mask == e2->mask)
              while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
                {
                  if (e1->mask == e2->mask)
@@ -7489,7 +7504,8 @@ lang_register_vers_node (const char *name,
 
          if (t->globals.htab && e1->literal)
            {
 
          if (t->globals.htab && e1->literal)
            {
-             e2 = htab_find (t->globals.htab, e1);
+             e2 = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) t->globals.htab, e1);
              while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
                {
                  if (e1->mask == e2->mask)
              while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
                {
                  if (e1->mask == e2->mask)
@@ -7531,7 +7547,7 @@ lang_add_vers_depend (struct bfd_elf_version_deps *list, const char *name)
   struct bfd_elf_version_deps *ret;
   struct bfd_elf_version_tree *t;
 
   struct bfd_elf_version_deps *ret;
   struct bfd_elf_version_tree *t;
 
-  ret = xmalloc (sizeof *ret);
+  ret = (struct bfd_elf_version_deps *) xmalloc (sizeof *ret);
   ret->next = list;
 
   for (t = lang_elf_version_info; t != NULL; t = t->next)
   ret->next = list;
 
   for (t = lang_elf_version_info; t != NULL; t = t->next)
@@ -7563,7 +7579,7 @@ lang_do_version_exports_section (void)
        continue;
 
       len = sec->size;
        continue;
 
       len = sec->size;
-      contents = xmalloc (len);
+      contents = (char *) xmalloc (len);
       if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
        einfo (_("%X%P: unable to read .exports section contents\n"), sec);
 
       if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
        einfo (_("%X%P: unable to read .exports section contents\n"), sec);
 
@@ -7594,7 +7610,7 @@ lang_add_unique (const char *name)
     if (strcmp (ent->name, name) == 0)
       return;
 
     if (strcmp (ent->name, name) == 0)
       return;
 
-  ent = xmalloc (sizeof *ent);
+  ent = (struct unique_sections *) xmalloc (sizeof *ent);
   ent->name = xstrdup (name);
   ent->next = unique_section_list;
   unique_section_list = ent;
   ent->name = xstrdup (name);
   ent->next = unique_section_list;
   unique_section_list = ent;
@@ -7617,7 +7633,7 @@ lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic)
     {
       struct bfd_elf_dynamic_list *d;
 
     {
       struct bfd_elf_dynamic_list *d;
 
-      d = xcalloc (1, sizeof *d);
+      d = (struct bfd_elf_dynamic_list *) xcalloc (1, sizeof *d);
       d->head.list = dynamic;
       d->match = lang_vers_match;
       link_info.dynamic_list = d;
       d->head.list = dynamic;
       d->match = lang_vers_match;
       link_info.dynamic_list = d;
index a4c3e21..2a87408 100644 (file)
@@ -66,28 +66,30 @@ typedef struct memory_region_struct
   bfd_boolean had_full_message;
 } lang_memory_region_type;
 
   bfd_boolean had_full_message;
 } lang_memory_region_type;
 
+enum statement_enum
+{
+  lang_output_section_statement_enum,
+  lang_assignment_statement_enum,
+  lang_input_statement_enum,
+  lang_address_statement_enum,
+  lang_wild_statement_enum,
+  lang_input_section_enum,
+  lang_object_symbols_statement_enum,
+  lang_fill_statement_enum,
+  lang_data_statement_enum,
+  lang_reloc_statement_enum,
+  lang_target_statement_enum,
+  lang_output_statement_enum,
+  lang_padding_statement_enum,
+  lang_group_statement_enum,
+  lang_insert_statement_enum,
+  lang_constructors_statement_enum
+};
+
 typedef struct lang_statement_header_struct
 {
   union lang_statement_union *next;
 typedef struct lang_statement_header_struct
 {
   union lang_statement_union *next;
-  enum statement_enum
-  {
-    lang_output_section_statement_enum,
-    lang_assignment_statement_enum,
-    lang_input_statement_enum,
-    lang_address_statement_enum,
-    lang_wild_statement_enum,
-    lang_input_section_enum,
-    lang_object_symbols_statement_enum,
-    lang_fill_statement_enum,
-    lang_data_statement_enum,
-    lang_reloc_statement_enum,
-    lang_target_statement_enum,
-    lang_output_statement_enum,
-    lang_padding_statement_enum,
-    lang_group_statement_enum,
-    lang_insert_statement_enum,
-    lang_constructors_statement_enum
-  } type;
+  enum statement_enum type;
 } lang_statement_header_type;
 
 typedef struct
 } lang_statement_header_type;
 
 typedef struct
index 1771c58..aceb595 100644 (file)
@@ -399,7 +399,7 @@ main (int argc, char **argv)
        {
          static const int ld_bufsz = 8193;
          size_t n;
        {
          static const int ld_bufsz = 8193;
          size_t n;
-         char *buf = xmalloc (ld_bufsz);
+         char *buf = (char *) xmalloc (ld_bufsz);
 
          rewind (saved_script_handle);
          while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
 
          rewind (saved_script_handle);
          while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
@@ -503,9 +503,9 @@ main (int argc, char **argv)
              FILE *src;
              FILE *dst;
              const int bsize = 4096;
              FILE *src;
              FILE *dst;
              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);
              strcat (dst_name, ".exe");
 
              strcpy (dst_name, output_filename);
              strcat (dst_name, ".exe");
@@ -540,7 +540,7 @@ main (int argc, char **argv)
   if (config.stats)
     {
 #ifdef HAVE_SBRK
   if (config.stats)
     {
 #ifdef HAVE_SBRK
-      char *lim = sbrk (0);
+      char *lim = (char *) sbrk (0);
 #endif
       long run_time = get_run_time () - start_time;
 
 #endif
       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,
                                  bfd_hash_newfunc,
                                  sizeof (struct bfd_hash_entry),
       if (!bfd_hash_table_init_n (link_info.notice_hash,
                                  bfd_hash_newfunc,
                                  sizeof (struct bfd_hash_entry),
@@ -691,7 +692,8 @@ add_wrap (const char *name)
 {
   if (link_info.wrap_hash == NULL)
     {
 {
   if (link_info.wrap_hash == NULL)
     {
-      link_info.wrap_hash = xmalloc (sizeof (struct bfd_hash_table));
+      link_info.wrap_hash =
+          (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
       if (!bfd_hash_table_init_n (link_info.wrap_hash,
                                  bfd_hash_newfunc,
                                  sizeof (struct bfd_hash_entry),
       if (!bfd_hash_table_init_n (link_info.wrap_hash,
                                  bfd_hash_newfunc,
                                  sizeof (struct bfd_hash_entry),
@@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
       return;
     }
 
       return;
     }
 
-  link_info.keep_hash = xmalloc (sizeof (struct bfd_hash_table));
+  link_info.keep_hash = (struct bfd_hash_table *)
+      xmalloc (sizeof (struct bfd_hash_table));
   if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
                            sizeof (struct bfd_hash_entry)))
     einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
 
   bufsize = 100;
   if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
                            sizeof (struct bfd_hash_entry)))
     einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
 
   bufsize = 100;
-  buf = xmalloc (bufsize);
+  buf = (char *) xmalloc (bufsize);
 
   c = getc (file);
   while (c != EOF)
 
   c = getc (file);
   while (c != EOF)
@@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
              if (len >= bufsize)
                {
                  bufsize *= 2;
              if (len >= bufsize)
                {
                  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->local_sym_name = abfd->filename;
   input->the_bfd = abfd;
   input->filename = abfd->filename;
   input->local_sym_name = abfd->filename;
   input->the_bfd = abfd;
@@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
 static void
 warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
 {
 static void
 warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
 {
-  struct warning_callback_info *info = iarg;
+  struct warning_callback_info *info = (struct warning_callback_info *) iarg;
   long relsize;
   arelent **relpp;
   long relcount;
   long relsize;
   arelent **relpp;
   long relcount;
@@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
   if (relsize == 0)
     return;
 
   if (relsize == 0)
     return;
 
-  relpp = xmalloc (relsize);
+  relpp = (arelent **) xmalloc (relsize);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
     einfo (_("%B%F: could not read relocs: %E\n"), abfd);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
     einfo (_("%B%F: could not read relocs: %E\n"), abfd);
@@ -1190,7 +1194,8 @@ undefined_symbol (struct bfd_link_info *info ATTRIBUTE_UNUSED,
       /* Only warn once about a particular undefined symbol.  */
       if (hash == NULL)
        {
       /* Only warn once about a particular undefined symbol.  */
       if (hash == NULL)
        {
-         hash = xmalloc (sizeof (struct bfd_hash_table));
+         hash = (struct bfd_hash_table *)
+              xmalloc (sizeof (struct bfd_hash_table));
          if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
                                    sizeof (struct bfd_hash_entry)))
            einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
          if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
                                    sizeof (struct bfd_hash_entry)))
            einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
@@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
   if (name == NULL)
     {
       if (command_line.cref || nocrossref_list != NULL)
   if (name == NULL)
     {
       if (command_line.cref || nocrossref_list != NULL)
-       return handle_asneeded_cref (abfd, value);
+       return handle_asneeded_cref (abfd, (enum notice_asneeded_action) value);
       return TRUE;
     }
 
       return TRUE;
     }
 
index 42eb2cc..2ff9547 100644 (file)
@@ -57,7 +57,7 @@ build_link_order (lang_statement_union_type *statement)
 
        link_order->type = bfd_data_link_order;
        link_order->offset = statement->data_statement.output_offset;
 
        link_order->type = bfd_data_link_order;
        link_order->offset = statement->data_statement.output_offset;
-       link_order->u.data.contents = xmalloc (QUAD_SIZE);
+       link_order->u.data.contents = (bfd_byte *) xmalloc (QUAD_SIZE);
 
        value = statement->data_statement.value;
 
 
        value = statement->data_statement.value;
 
@@ -198,7 +198,8 @@ build_link_order (lang_statement_union_type *statement)
        link_order->offset = rs->output_offset;
        link_order->size = bfd_get_reloc_size (rs->howto);
 
        link_order->offset = rs->output_offset;
        link_order->size = bfd_get_reloc_size (rs->howto);
 
-       link_order->u.reloc.p = xmalloc (sizeof (struct bfd_link_order_reloc));
+       link_order->u.reloc.p = (struct bfd_link_order_reloc *)
+            xmalloc (sizeof (struct bfd_link_order_reloc));
 
        link_order->u.reloc.p->reloc = rs->reloc;
        link_order->u.reloc.p->addend = rs->addend_value;
 
        link_order->u.reloc.p->reloc = rs->reloc;
        link_order->u.reloc.p->addend = rs->addend_value;
@@ -333,7 +334,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
   /* Invent a section name from the section name and a dotted numeric
      suffix.   */
   len = strlen (name);
   /* Invent a section name from the section name and a dotted numeric
      suffix.   */
   len = strlen (name);
-  tname = xmalloc (len + 1);
+  tname = (char *) xmalloc (len + 1);
   memcpy (tname, name, len + 1);
   /* Remove a dotted number suffix, from a previous split link. */
   while (len && ISDIGIT (tname[len-1]))
   memcpy (tname, name, len + 1);
   /* Remove a dotted number suffix, from a previous split link. */
   while (len && ISDIGIT (tname[len-1]))
index 95a0403..d3d6e56 100644 (file)
@@ -172,6 +172,25 @@ enum option_values
 /* The long options.  This structure is used for both the option
    parsing and the help text.  */
 
 /* The long options.  This structure is used for both the option
    parsing and the help text.  */
 
+enum control_enum {
+  /* Use one dash before long option name.  */
+  ONE_DASH,
+  /* Use two dashes before long option name.  */
+  TWO_DASHES,
+  /* Only accept two dashes before the long option name.
+     This is an overloading of the use of this enum, since originally it
+     was only intended to tell the --help display function how to display
+     the long option name.  This feature was added in order to resolve
+     the confusion about the -omagic command line switch.  Is it setting
+     the output file name to "magic" or is it setting the NMAGIC flag on
+     the output ?  It has been decided that it is setting the output file
+     name, and that if you want to set the NMAGIC flag you should use -N
+     or --omagic.  */
+  EXACTLY_TWO_DASHES,
+  /* Don't mention this option in --help output.  */
+  NO_HELP
+};
+
 struct ld_option
 {
   /* The long option information.  */
 struct ld_option
 {
   /* The long option information.  */
@@ -183,24 +202,7 @@ struct ld_option
   /* The documentation string.  If this is NULL, this is a synonym for
      the previous option.  */
   const char *doc;
   /* 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.  */
-    ONE_DASH,
-    /* Use two dashes before long option name.  */
-    TWO_DASHES,
-    /* Only accept two dashes before the long option name.
-       This is an overloading of the use of this enum, since originally it
-       was only intended to tell the --help display function how to display
-       the long option name.  This feature was added in order to resolve
-       the confusion about the -omagic command line switch.  Is it setting
-       the output file name to "magic" or is it setting the NMAGIC flag on
-       the output ?  It has been decided that it is setting the output file
-       name, and that if you want to set the NMAGIC flag you should use -N
-       or --omagic.  */
-    EXACTLY_TWO_DASHES,
-    /* Don't mention this option in --help output.  */
-    NO_HELP
-  } control;
+  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;
   enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
 
   int last_optind;
   enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
 
-  shortopts = xmalloc (OPTION_COUNT * 3 + 2);
-  longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
-  really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
+  shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
+  longopts = (struct option *)
+      xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
+  really_longopts = (struct option *)
+      malloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
 
   /* Starting the short option string with '-' is for programs that
      expect options and other ARGV-elements in any order and that care about
 
   /* Starting the short option string with '-' is for programs that
      expect options and other ARGV-elements in any order and that care about
@@ -677,7 +681,7 @@ parse_args (unsigned argc, char **argv)
        {
          char *n;
 
        {
          char *n;
 
-         n = xmalloc (strlen (argv[i]) + 20);
+         n = (char *) xmalloc (strlen (argv[i]) + 20);
          sprintf (n, "--library=%s", argv[i] + 2);
          argv[i] = n;
        }
          sprintf (n, "--library=%s", argv[i] + 2);
          argv[i] = n;
        }
@@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
        case 'f':
          if (command_line.auxiliary_filters == NULL)
            {
        case 'f':
          if (command_line.auxiliary_filters == NULL)
            {
-             command_line.auxiliary_filters = xmalloc (2 * sizeof (char *));
+             command_line.auxiliary_filters = (char **)
+                  xmalloc (2 * sizeof (char *));
              command_line.auxiliary_filters[0] = optarg;
              command_line.auxiliary_filters[1] = NULL;
            }
              command_line.auxiliary_filters[0] = optarg;
              command_line.auxiliary_filters[1] = NULL;
            }
@@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
              c = 0;
              for (p = command_line.auxiliary_filters; *p != NULL; p++)
                ++c;
              c = 0;
              for (p = command_line.auxiliary_filters; *p != NULL; p++)
                ++c;
-             command_line.auxiliary_filters
-               = xrealloc (command_line.auxiliary_filters,
+             command_line.auxiliary_filters = (char **)
+                  xrealloc (command_line.auxiliary_filters,
                            (c + 2) * sizeof (char *));
              command_line.auxiliary_filters[c] = optarg;
              command_line.auxiliary_filters[c + 1] = NULL;
                            (c + 2) * sizeof (char *));
              command_line.auxiliary_filters[c] = optarg;
              command_line.auxiliary_filters[c + 1] = NULL;
@@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
 
              if (cp == NULL)
                {
 
              if (cp == NULL)
                {
-                 buf = xmalloc (rpath_len + optarg_len + 2);
+                 buf = (char *) xmalloc (rpath_len + optarg_len + 2);
                  sprintf (buf, "%s%c%s", command_line.rpath,
                           config.rpath_separator, optarg);
                  free (command_line.rpath);
                  sprintf (buf, "%s%c%s", command_line.rpath,
                           config.rpath_separator, optarg);
                  free (command_line.rpath);
@@ -1107,9 +1112,9 @@ parse_args (unsigned argc, char **argv)
            {
              char *buf;
 
            {
              char *buf;
 
-             buf = xmalloc (strlen (command_line.rpath_link)
-                            + strlen (optarg)
-                            + 2);
+             buf = (char *) xmalloc (strlen (command_line.rpath_link)
+                                      + strlen (optarg)
+                                      + 2);
              sprintf (buf, "%s%c%s", command_line.rpath_link,
                       config.rpath_separator, optarg);
              free (command_line.rpath_link);
              sprintf (buf, "%s%c%s", command_line.rpath_link,
                       config.rpath_separator, optarg);
              free (command_line.rpath_link);
@@ -1224,7 +1229,7 @@ parse_args (unsigned argc, char **argv)
            /* We must copy the section name as set_section_start
               doesn't do it for us.  */
            len = optarg2 - optarg;
            /* We must copy the section name as set_section_start
               doesn't do it for us.  */
            len = optarg2 - optarg;
-           sec_name = xmalloc (len);
+           sec_name = (char *) xmalloc (len);
            memcpy (sec_name, optarg, len - 1);
            sec_name[len - 1] = 0;
 
            memcpy (sec_name, optarg, len - 1);
            sec_name[len - 1] = 0;
 
@@ -1549,7 +1554,7 @@ set_segment_start (const char *section, char *valstr)
       }
   /* There was no existing value so we must create a new segment
      entry.  */
       }
   /* There was no existing value so we must create a new segment
      entry.  */
-  seg = stat_alloc (sizeof (*seg));
+  seg = (segment_type *) stat_alloc (sizeof (*seg));
   seg->name = name;
   seg->value = val;
   seg->used = FALSE;
   seg->name = name;
   seg->value = val;
   seg->used = FALSE;
index 05aed28..1932a93 100644 (file)
--- a/ld/mri.c
+++ b/ld/mri.c
@@ -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, ".");
 
          lang_enter_output_section_statement (p->name, base,
            base = p->vma ? p->vma : exp_nameop (NAME, ".");
 
          lang_enter_output_section_statement (p->name, base,
-                                              p->ok_to_load ? 0 : noload_section,
+                                              p->ok_to_load ? normal_section : noload_section,
                                               align, subalign, NULL, 0);
          base = 0;
                                               align, subalign, NULL, 0);
          base = 0;
-         tmp = xmalloc (sizeof *tmp);
+         tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
          tmp->next = NULL;
          tmp->spec.name = p->name;
          tmp->spec.exclude_name_list = NULL;
          tmp->next = NULL;
          tmp->spec.name = p->name;
          tmp->spec.exclude_name_list = NULL;
@@ -220,7 +221,7 @@ mri_draw_tree (void)
          for (aptr = alias; aptr; aptr = aptr->next)
            if (strcmp (aptr->alias, p->name) == 0)
              {
          for (aptr = alias; aptr; aptr = aptr->next)
            if (strcmp (aptr->alias, p->name) == 0)
              {
-               tmp = xmalloc (sizeof *tmp);
+               tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
                tmp->next = NULL;
                tmp->spec.name = aptr->name;
                tmp->spec.exclude_name_list = NULL;
                tmp->next = NULL;
                tmp->spec.name = aptr->name;
                tmp->spec.exclude_name_list = NULL;
index 9c7c209..2589743 100644 (file)
@@ -1,13 +1,15 @@
-# translation of ld-2.19.1.po to Finnish
+# translation of ld-2.19.90.po to Finnish
 # This file is distributed under the same license as the binutils package.
 # This file is distributed under the same license as the binutils package.
-# Copyright © 2007 Free Software Foundation, Inc.
+# Copyright © 2009 Free Software Foundation, Inc.
 # Jorma Karvonen <karvjorm@users.sf.net>, 2007-2009.
 # Jorma Karvonen <karvjorm@users.sf.net>, 2007-2009.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009.
+#
 msgid ""
 msgstr ""
 msgid ""
 msgstr ""
-"Project-Id-Version: ld 2.19.1\n"
+"Project-Id-Version: ld 2.19.90\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2008-09-09 15:56+0930\n"
-"PO-Revision-Date: 2009-06-21 23:39+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
+"PO-Revision-Date: 2009-09-11 12:10+0200\n"
 "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
 "Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
 "MIME-Version: 1.0\n"
@@ -33,145 +35,162 @@ msgstr "  --thumb-entry=<sym>         Aseta tulokohta Thumb-symboliksi <sym>\n"
 msgid "Errors encountered processing file %s"
 msgstr "Löydettiin virheitä käsiteltäessä tiedostoa %s"
 
 msgid "Errors encountered processing file %s"
 msgstr "Löydettiin virheitä käsiteltäessä tiedostoa %s"
 
-#: emultempl/armcoff.em:190 emultempl/pe.em:1555
+#: emultempl/armcoff.em:190 emultempl/pe.em:1710
 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
 msgstr "%P: varoitus: ”--thumb-entry %s” korvaa argumentin ”-e %s”\n"
 
 msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
 msgstr "%P: varoitus: ”--thumb-entry %s” korvaa argumentin ”-e %s”\n"
 
-#: emultempl/armcoff.em:195 emultempl/pe.em:1560
+#: emultempl/armcoff.em:195 emultempl/pe.em:1715
 msgid "%P: warning: cannot find thumb start symbol %s\n"
 msgstr "%P: varoitus: thumb-aloitussymbolia ”%s” ei löydy\n"
 
 msgid "%P: warning: cannot find thumb start symbol %s\n"
 msgstr "%P: varoitus: thumb-aloitussymbolia ”%s” ei löydy\n"
 
-#: emultempl/pe.em:316
+#: emultempl/pe.em:371
 #, c-format
 msgid "  --base_file <basefile>             Generate a base file for relocatable DLLs\n"
 msgstr "  --base_file <kantatiedosto>        Luo uudelleensijoitettavien DLL:ien kantatiedosto\n"
 
 #, c-format
 msgid "  --base_file <basefile>             Generate a base file for relocatable DLLs\n"
 msgstr "  --base_file <kantatiedosto>        Luo uudelleensijoitettavien DLL:ien kantatiedosto\n"
 
-#: emultempl/pe.em:317
+#: emultempl/pe.em:372
 #, c-format
 msgid "  --dll                              Set image base to the default for DLLs\n"
 msgstr "  --dll                              Aseta vedoskanta DLL:ien oletukseksi\n"
 
 #, c-format
 msgid "  --dll                              Set image base to the default for DLLs\n"
 msgstr "  --dll                              Aseta vedoskanta DLL:ien oletukseksi\n"
 
-#: emultempl/pe.em:318
+#: emultempl/pe.em:373
 #, c-format
 msgid "  --file-alignment <size>            Set file alignment\n"
 msgstr "  --file-alignment <koko>            Aseta tiedostotasaus\n"
 
 #, c-format
 msgid "  --file-alignment <size>            Set file alignment\n"
 msgstr "  --file-alignment <koko>            Aseta tiedostotasaus\n"
 
-#: emultempl/pe.em:319
+#: emultempl/pe.em:374
 #, c-format
 msgid "  --heap <size>                      Set initial size of the heap\n"
 msgstr "  --heap <koko>                      Aseta keon aloituskoko\n"
 
 #, c-format
 msgid "  --heap <size>                      Set initial size of the heap\n"
 msgstr "  --heap <koko>                      Aseta keon aloituskoko\n"
 
-#: emultempl/pe.em:320
+#: emultempl/pe.em:375
 #, c-format
 msgid "  --image-base <address>             Set start address of the executable\n"
 msgstr "  --image-base <osoite>              Aseta suoritettavien tiedostojen aloitusosoite\n"
 
 #, c-format
 msgid "  --image-base <address>             Set start address of the executable\n"
 msgstr "  --image-base <osoite>              Aseta suoritettavien tiedostojen aloitusosoite\n"
 
-#: emultempl/pe.em:321
+#: emultempl/pe.em:376
 #, c-format
 msgid "  --major-image-version <number>     Set version number of the executable\n"
 msgstr "  --major-image-version <numero>     Aseta suoritettavien tiedostojen versionumero\n"
 
 #, c-format
 msgid "  --major-image-version <number>     Set version number of the executable\n"
 msgstr "  --major-image-version <numero>     Aseta suoritettavien tiedostojen versionumero\n"
 
-#: emultempl/pe.em:322
+#: emultempl/pe.em:377
 #, c-format
 msgid "  --major-os-version <number>        Set minimum required OS version\n"
 msgstr "  --major-os-version <numero>        Aseta pienin vaadittu käyttöjärjestelmäversio\n"
 
 #, c-format
 msgid "  --major-os-version <number>        Set minimum required OS version\n"
 msgstr "  --major-os-version <numero>        Aseta pienin vaadittu käyttöjärjestelmäversio\n"
 
-#: emultempl/pe.em:323
+#: emultempl/pe.em:378
 #, c-format
 msgid "  --major-subsystem-version <number> Set minimum required OS subsystem version\n"
 msgstr "  --major-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän versio\n"
 
 #, c-format
 msgid "  --major-subsystem-version <number> Set minimum required OS subsystem version\n"
 msgstr "  --major-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän versio\n"
 
-#: emultempl/pe.em:324
+#: emultempl/pe.em:379
 #, c-format
 msgid "  --minor-image-version <number>     Set revision number of the executable\n"
 msgstr "  --minor-image-version <numero>     Asettaa suoritettavan tiedoston revisionumeron\n"
 
 #, c-format
 msgid "  --minor-image-version <number>     Set revision number of the executable\n"
 msgstr "  --minor-image-version <numero>     Asettaa suoritettavan tiedoston revisionumeron\n"
 
-#: emultempl/pe.em:325
+#: emultempl/pe.em:380
 #, c-format
 msgid "  --minor-os-version <number>        Set minimum required OS revision\n"
 msgstr "  --minor-os-version <numero>        Aseta pienin vaadittu käyttöjärjestelmän revisionumero\n"
 
 #, c-format
 msgid "  --minor-os-version <number>        Set minimum required OS revision\n"
 msgstr "  --minor-os-version <numero>        Aseta pienin vaadittu käyttöjärjestelmän revisionumero\n"
 
-#: emultempl/pe.em:326
+#: emultempl/pe.em:381
 #, c-format
 msgid "  --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
 msgstr "  --minor-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän revisionumero\n"
 
 #, c-format
 msgid "  --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
 msgstr "  --minor-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän revisionumero\n"
 
-#: emultempl/pe.em:327
+#: emultempl/pe.em:382
 #, c-format
 msgid "  --section-alignment <size>         Set section alignment\n"
 msgstr "  --section-alignment <koko>         Aseta lohkotasaus\n"
 
 #, c-format
 msgid "  --section-alignment <size>         Set section alignment\n"
 msgstr "  --section-alignment <koko>         Aseta lohkotasaus\n"
 
-#: emultempl/pe.em:328
+#: emultempl/pe.em:383
 #, c-format
 msgid "  --stack <size>                     Set size of the initial stack\n"
 msgstr "  --stack <koko>                     Aseta pinon aloituskoko\n"
 
 #, c-format
 msgid "  --stack <size>                     Set size of the initial stack\n"
 msgstr "  --stack <koko>                     Aseta pinon aloituskoko\n"
 
-#: emultempl/pe.em:329
+#: emultempl/pe.em:384
 #, c-format
 msgid "  --subsystem <name>[:<version>]     Set required OS subsystem [& version]\n"
 msgstr "  --subsystem <nimi>[:<versio>]      Aseta vaadittu käyttöjärjestelmän alijärjestelmä [& versio]\n"
 
 #, c-format
 msgid "  --subsystem <name>[:<version>]     Set required OS subsystem [& version]\n"
 msgstr "  --subsystem <nimi>[:<versio>]      Aseta vaadittu käyttöjärjestelmän alijärjestelmä [& versio]\n"
 
-#: emultempl/pe.em:330
+#: emultempl/pe.em:385
 #, c-format
 msgid "  --support-old-code                 Support interworking with old code\n"
 msgstr "  --support-old-code                 Tue yhteistoimivuutta vanhan koodin kanssa\n"
 
 #, c-format
 msgid "  --support-old-code                 Support interworking with old code\n"
 msgstr "  --support-old-code                 Tue yhteistoimivuutta vanhan koodin kanssa\n"
 
-#: emultempl/pe.em:331
+#: emultempl/pe.em:386
 #, c-format
 msgid "  --thumb-entry=<symbol>             Set the entry point to be Thumb <symbol>\n"
 msgstr "  --thumb-entry=<symboli>            Aseta  tulokohdaksi ”Thumb <symboli>”\n"
 
 #, c-format
 msgid "  --thumb-entry=<symbol>             Set the entry point to be Thumb <symbol>\n"
 msgstr "  --thumb-entry=<symboli>            Aseta  tulokohdaksi ”Thumb <symboli>”\n"
 
-#: emultempl/pe.em:333
+#: emultempl/pe.em:388
 #, c-format
 msgid "  --add-stdcall-alias                Export symbols with and without @nn\n"
 msgstr "  --add-stdcall-alias                Vie symbolit ilman @nn:ää ja sen kanssa\n"
 
 #, c-format
 msgid "  --add-stdcall-alias                Export symbols with and without @nn\n"
 msgstr "  --add-stdcall-alias                Vie symbolit ilman @nn:ää ja sen kanssa\n"
 
-#: emultempl/pe.em:334
+#: emultempl/pe.em:389
 #, c-format
 msgid "  --disable-stdcall-fixup            Don't link _sym to _sym@nn\n"
 msgstr "  --disable-stdcall-fixup            Älä linkitä symbolia _sym symboliin _sym@nn\n"
 
 #, c-format
 msgid "  --disable-stdcall-fixup            Don't link _sym to _sym@nn\n"
 msgstr "  --disable-stdcall-fixup            Älä linkitä symbolia _sym symboliin _sym@nn\n"
 
-#: emultempl/pe.em:335
+#: emultempl/pe.em:390
 #, c-format
 msgid "  --enable-stdcall-fixup             Link _sym to _sym@nn without warnings\n"
 msgstr "  --enable-stdcall-fixup             Linkitä symboli _sym symboliin _sym@nn ilman varoituksia\n"
 
 #, c-format
 msgid "  --enable-stdcall-fixup             Link _sym to _sym@nn without warnings\n"
 msgstr "  --enable-stdcall-fixup             Linkitä symboli _sym symboliin _sym@nn ilman varoituksia\n"
 
-#: emultempl/pe.em:336
+#: emultempl/pe.em:391
 #, c-format
 msgid "  --exclude-symbols sym,sym,...      Exclude symbols from automatic export\n"
 msgstr "  --exclude-symbols sym,sym,...      Jätä symbolit pois automaattisesta viennistä\n"
 
 #, c-format
 msgid "  --exclude-symbols sym,sym,...      Exclude symbols from automatic export\n"
 msgstr "  --exclude-symbols sym,sym,...      Jätä symbolit pois automaattisesta viennistä\n"
 
-#: emultempl/pe.em:337
+#: emultempl/pe.em:392
 #, c-format
 msgid "  --exclude-libs lib,lib,...         Exclude libraries from automatic export\n"
 msgstr "  --exclude-libs lib,lib,...         Jätä kirjastot pois automaattisesta viennistä\n"
 
 #, c-format
 msgid "  --exclude-libs lib,lib,...         Exclude libraries from automatic export\n"
 msgstr "  --exclude-libs lib,lib,...         Jätä kirjastot pois automaattisesta viennistä\n"
 
-#: emultempl/pe.em:338
+#: emultempl/pe.em:393
+#, c-format
+msgid "  --exclude-modules-for-implib mod,mod,...\n"
+msgstr "  --exclude-modules-for-implib moduli,moduli,...\n"
+
+#  Tämä teksti jatkuu seuraavassa merkkijonossa
+#: emultempl/pe.em:394
+#, c-format
+msgid "                                     Exclude objects, archive members from auto\n"
+msgstr "                                     Jätä pois objektit, arkistojäsenet automaattisesta\n"
+
+#  Tämä teksti on jatkoa edelliselle merkkijonolle
+#: emultempl/pe.em:395
+#, c-format
+msgid "                                     export, place into import library instead.\n"
+msgstr "                                     viennistä, sijoita ne sen sijaan tuontikirjastoon.\n"
+
+#: emultempl/pe.em:396
 #, c-format
 msgid "  --export-all-symbols               Automatically export all globals to DLL\n"
 msgstr "  --export-all-symbols               Vie kaikki yleismuuttujat automaattisesti DLL:ään\n"
 
 #, c-format
 msgid "  --export-all-symbols               Automatically export all globals to DLL\n"
 msgstr "  --export-all-symbols               Vie kaikki yleismuuttujat automaattisesti DLL:ään\n"
 
-#: emultempl/pe.em:339
+#: emultempl/pe.em:397
 #, c-format
 msgid "  --kill-at                          Remove @nn from exported symbols\n"
 msgstr "  --kill-at                          Poista @nn viedyistä symboleista\n"
 
 #, c-format
 msgid "  --kill-at                          Remove @nn from exported symbols\n"
 msgstr "  --kill-at                          Poista @nn viedyistä symboleista\n"
 
-#: emultempl/pe.em:340
+#: emultempl/pe.em:398
 #, c-format
 msgid "  --out-implib <file>                Generate import library\n"
 msgstr "  --out-implib <tiedosto>            Luo tuontikirjasto\n"
 
 #, c-format
 msgid "  --out-implib <file>                Generate import library\n"
 msgstr "  --out-implib <tiedosto>            Luo tuontikirjasto\n"
 
-#: emultempl/pe.em:341
+#: emultempl/pe.em:399
 #, c-format
 msgid "  --output-def <file>                Generate a .DEF file for the built DLL\n"
 msgstr "  --output-def <tiedosto>            Luo .DEF-tiedosto DLL:n rakentamiseen\n"
 
 #, c-format
 msgid "  --output-def <file>                Generate a .DEF file for the built DLL\n"
 msgstr "  --output-def <tiedosto>            Luo .DEF-tiedosto DLL:n rakentamiseen\n"
 
-#: emultempl/pe.em:342
+#: emultempl/pe.em:400
 #, c-format
 msgid "  --warn-duplicate-exports           Warn about duplicate exports.\n"
 msgstr "  --warn-duplicate-exports           Varoita kaksoiskappalevienneistä.\n"
 
 #, c-format
 msgid "  --warn-duplicate-exports           Warn about duplicate exports.\n"
 msgstr "  --warn-duplicate-exports           Varoita kaksoiskappalevienneistä.\n"
 
-#: emultempl/pe.em:343
+#: emultempl/pe.em:401
 #, c-format
 msgid ""
 "  --compat-implib                    Create backward compatible import libs;\n"
 #, c-format
 msgid ""
 "  --compat-implib                    Create backward compatible import libs;\n"
@@ -180,7 +199,7 @@ msgstr ""
 "  --compat-implib                    Luo taaksepäin yhteensopivat tuontikirjastot;\n"
 "                                       luo myös __imp_<SYMBOLI>.\n"
 
 "  --compat-implib                    Luo taaksepäin yhteensopivat tuontikirjastot;\n"
 "                                       luo myös __imp_<SYMBOLI>.\n"
 
-#: emultempl/pe.em:345
+#: emultempl/pe.em:403
 #, c-format
 msgid ""
 "  --enable-auto-image-base           Automatically choose image base for DLLs\n"
 #, c-format
 msgid ""
 "  --enable-auto-image-base           Automatically choose image base for DLLs\n"
@@ -189,23 +208,23 @@ msgstr ""
 "  --enable-auto-image-base           Valitse automaattisesti vedoskanta DLL:ille\n"
 "                                       jollei käyttäjä määrittele sellaista\n"
 
 "  --enable-auto-image-base           Valitse automaattisesti vedoskanta DLL:ille\n"
 "                                       jollei käyttäjä määrittele sellaista\n"
 
-#: emultempl/pe.em:347
+#: emultempl/pe.em:405
 #, c-format
 msgid "  --disable-auto-image-base          Do not auto-choose image base. (default)\n"
 msgstr "  --disable-auto-image-base          Älä valitse automaattisesti vedoskantaa. (oletus)\n"
 
 #, c-format
 msgid "  --disable-auto-image-base          Do not auto-choose image base. (default)\n"
 msgstr "  --disable-auto-image-base          Älä valitse automaattisesti vedoskantaa. (oletus)\n"
 
-#: emultempl/pe.em:348
+#: emultempl/pe.em:406
 #, c-format
 msgid ""
 "  --dll-search-prefix=<string>       When linking dynamically to a dll without\n"
 "                                       an importlib, use <string><basename>.dll\n"
 "                                       in preference to lib<basename>.dll \n"
 msgstr ""
 #, c-format
 msgid ""
 "  --dll-search-prefix=<string>       When linking dynamically to a dll without\n"
 "                                       an importlib, use <string><basename>.dll\n"
 "                                       in preference to lib<basename>.dll \n"
 msgstr ""
-"  --dll-search-prefix=<string>       Kun linkitetään dynaamisesti dll:ään ilman\n"
-"                                       tuontikirjastoa, käytä ”<string><kantanimi>.dll”\n"
-"                                       mieluimmin kuin ”lib<basename>.dll” \n"
+"  --dll-search-prefix=<merkkijono>   Kun linkitetään dynaamisesti dll:ään ilman\n"
+"                                       tuontikirjastoa, käytä ”<merkkijono><kantanimi>.dll”\n"
+"                                       mieluimmin kuin ”lib<kantanimi>.dll” \n"
 
 
-#: emultempl/pe.em:351
+#: emultempl/pe.em:409
 #, c-format
 msgid ""
 "  --enable-auto-import               Do sophistcated linking of _sym to\n"
 #, c-format
 msgid ""
 "  --enable-auto-import               Do sophistcated linking of _sym to\n"
@@ -214,12 +233,12 @@ msgstr ""
 "  --enable-auto-import               Linkitä symboli _sym edistyksellisesti\n"
 "                                       symboliin __imp_sym DATA-viitteille\n"
 
 "  --enable-auto-import               Linkitä symboli _sym edistyksellisesti\n"
 "                                       symboliin __imp_sym DATA-viitteille\n"
 
-#: emultempl/pe.em:353
+#: emultempl/pe.em:411
 #, c-format
 msgid "  --disable-auto-import              Do not auto-import DATA items from DLLs\n"
 msgstr "  --disable-auto-import              Älä tuo DATA-alkioita DLL:stä automaattisesti\n"
 
 #, c-format
 msgid "  --disable-auto-import              Do not auto-import DATA items from DLLs\n"
 msgstr "  --disable-auto-import              Älä tuo DATA-alkioita DLL:stä automaattisesti\n"
 
-#: emultempl/pe.em:354
+#: emultempl/pe.em:412
 #, c-format
 msgid ""
 "  --enable-runtime-pseudo-reloc      Work around auto-import limitations by\n"
 #, c-format
 msgid ""
 "  --enable-runtime-pseudo-reloc      Work around auto-import limitations by\n"
@@ -230,7 +249,7 @@ msgstr ""
 "                                       lisäämällä ajoaikaisesti ratkaistavia pseudo-\n"
 "                                       uudelleensijoitusalkioita.\n"
 
 "                                       lisäämällä ajoaikaisesti ratkaistavia pseudo-\n"
 "                                       uudelleensijoitusalkioita.\n"
 
-#: emultempl/pe.em:357
+#: emultempl/pe.em:415
 #, c-format
 msgid ""
 "  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations for\n"
 #, c-format
 msgid ""
 "  --disable-runtime-pseudo-reloc     Do not add runtime pseudo-relocations for\n"
@@ -239,7 +258,7 @@ msgstr ""
 "  --disable-runtime-pseudo-reloc     Älä lisää ajoaikaisia pseudo-uudelleensijoitusalkioita\n"
 "                                       automaattisesti tuotuun DATA:an.\n"
 
 "  --disable-runtime-pseudo-reloc     Älä lisää ajoaikaisia pseudo-uudelleensijoitusalkioita\n"
 "                                       automaattisesti tuotuun DATA:an.\n"
 
-#: emultempl/pe.em:359
+#: emultempl/pe.em:417
 #, c-format
 msgid ""
 "  --enable-extra-pe-debug            Enable verbose debug output when building\n"
 #, c-format
 msgid ""
 "  --enable-extra-pe-debug            Enable verbose debug output when building\n"
@@ -248,7 +267,7 @@ msgstr ""
 "  --enable-extra-pe-debug            Salli lavea debug-tulostus kun muodostetaan\n"
 "                                       tai linkitetään DLL:ään (erityisesti automaattisessa tuonnissa)\n"
 
 "  --enable-extra-pe-debug            Salli lavea debug-tulostus kun muodostetaan\n"
 "                                       tai linkitetään DLL:ään (erityisesti automaattisessa tuonnissa)\n"
 
-#: emultempl/pe.em:362
+#: emultempl/pe.em:420
 #, c-format
 msgid ""
 "  --large-address-aware              Executable supports virtual addresses\n"
 #, c-format
 msgid ""
 "  --large-address-aware              Executable supports virtual addresses\n"
@@ -257,84 +276,156 @@ msgstr ""
 "  --large-address-aware              Suoritettava tiedosto tukee virtuaaliosoitteita,\n"
 "                                       jotka ovat suurempia kuin 2 gigatavua\n"
 
 "  --large-address-aware              Suoritettava tiedosto tukee virtuaaliosoitteita,\n"
 "                                       jotka ovat suurempia kuin 2 gigatavua\n"
 
+#: emultempl/pe.em:422
+#, c-format
+msgid ""
+"  --enable-long-section-names        Use long COFF section names even in\n"
+"                                       executable image files\n"
+msgstr ""
+"  --enable-long-section-names        Käytä pitkiä COFF-lohkonimiä myös suoritettavissa\n"
+"                                       vedostiedostoissa\n"
+
+#: emultempl/pe.em:424
+#, c-format
+msgid ""
+"  --disable-long-section-names       Never use long COFF section names, even\n"
+"                                       in object files\n"
+msgstr ""
+"  --disable-long-section-names       Älä koskaan käytä pitkiä COFF-lohkonimiä, ei edes\n"
+"                                       objektitiedostoissa\n"
+
+#: emultempl/pe.em:426
+#, c-format
+msgid ""
+"  --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t       address space layout randomization (ASLR)\n"
+msgstr ""
+"  --dynamicbase\t\t\t Vedoksen perusosoite voidaan sijoittaa uudelleen\n"
+"\t\t\t\t       käyttäen osoitetilan asettelun satunnaislukuhajautusta (ASLR)\n"
+
+#: emultempl/pe.em:428
+#, c-format
+msgid "  --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr "  --forceinteg\t\t Koodin eheystarkistukset ovat valvottuja\n"
+
+#: emultempl/pe.em:429
+#, c-format
+msgid "  --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr "  --nxcompat\t\t Vedos on yhteneväinen datasuorituseston kanssa\n"
+
+#: emultempl/pe.em:430
+#, c-format
+msgid "  --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr "  --no-isolation\t\t Vedos ymmärtää eristyksen, mutta ei eristä vedosta\n"
+
+#  SEH on lyhenne sanoista "SE Handler"
 #: emultempl/pe.em:431
 #: emultempl/pe.em:431
+#, c-format
+msgid ""
+"  --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t       be called in this image\n"
+msgstr ""
+"  --no-seh\t\t\t Vedos ei käytä SE-käsittelijää. SE-käsittelijää ei\n"
+"\t\t\t\t       saa kutsua tässä vedoksessa\n"
+
+#: emultempl/pe.em:433
+#, c-format
+msgid "  --no-bind\t\t\t Do not bind this image\n"
+msgstr "  --no-bind\t\t\t Älä sido tätä vedosta\n"
+
+#: emultempl/pe.em:434
+#, c-format
+msgid "  --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr "  --wdmdriver\t\t Ajuri käyttää WDM-mallia\n"
+
+#: emultempl/pe.em:435
+#, c-format
+msgid "  --tsaware       \t\t Image is Terminal Server aware\n"
+msgstr "  --tsaware       \t\t Vedos on tietoinen pääteikkunapalvelimesta\n"
+
+#: emultempl/pe.em:503
 msgid "%P: warning: bad version number in -subsystem option\n"
 msgstr "%P: varoitus: virheellinen versionumero ”-subsystem”-valitsimessa\n"
 
 msgid "%P: warning: bad version number in -subsystem option\n"
 msgstr "%P: varoitus: virheellinen versionumero ”-subsystem”-valitsimessa\n"
 
-#: emultempl/pe.em:462
+#: emultempl/pe.em:534
 msgid "%P%F: invalid subsystem type %s\n"
 msgstr "%P%F: Virheellinen alijärjestelmätyyppi %s\n"
 
 msgid "%P%F: invalid subsystem type %s\n"
 msgstr "%P%F: Virheellinen alijärjestelmätyyppi %s\n"
 
-#: emultempl/pe.em:501
+#: emultempl/pe.em:573
 msgid "%P%F: invalid hex number for PE parameter '%s'\n"
 msgstr "%P%F: virheellinen heksadesimaalinumero PE-parametrille ”%s”\n"
 
 msgid "%P%F: invalid hex number for PE parameter '%s'\n"
 msgstr "%P%F: virheellinen heksadesimaalinumero PE-parametrille ”%s”\n"
 
-#: emultempl/pe.em:518
+#: emultempl/pe.em:590
 msgid "%P%F: strange hex info for PE parameter '%s'\n"
 msgstr "%P%F: outo heksadesimaalinumerotieto PE-parameterílle ”%s”\n"
 
 msgid "%P%F: strange hex info for PE parameter '%s'\n"
 msgstr "%P%F: outo heksadesimaalinumerotieto PE-parameterílle ”%s”\n"
 
-#: emultempl/pe.em:535
+#: emultempl/pe.em:607
 #, c-format
 msgid "%s: Can't open base file %s\n"
 msgstr "%s: Ei voi avata kantatiedostoa %s\n"
 
 #, c-format
 msgid "%s: Can't open base file %s\n"
 msgstr "%s: Ei voi avata kantatiedostoa %s\n"
 
-#: emultempl/pe.em:752
+#: emultempl/pe.em:870
 msgid "%P: warning, file alignment > section alignment.\n"
 msgstr "%P: varoitus, tiedostotasaus > lohkotasaus.\n"
 
 msgid "%P: warning, file alignment > section alignment.\n"
 msgstr "%P: varoitus, tiedostotasaus > lohkotasaus.\n"
 
-#: emultempl/pe.em:839 emultempl/pe.em:866
+#: emultempl/pe.em:899
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr "%P: varoitus: --export-dynamic ei tueta PE-kohteille, tarkoititko --export-all-symbols?\n"
+
+#: emultempl/pe.em:963 emultempl/pe.em:990
 #, c-format
 msgid "Warning: resolving %s by linking to %s\n"
 msgstr "Varoitus: ratkaistaan %s linkittämällä kohteeseen %s\n"
 
 #, c-format
 msgid "Warning: resolving %s by linking to %s\n"
 msgstr "Varoitus: ratkaistaan %s linkittämällä kohteeseen %s\n"
 
-#: emultempl/pe.em:844 emultempl/pe.em:871
+#  enable -> disable ???
+#: emultempl/pe.em:968 emultempl/pe.em:995
 msgid "Use --enable-stdcall-fixup to disable these warnings\n"
 msgid "Use --enable-stdcall-fixup to disable these warnings\n"
-msgstr "Käytä --enable-stdcall-fixup disabloimaan nämä varoitukset\n"
+msgstr "Käytä --enable-stdcall-fixup poistamaan nämä varoitukset käytöstä\n"
 
 
-#: emultempl/pe.em:845 emultempl/pe.em:872
+#: emultempl/pe.em:969 emultempl/pe.em:996
 msgid "Use --disable-stdcall-fixup to disable these fixups\n"
 msgid "Use --disable-stdcall-fixup to disable these fixups\n"
-msgstr "Käytä --disable-stdcall-fixup-valitsinta näiden korjauksien disabloimiseksi\n"
+msgstr "Käytä --disable-stdcall-fixup poistamaan nämä korjaukset käytöstä\n"
 
 
-#: emultempl/pe.em:891
+#: emultempl/pe.em:1015
 #, c-format
 msgid "%C: Cannot get section contents - auto-import exception\n"
 msgstr "%C: Lohkosisältöä ei saada - automaattituonnin poikkeus\n"
 
 #, c-format
 msgid "%C: Cannot get section contents - auto-import exception\n"
 msgstr "%C: Lohkosisältöä ei saada - automaattituonnin poikkeus\n"
 
-#: emultempl/pe.em:931
+#: emultempl/pe.em:1055
 #, c-format
 msgid "Info: resolving %s by linking to %s (auto-import)\n"
 msgstr "Tieto: ratkaistaan %s linkittämällä kohteeseen %s (automaattituonti)\n"
 
 #, c-format
 msgid "Info: resolving %s by linking to %s (auto-import)\n"
 msgstr "Tieto: ratkaistaan %s linkittämällä kohteeseen %s (automaattituonti)\n"
 
-#: emultempl/pe.em:938
+#: emultempl/pe.em:1062
 msgid ""
 "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
 msgid ""
 "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
-"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs."
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
 msgstr ""
 "%P: varoitus: automaattinen tuonti on aktivoitu määrittelemättä ”--enable-auto-import”-argumenttia komentorivillä.\n"
 msgstr ""
 "%P: varoitus: automaattinen tuonti on aktivoitu määrittelemättä ”--enable-auto-import”-argumenttia komentorivillä.\n"
-"Tämän pitäisi toimia ellei se sisällä vakiodatarakenteita, jotka viittaavat automaattisesti tuotujen DLL:ien symboleihin."
+"Tämän pitäisi toimia ellei se sisällä vakiodatarakenteita, jotka viittaavat automaattisesti tuotujen DLL:ien symboleihin.\n"
 
 
-#: emultempl/pe.em:945 emultempl/pe.em:1113 emultempl/pe.em:1319 ldcref.c:488
-#: ldcref.c:586 ldmain.c:1105 ldmisc.c:285 pe-dll.c:622 pe-dll.c:1153
-#: pe-dll.c:1250
+#: emultempl/pe.em:1069 emultempl/pe.em:1268 emultempl/pe.em:1474 ldcref.c:488
+#: ldcref.c:586 ldmain.c:1107 ldmisc.c:285 pe-dll.c:683 pe-dll.c:1227
+#: pe-dll.c:1324
 msgid "%B%F: could not read symbols: %E\n"
 msgstr "%B%F: ei voinut lukea symboleja: %E\n"
 
 msgid "%B%F: could not read symbols: %E\n"
 msgstr "%B%F: ei voinut lukea symboleja: %E\n"
 
-#: emultempl/pe.em:1018
+#: emultempl/pe.em:1149
 msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
 msgstr "%F%P: ei voi suorittaa PE-toimintoja ei-PE-tulostetiedostossa ”%B”.\n"
 
 msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
 msgstr "%F%P: ei voi suorittaa PE-toimintoja ei-PE-tulostetiedostossa ”%B”.\n"
 
-#: emultempl/pe.em:1360
+#: emultempl/pe.em:1515
 #, c-format
 msgid "Errors encountered processing file %s\n"
 msgstr "Tiedostoa %s käsitellessä syntyi virheitä\n"
 
 #, c-format
 msgid "Errors encountered processing file %s\n"
 msgstr "Tiedostoa %s käsitellessä syntyi virheitä\n"
 
-#: emultempl/pe.em:1383
+#: emultempl/pe.em:1538
 #, c-format
 #, c-format
-msgid "Errors encountered processing file %s for interworking"
-msgstr "Virheitä syntyi käsiteltäessä tiedostoa %s yhteistoimivuutta varten"
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr "Virheitä syntyi käsiteltäessä tiedostoa %s yhteistoimivuutta varten\n"
 
 
-#: emultempl/pe.em:1444 ldexp.c:540 ldlang.c:3131 ldlang.c:6448 ldlang.c:6479
-#: ldmain.c:1050
+#: emultempl/pe.em:1599 ldexp.c:539 ldlang.c:3276 ldlang.c:6636 ldlang.c:6667
+#: ldmain.c:1052
 msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
 msgstr "%P%F: bfd_link_hash_lookup epäonnistui: %E\n"
 
 msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
 msgstr "%P%F: bfd_link_hash_lookup epäonnistui: %E\n"
 
@@ -379,7 +470,7 @@ msgstr "Ei symboleja\n"
 msgid "%P: symbol `%T' missing from main hash table\n"
 msgstr "%P: puuttuu symboli ”%T” pää-hash-taulusta\n"
 
 msgid "%P: symbol `%T' missing from main hash table\n"
 msgstr "%P: puuttuu symboli ”%T” pää-hash-taulusta\n"
 
-#: ldcref.c:648 ldcref.c:655 ldmain.c:1139 ldmain.c:1146
+#: ldcref.c:648 ldcref.c:655 ldmain.c:1141 ldmain.c:1148
 msgid "%B%F: could not read relocs: %E\n"
 msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
 
 msgid "%B%F: could not read relocs: %E\n"
 msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
 
@@ -391,23 +482,23 @@ msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
 msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
 msgstr "%X%C: kielletyt ristiviitteet lohkosta %s lohkoon ”%T” kohteessa %s\n"
 
 msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
 msgstr "%X%C: kielletyt ristiviitteet lohkosta %s lohkoon ”%T” kohteessa %s\n"
 
-#: ldctor.c:84
+#: ldctor.c:85
 msgid "%P%X: Different relocs used in set %s\n"
 msgstr "%P%X: Erilaisia reloc-alkioita käytetty joukossa %s\n"
 
 msgid "%P%X: Different relocs used in set %s\n"
 msgstr "%P%X: Erilaisia reloc-alkioita käytetty joukossa %s\n"
 
-#: ldctor.c:102
+#: ldctor.c:103
 msgid "%P%X: Different object file formats composing set %s\n"
 msgstr "%P%X: Erilaisia objektitiedostomuotoja koottaessa joukkoa %s\n"
 
 msgid "%P%X: Different object file formats composing set %s\n"
 msgstr "%P%X: Erilaisia objektitiedostomuotoja koottaessa joukkoa %s\n"
 
-#: ldctor.c:281 ldctor.c:295
+#: ldctor.c:279 ldctor.c:293
 msgid "%P%X: %s does not support reloc %s for set %s\n"
 msgstr "%P%X: %s ei tue reloc-alkiota %s joukolle %s\n"
 
 msgid "%P%X: %s does not support reloc %s for set %s\n"
 msgstr "%P%X: %s ei tue reloc-alkiota %s joukolle %s\n"
 
-#: ldctor.c:316
+#: ldctor.c:314
 msgid "%P%X: Unsupported size %d for set %s\n"
 msgstr "%P%X: Kokoa %d ei tueta joukolle %s\n"
 
 msgid "%P%X: Unsupported size %d for set %s\n"
 msgstr "%P%X: Kokoa %d ei tueta joukolle %s\n"
 
-#: ldctor.c:337
+#: ldctor.c:335
 msgid ""
 "\n"
 "Set                 Symbol\n"
 msgid ""
 "\n"
 "Set                 Symbol\n"
@@ -417,88 +508,88 @@ msgstr ""
 "Joukko              Symboli\n"
 "\n"
 
 "Joukko              Symboli\n"
 "\n"
 
-#: ldemul.c:235
+#: ldemul.c:239
 #, c-format
 msgid "%S SYSLIB ignored\n"
 msgstr "%S SYSLIB:ä ei oteta huomioon\n"
 
 #, c-format
 msgid "%S SYSLIB ignored\n"
 msgstr "%S SYSLIB:ä ei oteta huomioon\n"
 
-#: ldemul.c:241
+#: ldemul.c:245
 #, c-format
 msgid "%S HLL ignored\n"
 msgstr "%S HLL:ä ei oteta huomioon\n"
 
 #, c-format
 msgid "%S HLL ignored\n"
 msgstr "%S HLL:ä ei oteta huomioon\n"
 
-#: ldemul.c:261
+#: ldemul.c:265
 msgid "%P: unrecognised emulation mode: %s\n"
 msgstr "%P: tunnistamaton emulointitila: %s\n"
 
 msgid "%P: unrecognised emulation mode: %s\n"
 msgstr "%P: tunnistamaton emulointitila: %s\n"
 
-#: ldemul.c:262
+#: ldemul.c:266
 msgid "Supported emulations: "
 msgstr "Tuetut emuloinnit:"
 
 msgid "Supported emulations: "
 msgstr "Tuetut emuloinnit:"
 
-#: ldemul.c:304
+#: ldemul.c:308
 #, c-format
 msgid "  no emulation specific options.\n"
 msgstr "  ei emulointikohtaisia valitsimia.\n"
 
 #, c-format
 msgid "  no emulation specific options.\n"
 msgstr "  ei emulointikohtaisia valitsimia.\n"
 
-#: ldexp.c:350
+#: ldexp.c:352
 #, c-format
 msgid "%F%S %% by zero\n"
 msgstr "%F%S %% nollalla\n"
 
 #, c-format
 msgid "%F%S %% by zero\n"
 msgstr "%F%S %% nollalla\n"
 
-#: ldexp.c:358
+#: ldexp.c:360
 #, c-format
 msgid "%F%S / by zero\n"
 msgstr "%F%S / nollalla\n"
 
 #, c-format
 msgid "%F%S / by zero\n"
 msgstr "%F%S / nollalla\n"
 
-#: ldexp.c:554
+#: ldexp.c:553
 #, c-format
 msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
 msgstr "%X%S: lausekkeessa viitattu ratkaisemattomaan symboliin ”%s”\n"
 
 #, c-format
 msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
 msgstr "%X%S: lausekkeessa viitattu ratkaisemattomaan symboliin ”%s”\n"
 
-#: ldexp.c:565
+#: ldexp.c:564
 #, c-format
 msgid "%F%S: undefined symbol `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu ratkaisemattomaan symboliin ”%s”\n"
 
 #, c-format
 msgid "%F%S: undefined symbol `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu ratkaisemattomaan symboliin ”%s”\n"
 
-#: ldexp.c:586 ldexp.c:603 ldexp.c:630
+#: ldexp.c:585 ldexp.c:602 ldexp.c:629
 #, c-format
 msgid "%F%S: undefined section `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu määrittelemättömään lohkoon ”%s”\n"
 
 #, c-format
 msgid "%F%S: undefined section `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu määrittelemättömään lohkoon ”%s”\n"
 
-#: ldexp.c:657 ldexp.c:670
+#: ldexp.c:656 ldexp.c:669
 #, c-format
 msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu määrittelemättömään MEMORY-alueeseen ”%s”\n"
 
 #, c-format
 msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu määrittelemättömään MEMORY-alueeseen ”%s”\n"
 
-#: ldexp.c:681
+#: ldexp.c:680
 #, c-format
 msgid "%F%S: unknown constant `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu tuntemattomaan vakioon ”%s”\n"
 
 #, c-format
 msgid "%F%S: unknown constant `%s' referenced in expression\n"
 msgstr "%F%S: lausekkeessa viitattu tuntemattomaan vakioon ”%s”\n"
 
-#: ldexp.c:742
+#: ldexp.c:741
 #, c-format
 msgid "%F%S can not PROVIDE assignment to location counter\n"
 msgstr "%F%S ei voi ANTAA sijoitusta sijoituslaskuriin\n"
 
 #, c-format
 msgid "%F%S can not PROVIDE assignment to location counter\n"
 msgstr "%F%S ei voi ANTAA sijoitusta sijoituslaskuriin\n"
 
-#: ldexp.c:756
+#: ldexp.c:755
 #, c-format
 msgid "%F%S invalid assignment to location counter\n"
 msgstr "%F%S virheellinen sijoitus sijoituslaskuriin\n"
 
 #, c-format
 msgid "%F%S invalid assignment to location counter\n"
 msgstr "%F%S virheellinen sijoitus sijoituslaskuriin\n"
 
-#: ldexp.c:759
+#: ldexp.c:758
 #, c-format
 msgid "%F%S assignment to location counter invalid outside of SECTION\n"
 msgstr "%F%S sijoitus sijoituslaskuriin virheellinen SECTION-lohkon ulkopuolella\n"
 
 #, c-format
 msgid "%F%S assignment to location counter invalid outside of SECTION\n"
 msgstr "%F%S sijoitus sijoituslaskuriin virheellinen SECTION-lohkon ulkopuolella\n"
 
-#: ldexp.c:768
+#: ldexp.c:767
 msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
 msgstr "%F%S ei voi siirtää sijoituslaskuria taaksepäin (arvosta %V arvoon %V)\n"
 
 msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
 msgstr "%F%S ei voi siirtää sijoituslaskuria taaksepäin (arvosta %V arvoon %V)\n"
 
-#: ldexp.c:807
+#: ldexp.c:806
 msgid "%P%F:%s: hash creation failed\n"
 msgstr "%P%F:%s: hash-luonti ei onnistunut\n"
 
 msgid "%P%F:%s: hash creation failed\n"
 msgstr "%P%F:%s: hash-luonti ei onnistunut\n"
 
-#: ldexp.c:1066 ldexp.c:1091 ldexp.c:1150
+#: ldexp.c:1065 ldexp.c:1090 ldexp.c:1149
 #, c-format
 msgid "%F%S: nonconstant expression for %s\n"
 msgstr "%F%S: ei-vakio lauseke kohteelle %s\n"
 #, c-format
 msgid "%F%S: nonconstant expression for %s\n"
 msgstr "%F%S: ei-vakio lauseke kohteelle %s\n"
@@ -552,31 +643,43 @@ msgstr "ei löydy skriptitiedostoa %s\n"
 msgid "opened script file %s\n"
 msgstr "avattiin skriptitiedosto %s\n"
 
 msgid "opened script file %s\n"
 msgstr "avattiin skriptitiedosto %s\n"
 
-#: ldfile.c:601
+#: ldfile.c:586
 msgid "%P%F: cannot open linker script file %s: %E\n"
 msgstr "%P%F: ei voi avata linkkerin skriptitiedostoa %s: %E\n"
 
 msgid "%P%F: cannot open linker script file %s: %E\n"
 msgstr "%P%F: ei voi avata linkkerin skriptitiedostoa %s: %E\n"
 
-#: ldfile.c:648
+#: ldfile.c:651
 msgid "%P%F: cannot represent machine `%s'\n"
 msgstr "%P%F: ei voi edustaa konetta ”%s”\n"
 
 msgid "%P%F: cannot represent machine `%s'\n"
 msgstr "%P%F: ei voi edustaa konetta ”%s”\n"
 
-#: ldlang.c:1124 ldlang.c:1166 ldlang.c:2880
+#: ldlang.c:1142 ldlang.c:1184 ldlang.c:3006
 msgid "%P%F: can not create hash table: %E\n"
 msgstr "%P%F: ei voida luoda hash-taulua: %E\n"
 
 msgid "%P%F: can not create hash table: %E\n"
 msgstr "%P%F: ei voida luoda hash-taulua: %E\n"
 
-#: ldlang.c:1209
-msgid "%P:%S: warning: redeclaration of memory region '%s'\n"
-msgstr "%P:%S: varoitus: muistialueen ”%s” uudelleenmäärittely\n"
+#: ldlang.c:1235
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr "%P:%S: varoitus: uudelleenesitelty muistialue ”%s”\n"
+
+#: ldlang.c:1241
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr "%P:%S: varoitus: muistialuetta ”%s” ei ole esitelty\n"
+
+#: ldlang.c:1275
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr "%F%P:%S: virhe: alias oletusmuistialueelle\n"
+
+#: ldlang.c:1286
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr "%F%P:%S: virhe: uudelleenmäärittely muistialuealiakselle ”%s”\n"
 
 
-#: ldlang.c:1215
-msgid "%P:%S: warning: memory region %s not declared\n"
-msgstr "%P:%S: varoitus: muistialuetta %s ei ole määritelty\n"
+#: ldlang.c:1293
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr "%F%P:%S: virhe: muistialuetta ”%s” aliakselle ”%s” ei ole olemassa\n"
 
 
-#: ldlang.c:1270 ldlang.c:1305
+#: ldlang.c:1345 ldlang.c:1384
 msgid "%P%F: failed creating section `%s': %E\n"
 msgstr "%P%F: ei onnistuttu luomaan lohkoa ”%s”: %E\n"
 
 msgid "%P%F: failed creating section `%s': %E\n"
 msgstr "%P%F: ei onnistuttu luomaan lohkoa ”%s”: %E\n"
 
-#: ldlang.c:1799
+#: ldlang.c:1927
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -587,7 +690,7 @@ msgstr ""
 "Hylätyt syötelohkot\n"
 "\n"
 
 "Hylätyt syötelohkot\n"
 "\n"
 
-#: ldlang.c:1807
+#: ldlang.c:1935
 msgid ""
 "\n"
 "Memory Configuration\n"
 msgid ""
 "\n"
 "Memory Configuration\n"
@@ -597,23 +700,23 @@ msgstr ""
 "Muistiasetukset\n"
 "\n"
 
 "Muistiasetukset\n"
 "\n"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Name"
 msgstr "Nimi"
 
 msgid "Name"
 msgstr "Nimi"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Origin"
 msgstr "Alkupiste"
 
 msgid "Origin"
 msgstr "Alkupiste"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Length"
 msgstr "Pituus"
 
 msgid "Length"
 msgstr "Pituus"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Attributes"
 msgstr "Attribuutit"
 
 msgid "Attributes"
 msgstr "Attribuutit"
 
-#: ldlang.c:1849
+#: ldlang.c:1977
 #, c-format
 msgid ""
 "\n"
 #, c-format
 msgid ""
 "\n"
@@ -624,171 +727,189 @@ msgstr ""
 "Linkitysskripti ja muistikartta\n"
 "\n"
 
 "Linkitysskripti ja muistikartta\n"
 "\n"
 
-#: ldlang.c:1915
+#: ldlang.c:2045
 msgid "%P%F: Illegal use of `%s' section\n"
 msgstr "%P%F: ”%s”-lohkon virheellinen käyttö\n"
 
 msgid "%P%F: Illegal use of `%s' section\n"
 msgstr "%P%F: ”%s”-lohkon virheellinen käyttö\n"
 
-#: ldlang.c:1923
+#: ldlang.c:2054
 msgid "%P%F: output format %s cannot represent section called %s\n"
 msgstr "%P%F: tulostemuoto %s ei voi edustaa lohkoa, jonka nimi on %s\n"
 
 msgid "%P%F: output format %s cannot represent section called %s\n"
 msgstr "%P%F: tulostemuoto %s ei voi edustaa lohkoa, jonka nimi on %s\n"
 
-#: ldlang.c:2473
+#: ldlang.c:2602
 msgid "%B: file not recognized: %E\n"
 msgstr "%B: tiedostoa ei ole tunnistettu: %E\n"
 
 msgid "%B: file not recognized: %E\n"
 msgstr "%B: tiedostoa ei ole tunnistettu: %E\n"
 
-#: ldlang.c:2474
+#: ldlang.c:2603
 msgid "%B: matching formats:"
 msgstr "%B: täsmäävät muodot:"
 
 msgid "%B: matching formats:"
 msgstr "%B: täsmäävät muodot:"
 
-#: ldlang.c:2481
+#: ldlang.c:2610
 msgid "%F%B: file not recognized: %E\n"
 msgstr "%F%B: tiedostoa ei ole tunnistettu: %E\n"
 
 msgid "%F%B: file not recognized: %E\n"
 msgstr "%F%B: tiedostoa ei ole tunnistettu: %E\n"
 
-#: ldlang.c:2551
+#: ldlang.c:2677
 msgid "%F%B: member %B in archive is not an object\n"
 msgstr "%F%B: arkiston jäsen %B ei ole objekti\n"
 
 msgid "%F%B: member %B in archive is not an object\n"
 msgstr "%F%B: arkiston jäsen %B ei ole objekti\n"
 
-#: ldlang.c:2562 ldlang.c:2576
+#: ldlang.c:2688 ldlang.c:2702
 msgid "%F%B: could not read symbols: %E\n"
 msgstr "%F%B: ei voitu lukea symboleja: %E\n"
 
 msgid "%F%B: could not read symbols: %E\n"
 msgstr "%F%B: ei voitu lukea symboleja: %E\n"
 
-#: ldlang.c:2850
+#: ldlang.c:2976
 msgid "%P: warning: could not find any targets that match endianness requirement\n"
 msgstr "%P: varoitus: ei löytynyt yhtään kohdetta, joka olisi täsmännyt tavujärjestysvaatimuksen kanssa\n"
 
 #  Binary File Descriptor -kohde
 msgid "%P: warning: could not find any targets that match endianness requirement\n"
 msgstr "%P: varoitus: ei löytynyt yhtään kohdetta, joka olisi täsmännyt tavujärjestysvaatimuksen kanssa\n"
 
 #  Binary File Descriptor -kohde
-#: ldlang.c:2864
+#: ldlang.c:2990
 msgid "%P%F: target %s not found\n"
 msgstr "%P%F: bfd-kohdetta %s ei löytynyt\n"
 
 msgid "%P%F: target %s not found\n"
 msgstr "%P%F: bfd-kohdetta %s ei löytynyt\n"
 
-#: ldlang.c:2866
+#: ldlang.c:2992
 msgid "%P%F: cannot open output file %s: %E\n"
 msgstr "%P%F: ei voi avata tulostetiedostoa %s: %E\n"
 
 msgid "%P%F: cannot open output file %s: %E\n"
 msgstr "%P%F: ei voi avata tulostetiedostoa %s: %E\n"
 
-#: ldlang.c:2872
+#: ldlang.c:2998
 msgid "%P%F:%s: can not make object file: %E\n"
 msgstr "%P%F:%s: ei voi tehdä objektitiedostoa: %E\n"
 
 msgid "%P%F:%s: can not make object file: %E\n"
 msgstr "%P%F:%s: ei voi tehdä objektitiedostoa: %E\n"
 
-#: ldlang.c:2876
+#: ldlang.c:3002
 msgid "%P%F:%s: can not set architecture: %E\n"
 msgstr "%P%F:%s: ei voi asettaa arkkitehtuuria: %E\n"
 
 msgid "%P%F:%s: can not set architecture: %E\n"
 msgstr "%P%F:%s: ei voi asettaa arkkitehtuuria: %E\n"
 
-#: ldlang.c:3024
+#: ldlang.c:3143
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr "%P: varoitus: %s sisältää tulostelohkoja; unohditko valitsimen -T?\n"
+
+#: ldlang.c:3169
 msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
 msgstr "%P%F: bfd_hash_lookup ei onnistunut luomaan symbolia %s\n"
 
 msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
 msgstr "%P%F: bfd_hash_lookup ei onnistunut luomaan symbolia %s\n"
 
-#: ldlang.c:3042
+#: ldlang.c:3187
 msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
 msgstr "%P%F: bfd_hash_allocate ei onnistunut luomaan symbolia %s\n"
 
 msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
 msgstr "%P%F: bfd_hash_allocate ei onnistunut luomaan symbolia %s\n"
 
-#: ldlang.c:3418
+#: ldlang.c:3566
 msgid "%F%P: %s not found for insert\n"
 msgstr "%F%P: kohdetta %s ei löydy sijoitusta varten\n"
 
 msgid "%F%P: %s not found for insert\n"
 msgstr "%F%P: kohdetta %s ei löydy sijoitusta varten\n"
 
-#: ldlang.c:3633
+#: ldlang.c:3781
 msgid " load address 0x%V"
 msgstr " latausosoite 0x%V"
 
 msgid " load address 0x%V"
 msgstr " latausosoite 0x%V"
 
-#: ldlang.c:3873
+#  Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+#  assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+#  Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+#  haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+#  rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: ldlang.c:4052
 msgid "%W (size before relaxing)\n"
 msgid "%W (size before relaxing)\n"
-msgstr "%W (koko ennen relaxing)\n"
+msgstr "%W (koko ennen avartamista)\n"
 
 
-#: ldlang.c:3964
+#: ldlang.c:4143
 #, c-format
 msgid "Address of section %s set to "
 msgstr "Lohkon %s osoitteeksi asetetaan "
 
 #, c-format
 msgid "Address of section %s set to "
 msgstr "Lohkon %s osoitteeksi asetetaan "
 
-#: ldlang.c:4117
+#: ldlang.c:4296
 #, c-format
 msgid "Fail with %d\n"
 msgstr "Ei onnistuttu kohteella %d\n"
 
 #, c-format
 msgid "Fail with %d\n"
 msgstr "Ei onnistuttu kohteella %d\n"
 
-#: ldlang.c:4397
-msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
-msgstr "%X%P: lohko %s [%V -> %V] menee päällekkäin lohkon %s [%V -> %V] kanssa\n"
+#: ldlang.c:4579
+msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+msgstr "%X%P: lohko %s, joka on ladattu osoitteesta [%V,%V] menee päällekkäin lohkon %s, joka on ladattu osoitteesta [%V,%V]\n"
 
 
-#: ldlang.c:4413
-msgid "%X%P: region %s overflowed by %ld bytes\n"
-msgstr "%X%P: alueen %s ylitys on %ld tavua\n"
+#: ldlang.c:4595
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr "%X%P: alueen ”%s” ylitys on %ld tavua\n"
 
 
-#: ldlang.c:4436
-msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
-msgstr "%X%P: osoite 0x%v kohteen %B lohkossa %s ei ole alueen %s sisällä\n"
+#: ldlang.c:4618
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr "%X%P: osoite 0x%v kohteen %B lohkossa ”%s” ei ole alueen ”%s” sisällä\n"
 
 
-#: ldlang.c:4447
-msgid "%X%P: %B section %s will not fit in region %s\n"
-msgstr "%X%P: kohteen %B lohko %s ei ole alueen %s sisällä\n"
+#: ldlang.c:4629
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr "%X%P: kohteen %B lohko ”%s” ei mahdu alueen ”%s” sisälle\n"
 
 
-#: ldlang.c:4487
+#: ldlang.c:4669
 #, c-format
 msgid "%F%S: non constant or forward reference address expression for section %s\n"
 msgstr "%F%S: ei-vakio tai edelleenviiteosoitelauseke lohkolle %s\n"
 
 #, c-format
 msgid "%F%S: non constant or forward reference address expression for section %s\n"
 msgstr "%F%S: ei-vakio tai edelleenviiteosoitelauseke lohkolle %s\n"
 
-#: ldlang.c:4512
+#: ldlang.c:4694
 msgid "%P%X: Internal error on COFF shared library section %s\n"
 msgstr "%P%X: Sisäinen virhe COFF-tiedoston jaetussa kirjastolohkossa %s\n"
 
 msgid "%P%X: Internal error on COFF shared library section %s\n"
 msgstr "%P%X: Sisäinen virhe COFF-tiedoston jaetussa kirjastolohkossa %s\n"
 
-#: ldlang.c:4571
+#: ldlang.c:4753
 msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
 msgstr "%P%F: virhe: ladattavalle lohkolle ”%s” ei ole määritelty muistialuetta\n"
 
 msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
 msgstr "%P%F: virhe: ladattavalle lohkolle ”%s” ei ole määritelty muistialuetta\n"
 
-#: ldlang.c:4576
+#: ldlang.c:4758
 msgid "%P: warning: no memory region specified for loadable section `%s'\n"
 msgstr "%P: varoitus: ladattavalle lohkolle ”%s” ei ole määritelty muistialuetta\n"
 
 msgid "%P: warning: no memory region specified for loadable section `%s'\n"
 msgstr "%P: varoitus: ladattavalle lohkolle ”%s” ei ole määritelty muistialuetta\n"
 
-#: ldlang.c:4598
+#: ldlang.c:4780
 msgid "%P: warning: changing start of section %s by %lu bytes\n"
 msgstr "%P: varoitus: vaihdetaan lohkon %s alkua %lu tavulla\n"
 
 msgid "%P: warning: changing start of section %s by %lu bytes\n"
 msgstr "%P: varoitus: vaihdetaan lohkon %s alkua %lu tavulla\n"
 
-#: ldlang.c:4675
+#: ldlang.c:4862
 msgid "%P: warning: dot moved backwards before `%s'\n"
 msgstr "%P: varoitus: pistettä siirretty taaksepäin ennen kohdetta ”%s”\n"
 
 msgid "%P: warning: dot moved backwards before `%s'\n"
 msgstr "%P: varoitus: pistettä siirretty taaksepäin ennen kohdetta ”%s”\n"
 
-#: ldlang.c:4848
+#  Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+#  assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+#  Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+#  haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+#  rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: ldlang.c:5035
 msgid "%P%F: can't relax section: %E\n"
 msgid "%P%F: can't relax section: %E\n"
-msgstr "%P%F: ei voi vapauttaa lohkoa: %E\n"
+msgstr "%P%F: ei voi avartaa lohkoa: %E\n"
 
 
-#: ldlang.c:5170
+#: ldlang.c:5357
 msgid "%F%P: invalid data statement\n"
 msgstr "%F%P: virheellinen data-lause\n"
 
 msgid "%F%P: invalid data statement\n"
 msgstr "%F%P: virheellinen data-lause\n"
 
-#: ldlang.c:5203
+#: ldlang.c:5390
 msgid "%F%P: invalid reloc statement\n"
 msgstr "%F%P: virheellinen reloc-lause\n"
 
 msgid "%F%P: invalid reloc statement\n"
 msgstr "%F%P: virheellinen reloc-lause\n"
 
-#: ldlang.c:5322
+#: ldlang.c:5509
 msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
 msgstr "%P%F: gc-lohkot vaativat joko alkion tai määrittelemättömän symbolin\n"
 
 msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
 msgstr "%P%F: gc-lohkot vaativat joko alkion tai määrittelemättömän symbolin\n"
 
-#: ldlang.c:5347
+#: ldlang.c:5534
 msgid "%P%F:%s: can't set start address\n"
 msgstr "%P%F:%s: ei voi asettaa aloitusosoitetta\n"
 
 msgid "%P%F:%s: can't set start address\n"
 msgstr "%P%F:%s: ei voi asettaa aloitusosoitetta\n"
 
-#: ldlang.c:5360 ldlang.c:5379
+#: ldlang.c:5547 ldlang.c:5566
 msgid "%P%F: can't set start address\n"
 msgstr "%P%F: ei voi asettaa aloitusosoitetta\n"
 
 msgid "%P%F: can't set start address\n"
 msgstr "%P%F: ei voi asettaa aloitusosoitetta\n"
 
-#: ldlang.c:5372
+#: ldlang.c:5559
 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
 msgstr "%P: varoitus: tulosymbolia %s ei löydy, asetaan oletukseksi %V\n"
 
 msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
 msgstr "%P: varoitus: tulosymbolia %s ei löydy, asetaan oletukseksi %V\n"
 
-#: ldlang.c:5384
+#: ldlang.c:5571
 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
 msgstr "%P: varoitus: tulosymbolia %s ei löydy, ei aseta aloitusosoitetta\n"
 
 msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
 msgstr "%P: varoitus: tulosymbolia %s ei löydy, ei aseta aloitusosoitetta\n"
 
-#: ldlang.c:5434
+#: ldlang.c:5621
 msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
 msgstr "%P%F: Uudelleensijoituslinkitystä uudelleensijoituksilla muodosta %s (%B) muotoon %s (%B) ei tueta\n"
 
 msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
 msgstr "%P%F: Uudelleensijoituslinkitystä uudelleensijoituksilla muodosta %s (%B) muotoon %s (%B) ei tueta\n"
 
-#: ldlang.c:5444
+#: ldlang.c:5631
 msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
 msgstr "%P%X: %s syötetiedoston ”%B” arkkitehtuuri ei täsmää tulosteen %s kanssa\n"
 
 msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
 msgstr "%P%X: %s syötetiedoston ”%B” arkkitehtuuri ei täsmää tulosteen %s kanssa\n"
 
-#: ldlang.c:5466
+#: ldlang.c:5653
 msgid "%P%X: failed to merge target specific data of file %B\n"
 msgstr "%P%X: ei onnistuttu yhdistää kohdekohtaista tiedostodataa %B\n"
 
 msgid "%P%X: failed to merge target specific data of file %B\n"
 msgstr "%P%X: ei onnistuttu yhdistää kohdekohtaista tiedostodataa %B\n"
 
-#: ldlang.c:5567
+#: ldlang.c:5724
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr "%B%F: Ei voitu määritellä yhteissymbolia ”%T”: %E\n"
+
+#: ldlang.c:5736
 msgid ""
 "\n"
 "Allocating common symbols\n"
 msgid ""
 "\n"
 "Allocating common symbols\n"
@@ -796,7 +917,7 @@ msgstr ""
 "\n"
 "Varataan muistia yhteissymboleille\n"
 
 "\n"
 "Varataan muistia yhteissymboleille\n"
 
-#: ldlang.c:5568
+#: ldlang.c:5737
 msgid ""
 "Common symbol       size              file\n"
 "\n"
 msgid ""
 "Common symbol       size              file\n"
 "\n"
@@ -804,55 +925,55 @@ msgstr ""
 "Yhteissymboli       koko              tiedosto\n"
 "\n"
 
 "Yhteissymboli       koko              tiedosto\n"
 "\n"
 
-#: ldlang.c:5701
+#: ldlang.c:5878
 msgid "%P%F: invalid syntax in flags\n"
 msgstr "%P%F: virheellinen syntaksi lipussa\n"
 
 msgid "%P%F: invalid syntax in flags\n"
 msgstr "%P%F: virheellinen syntaksi lipussa\n"
 
-#: ldlang.c:6069
+#: ldlang.c:6270
 msgid "%P%F: Failed to create hash table\n"
 msgstr "%P%F: ei onnistuttu luomaan hash-taulua\n"
 
 msgid "%P%F: Failed to create hash table\n"
 msgstr "%P%F: ei onnistuttu luomaan hash-taulua\n"
 
-#: ldlang.c:6370
+#: ldlang.c:6549
 msgid "%P%F: multiple STARTUP files\n"
 msgstr "%P%F: useita STARTUP-tiedostoja\n"
 
 msgid "%P%F: multiple STARTUP files\n"
 msgstr "%P%F: useita STARTUP-tiedostoja\n"
 
-#: ldlang.c:6418
+#: ldlang.c:6597
 msgid "%X%P:%S: section has both a load address and a load region\n"
 msgstr "%X%P:%S: lohkossa on sekä latausosoite että latausalue\n"
 
 msgid "%X%P:%S: section has both a load address and a load region\n"
 msgstr "%X%P:%S: lohkossa on sekä latausosoite että latausalue\n"
 
-#: ldlang.c:6652
+#: ldlang.c:6844
 msgid "%F%P: no sections assigned to phdrs\n"
 msgstr "%F%P: kohteeseen ”phdrs” ei ole liitetty lohkoja\n"
 
 msgid "%F%P: no sections assigned to phdrs\n"
 msgstr "%F%P: kohteeseen ”phdrs” ei ole liitetty lohkoja\n"
 
-#: ldlang.c:6689
+#: ldlang.c:6881
 msgid "%F%P: bfd_record_phdr failed: %E\n"
 msgstr "%F%P: bfd_record_phdr ei onnistunut: %E\n"
 
 msgid "%F%P: bfd_record_phdr failed: %E\n"
 msgstr "%F%P: bfd_record_phdr ei onnistunut: %E\n"
 
-#: ldlang.c:6709
+#: ldlang.c:6901
 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
 msgstr "%X%P: lohko ”%s” liitetty phdr-kohteeseen ”%s”, joka ei ole olemassa\n"
 
 msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
 msgstr "%X%P: lohko ”%s” liitetty phdr-kohteeseen ”%s”, joka ei ole olemassa\n"
 
-#: ldlang.c:7100
+#: ldlang.c:7299
 msgid "%X%P: unknown language `%s' in version information\n"
 msgstr "%X%P: tuntematon kieli ”%s” versiotiedoissa\n"
 
 msgid "%X%P: unknown language `%s' in version information\n"
 msgstr "%X%P: tuntematon kieli ”%s” versiotiedoissa\n"
 
-#: ldlang.c:7242
+#: ldlang.c:7441
 msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
 msgstr "%X%P: nimetöntä versiotunnistetta ei voi yhdistää muihin versiotunnisteisiin\n"
 
 msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
 msgstr "%X%P: nimetöntä versiotunnistetta ei voi yhdistää muihin versiotunnisteisiin\n"
 
-#: ldlang.c:7251
+#: ldlang.c:7450
 msgid "%X%P: duplicate version tag `%s'\n"
 msgstr "%X%P: kaksoiskappaleversiotunniste ”%s”\n"
 
 msgid "%X%P: duplicate version tag `%s'\n"
 msgstr "%X%P: kaksoiskappaleversiotunniste ”%s”\n"
 
-#: ldlang.c:7271 ldlang.c:7280 ldlang.c:7297 ldlang.c:7307
+#: ldlang.c:7470 ldlang.c:7479 ldlang.c:7496 ldlang.c:7506
 msgid "%X%P: duplicate expression `%s' in version information\n"
 msgstr "%X%P: kaksoiskappalelauseke ”%s” versiotiedoissa\n"
 
 msgid "%X%P: duplicate expression `%s' in version information\n"
 msgstr "%X%P: kaksoiskappalelauseke ”%s” versiotiedoissa\n"
 
-#: ldlang.c:7347
+#: ldlang.c:7546
 msgid "%X%P: unable to find version dependency `%s'\n"
 msgstr "%X%P: ei voi löytää versioriippuvuutta ”%s”\n"
 
 msgid "%X%P: unable to find version dependency `%s'\n"
 msgstr "%X%P: ei voi löytää versioriippuvuutta ”%s”\n"
 
-#: ldlang.c:7369
+#: ldlang.c:7568
 msgid "%X%P: unable to read .exports section contents\n"
 msgstr "%X%P: ei voi lukea .exports-lohkon sisältöä\n"
 
 msgid "%X%P: unable to read .exports section contents\n"
 msgstr "%X%P: ei voi lukea .exports-lohkon sisältöä\n"
 
@@ -861,102 +982,98 @@ msgstr "%X%P: ei voi lukea .exports-lohkon sisältöä\n"
 msgid "%X%P: can't set BFD default target to `%s': %E\n"
 msgstr "%X%P: ei voi asettaa BFD-oletuskohteeksi arvoa ”%s”: %E\n"
 
 msgid "%X%P: can't set BFD default target to `%s': %E\n"
 msgstr "%X%P: ei voi asettaa BFD-oletuskohteeksi arvoa ”%s”: %E\n"
 
-#: ldmain.c:296
-msgid "%P%F: --relax and -r may not be used together\n"
-msgstr "%P%F: argumentteja --relax ja -r ei saa käyttää yhdessä\n"
-
-#: ldmain.c:298
+#: ldmain.c:300
 msgid "%P%F: -r and -shared may not be used together\n"
 msgstr "%P%F: argumentteja -r ja -shared ei saa käyttää yhdessä\n"
 
 msgid "%P%F: -r and -shared may not be used together\n"
 msgstr "%P%F: argumentteja -r ja -shared ei saa käyttää yhdessä\n"
 
-#: ldmain.c:341
+#: ldmain.c:343
 msgid "%P%F: -F may not be used without -shared\n"
 msgstr "%P%F: argumenttia -F ei saa käyttää ilman argumenttia -shared\n"
 
 msgid "%P%F: -F may not be used without -shared\n"
 msgstr "%P%F: argumenttia -F ei saa käyttää ilman argumenttia -shared\n"
 
-#: ldmain.c:343
+#: ldmain.c:345
 msgid "%P%F: -f may not be used without -shared\n"
 msgstr "%P%F: argumenttia -f ei saa käyttää ilman argumenttia -shared\n"
 
 msgid "%P%F: -f may not be used without -shared\n"
 msgstr "%P%F: argumenttia -f ei saa käyttää ilman argumenttia -shared\n"
 
-#: ldmain.c:391
+#: ldmain.c:393
 msgid "using external linker script:"
 msgstr "käytetään ulkoista linkitysskriptiä:"
 
 msgid "using external linker script:"
 msgstr "käytetään ulkoista linkitysskriptiä:"
 
-#: ldmain.c:393
+#: ldmain.c:395
 msgid "using internal linker script:"
 msgstr "käytetään sisäistä linkitysskriptiä:"
 
 msgid "using internal linker script:"
 msgstr "käytetään sisäistä linkitysskriptiä:"
 
-#: ldmain.c:427
+#: ldmain.c:429
 msgid "%P%F: no input files\n"
 msgstr "%P%F: ei syötetiedostoja\n"
 
 msgid "%P%F: no input files\n"
 msgstr "%P%F: ei syötetiedostoja\n"
 
-#: ldmain.c:431
+#: ldmain.c:433
 msgid "%P: mode %s\n"
 msgstr "%P: tila %s\n"
 
 msgid "%P: mode %s\n"
 msgstr "%P: tila %s\n"
 
-#: ldmain.c:447
+#: ldmain.c:449
 msgid "%P%F: cannot open map file %s: %E\n"
 msgstr "%P%F: ei voi avata map-tiedostoa %s: %E\n"
 
 msgid "%P%F: cannot open map file %s: %E\n"
 msgstr "%P%F: ei voi avata map-tiedostoa %s: %E\n"
 
-#: ldmain.c:479
+#: ldmain.c:481
 msgid "%P: link errors found, deleting executable `%s'\n"
 msgstr "%P: linkitysvirheitä löytyi, poistetaan suoritettava tiedosto ”%s”\n"
 
 msgid "%P: link errors found, deleting executable `%s'\n"
 msgstr "%P: linkitysvirheitä löytyi, poistetaan suoritettava tiedosto ”%s”\n"
 
-#: ldmain.c:488
+#: ldmain.c:490
 msgid "%F%B: final close failed: %E\n"
 msgstr "%F%B: loppusulkeminen ei onnistunut: %E\n"
 
 msgid "%F%B: final close failed: %E\n"
 msgstr "%F%B: loppusulkeminen ei onnistunut: %E\n"
 
-#: ldmain.c:514
+#: ldmain.c:516
 msgid "%X%P: unable to open for source of copy `%s'\n"
 msgstr "%X%P: ei voitu avata kopion ”%s” lähdekoodia\n"
 
 msgid "%X%P: unable to open for source of copy `%s'\n"
 msgstr "%X%P: ei voitu avata kopion ”%s” lähdekoodia\n"
 
-#: ldmain.c:517
+#: ldmain.c:519
 msgid "%X%P: unable to open for destination of copy `%s'\n"
 msgstr "%X%P: ei voitu avata kopion ”%s” kohdetta\n"
 
 msgid "%X%P: unable to open for destination of copy `%s'\n"
 msgstr "%X%P: ei voitu avata kopion ”%s” kohdetta\n"
 
-#: ldmain.c:524
+#: ldmain.c:526
 msgid "%P: Error writing file `%s'\n"
 msgstr "%P: Virhe kirjoitettaessa tiedostoa ”%s”\n"
 
 msgid "%P: Error writing file `%s'\n"
 msgstr "%P: Virhe kirjoitettaessa tiedostoa ”%s”\n"
 
-#: ldmain.c:529 pe-dll.c:1613
+#: ldmain.c:531 pe-dll.c:1687
 #, c-format
 msgid "%P: Error closing file `%s'\n"
 msgstr "%P: Virhe suljettaessa tiedostoa ”%s”\n"
 
 #, c-format
 msgid "%P: Error closing file `%s'\n"
 msgstr "%P: Virhe suljettaessa tiedostoa ”%s”\n"
 
-#: ldmain.c:545
+#: ldmain.c:547
 #, c-format
 msgid "%s: total time in link: %ld.%06ld\n"
 msgstr "%s: kokonaisaika linkityksessä: %ld.%06ld\n"
 
 #, c-format
 msgid "%s: total time in link: %ld.%06ld\n"
 msgstr "%s: kokonaisaika linkityksessä: %ld.%06ld\n"
 
-#: ldmain.c:548
+#: ldmain.c:550
 #, c-format
 msgid "%s: data size %ld\n"
 msgstr "%s: data-koko %ld\n"
 
 #, c-format
 msgid "%s: data size %ld\n"
 msgstr "%s: data-koko %ld\n"
 
-#: ldmain.c:631
+#: ldmain.c:633
 msgid "%P%F: missing argument to -m\n"
 msgstr "%P%F: puuttuva argumentti kohteelle -m\n"
 
 msgid "%P%F: missing argument to -m\n"
 msgstr "%P%F: puuttuva argumentti kohteelle -m\n"
 
-#: ldmain.c:678 ldmain.c:697 ldmain.c:728
+#: ldmain.c:680 ldmain.c:699 ldmain.c:730
 msgid "%P%F: bfd_hash_table_init failed: %E\n"
 msgstr "%P%F: bfd_hash_table_init ei onnistunut: %E\n"
 
 msgid "%P%F: bfd_hash_table_init failed: %E\n"
 msgstr "%P%F: bfd_hash_table_init ei onnistunut: %E\n"
 
-#: ldmain.c:682 ldmain.c:701
+#: ldmain.c:684 ldmain.c:703
 msgid "%P%F: bfd_hash_lookup failed: %E\n"
 msgstr "%P%F: bfd_hash_lookup ei onnistunut: %E\n"
 
 msgid "%P%F: bfd_hash_lookup failed: %E\n"
 msgstr "%P%F: bfd_hash_lookup ei onnistunut: %E\n"
 
-#: ldmain.c:715
+#: ldmain.c:717
 msgid "%X%P: error: duplicate retain-symbols-file\n"
 msgstr "%X%P: virhe: retain-symbols-file-kaksoiskappale\n"
 
 msgid "%X%P: error: duplicate retain-symbols-file\n"
 msgstr "%X%P: virhe: retain-symbols-file-kaksoiskappale\n"
 
-#: ldmain.c:758
+#: ldmain.c:760
 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
 msgstr "%P%F: bfd_hash_lookup-lisäys ei onnistunut: %E\n"
 
 msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
 msgstr "%P%F: bfd_hash_lookup-lisäys ei onnistunut: %E\n"
 
-#: ldmain.c:763
+#: ldmain.c:765
 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
 msgstr "%P: ”-retain-symbols-file” korvaa argumentit ”-s” ja ”-S”\n"
 
 msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
 msgstr "%P: ”-retain-symbols-file” korvaa argumentit ”-s” ja ”-S”\n"
 
-#: ldmain.c:827
+#: ldmain.c:829
 #, c-format
 msgid ""
 "Archive member included because of file (symbol)\n"
 #, c-format
 msgid ""
 "Archive member included because of file (symbol)\n"
@@ -965,134 +1082,139 @@ msgstr ""
 "Arkistojäsen sisällytetty tiedoston vuoksi (symboli)\n"
 "\n"
 
 "Arkistojäsen sisällytetty tiedoston vuoksi (symboli)\n"
 "\n"
 
-#: ldmain.c:897
+#: ldmain.c:899
 msgid "%X%C: multiple definition of `%T'\n"
 msgstr "%X%C: useita ”%T”-määrittelyjä\n"
 
 msgid "%X%C: multiple definition of `%T'\n"
 msgstr "%X%C: useita ”%T”-määrittelyjä\n"
 
-#: ldmain.c:900
+#: ldmain.c:902
 msgid "%D: first defined here\n"
 msgstr "%D: ensimmäinen määritelty täällä\n"
 
 msgid "%D: first defined here\n"
 msgstr "%D: ensimmäinen määritelty täällä\n"
 
-#: ldmain.c:904
+#  Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+#  assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+#  Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+#  haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+#  rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: ldmain.c:906
 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
 msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
-msgstr "%P: Disabloidaan relaxation: se ei toimi useiden määrittelyjen kanssa\n"
+msgstr "%P: Otetaan avartaminen pois käytöstä: se ei toimi kun määrittelyjä on useita\n"
 
 
-#: ldmain.c:934
+#: ldmain.c:936
 msgid "%B: warning: definition of `%T' overriding common\n"
 msgstr "%B: varoitus: ”%T”-määrittely korvaa yhteisen\n"
 
 msgid "%B: warning: definition of `%T' overriding common\n"
 msgstr "%B: varoitus: ”%T”-määrittely korvaa yhteisen\n"
 
-#: ldmain.c:937
+#: ldmain.c:939
 msgid "%B: warning: common is here\n"
 msgstr "%B: varoitus: yhteinen on täällä\n"
 
 msgid "%B: warning: common is here\n"
 msgstr "%B: varoitus: yhteinen on täällä\n"
 
-#: ldmain.c:944
+#: ldmain.c:946
 msgid "%B: warning: common of `%T' overridden by definition\n"
 msgstr "%B: varoitus: ”%T”-yhteinen korvattu määrittelyllä\n"
 
 msgid "%B: warning: common of `%T' overridden by definition\n"
 msgstr "%B: varoitus: ”%T”-yhteinen korvattu määrittelyllä\n"
 
-#: ldmain.c:947
+#: ldmain.c:949
 msgid "%B: warning: defined here\n"
 msgstr "%B: varoitus: määritelty täällä\n"
 
 msgid "%B: warning: defined here\n"
 msgstr "%B: varoitus: määritelty täällä\n"
 
-#: ldmain.c:954
+#: ldmain.c:956
 msgid "%B: warning: common of `%T' overridden by larger common\n"
 msgstr "%B: varoitus: ”%T”-yhteinen korvattu laajemmalla yhteisellä\n"
 
 msgid "%B: warning: common of `%T' overridden by larger common\n"
 msgstr "%B: varoitus: ”%T”-yhteinen korvattu laajemmalla yhteisellä\n"
 
-#: ldmain.c:957
+#: ldmain.c:959
 msgid "%B: warning: larger common is here\n"
 msgstr "%B: varoitus: laajempi yhteinen on täällä\n"
 
 msgid "%B: warning: larger common is here\n"
 msgstr "%B: varoitus: laajempi yhteinen on täällä\n"
 
-#: ldmain.c:961
+#: ldmain.c:963
 msgid "%B: warning: common of `%T' overriding smaller common\n"
 msgstr "%B: varoitus: ”%T”-yhteinen korvaa pienemmän yhteisen\n"
 
 msgid "%B: warning: common of `%T' overriding smaller common\n"
 msgstr "%B: varoitus: ”%T”-yhteinen korvaa pienemmän yhteisen\n"
 
-#: ldmain.c:964
+#: ldmain.c:966
 msgid "%B: warning: smaller common is here\n"
 msgstr "%B: varoitus: pienempi yhteinen on täällä\n"
 
 msgid "%B: warning: smaller common is here\n"
 msgstr "%B: varoitus: pienempi yhteinen on täällä\n"
 
-#: ldmain.c:968
+#: ldmain.c:970
 msgid "%B: warning: multiple common of `%T'\n"
 msgstr "%B: varoitus: useita ”%T”-yhteisiä\n"
 
 msgid "%B: warning: multiple common of `%T'\n"
 msgstr "%B: varoitus: useita ”%T”-yhteisiä\n"
 
-#: ldmain.c:970
+#: ldmain.c:972
 msgid "%B: warning: previous common is here\n"
 msgstr "%B: varoitus: edellinen yhteinen on täällä\n"
 
 msgid "%B: warning: previous common is here\n"
 msgstr "%B: varoitus: edellinen yhteinen on täällä\n"
 
-#: ldmain.c:990 ldmain.c:1028
+#: ldmain.c:992 ldmain.c:1030
 msgid "%P: warning: global constructor %s used\n"
 msgstr "%P: varoitus: yleiskonstruktoria %s käytetty\n"
 
 #  Binary File Descriptor
 msgid "%P: warning: global constructor %s used\n"
 msgstr "%P: varoitus: yleiskonstruktoria %s käytetty\n"
 
 #  Binary File Descriptor
-#: ldmain.c:1038
+#: ldmain.c:1040
 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
 msgstr "%P%F: BFD-taustavirhe: kohdetta BFD_RELOC_CTOR ei ole tuettu\n"
 
 #. We found a reloc for the symbol we are looking for.
 msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
 msgstr "%P%F: BFD-taustavirhe: kohdetta BFD_RELOC_CTOR ei ole tuettu\n"
 
 #. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1092 ldmain.c:1094 ldmain.c:1096 ldmain.c:1114 ldmain.c:1159
+#: ldmain.c:1094 ldmain.c:1096 ldmain.c:1098 ldmain.c:1116 ldmain.c:1161
 msgid "warning: "
 msgstr "varoitus: "
 
 msgid "warning: "
 msgstr "varoitus: "
 
-#: ldmain.c:1194
+#: ldmain.c:1196
 msgid "%F%P: bfd_hash_table_init failed: %E\n"
 msgstr "%F%P: bfd_hash_table_init ei onnistunut: %E\n"
 
 msgid "%F%P: bfd_hash_table_init failed: %E\n"
 msgstr "%F%P: bfd_hash_table_init ei onnistunut: %E\n"
 
-#: ldmain.c:1201
+#: ldmain.c:1203
 msgid "%F%P: bfd_hash_lookup failed: %E\n"
 msgstr "%F%P: bfd_hash_lookup ei onnistunut: %E\n"
 
 msgid "%F%P: bfd_hash_lookup failed: %E\n"
 msgstr "%F%P: bfd_hash_lookup ei onnistunut: %E\n"
 
-#: ldmain.c:1222
+#: ldmain.c:1224
 msgid "%X%C: undefined reference to `%T'\n"
 msgstr "%X%C: määrittelemätön viite kohteeseen ”%T”\n"
 
 msgid "%X%C: undefined reference to `%T'\n"
 msgstr "%X%C: määrittelemätön viite kohteeseen ”%T”\n"
 
-#: ldmain.c:1225
+#: ldmain.c:1227
 msgid "%C: warning: undefined reference to `%T'\n"
 msgstr "%C: varoitus: määrittelemätön viite kohteeseen ”%T”\n"
 
 msgid "%C: warning: undefined reference to `%T'\n"
 msgstr "%C: varoitus: määrittelemätön viite kohteeseen ”%T”\n"
 
-#: ldmain.c:1231
+#: ldmain.c:1233
 msgid "%X%D: more undefined references to `%T' follow\n"
 msgstr "%X%D: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
 msgid "%X%D: more undefined references to `%T' follow\n"
 msgstr "%X%D: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
-#: ldmain.c:1234
+#: ldmain.c:1236
 msgid "%D: warning: more undefined references to `%T' follow\n"
 msgstr "%D: varoitus: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
 msgid "%D: warning: more undefined references to `%T' follow\n"
 msgstr "%D: varoitus: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
-#: ldmain.c:1245
+#: ldmain.c:1247
 msgid "%X%B: undefined reference to `%T'\n"
 msgstr "%X%B: määrittelemätön viite kohteeseen ”%T”\n"
 
 msgid "%X%B: undefined reference to `%T'\n"
 msgstr "%X%B: määrittelemätön viite kohteeseen ”%T”\n"
 
-#: ldmain.c:1248
+#: ldmain.c:1250
 msgid "%B: warning: undefined reference to `%T'\n"
 msgstr "%B: varoitus: määrittelemätön viite kohteeseen ”%T”\n"
 
 msgid "%B: warning: undefined reference to `%T'\n"
 msgstr "%B: varoitus: määrittelemätön viite kohteeseen ”%T”\n"
 
-#: ldmain.c:1254
+#: ldmain.c:1256
 msgid "%X%B: more undefined references to `%T' follow\n"
 msgstr "%X%B: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
 msgid "%X%B: more undefined references to `%T' follow\n"
 msgstr "%X%B: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
-#: ldmain.c:1257
+#: ldmain.c:1259
 msgid "%B: warning: more undefined references to `%T' follow\n"
 msgstr "%B: varoitus: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
 msgid "%B: warning: more undefined references to `%T' follow\n"
 msgstr "%B: varoitus: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
 
-#: ldmain.c:1296
+#: ldmain.c:1298
 msgid " additional relocation overflows omitted from the output\n"
 msgstr " lisäuudelleensijoituskorvauksia ei lisätä tulosteeseen\n"
 
 msgid " additional relocation overflows omitted from the output\n"
 msgstr " lisäuudelleensijoituskorvauksia ei lisätä tulosteeseen\n"
 
-#: ldmain.c:1309
+#: ldmain.c:1311
 msgid " relocation truncated to fit: %s against undefined symbol `%T'"
 msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan määrittelemätön symboli ”%T”"
 
 msgid " relocation truncated to fit: %s against undefined symbol `%T'"
 msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan määrittelemätön symboli ”%T”"
 
-#: ldmain.c:1314
+#: ldmain.c:1316
 msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
 msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan symboli ”%T” määritelty %A-lohkossa %B:ssä"
 
 msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
 msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan symboli ”%T” määritelty %A-lohkossa %B:ssä"
 
-#: ldmain.c:1326
+#: ldmain.c:1328
 msgid " relocation truncated to fit: %s against `%T'"
 msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan ”%T”"
 
 msgid " relocation truncated to fit: %s against `%T'"
 msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan ”%T”"
 
-#: ldmain.c:1343
+#: ldmain.c:1345
 #, c-format
 msgid "%X%C: dangerous relocation: %s\n"
 msgstr "%X%C: vaarallinen uudelleensijoitus: %s\n"
 
 #, c-format
 msgid "%X%C: dangerous relocation: %s\n"
 msgstr "%X%C: vaarallinen uudelleensijoitus: %s\n"
 
-#: ldmain.c:1358
+#: ldmain.c:1360
 msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
 msgstr "%X%C: reloc viitaa symboliin ”%T”, jota ei tulosteta\n"
 
 msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
 msgstr "%X%C: reloc viitaa symboliin ”%T”, jota ei tulosteta\n"
 
@@ -1124,7 +1246,7 @@ msgstr "%P: sisäinen virhe: hylätään %s rivillä %d\n"
 
 #: ldmisc.c:499
 msgid "%P%F: please report this bug\n"
 
 #: ldmisc.c:499
 msgid "%P%F: please report this bug\n"
-msgstr "%P%F: raportoi tästä virheestä\n"
+msgstr "%P%F: ilmoita tästä virheestä\n"
 
 #. Output for noisy == 2 is intended to follow the GNU standards.
 #: ldver.c:38
 
 #. Output for noisy == 2 is intended to follow the GNU standards.
 #: ldver.c:38
@@ -1134,8 +1256,8 @@ msgstr "GNU ld-versio %s\n"
 
 #: ldver.c:42
 #, c-format
 
 #: ldver.c:42
 #, c-format
-msgid "Copyright 2007 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2007 Free Software Foundation, Inc.\n"
+msgid "Copyright 2009 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2009 Free Software Foundation, Inc.\n"
 
 #: ldver.c:43
 #, c-format
 
 #: ldver.c:43
 #, c-format
@@ -1174,265 +1296,269 @@ msgstr "%8x jotain muuta\n"
 msgid "%F%P: final link failed: %E\n"
 msgstr "%F%P: loppulinkitys ei onnistunut: %E\n"
 
 msgid "%F%P: final link failed: %E\n"
 msgstr "%F%P: loppulinkitys ei onnistunut: %E\n"
 
-#: lexsup.c:206 lexsup.c:344
+#: lexsup.c:209 lexsup.c:349
 msgid "KEYWORD"
 msgstr "AVAINSANA"
 
 msgid "KEYWORD"
 msgstr "AVAINSANA"
 
-#: lexsup.c:206
+#: lexsup.c:209
 msgid "Shared library control for HP/UX compatibility"
 msgstr "Jaettu kirjasto-ohjain HP/UX-yhteensopivuutta varten"
 
 msgid "Shared library control for HP/UX compatibility"
 msgstr "Jaettu kirjasto-ohjain HP/UX-yhteensopivuutta varten"
 
-#: lexsup.c:209
+#: lexsup.c:212
 msgid "ARCH"
 msgid "ARCH"
-msgstr "ARCH"
+msgstr "ARKISTO"
 
 
-#: lexsup.c:209
+#: lexsup.c:212
 msgid "Set architecture"
 msgstr "Aseta arkkitehtuuri"
 
 msgid "Set architecture"
 msgstr "Aseta arkkitehtuuri"
 
-#: lexsup.c:211 lexsup.c:454
+#: lexsup.c:214 lexsup.c:459
 msgid "TARGET"
 msgstr "KOHDE"
 
 msgid "TARGET"
 msgstr "KOHDE"
 
-#: lexsup.c:211
+#: lexsup.c:214
 msgid "Specify target for following input files"
 msgstr "Määrittele kohde seuraaville syötetiedostoille"
 
 msgid "Specify target for following input files"
 msgstr "Määrittele kohde seuraaville syötetiedostoille"
 
-#: lexsup.c:214 lexsup.c:263 lexsup.c:275 lexsup.c:288 lexsup.c:290
-#: lexsup.c:408 lexsup.c:466 lexsup.c:526 lexsup.c:539
+#: lexsup.c:217 lexsup.c:268 lexsup.c:280 lexsup.c:293 lexsup.c:295
+#: lexsup.c:413 lexsup.c:471 lexsup.c:533 lexsup.c:546
 msgid "FILE"
 msgstr "TIEDOSTO"
 
 msgid "FILE"
 msgstr "TIEDOSTO"
 
-#: lexsup.c:214
+#: lexsup.c:217
 msgid "Read MRI format linker script"
 msgstr "Lue MRI-muotoinen linkitysskripti"
 
 msgid "Read MRI format linker script"
 msgstr "Lue MRI-muotoinen linkitysskripti"
 
-#: lexsup.c:216
+#: lexsup.c:219
 msgid "Force common symbols to be defined"
 msgstr "Pakota yhteissymbolit määriteltäviksi"
 
 msgid "Force common symbols to be defined"
 msgstr "Pakota yhteissymbolit määriteltäviksi"
 
-#: lexsup.c:220 lexsup.c:510 lexsup.c:512 lexsup.c:514
+#: lexsup.c:223 lexsup.c:515 lexsup.c:517 lexsup.c:519 lexsup.c:521
 msgid "ADDRESS"
 msgstr "OSOITE"
 
 msgid "ADDRESS"
 msgstr "OSOITE"
 
-#: lexsup.c:220
+#: lexsup.c:223
 msgid "Set start address"
 msgstr "Aseta alkuosoite"
 
 msgid "Set start address"
 msgstr "Aseta alkuosoite"
 
-#: lexsup.c:222
+#: lexsup.c:225
 msgid "Export all dynamic symbols"
 msgstr "Vie kaikki dynaamiset symbolit"
 
 msgid "Export all dynamic symbols"
 msgstr "Vie kaikki dynaamiset symbolit"
 
-#: lexsup.c:224
+#: lexsup.c:227
+msgid "Undo the effect of --export-dynamic"
+msgstr "Peru valitsimen --export-dynamic vaikutus"
+
+#: lexsup.c:229
 msgid "Link big-endian objects"
 msgstr "Linkitä big-endian-objektit"
 
 msgid "Link big-endian objects"
 msgstr "Linkitä big-endian-objektit"
 
-#: lexsup.c:226
+#: lexsup.c:231
 msgid "Link little-endian objects"
 msgstr "Linkitä little-endian-objektit"
 
 msgid "Link little-endian objects"
 msgstr "Linkitä little-endian-objektit"
 
-#: lexsup.c:228 lexsup.c:231
+#: lexsup.c:233 lexsup.c:236
 msgid "SHLIB"
 msgstr "SHLIB"
 
 msgid "SHLIB"
 msgstr "SHLIB"
 
-#: lexsup.c:228
+#: lexsup.c:233
 msgid "Auxiliary filter for shared object symbol table"
 msgstr "Lisäsuodatin jaetulle objektisymbolitaululle"
 
 msgid "Auxiliary filter for shared object symbol table"
 msgstr "Lisäsuodatin jaetulle objektisymbolitaululle"
 
-#: lexsup.c:231
+#: lexsup.c:236
 msgid "Filter for shared object symbol table"
 msgstr "Suodatin jaetulle objektisymbolitaululle"
 
 msgid "Filter for shared object symbol table"
 msgstr "Suodatin jaetulle objektisymbolitaululle"
 
-#: lexsup.c:234
+#: lexsup.c:239
 msgid "Ignored"
 msgstr "Ei oteta huomioon"
 
 msgid "Ignored"
 msgstr "Ei oteta huomioon"
 
-#: lexsup.c:236
+#: lexsup.c:241
 msgid "SIZE"
 msgstr "KOKO"
 
 msgid "SIZE"
 msgstr "KOKO"
 
-#: lexsup.c:236
+#: lexsup.c:241
 msgid "Small data size (if no size, same as --shared)"
 msgstr "Pieni datakoko (jos kokoa ei ole, sama kuin --shared)"
 
 msgid "Small data size (if no size, same as --shared)"
 msgstr "Pieni datakoko (jos kokoa ei ole, sama kuin --shared)"
 
-#: lexsup.c:239
+#: lexsup.c:244
 msgid "FILENAME"
 msgstr "TIEDOSTONIMI"
 
 msgid "FILENAME"
 msgstr "TIEDOSTONIMI"
 
-#: lexsup.c:239
+#: lexsup.c:244
 msgid "Set internal name of shared library"
 msgstr "Aseta jaetun kirjaston sisäinen nimi"
 
 msgid "Set internal name of shared library"
 msgstr "Aseta jaetun kirjaston sisäinen nimi"
 
-#: lexsup.c:241
+#: lexsup.c:246
 msgid "PROGRAM"
 msgstr "OHJELMA"
 
 msgid "PROGRAM"
 msgstr "OHJELMA"
 
-#: lexsup.c:241
+#: lexsup.c:246
 msgid "Set PROGRAM as the dynamic linker to use"
 msgstr "Aseta OHJELMA dynaamisena linkkerinä käytettäväksi"
 
 msgid "Set PROGRAM as the dynamic linker to use"
 msgstr "Aseta OHJELMA dynaamisena linkkerinä käytettäväksi"
 
-#: lexsup.c:244
+#: lexsup.c:249
 msgid "LIBNAME"
 msgid "LIBNAME"
-msgstr "LIBNAME"
+msgstr "KIRJASTONIMI"
 
 
-#: lexsup.c:244
+#: lexsup.c:249
 msgid "Search for library LIBNAME"
 msgid "Search for library LIBNAME"
-msgstr "Haku kirjastolle LIBNAME"
+msgstr "Haku kirjastolle KIRJASTONIMI"
 
 
-#: lexsup.c:246
+#: lexsup.c:251
 msgid "DIRECTORY"
 msgstr "HAKEMISTO"
 
 msgid "DIRECTORY"
 msgstr "HAKEMISTO"
 
-#: lexsup.c:246
+#: lexsup.c:251
 msgid "Add DIRECTORY to library search path"
 msgstr "Lisää HAKEMISTO kirjaston hakupolkuun"
 
 msgid "Add DIRECTORY to library search path"
 msgstr "Lisää HAKEMISTO kirjaston hakupolkuun"
 
-#: lexsup.c:249
+#: lexsup.c:254
 msgid "Override the default sysroot location"
 msgstr "Korvaa oletus sysroot-sijainti"
 
 msgid "Override the default sysroot location"
 msgstr "Korvaa oletus sysroot-sijainti"
 
-#: lexsup.c:251
+#: lexsup.c:256
 msgid "EMULATION"
 msgstr "EMULOINTI"
 
 msgid "EMULATION"
 msgstr "EMULOINTI"
 
-#: lexsup.c:251
+#: lexsup.c:256
 msgid "Set emulation"
 msgstr "Aseta emulointi"
 
 msgid "Set emulation"
 msgstr "Aseta emulointi"
 
-#: lexsup.c:253
+#: lexsup.c:258
 msgid "Print map file on standard output"
 msgstr "Tulosta map-tiedosto vakiotulosteessa"
 
 msgid "Print map file on standard output"
 msgstr "Tulosta map-tiedosto vakiotulosteessa"
 
-#: lexsup.c:255
+#: lexsup.c:260
 msgid "Do not page align data"
 msgstr "Älä sivuta tasausdataa"
 
 msgid "Do not page align data"
 msgstr "Älä sivuta tasausdataa"
 
-#: lexsup.c:257
+#: lexsup.c:262
 msgid "Do not page align data, do not make text readonly"
 msgstr "Älä sivuta tasausdataa, älä tee tekstistä kirjoitussuojattua"
 
 msgid "Do not page align data, do not make text readonly"
 msgstr "Älä sivuta tasausdataa, älä tee tekstistä kirjoitussuojattua"
 
-#: lexsup.c:260
+#: lexsup.c:265
 msgid "Page align data, make text readonly"
 msgstr "Sivuta tasausdataa, tee tekstistä kirjoitussuojattua"
 
 msgid "Page align data, make text readonly"
 msgstr "Sivuta tasausdataa, tee tekstistä kirjoitussuojattua"
 
-#: lexsup.c:263
+#: lexsup.c:268
 msgid "Set output file name"
 msgstr "Aseta tulostetiedoston nimi"
 
 msgid "Set output file name"
 msgstr "Aseta tulostetiedoston nimi"
 
-#: lexsup.c:265
+#: lexsup.c:270
 msgid "Optimize output file"
 msgstr "Optimoi tulostetiedosto"
 
 msgid "Optimize output file"
 msgstr "Optimoi tulostetiedosto"
 
-#: lexsup.c:267
+#: lexsup.c:272
 msgid "Ignored for SVR4 compatibility"
 msgstr "Ei oteta huomioon SVR4-yhteensopivuutta"
 
 msgid "Ignored for SVR4 compatibility"
 msgstr "Ei oteta huomioon SVR4-yhteensopivuutta"
 
-#: lexsup.c:271
+#: lexsup.c:276
 msgid "Generate relocatable output"
 msgstr "Luo uudelleensijoitettava tuloste"
 
 msgid "Generate relocatable output"
 msgstr "Luo uudelleensijoitettava tuloste"
 
-#: lexsup.c:275
+#: lexsup.c:280
 msgid "Just link symbols (if directory, same as --rpath)"
 msgstr "Linkitä vain symbolit (jos hakemisto, sama kuin --rpath)"
 
 msgid "Just link symbols (if directory, same as --rpath)"
 msgstr "Linkitä vain symbolit (jos hakemisto, sama kuin --rpath)"
 
-#: lexsup.c:278
+#: lexsup.c:283
 msgid "Strip all symbols"
 msgstr "Riisu kaikki symbolit"
 
 msgid "Strip all symbols"
 msgstr "Riisu kaikki symbolit"
 
-#: lexsup.c:280
+#: lexsup.c:285
 msgid "Strip debugging symbols"
 msgstr "Riisu debuggaussymbolit"
 
 msgid "Strip debugging symbols"
 msgstr "Riisu debuggaussymbolit"
 
-#: lexsup.c:282
+#: lexsup.c:287
 msgid "Strip symbols in discarded sections"
 msgstr "Riisu symbolit hylätyissä lohkoissa"
 
 msgid "Strip symbols in discarded sections"
 msgstr "Riisu symbolit hylätyissä lohkoissa"
 
-#: lexsup.c:284
+#: lexsup.c:289
 msgid "Do not strip symbols in discarded sections"
 msgstr "Älä riisu symboleja hylätyistä lohkoista"
 
 msgid "Do not strip symbols in discarded sections"
 msgstr "Älä riisu symboleja hylätyistä lohkoista"
 
-#: lexsup.c:286
+#: lexsup.c:291
 msgid "Trace file opens"
 msgstr "Jäljitä tiedoston avaukset"
 
 msgid "Trace file opens"
 msgstr "Jäljitä tiedoston avaukset"
 
-#: lexsup.c:288
+#: lexsup.c:293
 msgid "Read linker script"
 msgstr "Lue linkitysskripti"
 
 msgid "Read linker script"
 msgstr "Lue linkitysskripti"
 
-#: lexsup.c:290
+#: lexsup.c:295
 msgid "Read default linker script"
 msgstr "Lue oletus linkitysskripti"
 
 msgid "Read default linker script"
 msgstr "Lue oletus linkitysskripti"
 
-#: lexsup.c:294 lexsup.c:312 lexsup.c:385 lexsup.c:406 lexsup.c:503
-#: lexsup.c:529 lexsup.c:565
+#: lexsup.c:299 lexsup.c:317 lexsup.c:390 lexsup.c:411 lexsup.c:508
+#: lexsup.c:536 lexsup.c:575
 msgid "SYMBOL"
 msgstr "SYMBOLI"
 
 msgid "SYMBOL"
 msgstr "SYMBOLI"
 
-#: lexsup.c:294
+#: lexsup.c:299
 msgid "Start with undefined reference to SYMBOL"
 msgstr "Aloita määrittelemättömällä viitteellä kohteeseen SYMBOLI"
 
 msgid "Start with undefined reference to SYMBOL"
 msgstr "Aloita määrittelemättömällä viitteellä kohteeseen SYMBOLI"
 
-#: lexsup.c:297
+#: lexsup.c:302
 msgid "[=SECTION]"
 msgstr "[=LOHKO]"
 
 msgid "[=SECTION]"
 msgstr "[=LOHKO]"
 
-#: lexsup.c:298
+#: lexsup.c:303
 msgid "Don't merge input [SECTION | orphan] sections"
 msgstr "Älä yhdistä syöte[LOHKO | orpo]lohkoja"
 
 msgid "Don't merge input [SECTION | orphan] sections"
 msgstr "Älä yhdistä syöte[LOHKO | orpo]lohkoja"
 
-#: lexsup.c:300
+#: lexsup.c:305
 msgid "Build global constructor/destructor tables"
 msgstr "Muodosta yleiset konstruktori/destruktoritaulut"
 
 msgid "Build global constructor/destructor tables"
 msgstr "Muodosta yleiset konstruktori/destruktoritaulut"
 
-#: lexsup.c:302
+#: lexsup.c:307
 msgid "Print version information"
 msgstr "Tulosta versiotiedot"
 
 msgid "Print version information"
 msgstr "Tulosta versiotiedot"
 
-#: lexsup.c:304
+#: lexsup.c:309
 msgid "Print version and emulation information"
 msgstr "Tulosta versio- ja emulointitiedot"
 
 msgid "Print version and emulation information"
 msgstr "Tulosta versio- ja emulointitiedot"
 
-#: lexsup.c:306
+#: lexsup.c:311
 msgid "Discard all local symbols"
 msgstr "Hylkää kaikki paikalliset symbolit"
 
 msgid "Discard all local symbols"
 msgstr "Hylkää kaikki paikalliset symbolit"
 
-#: lexsup.c:308
+#: lexsup.c:313
 msgid "Discard temporary local symbols (default)"
 msgstr "Hylkää tilapäiset paikalliset symbolit (oletus)"
 
 msgid "Discard temporary local symbols (default)"
 msgstr "Hylkää tilapäiset paikalliset symbolit (oletus)"
 
-#: lexsup.c:310
+#: lexsup.c:315
 msgid "Don't discard any local symbols"
 msgstr "Älä hylkää mitään paikallisia symboleja"
 
 msgid "Don't discard any local symbols"
 msgstr "Älä hylkää mitään paikallisia symboleja"
 
-#: lexsup.c:312
+#: lexsup.c:317
 msgid "Trace mentions of SYMBOL"
 msgstr "Jäljitä SYMBOLIn maininnat"
 
 msgid "Trace mentions of SYMBOL"
 msgstr "Jäljitä SYMBOLIn maininnat"
 
-#: lexsup.c:314 lexsup.c:468 lexsup.c:470
+#: lexsup.c:319 lexsup.c:473 lexsup.c:475
 msgid "PATH"
 msgstr "POLKU"
 
 msgid "PATH"
 msgstr "POLKU"
 
-#: lexsup.c:314
+#: lexsup.c:319
 msgid "Default search path for Solaris compatibility"
 msgstr "Oletushakupolku Solaris-yhteensopivuutta varten"
 
 msgid "Default search path for Solaris compatibility"
 msgstr "Oletushakupolku Solaris-yhteensopivuutta varten"
 
-#: lexsup.c:317
+#: lexsup.c:322
 msgid "Start a group"
 msgstr "Käynnistä ryhmä"
 
 msgid "Start a group"
 msgstr "Käynnistä ryhmä"
 
-#: lexsup.c:319
+#: lexsup.c:324
 msgid "End a group"
 msgstr "Lopeta ryhmä"
 
 msgid "End a group"
 msgstr "Lopeta ryhmä"
 
-#: lexsup.c:323
+#: lexsup.c:328
 msgid "Accept input files whose architecture cannot be determined"
 msgstr "Hyväksy syötetiedostot, joiden arkkitehtuuria ei voida määritellä"
 
 msgid "Accept input files whose architecture cannot be determined"
 msgstr "Hyväksy syötetiedostot, joiden arkkitehtuuria ei voida määritellä"
 
-#: lexsup.c:327
+#: lexsup.c:332
 msgid "Reject input files whose architecture is unknown"
 msgstr "Hylkää syötetiedostot, joiden arkkitehtuuri on tuntematon"
 
 msgid "Reject input files whose architecture is unknown"
 msgstr "Hylkää syötetiedostot, joiden arkkitehtuuri on tuntematon"
 
-#: lexsup.c:330
+#: lexsup.c:335
 msgid ""
 "Set DT_NEEDED tags for DT_NEEDED entries in\n"
 "                                following dynamic libs"
 msgid ""
 "Set DT_NEEDED tags for DT_NEEDED entries in\n"
 "                                following dynamic libs"
@@ -1440,7 +1566,7 @@ msgstr ""
 "Aseta DT_NEEDED-tunnisteet DT_NEEDED-alkioille\n"
 "                               seuraavissa dynaamisissa kirjastoissa"
 
 "Aseta DT_NEEDED-tunnisteet DT_NEEDED-alkioille\n"
 "                               seuraavissa dynaamisissa kirjastoissa"
 
-#: lexsup.c:334
+#: lexsup.c:339
 msgid ""
 "Do not set DT_NEEDED tags for DT_NEEDED entries\n"
 "                                in following dynamic libs"
 msgid ""
 "Do not set DT_NEEDED tags for DT_NEEDED entries\n"
 "                                in following dynamic libs"
@@ -1448,171 +1574,171 @@ msgstr ""
 "Älä aseta DT_NEEDED-tunnisteita DT_NEEDED-alkioille\n"
 "                               seuraavissa dynaamisissa kirjastoissa"
 
 "Älä aseta DT_NEEDED-tunnisteita DT_NEEDED-alkioille\n"
 "                               seuraavissa dynaamisissa kirjastoissa"
 
-#: lexsup.c:338
+#: lexsup.c:343
 msgid "Only set DT_NEEDED for following dynamic libs if used"
 msgstr "Aseta DT_NEEDED vain seuraavissa dynaamisissa kirjastoissa, jos niitä käytetään"
 
 msgid "Only set DT_NEEDED for following dynamic libs if used"
 msgstr "Aseta DT_NEEDED vain seuraavissa dynaamisissa kirjastoissa, jos niitä käytetään"
 
-#: lexsup.c:341
+#: lexsup.c:346
 msgid "Always set DT_NEEDED for following dynamic libs"
 msgstr "Aseta DT_NEEDED aina seuraavissa dynaamisissa kirjastoissa"
 
 msgid "Always set DT_NEEDED for following dynamic libs"
 msgstr "Aseta DT_NEEDED aina seuraavissa dynaamisissa kirjastoissa"
 
-#: lexsup.c:344
+#: lexsup.c:349
 msgid "Ignored for SunOS compatibility"
 msgstr "Ei oteta huomioon SunOS-yhteensopivuutta"
 
 msgid "Ignored for SunOS compatibility"
 msgstr "Ei oteta huomioon SunOS-yhteensopivuutta"
 
-#: lexsup.c:346
+#: lexsup.c:351
 msgid "Link against shared libraries"
 msgstr "Linkitä käyttäen jaettuja kirjastoja"
 
 msgid "Link against shared libraries"
 msgstr "Linkitä käyttäen jaettuja kirjastoja"
 
-#: lexsup.c:352
+#: lexsup.c:357
 msgid "Do not link against shared libraries"
 msgstr "Älä linkitä käyttäen jaettuja kirjastoja"
 
 msgid "Do not link against shared libraries"
 msgstr "Älä linkitä käyttäen jaettuja kirjastoja"
 
-#: lexsup.c:360
+#: lexsup.c:365
 msgid "Bind global references locally"
 msgstr "Sido yleisviitteet paikallisesti"
 
 msgid "Bind global references locally"
 msgstr "Sido yleisviitteet paikallisesti"
 
-#: lexsup.c:362
+#: lexsup.c:367
 msgid "Bind global function references locally"
 msgstr "Sido yleisfunktioviitteet paikallisesti"
 
 msgid "Bind global function references locally"
 msgstr "Sido yleisfunktioviitteet paikallisesti"
 
-#: lexsup.c:364
+#: lexsup.c:369
 msgid "Check section addresses for overlaps (default)"
 msgstr "Tarkista lohko-osoitteet päällekkäisyyksien varalta (oletus)"
 
 msgid "Check section addresses for overlaps (default)"
 msgstr "Tarkista lohko-osoitteet päällekkäisyyksien varalta (oletus)"
 
-#: lexsup.c:367
+#: lexsup.c:372
 msgid "Do not check section addresses for overlaps"
 msgstr "Älä tarkista lohko-osoitteita päällekkäisyyksien varalta"
 
 msgid "Do not check section addresses for overlaps"
 msgstr "Älä tarkista lohko-osoitteita päällekkäisyyksien varalta"
 
-#: lexsup.c:370
+#: lexsup.c:375
 msgid "Output cross reference table"
 msgstr "Tulosteristiviitetaulu"
 
 msgid "Output cross reference table"
 msgstr "Tulosteristiviitetaulu"
 
-#: lexsup.c:372
+#: lexsup.c:377
 msgid "SYMBOL=EXPRESSION"
 msgstr "SYMBOLI=LAUSEKE"
 
 msgid "SYMBOL=EXPRESSION"
 msgstr "SYMBOLI=LAUSEKE"
 
-#: lexsup.c:372
+#: lexsup.c:377
 msgid "Define a symbol"
 msgstr "Määrittele symboli"
 
 msgid "Define a symbol"
 msgstr "Määrittele symboli"
 
-#: lexsup.c:374
+#: lexsup.c:379
 msgid "[=STYLE]"
 msgstr "[=TYYLI]"
 
 msgid "[=STYLE]"
 msgstr "[=TYYLI]"
 
-#: lexsup.c:374
+#: lexsup.c:379
 msgid "Demangle symbol names [using STYLE]"
 msgstr "Eheytä symbolinnimet [käyttäen TYYLIä]"
 
 msgid "Demangle symbol names [using STYLE]"
 msgstr "Eheytä symbolinnimet [käyttäen TYYLIä]"
 
-#: lexsup.c:377
+#: lexsup.c:382
 msgid "Generate embedded relocs"
 msgstr "luo upotettuja relocs-lohkoja"
 
 msgid "Generate embedded relocs"
 msgstr "luo upotettuja relocs-lohkoja"
 
-#: lexsup.c:379
+#: lexsup.c:384
 msgid "Treat warnings as errors"
 msgstr "Kohtele varoituksia virheinä"
 
 msgid "Treat warnings as errors"
 msgstr "Kohtele varoituksia virheinä"
 
-#: lexsup.c:382
+#: lexsup.c:387
 msgid "Do not treat warnings as errors (default)"
 msgstr "Älä kohtele varoituksia virheinä (oletus)"
 
 msgid "Do not treat warnings as errors (default)"
 msgstr "Älä kohtele varoituksia virheinä (oletus)"
 
-#: lexsup.c:385
+#: lexsup.c:390
 msgid "Call SYMBOL at unload-time"
 msgstr "Kutsu SYMBOLIa vapautushetkellä"
 
 msgid "Call SYMBOL at unload-time"
 msgstr "Kutsu SYMBOLIa vapautushetkellä"
 
-#: lexsup.c:387
+#: lexsup.c:392
 msgid "Force generation of file with .exe suffix"
 msgstr "Pakota .exe-suffiksitiedoston luominen"
 
 msgid "Force generation of file with .exe suffix"
 msgstr "Pakota .exe-suffiksitiedoston luominen"
 
-#: lexsup.c:389
+#: lexsup.c:394
 msgid "Remove unused sections (on some targets)"
 msgstr "Poista käyttämättömät lohkot (joissakin kohteissa)"
 
 msgid "Remove unused sections (on some targets)"
 msgstr "Poista käyttämättömät lohkot (joissakin kohteissa)"
 
-#: lexsup.c:392
+#: lexsup.c:397
 msgid "Don't remove unused sections (default)"
 msgstr "Älä poista käyttämättömiä lohkoja (oletus)"
 
 msgid "Don't remove unused sections (default)"
 msgstr "Älä poista käyttämättömiä lohkoja (oletus)"
 
-#: lexsup.c:395
+#: lexsup.c:400
 msgid "List removed unused sections on stderr"
 msgstr "Luettele poistetut käyttämättömät lohkot vakiovirheessä"
 
 msgid "List removed unused sections on stderr"
 msgstr "Luettele poistetut käyttämättömät lohkot vakiovirheessä"
 
-#: lexsup.c:398
+#: lexsup.c:403
 msgid "Do not list removed unused sections"
 msgstr "Älä luettele poistettuja käyttämättömiä lohkoja"
 
 msgid "Do not list removed unused sections"
 msgstr "Älä luettele poistettuja käyttämättömiä lohkoja"
 
-#: lexsup.c:401
+#: lexsup.c:406
 msgid "Set default hash table size close to <NUMBER>"
 msgstr "Aseta oletus-hash-taulukoko lähelle <NUMERO>"
 
 msgid "Set default hash table size close to <NUMBER>"
 msgstr "Aseta oletus-hash-taulukoko lähelle <NUMERO>"
 
-#: lexsup.c:404
+#: lexsup.c:409
 msgid "Print option help"
 msgstr "Tulosta valitsinopaste"
 
 msgid "Print option help"
 msgstr "Tulosta valitsinopaste"
 
-#: lexsup.c:406
+#: lexsup.c:411
 msgid "Call SYMBOL at load-time"
 msgstr "Kutsu SYMBOLIa lataushetkellä"
 
 msgid "Call SYMBOL at load-time"
 msgstr "Kutsu SYMBOLIa lataushetkellä"
 
-#: lexsup.c:408
+#: lexsup.c:413
 msgid "Write a map file"
 msgstr "Kirjoita map-tiedosto"
 
 msgid "Write a map file"
 msgstr "Kirjoita map-tiedosto"
 
-#: lexsup.c:410
+#: lexsup.c:415
 msgid "Do not define Common storage"
 msgstr "Älä määrittele Yhteinen-varastoa"
 
 msgid "Do not define Common storage"
 msgstr "Älä määrittele Yhteinen-varastoa"
 
-#: lexsup.c:412
+#: lexsup.c:417
 msgid "Do not demangle symbol names"
 msgstr "Älä eheytä symbolinimiä"
 
 msgid "Do not demangle symbol names"
 msgstr "Älä eheytä symbolinimiä"
 
-#: lexsup.c:414
+#: lexsup.c:419
 msgid "Use less memory and more disk I/O"
 msgstr "Käytä vähemmän muistia ja enemmän levyn I/O-toimintoja"
 
 msgid "Use less memory and more disk I/O"
 msgstr "Käytä vähemmän muistia ja enemmän levyn I/O-toimintoja"
 
-#: lexsup.c:416
+#: lexsup.c:421
 msgid "Do not allow unresolved references in object files"
 msgstr "Älä salli ratkaisemattomia viitteitä objektitiedostoissa"
 
 msgid "Do not allow unresolved references in object files"
 msgstr "Älä salli ratkaisemattomia viitteitä objektitiedostoissa"
 
-#: lexsup.c:419
+#: lexsup.c:424
 msgid "Allow unresolved references in shared libaries"
 msgid "Allow unresolved references in shared libaries"
-msgstr "Salli ratkaismattomia viitteitä jaetuissa kirjastoissa"
+msgstr "Salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
 
 
-#: lexsup.c:423
+#: lexsup.c:428
 msgid "Do not allow unresolved references in shared libs"
 msgstr "Älä salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
 
 msgid "Do not allow unresolved references in shared libs"
 msgstr "Älä salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
 
-#: lexsup.c:427
+#: lexsup.c:432
 msgid "Allow multiple definitions"
 msgstr "Salli useita määrittelyjä"
 
 msgid "Allow multiple definitions"
 msgstr "Salli useita määrittelyjä"
 
-#: lexsup.c:429
+#: lexsup.c:434
 msgid "Disallow undefined version"
 msgstr "Älä salli määrittelemätöntä versiota"
 
 msgid "Disallow undefined version"
 msgstr "Älä salli määrittelemätöntä versiota"
 
-#: lexsup.c:431
+#: lexsup.c:436
 msgid "Create default symbol version"
 msgstr "Luo oletussymboliversio"
 
 msgid "Create default symbol version"
 msgstr "Luo oletussymboliversio"
 
-#: lexsup.c:434
+#: lexsup.c:439
 msgid "Create default symbol version for imported symbols"
 msgstr "Luo oletussymboliversio tuontisymboleille"
 
 msgid "Create default symbol version for imported symbols"
 msgstr "Luo oletussymboliversio tuontisymboleille"
 
-#: lexsup.c:437
+#: lexsup.c:442
 msgid "Don't warn about mismatched input files"
 msgstr "Älä varoita täsmäämättömistä syötetiedostoista"
 
 msgid "Don't warn about mismatched input files"
 msgstr "Älä varoita täsmäämättömistä syötetiedostoista"
 
-#: lexsup.c:440
+#: lexsup.c:445
 msgid "Don't warn on finding an incompatible library"
 msgstr "Älä varoita yhteensopimattoman kirjaston löytymisestä"
 
 msgid "Don't warn on finding an incompatible library"
 msgstr "Älä varoita yhteensopimattoman kirjaston löytymisestä"
 
-#: lexsup.c:443
+#: lexsup.c:448
 msgid "Turn off --whole-archive"
 msgstr "Käännä pois --whole-archive"
 
 msgid "Turn off --whole-archive"
 msgstr "Käännä pois --whole-archive"
 
-#: lexsup.c:445
+#: lexsup.c:450
 msgid "Create an output file even if errors occur"
 msgstr "Luo tulostetiedosto myös silloin kun syntyy virheitä"
 
 msgid "Create an output file even if errors occur"
 msgstr "Luo tulostetiedosto myös silloin kun syntyy virheitä"
 
-#: lexsup.c:450
+#: lexsup.c:455
 msgid ""
 "Only use library directories specified on\n"
 "                                the command line"
 msgid ""
 "Only use library directories specified on\n"
 "                                the command line"
@@ -1620,119 +1746,128 @@ msgstr ""
 "Käytä vain kirjastohakemistoja, jotka on määritelty\n"
 "                                komentorivillä"
 
 "Käytä vain kirjastohakemistoja, jotka on määritelty\n"
 "                                komentorivillä"
 
-#: lexsup.c:454
+#: lexsup.c:459
 msgid "Specify target of output file"
 msgstr "Määrittele tulostetiedoston kohde"
 
 msgid "Specify target of output file"
 msgstr "Määrittele tulostetiedoston kohde"
 
-#: lexsup.c:457
+#: lexsup.c:462
 msgid "Ignored for Linux compatibility"
 msgstr "Ei oteta huomioon Linux-yhteensopivuutta"
 
 msgid "Ignored for Linux compatibility"
 msgstr "Ei oteta huomioon Linux-yhteensopivuutta"
 
-#: lexsup.c:460
+#: lexsup.c:465
 msgid "Reduce memory overheads, possibly taking much longer"
 msgstr "Pienennä muistiyleisrasite, mahdollisesti ottamalla paljon pitemmän"
 
 msgid "Reduce memory overheads, possibly taking much longer"
 msgstr "Pienennä muistiyleisrasite, mahdollisesti ottamalla paljon pitemmän"
 
-#: lexsup.c:463
+#  Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+#  assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+#  Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+#  haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+#  rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: lexsup.c:468
 msgid "Relax branches on certain targets"
 msgid "Relax branches on certain targets"
-msgstr "Relax branches tietyissä kohteissa"
+msgstr "Avarra haarautumiskäskyjä tietyissä kohteissa"
 
 
-#: lexsup.c:466
+#: lexsup.c:471
 msgid "Keep only symbols listed in FILE"
 msgstr "Pidä vain symbolit, jotka on lueteltu TIEDOSTOssa"
 
 msgid "Keep only symbols listed in FILE"
 msgstr "Pidä vain symbolit, jotka on lueteltu TIEDOSTOssa"
 
-#: lexsup.c:468
+#: lexsup.c:473
 msgid "Set runtime shared library search path"
 msgstr "Aseta ajoaikaisen jaetun kirjaston hakupolku"
 
 msgid "Set runtime shared library search path"
 msgstr "Aseta ajoaikaisen jaetun kirjaston hakupolku"
 
-#: lexsup.c:470
+#: lexsup.c:475
 msgid "Set link time shared library search path"
 msgstr "Aseta linkkausaikaisen jaetun kirjaston hakupolku"
 
 msgid "Set link time shared library search path"
 msgstr "Aseta linkkausaikaisen jaetun kirjaston hakupolku"
 
-#: lexsup.c:473
+#: lexsup.c:478
 msgid "Create a shared library"
 msgstr "Luo jaettu kirjasto"
 
 msgid "Create a shared library"
 msgstr "Luo jaettu kirjasto"
 
-#: lexsup.c:477
+#: lexsup.c:482
 msgid "Create a position independent executable"
 msgstr "Luo paikkariippumaton suoritettava tiedosto"
 
 msgid "Create a position independent executable"
 msgstr "Luo paikkariippumaton suoritettava tiedosto"
 
-#: lexsup.c:481
+#: lexsup.c:486
 msgid "[=ascending|descending]"
 msgstr "[=nouseva|laskeva]"
 
 msgid "[=ascending|descending]"
 msgstr "[=nouseva|laskeva]"
 
-#: lexsup.c:482
+#: lexsup.c:487
 msgid "Sort common symbols by alignment [in specified order]"
 msgstr "Lajittele yhteissymbolit [määritellyn järjestyksen] mukaan"
 
 msgid "Sort common symbols by alignment [in specified order]"
 msgstr "Lajittele yhteissymbolit [määritellyn järjestyksen] mukaan"
 
-#: lexsup.c:487
+#: lexsup.c:492
 msgid "name|alignment"
 msgstr "nimi|tasaus"
 
 msgid "name|alignment"
 msgstr "nimi|tasaus"
 
-#: lexsup.c:488
+#: lexsup.c:493
 msgid "Sort sections by name or maximum alignment"
 msgstr "Lajittele lohkot nimen tai maksimitasauksen mukaan"
 
 msgid "Sort sections by name or maximum alignment"
 msgstr "Lajittele lohkot nimen tai maksimitasauksen mukaan"
 
-#: lexsup.c:490
+#: lexsup.c:495
 msgid "COUNT"
 msgstr "LUKUMÄÄRÄ"
 
 msgid "COUNT"
 msgstr "LUKUMÄÄRÄ"
 
-#: lexsup.c:490
+#: lexsup.c:495
 msgid "How many tags to reserve in .dynamic section"
 msgstr "Kuinka monta tunnistetta ”.dynamic”-lohkon varaamiseen"
 
 msgid "How many tags to reserve in .dynamic section"
 msgstr "Kuinka monta tunnistetta ”.dynamic”-lohkon varaamiseen"
 
-#: lexsup.c:493
+#: lexsup.c:498
 msgid "[=SIZE]"
 msgstr "[=KOKO]"
 
 msgid "[=SIZE]"
 msgstr "[=KOKO]"
 
-#: lexsup.c:493
+#: lexsup.c:498
 msgid "Split output sections every SIZE octets"
 msgstr "Halkaise tulostelohkot kaikkiin KOKO-oktetteihin"
 
 msgid "Split output sections every SIZE octets"
 msgstr "Halkaise tulostelohkot kaikkiin KOKO-oktetteihin"
 
-#: lexsup.c:496
+#: lexsup.c:501
 msgid "[=COUNT]"
 msgstr "[=LUKUMÄÄRÄ]"
 
 msgid "[=COUNT]"
 msgstr "[=LUKUMÄÄRÄ]"
 
-#: lexsup.c:496
+#: lexsup.c:501
 msgid "Split output sections every COUNT relocs"
 msgstr "Halkaise tulostelohkot kaikkiin COUNT-reloc-alkioihin"
 
 msgid "Split output sections every COUNT relocs"
 msgstr "Halkaise tulostelohkot kaikkiin COUNT-reloc-alkioihin"
 
-#: lexsup.c:499
+#: lexsup.c:504
 msgid "Print memory usage statistics"
 msgstr "Tulosta muistikäyttötilastot"
 
 msgid "Print memory usage statistics"
 msgstr "Tulosta muistikäyttötilastot"
 
-#: lexsup.c:501
+#: lexsup.c:506
 msgid "Display target specific options"
 msgstr "Näytä kohdekohtaiset valitsimet"
 
 msgid "Display target specific options"
 msgstr "Näytä kohdekohtaiset valitsimet"
 
-#: lexsup.c:503
+#: lexsup.c:508
 msgid "Do task level linking"
 msgstr "Tee tehtävätason linkitystä"
 
 msgid "Do task level linking"
 msgstr "Tee tehtävätason linkitystä"
 
-#: lexsup.c:505
+#: lexsup.c:510
 msgid "Use same format as native linker"
 msgid "Use same format as native linker"
-msgstr "Käytä samaa muotoa kuin native-linkkeri"
+msgstr "Käytä samaa muotoa kuin kotoperäinen linkkeri"
 
 
-#: lexsup.c:507
+#: lexsup.c:512
 msgid "SECTION=ADDRESS"
 msgstr "LOHKO=OSOITE"
 
 msgid "SECTION=ADDRESS"
 msgstr "LOHKO=OSOITE"
 
-#: lexsup.c:507
+#: lexsup.c:512
 msgid "Set address of named section"
 msgstr "Aseta nimetyn lohkon osoite"
 
 msgid "Set address of named section"
 msgstr "Aseta nimetyn lohkon osoite"
 
-#: lexsup.c:510
+#: lexsup.c:515
 msgid "Set address of .bss section"
 msgstr "Aseta ”.bss”-lohkon osoite"
 
 msgid "Set address of .bss section"
 msgstr "Aseta ”.bss”-lohkon osoite"
 
-#: lexsup.c:512
+#: lexsup.c:517
 msgid "Set address of .data section"
 msgstr "Aseta ”.data”-lohkon osoite"
 
 msgid "Set address of .data section"
 msgstr "Aseta ”.data”-lohkon osoite"
 
-#: lexsup.c:514
+#: lexsup.c:519
 msgid "Set address of .text section"
 msgstr "Aseta ”.text”-lohkon osoite"
 
 msgid "Set address of .text section"
 msgstr "Aseta ”.text”-lohkon osoite"
 
-#: lexsup.c:517
+#: lexsup.c:521
+msgid "Set address of text segment"
+msgstr "Aseta text-lohkon osoite"
+
+#: lexsup.c:524
 msgid ""
 "How to handle unresolved symbols.  <method> is:\n"
 "                                ignore-all, report-all, ignore-in-object-files,\n"
 msgid ""
 "How to handle unresolved symbols.  <method> is:\n"
 "                                ignore-all, report-all, ignore-in-object-files,\n"
@@ -1742,15 +1877,15 @@ msgstr ""
 "                                ei-oteta-huomioon-kaikissa, raportoi-kaikki, ei-oteta-huomioon-objektitiedostoista,\n"
 "                                ei-oteta-huomioon-jaetuissa-kirjastoissa"
 
 "                                ei-oteta-huomioon-kaikissa, raportoi-kaikki, ei-oteta-huomioon-objektitiedostoista,\n"
 "                                ei-oteta-huomioon-jaetuissa-kirjastoissa"
 
-#: lexsup.c:522
+#: lexsup.c:529
 msgid "Output lots of information during link"
 msgstr "Tulosta paljon tietoja linkityksen aikana"
 
 msgid "Output lots of information during link"
 msgstr "Tulosta paljon tietoja linkityksen aikana"
 
-#: lexsup.c:526
+#: lexsup.c:533
 msgid "Read version information script"
 msgstr "Lue versiotietoskripti"
 
 msgid "Read version information script"
 msgstr "Lue versiotietoskripti"
 
-#: lexsup.c:529
+#: lexsup.c:536
 msgid ""
 "Take export symbols list from .exports, using\n"
 "                                SYMBOL as the version."
 msgid ""
 "Take export symbols list from .exports, using\n"
 "                                SYMBOL as the version."
@@ -1758,87 +1893,91 @@ msgstr ""
 "Ota vientisymbolit ”.exports”-luettelosta, käytä\n"
 "                                SYMBOLIa versiona."
 
 "Ota vientisymbolit ”.exports”-luettelosta, käytä\n"
 "                                SYMBOLIa versiona."
 
-#: lexsup.c:533
+#: lexsup.c:540
 msgid "Add data symbols to dynamic list"
 msgstr "Lisää datasymboleja dynaamiseen luetteloon"
 
 msgid "Add data symbols to dynamic list"
 msgstr "Lisää datasymboleja dynaamiseen luetteloon"
 
-#: lexsup.c:535
+#: lexsup.c:542
 msgid "Use C++ operator new/delete dynamic list"
 msgstr "Käytä C++-operaattoria ”new/delete” dynaamiseen luetteloon"
 
 msgid "Use C++ operator new/delete dynamic list"
 msgstr "Käytä C++-operaattoria ”new/delete” dynaamiseen luetteloon"
 
-#: lexsup.c:537
+#: lexsup.c:544
 msgid "Use C++ typeinfo dynamic list"
 msgid "Use C++ typeinfo dynamic list"
-msgstr "Käytä C++ typeinfo dynaamiseen luetteloon"
+msgstr "Käytä C++ typeinfo-luokkaa dynaamiseen luetteloon"
 
 
-#: lexsup.c:539
+#: lexsup.c:546
 msgid "Read dynamic list"
 msgstr "Lue dynaamista luetteloa"
 
 msgid "Read dynamic list"
 msgstr "Lue dynaamista luetteloa"
 
-#: lexsup.c:541
+#: lexsup.c:548
 msgid "Warn about duplicate common symbols"
 msgstr "Varoita yhteissymbolien kaksoiskappaleista"
 
 msgid "Warn about duplicate common symbols"
 msgstr "Varoita yhteissymbolien kaksoiskappaleista"
 
-#: lexsup.c:543
+#: lexsup.c:550
 msgid "Warn if global constructors/destructors are seen"
 msgstr "Varoita, jos nähdään yleisiä konstruktoreja/destruktoreja"
 
 msgid "Warn if global constructors/destructors are seen"
 msgstr "Varoita, jos nähdään yleisiä konstruktoreja/destruktoreja"
 
-#: lexsup.c:546
+#: lexsup.c:553
 msgid "Warn if the multiple GP values are used"
 msgstr "Varoita, jos käytetään useita GP-arvoja"
 
 msgid "Warn if the multiple GP values are used"
 msgstr "Varoita, jos käytetään useita GP-arvoja"
 
-#: lexsup.c:548
+#: lexsup.c:555
 msgid "Warn only once per undefined symbol"
 msgid "Warn only once per undefined symbol"
-msgstr "Varoita vain kerran per määrittämätön symboli"
+msgstr "Varoita vain kerran määrittämättömästä symbolista"
 
 
-#: lexsup.c:550
+#: lexsup.c:557
 msgid "Warn if start of section changes due to alignment"
 msgstr "Varoita, jos lohkon alku muuttuu tasauksen vuoksi"
 
 msgid "Warn if start of section changes due to alignment"
 msgstr "Varoita, jos lohkon alku muuttuu tasauksen vuoksi"
 
-#: lexsup.c:553
+#: lexsup.c:560
 msgid "Warn if shared object has DT_TEXTREL"
 msgstr "Varoita, jos jaetuilla objekteilla on DT_TEXTREL"
 
 msgid "Warn if shared object has DT_TEXTREL"
 msgstr "Varoita, jos jaetuilla objekteilla on DT_TEXTREL"
 
-#: lexsup.c:557
+#: lexsup.c:563
+msgid "Warn if an object has alternate ELF machine code"
+msgstr "Varoita, jos objektissa on vaihtoehtoisen ELF-koneen koodia"
+
+#: lexsup.c:567
 msgid "Report unresolved symbols as warnings"
 msgstr "Raportoi ratkaisemattomat symbolit varoituksina"
 
 msgid "Report unresolved symbols as warnings"
 msgstr "Raportoi ratkaisemattomat symbolit varoituksina"
 
-#: lexsup.c:560
+#: lexsup.c:570
 msgid "Report unresolved symbols as errors"
 msgstr "Raportoi ratkaisemattomat symbolit virheinä"
 
 msgid "Report unresolved symbols as errors"
 msgstr "Raportoi ratkaisemattomat symbolit virheinä"
 
-#: lexsup.c:562
+#: lexsup.c:572
 msgid "Include all objects from following archives"
 msgstr "Sisällytä kaikki objektit seuraavista arkistoista"
 
 msgid "Include all objects from following archives"
 msgstr "Sisällytä kaikki objektit seuraavista arkistoista"
 
-#: lexsup.c:565
+#: lexsup.c:575
 msgid "Use wrapper functions for SYMBOL"
 msgstr "Käytä wrapper-toimintoja SYMBOLille"
 
 msgid "Use wrapper functions for SYMBOL"
 msgstr "Käytä wrapper-toimintoja SYMBOLille"
 
-#: lexsup.c:712
+#: lexsup.c:722
 msgid "%P: unrecognized option '%s'\n"
 msgstr "%P: tunnistamaton valitsin ”%s”\n"
 
 msgid "%P: unrecognized option '%s'\n"
 msgstr "%P: tunnistamaton valitsin ”%s”\n"
 
-#: lexsup.c:716
+#: lexsup.c:726
 msgid "%P%F: use the --help option for usage information\n"
 msgstr "%P%F: käytä ”--help”-valitsinta käyttötietojen saamiseksi\n"
 
 msgid "%P%F: use the --help option for usage information\n"
 msgstr "%P%F: käytä ”--help”-valitsinta käyttötietojen saamiseksi\n"
 
-#: lexsup.c:734
+#: lexsup.c:744
 msgid "%P%F: unrecognized -a option `%s'\n"
 msgstr "%P%F: tunnistamaton ”-a”-valitsin ”%s”\n"
 
 msgid "%P%F: unrecognized -a option `%s'\n"
 msgstr "%P%F: tunnistamaton ”-a”-valitsin ”%s”\n"
 
-#: lexsup.c:747
+#: lexsup.c:757
 msgid "%P%F: unrecognized -assert option `%s'\n"
 msgstr "%P%F: tunnistamaton ”-assert”-valitsin ”%s”\n"
 
 msgid "%P%F: unrecognized -assert option `%s'\n"
 msgstr "%P%F: tunnistamaton ”-assert”-valitsin ”%s”\n"
 
-#: lexsup.c:790
+#: lexsup.c:800
 msgid "%F%P: unknown demangling style `%s'"
 msgstr "%F%P: tuntematon eheytystyyli ”%s”"
 
 msgid "%F%P: unknown demangling style `%s'"
 msgstr "%F%P: tuntematon eheytystyyli ”%s”"
 
-#: lexsup.c:852
+#: lexsup.c:866
 msgid "%P%F: invalid number `%s'\n"
 msgstr "%P%F: virheellinen numero ”%s”\n"
 
 msgid "%P%F: invalid number `%s'\n"
 msgstr "%P%F: virheellinen numero ”%s”\n"
 
-#: lexsup.c:950
+#: lexsup.c:964
 msgid "%P%F: bad --unresolved-symbols option: %s\n"
 msgstr "%P%F: virheellinen ”--unresolved-symbols”-valitsin: %s\n"
 
 msgid "%P%F: bad --unresolved-symbols option: %s\n"
 msgstr "%P%F: virheellinen ”--unresolved-symbols”-valitsin: %s\n"
 
@@ -1850,180 +1989,203 @@ msgstr "%P%F: virheellinen ”--unresolved-symbols”-valitsin: %s\n"
 #. an error message here.  We cannot just make this a warning,
 #. increment optind, and continue because getopt is too confused
 #. and will seg-fault the next time around.
 #. an error message here.  We cannot just make this a warning,
 #. increment optind, and continue because getopt is too confused
 #. and will seg-fault the next time around.
-#: lexsup.c:1024
+#: lexsup.c:1038
 msgid "%P%F: bad -rpath option\n"
 msgstr "%P%F: virheellinen ”-rpath”-valitsin\n"
 
 msgid "%P%F: bad -rpath option\n"
 msgstr "%P%F: virheellinen ”-rpath”-valitsin\n"
 
-#: lexsup.c:1135
+#: lexsup.c:1149
 msgid "%P%F: -shared not supported\n"
 msgstr "%P%F: ”-shared” ei ole tuettu\n"
 
 msgid "%P%F: -shared not supported\n"
 msgstr "%P%F: ”-shared” ei ole tuettu\n"
 
-#: lexsup.c:1144
+#: lexsup.c:1158
 msgid "%P%F: -pie not supported\n"
 msgstr "%P%F: ”-pie” ei ole tuettu\n"
 
 msgid "%P%F: -pie not supported\n"
 msgstr "%P%F: ”-pie” ei ole tuettu\n"
 
-#: lexsup.c:1152
+#: lexsup.c:1166
 msgid "descending"
 msgstr "laskeva"
 
 msgid "descending"
 msgstr "laskeva"
 
-#: lexsup.c:1154
+#: lexsup.c:1168
 msgid "ascending"
 msgstr "nouseva"
 
 msgid "ascending"
 msgstr "nouseva"
 
-#: lexsup.c:1157
+#: lexsup.c:1171
 msgid "%P%F: invalid common section sorting option: %s\n"
 msgstr "%P%F: virheellinen yhteisen lohkon lajitteluvalitsin: %s\n"
 
 msgid "%P%F: invalid common section sorting option: %s\n"
 msgstr "%P%F: virheellinen yhteisen lohkon lajitteluvalitsin: %s\n"
 
-#: lexsup.c:1161
+#: lexsup.c:1175
 msgid "name"
 msgstr "nimi"
 
 msgid "name"
 msgstr "nimi"
 
-#: lexsup.c:1163
+#: lexsup.c:1177
 msgid "alignment"
 msgstr "tasaus"
 
 msgid "alignment"
 msgstr "tasaus"
 
-#: lexsup.c:1166
+#: lexsup.c:1180
 msgid "%P%F: invalid section sorting option: %s\n"
 msgstr "%P%F: virheellinen lohkolajitteluvalitsin: %s\n"
 
 msgid "%P%F: invalid section sorting option: %s\n"
 msgstr "%P%F: virheellinen lohkolajitteluvalitsin: %s\n"
 
-#: lexsup.c:1200
+#: lexsup.c:1214
 msgid "%P%F: invalid argument to option \"--section-start\"\n"
 msgstr "%P%F: virheellinen argumentti valitsimelle ”--section-start”\n"
 
 msgid "%P%F: invalid argument to option \"--section-start\"\n"
 msgstr "%P%F: virheellinen argumentti valitsimelle ”--section-start”\n"
 
-#: lexsup.c:1207
+#: lexsup.c:1221
 msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
 msgstr "%P%F: argumentteja puuttuu valitsimelle ”--section-start”\n"
 
 msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
 msgstr "%P%F: argumentteja puuttuu valitsimelle ”--section-start”\n"
 
-#: lexsup.c:1421
+#: lexsup.c:1441
 msgid "%P%F: may not nest groups (--help for usage)\n"
 msgstr "%P%F: ryhmiä ei saa ketjuttaa (--help opasteeksi)\n"
 
 msgid "%P%F: may not nest groups (--help for usage)\n"
 msgstr "%P%F: ryhmiä ei saa ketjuttaa (--help opasteeksi)\n"
 
-#: lexsup.c:1428
+#: lexsup.c:1448
 msgid "%P%F: group ended before it began (--help for usage)\n"
 msgstr "%P%F: ryhmä loppui ennen alkamista (--help opasteeksi)\n"
 
 msgid "%P%F: group ended before it began (--help for usage)\n"
 msgstr "%P%F: ryhmä loppui ennen alkamista (--help opasteeksi)\n"
 
-#: lexsup.c:1456
+#: lexsup.c:1476
 msgid "%P%X: --hash-size needs a numeric argument\n"
 msgstr "%P%X: ”--hash-size” tarvitsee numeerisen argumentin\n"
 
 msgid "%P%X: --hash-size needs a numeric argument\n"
 msgstr "%P%X: ”--hash-size” tarvitsee numeerisen argumentin\n"
 
-#: lexsup.c:1507 lexsup.c:1520
+#: lexsup.c:1527 lexsup.c:1540
 msgid "%P%F: invalid hex number `%s'\n"
 msgstr "%P%F: virheellinen heksadesimaalinumero ”%s”\n"
 
 msgid "%P%F: invalid hex number `%s'\n"
 msgstr "%P%F: virheellinen heksadesimaalinumero ”%s”\n"
 
-#: lexsup.c:1556
+#: lexsup.c:1576
 #, c-format
 msgid "Usage: %s [options] file...\n"
 msgstr "Käyttö: %s [valitsimet] tiedosto...\n"
 
 #, c-format
 msgid "Usage: %s [options] file...\n"
 msgstr "Käyttö: %s [valitsimet] tiedosto...\n"
 
-#: lexsup.c:1558
+#: lexsup.c:1578
 #, c-format
 msgid "Options:\n"
 msgstr "Valitsimet:\n"
 
 #, c-format
 msgid "Options:\n"
 msgstr "Valitsimet:\n"
 
-#: lexsup.c:1636
+#: lexsup.c:1656
 #, c-format
 msgid "  @FILE"
 msgstr "  @TIEDOSTO"
 
 #, c-format
 msgid "  @FILE"
 msgstr "  @TIEDOSTO"
 
-#: lexsup.c:1639
+#: lexsup.c:1659
 #, c-format
 msgid "Read options from FILE\n"
 msgstr "Lue valitsimet tiedostosta TIEDOSTO\n"
 
 #. Note: Various tools (such as libtool) depend upon the
 #. format of the listings below - do not change them.
 #, c-format
 msgid "Read options from FILE\n"
 msgstr "Lue valitsimet tiedostosta TIEDOSTO\n"
 
 #. Note: Various tools (such as libtool) depend upon the
 #. format of the listings below - do not change them.
-#: lexsup.c:1644
+#: lexsup.c:1664
 #, c-format
 msgid "%s: supported targets:"
 msgstr "%s: tuetut kohteet:"
 
 #, c-format
 msgid "%s: supported targets:"
 msgstr "%s: tuetut kohteet:"
 
-#: lexsup.c:1652
+#: lexsup.c:1672
 #, c-format
 msgid "%s: supported emulations: "
 msgstr "%s: tuetut emuloinnit: "
 
 #, c-format
 msgid "%s: supported emulations: "
 msgstr "%s: tuetut emuloinnit: "
 
-#: lexsup.c:1657
+#: lexsup.c:1677
 #, c-format
 msgid "%s: emulation specific options:\n"
 msgstr "%s: emulointikohtaiset valitsimet:\n"
 
 #, c-format
 msgid "%s: emulation specific options:\n"
 msgstr "%s: emulointikohtaiset valitsimet:\n"
 
-#: lexsup.c:1662
+#: lexsup.c:1682
 #, c-format
 msgid "Report bugs to %s\n"
 #, c-format
 msgid "Report bugs to %s\n"
-msgstr "Raportoi virheet osoitteeseen %s\n"
+msgstr "Ilmoita virheet osoitteeseen %s\n"
 
 #: mri.c:291
 msgid "%P%F: unknown format type %s\n"
 msgstr "%P%F: tuntematon muototyyppi %s\n"
 
 
 #: mri.c:291
 msgid "%P%F: unknown format type %s\n"
 msgstr "%P%F: tuntematon muototyyppi %s\n"
 
-#: pe-dll.c:381
+#: pe-dll.c:415
 #, c-format
 msgid "%XUnsupported PEI architecture: %s\n"
 msgstr "%XEi-tuettu PEI-arkkitehtuuri: %s\n"
 
 #, c-format
 msgid "%XUnsupported PEI architecture: %s\n"
 msgstr "%XEi-tuettu PEI-arkkitehtuuri: %s\n"
 
-#: pe-dll.c:692
+#: pe-dll.c:766
 #, c-format
 msgid "%XCannot export %s: invalid export name\n"
 msgstr "%XEi voi viedä %s: virheellinen vientinimi\n"
 
 #, c-format
 msgid "%XCannot export %s: invalid export name\n"
 msgstr "%XEi voi viedä %s: virheellinen vientinimi\n"
 
-#: pe-dll.c:748
+#: pe-dll.c:822
 #, c-format
 msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
 msgstr "%XVirhe, EXPORT-kaksoiskappale järjestysnumeroilla: %s (%d vs %d)\n"
 
 #, c-format
 msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
 msgstr "%XVirhe, EXPORT-kaksoiskappale järjestysnumeroilla: %s (%d vs %d)\n"
 
-#: pe-dll.c:755
+#: pe-dll.c:829
 #, c-format
 msgid "Warning, duplicate EXPORT: %s\n"
 msgstr "Varoitus, EXPORT-kaksoiskappale: %s\n"
 
 #, c-format
 msgid "Warning, duplicate EXPORT: %s\n"
 msgstr "Varoitus, EXPORT-kaksoiskappale: %s\n"
 
-#: pe-dll.c:842
+#: pe-dll.c:916
 #, c-format
 msgid "%XCannot export %s: symbol not defined\n"
 msgstr "%XEi voi viedä symbolia %s: symbolia ei ole määritelty\n"
 
 #, c-format
 msgid "%XCannot export %s: symbol not defined\n"
 msgstr "%XEi voi viedä symbolia %s: symbolia ei ole määritelty\n"
 
-#: pe-dll.c:848
+#: pe-dll.c:922
 #, c-format
 msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
 #, c-format
 msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
-msgstr "%XEi voi viedä symbolia %s: symbolia väärän tyyppinen (%d vs %d)\n"
+msgstr "%XEi voi viedä symbolia %s: symboli on väärän tyyppinen (%d vs %d)\n"
 
 
-#: pe-dll.c:855
+#: pe-dll.c:929
 #, c-format
 msgid "%XCannot export %s: symbol not found\n"
 msgstr "%XEi voi viedä symbolia %s: symbolia ei löydy\n"
 
 #, c-format
 msgid "%XCannot export %s: symbol not found\n"
 msgstr "%XEi voi viedä symbolia %s: symbolia ei löydy\n"
 
-#: pe-dll.c:969
+#: pe-dll.c:1043
 #, c-format
 msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
 msgstr "%XVirhe, järjestyslukua käytetty kahdesti: %d (%s vs %s)\n"
 
 #, c-format
 msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
 msgstr "%XVirhe, järjestyslukua käytetty kahdesti: %d (%s vs %s)\n"
 
-#: pe-dll.c:1336
+#: pe-dll.c:1410
 #, c-format
 msgid "%XError: %d-bit reloc in dll\n"
 msgstr "%XVirhe: %d-bittinen reloc dll:ssä\n"
 
 #, c-format
 msgid "%XError: %d-bit reloc in dll\n"
 msgstr "%XVirhe: %d-bittinen reloc dll:ssä\n"
 
-#: pe-dll.c:1464
+#: pe-dll.c:1538
 #, c-format
 msgid "%s: Can't open output def file %s\n"
 msgstr "%s: Ei voi avata def-tulostetiedostoa %s\n"
 
 #, c-format
 msgid "%s: Can't open output def file %s\n"
 msgstr "%s: Ei voi avata def-tulostetiedostoa %s\n"
 
-#: pe-dll.c:1609
+#: pe-dll.c:1683
 #, c-format
 msgid "; no contents available\n"
 msgstr "; sisältö ei ole saatavilla\n"
 
 #, c-format
 msgid "; no contents available\n"
 msgstr "; sisältö ei ole saatavilla\n"
 
-#: pe-dll.c:2407
+#: pe-dll.c:2600
 msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
 msgstr "%C: muuttujaa ”%T” ei voi tuoda automaattisesti. Lue yksityiskohtaiset dokumentit ld-ohjelman --enable-auto-import-valitsimesta.\n"
 
 msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
 msgstr "%C: muuttujaa ”%T” ei voi tuoda automaattisesti. Lue yksityiskohtaiset dokumentit ld-ohjelman --enable-auto-import-valitsimesta.\n"
 
-#: pe-dll.c:2437
+#: pe-dll.c:2630
 #, c-format
 msgid "%XCan't open .lib file: %s\n"
 msgstr "%XEi voi avata .lib-tiedostoa: %s\n"
 
 #, c-format
 msgid "%XCan't open .lib file: %s\n"
 msgstr "%XEi voi avata .lib-tiedostoa: %s\n"
 
-#: pe-dll.c:2442
+#: pe-dll.c:2635
 #, c-format
 msgid "Creating library file: %s\n"
 msgstr "Luodaan kirjastotiedosto: %s\n"
 
 #, c-format
 msgid "Creating library file: %s\n"
 msgstr "Luodaan kirjastotiedosto: %s\n"
 
+#: pe-dll.c:2664
+#, c-format
+msgid "%Xbfd_openr %s: %E\n"
+msgstr "%Xbfd_openr %s: %E\n"
+
+#: pe-dll.c:2676
+#, c-format
+msgid "%X%s(%s): can't find member in non-archive file"
+msgstr "%X%s(%s): ei voi löytää jäsentä ei-arkistotiedostossa"
+
+#: pe-dll.c:2688
+#, c-format
+msgid "%X%s(%s): can't find member in archive"
+msgstr "%X%s(%s): ei voi löytää jäsentä arkistossa"
+
+#: pe-dll.c:3078
+#, c-format
+msgid "%XError: can't use long section names on this arch\n"
+msgstr "%XError: ei voi käyttää pitkiä lohkonimiä tähän arkistoon\n"
+
+#~ msgid "%P%F: --relax and -r may not be used together\n"
+#~ msgstr "%P%F: argumentteja --relax ja -r ei saa käyttää yhdessä\n"
+
 #~ msgid "  --support-old-code   Support interworking with old code\n"
 #~ msgstr "  --support-old-code   Tukee yhteistoimivuutta vanhan koodin kanssa\n"
 #~ msgid "  --support-old-code   Support interworking with old code\n"
 #~ msgstr "  --support-old-code   Tukee yhteistoimivuutta vanhan koodin kanssa\n"
index 1198c0a..3802df2 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-04 14:36+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index fa1df19..56410ff 100644 (file)
@@ -5908,22 +5908,24 @@ byte_re_match_2_internal (struct re_pattern_buffer *bufp,
              longest match, try backtracking.  */
           if (d != end_match_2)
            {
              longest match, try backtracking.  */
           if (d != end_match_2)
            {
-             /* 1 if this match ends in the same string (string1 or string2)
-                as the best previous match.  */
-             boolean same_str_p = (FIRST_STRING_P (match_end)
-                                   == MATCHING_IN_FIRST_STRING);
              /* 1 if this match is the best seen so far.  */
              boolean best_match_p;
 
              /* 1 if this match is the best seen so far.  */
              boolean best_match_p;
 
-             /* AIX compiler got confused when this was combined
-                with the previous declaration.  */
-             if (same_str_p)
-               best_match_p = d > match_end;
-             else
-               best_match_p = !MATCHING_IN_FIRST_STRING;
-
-              DEBUG_PRINT1 ("backtracking.\n");
+              {
+                /* 1 if this match ends in the same string (string1 or string2)
+                   as the best previous match.  */
+                boolean same_str_p = (FIRST_STRING_P (match_end)
+                                      == MATCHING_IN_FIRST_STRING);
+
+                /* AIX compiler got confused when this was combined
+                   with the previous declaration.  */
+                if (same_str_p)
+                  best_match_p = d > match_end;
+                else
+                  best_match_p = !MATCHING_IN_FIRST_STRING;
 
 
+                DEBUG_PRINT1 ("backtracking.\n");
+              }
               if (!FAIL_STACK_EMPTY ())
                 { /* More failure points to try.  */
 
               if (!FAIL_STACK_EMPTY ())
                 { /* More failure points to try.  */
 
index 14079aa..a7faf35 100644 (file)
@@ -1,3 +1,22 @@
+2009-09-11  Nick Clifton  <nickc@redhat.com>
+
+       * po/opcodes.pot: Updated by the Translation project.
+
+2009-09-11  Martin Thuresson  <martint@google.com>
+
+       Updated sources to compile cleanly with -Wc++-compat:
+       * ld.h (enum endian_enum,enum symbolic_enum,enum dynamic_list_enum): Move to top level.
+       * ldcref.c: Add casts.
+       * ldctor.c: Add casts.
+       * ldexp.c
+       * ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
+       * ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead of integer.
+       * ldlang.h (enum statement_enum): Move to top level.
+       * ldmain.c: Add casts.
+       * ldwrite.c: Add casts.
+       * lexsup.c: Add casts. (enum control_enum): Move to top level.
+       * mri.c: Add casts. (mri_draw_tree): Use enum name instead of integer.
+
 2009-09-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
        
        * s390-dis.c (print_insn_s390): Avoid 'long long'.
 2009-09-10  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
        
        * s390-dis.c (print_insn_s390): Avoid 'long long'.
index cfc821d..278ea13 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:08+0200\n"
+"POT-Creation-Date: 2009-09-07 14:08+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"