* po/bfd.pot: Updated by the Translation project.
authorNick Clifton <nickc@redhat.com>
Fri, 11 Sep 2009 15:27:38 +0000 (15:27 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 11 Sep 2009 15:27:38 +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 795f00d6f17ac9cbcc3803c4c702a417638b5140..650f268b130d19e8051167812607f016ff521164 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
index f60bb855dba113ad98ed4f2f7d1e62fd0a042308..5f0021132ce8315238d6e3051346317fe178ae31 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:07+0200\n"
+"POT-Creation-Date: 2009-09-07 14:05+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -367,7 +367,7 @@ msgstr ""
 msgid "Relocation `%s' not yet implemented\n"
 msgstr ""
 
-#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5145
+#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5143
 msgid "%B: warning: illegal symbol index %ld in relocs"
 msgstr ""
 
@@ -437,56 +437,56 @@ msgstr ""
 msgid "ignoring reloc %s\n"
 msgstr ""
 
-#: coffcode.h:962
+#: coffcode.h:960
 msgid "%B: warning: COMDAT symbol '%s' does not match section name '%s'"
 msgstr ""
 
 #. Generate a warning message rather using the 'unhandled'
 #. variable as this will allow some .sys files generate by
 #. other toolchains to be processed.  See bugzilla issue 196.
-#: coffcode.h:1178
+#: coffcode.h:1176
 msgid ""
 "%B: Warning: Ignoring section flag IMAGE_SCN_MEM_NOT_PAGED in section %s"
 msgstr ""
 
-#: coffcode.h:1242
+#: coffcode.h:1240
 msgid "%B (%s): Section flag %s (0x%x) ignored"
 msgstr ""
 
-#: coffcode.h:2384
+#: coffcode.h:2382
 #, c-format
 msgid "Unrecognized TI COFF target id '0x%x'"
 msgstr ""
 
-#: coffcode.h:2698
+#: coffcode.h:2696
 msgid "%B: reloc against a non-existant symbol index: %ld"
 msgstr ""
 
-#: coffcode.h:3671
+#: coffcode.h:3669
 msgid "%B: section %s: string table overflow at offset %ld"
 msgstr ""
 
-#: coffcode.h:4479
+#: coffcode.h:4477
 msgid "%B: warning: line number table read failed"
 msgstr ""
 
-#: coffcode.h:4509
+#: coffcode.h:4507
 msgid "%B: warning: illegal symbol index %ld in line numbers"
 msgstr ""
 
-#: coffcode.h:4523
+#: coffcode.h:4521
 msgid "%B: warning: duplicate line number information for `%s'"
 msgstr ""
 
-#: coffcode.h:4914
+#: coffcode.h:4912
 msgid "%B: Unrecognized storage class %d for %s symbol `%s'"
 msgstr ""
 
-#: coffcode.h:5040
+#: coffcode.h:5038
 msgid "warning: %B: local symbol `%s' has no section"
 msgstr ""
 
-#: coffcode.h:5183
+#: coffcode.h:5181
 msgid "%B: illegal relocation type %d at address 0x%lx"
 msgstr ""
 
index e7bc712729025c67c7e21a80417cbf49c95e3187..7962c5e4f82f58877910709e9002baeb92d13a58 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
index 4055165178881eb45aa6183a4093644d4e3b1d02..6a5ec379b72bc9a0d9365714a9f20a73152c1dc4 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:08+0200\n"
+"POT-Creation-Date: 2009-09-07 14:08+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 6dc5e826bd108a4fd5441c4cc60c249ca1ec8e1e..fe66a379fb59dd95a047c281259f72a73fd2a766 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-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.
 
        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.
        * 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.
 
 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>
 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.
index 86685194cd09249d612feec46273890cfdb4f5c0..56a0e12c59a150527dfbe4804b96961c09564bbd 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 = 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;
     }
index 87f6c461f2a7cdd74a2f7283297765d2b494f931..4d1c00f08c9695ff143e7975f58771e387d25cfe 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);
-  longopts = xmalloc (sizeof (std_longopts) + md_longopts_size + sizeof (struct option));
+  longopts = (struct option *) xmalloc (sizeof (std_longopts)
+                                        + md_longopts_size + sizeof (struct option));
   memcpy (longopts, std_longopts, sizeof (std_longopts));
   memcpy (((char *) longopts) + sizeof (std_longopts), md_longopts, md_longopts_size);
   memset (((char *) longopts) + sizeof (std_longopts) + md_longopts_size,
@@ -517,7 +518,7 @@ parse_args (int * pargc, char *** pargv)
   old_argv = *pargv;
 
   /* Initialize a new argv that contains no options.  */
-  new_argv = xmalloc (sizeof (char *) * (old_argc + 1));
+  new_argv = (char **) xmalloc (sizeof (char *) * (old_argc + 1));
   new_argv[0] = old_argv[0];
   new_argc = 1;
   new_argv[new_argc] = NULL;
@@ -646,7 +647,7 @@ This program has absolutely no warranty.\n"));
              as_fatal (_("bad defsym; format is --defsym name=value"));
            *s++ = '\0';
            i = bfd_scan_vma (s, (const char **) NULL, 0);
-           n = xmalloc (sizeof *n);
+           n = (struct defsym_list *) xmalloc (sizeof *n);
            n->next = defsyms;
            n->name = optarg;
            n->value = i;
@@ -1158,6 +1159,8 @@ main (int argc, char ** argv)
 
   itbl_init ();
 
+  dwarf2_init ();
+
   /* Now that we have fully initialized, and have created the output
      file, define any symbols requested by --defsym command line
      arguments.  */
index c7e2a836fb409020aa97098036ca7b6d7ba72cea..d477b4e31cc55aeab1be95bb473f7cde65a85187 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);
-         S_SET_NAME (sym, obstack_finish (&notes));
+         S_SET_NAME (sym, (const char *) obstack_finish (&notes));
        }
       else
        strcpy ((char *) S_GET_NAME (sym), s);
@@ -505,7 +505,7 @@ static struct section_stack *section_stack;
 static bfd_boolean
 get_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
 {
-  const char *gname = inf;
+  const char *gname = (const char *) inf;
   const char *group_name = elf_group_name (sec);
 
   return (group_name == gname
@@ -555,7 +555,7 @@ obj_elf_change_section (const char *name,
   if (push)
     {
       struct section_stack *elt;
-      elt = xmalloc (sizeof (struct section_stack));
+      elt = (struct section_stack *) xmalloc (sizeof (struct section_stack));
       elt->next = section_stack;
       elt->seg = now_seg;
       elt->prev_seg = previous_section;
@@ -885,7 +885,7 @@ obj_elf_section_name (void)
          return NULL;
        }
 
-      name = xmalloc (end - input_line_pointer + 1);
+      name = (char *) xmalloc (end - input_line_pointer + 1);
       memcpy (name, input_line_pointer, end - input_line_pointer);
       name[end - input_line_pointer] = '\0';
 #ifdef tc_canonicalize_section_name
@@ -1441,7 +1441,7 @@ elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
   if (srcelf->size)
     {
       if (destelf->size == NULL)
-       destelf->size = xmalloc (sizeof (expressionS));
+       destelf->size = (expressionS *) xmalloc (sizeof (expressionS));
       *destelf->size = *srcelf->size;
     }
   else
@@ -1558,7 +1558,8 @@ obj_elf_size (int ignore ATTRIBUTE_UNUSED)
     }
   else
     {
-      symbol_get_obj (sym)->size = xmalloc (sizeof (expressionS));
+      symbol_get_obj (sym)->size =
+          (expressionS *) xmalloc (sizeof (expressionS));
       *symbol_get_obj (sym)->size = exp;
     }
   demand_empty_rest_of_line ();
@@ -1609,7 +1610,7 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
   char *name;
   char c;
   int type;
-  const char *typename;
+  const char *type_name;
   symbolS *sym;
   elf_symbol_type *elfsym;
 
@@ -1630,28 +1631,28 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
       || *input_line_pointer == '%')
     ++input_line_pointer;
 
-  typename = obj_elf_type_name (& c);
+  type_name = obj_elf_type_name (& c);
 
   type = 0;
-  if (strcmp (typename, "function") == 0
-      || strcmp (typename, "2") == 0
-      || strcmp (typename, "STT_FUNC") == 0)
+  if (strcmp (type_name, "function") == 0
+      || strcmp (type_name, "2") == 0
+      || strcmp (type_name, "STT_FUNC") == 0)
     type = BSF_FUNCTION;
-  else if (strcmp (typename, "object") == 0
-          || strcmp (typename, "1") == 0
-          || strcmp (typename, "STT_OBJECT") == 0)
+  else if (strcmp (type_name, "object") == 0
+          || strcmp (type_name, "1") == 0
+          || strcmp (type_name, "STT_OBJECT") == 0)
     type = BSF_OBJECT;
-  else if (strcmp (typename, "tls_object") == 0
-          || strcmp (typename, "6") == 0
-          || strcmp (typename, "STT_TLS") == 0)
+  else if (strcmp (type_name, "tls_object") == 0
+          || strcmp (type_name, "6") == 0
+          || strcmp (type_name, "STT_TLS") == 0)
     type = BSF_OBJECT | BSF_THREAD_LOCAL;
-  else if (strcmp (typename, "notype") == 0
-          || strcmp (typename, "0") == 0
-          || strcmp (typename, "STT_NOTYPE") == 0)
+  else if (strcmp (type_name, "notype") == 0
+          || strcmp (type_name, "0") == 0
+          || strcmp (type_name, "STT_NOTYPE") == 0)
     ;
-  else if (strcmp (typename, "common") == 0
-          || strcmp (typename, "5") == 0
-          || strcmp (typename, "STT_COMMON") == 0)
+  else if (strcmp (type_name, "common") == 0
+          || strcmp (type_name, "5") == 0
+          || strcmp (type_name, "STT_COMMON") == 0)
     {
       type = BSF_OBJECT;
 
@@ -1677,9 +1678,9 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
            }
        }
     }
-  else if (strcmp (typename, "gnu_indirect_function") == 0
-          || strcmp (typename, "10") == 0
-          || strcmp (typename, "STT_GNU_IFUNC") == 0)
+  else if (strcmp (type_name, "gnu_indirect_function") == 0
+          || strcmp (type_name, "10") == 0
+          || strcmp (type_name, "STT_GNU_IFUNC") == 0)
     {
       const struct elf_backend_data *bed;
 
@@ -1688,10 +1689,10 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
            /* GNU/Linux is still using the default value 0.  */
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
-               typename);
+               type_name);
       type = BSF_FUNCTION | BSF_GNU_INDIRECT_FUNCTION;
     }
-  else if (strcmp (typename, "gnu_unique_object") == 0)
+  else if (strcmp (type_name, "gnu_unique_object") == 0)
     {
       struct elf_backend_data *bed;
 
@@ -1700,17 +1701,17 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
            /* GNU/Linux is still using the default value 0.  */
            || bed->elf_osabi == ELFOSABI_NONE))
        as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
-               typename);
+               type_name);
       type = BSF_OBJECT | BSF_GNU_UNIQUE;
       /* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols.  */
       bed->elf_osabi = ELFOSABI_LINUX;
     }
 #ifdef md_elf_symbol_type
-  else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1)
+  else if ((type = md_elf_symbol_type (type_name, sym, elfsym)) != -1)
     ;
 #endif
   else
-    as_bad (_("unrecognized symbol type \"%s\""), typename);
+    as_bad (_("unrecognized symbol type \"%s\""), type_name);
 
   *input_line_pointer = c;
 
@@ -1774,7 +1775,7 @@ obj_elf_init_stab_section (segT seg)
   /* Zero it out.  */
   memset (p, 0, 12);
   as_where (&file, NULL);
-  stabstr_name = xmalloc (strlen (segment_name (seg)) + 4);
+  stabstr_name = (char *) xmalloc (strlen (segment_name (seg)) + 4);
   strcpy (stabstr_name, segment_name (seg));
   strcat (stabstr_name, "str");
   stroff = get_stab_string_offset (file, stabstr_name);
@@ -1800,7 +1801,7 @@ adjust_stab_sections (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
   if (!strcmp ("str", sec->name + strlen (sec->name) - 3))
     return;
 
-  name = alloca (strlen (sec->name) + 4);
+  name = (char *) alloca (strlen (sec->name) + 4);
   strcpy (name, sec->name);
   strcat (name, "str");
   strsec = bfd_get_section_by_name (abfd, name);
@@ -2006,6 +2007,7 @@ struct group_list
   asection **head;             /* Section lists.  */
   unsigned int *elt_count;     /* Number of sections in each list.  */
   unsigned int num_group;      /* Number of lists.  */
+  struct hash_control *indexes; /* Maps group name to index in head array.  */
 };
 
 /* Called via bfd_map_over_sections.  If SEC is a member of a group,
@@ -2016,24 +2018,24 @@ struct group_list
 static void
 build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
 {
-  struct group_list *list = inf;
+  struct group_list *list = (struct group_list *) inf;
   const char *group_name = elf_group_name (sec);
   unsigned int i;
+  unsigned int *elem_idx;
+  unsigned int *idx_ptr;
 
   if (group_name == NULL)
     return;
 
   /* If this group already has a list, add the section to the head of
      the list.  */
-  for (i = 0; i < list->num_group; i++)
+  elem_idx = (unsigned int *) hash_find (list->indexes, group_name);
+  if (elem_idx != NULL)
     {
-      if (strcmp (group_name, elf_group_name (list->head[i])) == 0)
-       {
-         elf_next_in_group (sec) = list->head[i];
-         list->head[i] = sec;
-         list->elt_count[i] += 1;
-         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
@@ -2042,13 +2044,24 @@ build_group_lists (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
   if ((i & 127) == 0)
     {
       unsigned int newsize = i + 128;
-      list->head = xrealloc (list->head, newsize * sizeof (*list->head));
-      list->elt_count = xrealloc (list->elt_count,
-                                 newsize * sizeof (*list->elt_count));
+      list->head = (asection **) xrealloc (list->head,
+                                           newsize * sizeof (*list->head));
+      list->elt_count = (unsigned int *)
+          xrealloc (list->elt_count, newsize * sizeof (*list->elt_count));
     }
   list->head[i] = sec;
   list->elt_count[i] = 1;
   list->num_group += 1;
+
+  /* Add index to hash.  */
+  idx_ptr = xmalloc (sizeof (unsigned int));
+  *idx_ptr = i;
+  hash_insert (list->indexes, group_name, idx_ptr);
+}
+
+static void free_section_idx (const char *key ATTRIBUTE_UNUSED, void *val)
+{
+  free ((unsigned int *) val);
 }
 
 void
@@ -2063,6 +2076,7 @@ elf_frob_file (void)
   list.num_group = 0;
   list.head = NULL;
   list.elt_count = NULL;
+  list.indexes  = hash_new ();
   bfd_map_over_sections (stdoutput, build_group_lists, &list);
 
   /* Make the SHT_GROUP sections that describe each section group.  We
@@ -2128,6 +2142,10 @@ elf_frob_file (void)
 #ifdef elf_tc_final_processing
   elf_tc_final_processing ();
 #endif
+
+  /* Cleanup hash.  */
+  hash_traverse (list.indexes, free_section_idx);
+  hash_die (list.indexes);
 }
 
 /* It removes any unneeded versioned symbols from the symbol table.  */
index c12569fcb5a3179c855f549a95304db1ebde27eb..ff20874b3f541c48e8c027717f12bd4237292515 100644 (file)
@@ -65,7 +65,7 @@ intel_state;
 static struct
   {
     const char *name;
-    operatorT operator;
+    operatorT op;
     unsigned int operands;
   }
 const i386_operators[] =
@@ -91,7 +91,7 @@ const i386_operators[] =
 static struct
   {
     const char *name;
-    operatorT operator;
+    operatorT op;
     unsigned short sz[3];
   }
 const i386_types[] =
@@ -158,7 +158,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
        if (i386_operators[j].operands
            && i386_operators[j].operands != operands)
          return O_illegal;
-       return i386_operators[j].operator;
+       return i386_operators[j].op;
       }
 
   for (j = 0; i386_types[j].name; ++j)
@@ -175,7 +175,7 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc)
          *pc = c;
          if (intel_syntax > 0 || operands != 1)
            return O_illegal;
-         return i386_types[j].operator;
+         return i386_types[j].op;
        }
 
       *input_line_pointer = c;
index af1994d0e2511bd7da011634dfcc3968f6a1bd51..a8dc7fc879fb1e0e5faf5adf2490b5de154419c1 100644 (file)
@@ -1851,7 +1851,7 @@ add_prefix (unsigned int prefix)
 static void
 set_code_flag (int value)
 {
-  flag_code = value;
+  flag_code = (enum flag_code) value;
   if (flag_code == CODE_64BIT)
     {
       cpu_arch_flags.bitfield.cpu64 = 1;
@@ -1876,7 +1876,7 @@ set_code_flag (int value)
 static void
 set_16bit_gcc_code_flag (int new_code_flag)
 {
-  flag_code = new_code_flag;
+  flag_code = (enum flag_code) new_code_flag;
   if (flag_code != CODE_16BIT)
     abort ();
   cpu_arch_flags.bitfield.cpu64 = 0;
@@ -1961,7 +1961,7 @@ set_sse_check (int dummy ATTRIBUTE_UNUSED)
 
 static void
 check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
-                          i386_cpu_flags new ATTRIBUTE_UNUSED)
+                          i386_cpu_flags new_flag ATTRIBUTE_UNUSED)
 {
 #if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
   static const char *arch;
@@ -1981,7 +1981,7 @@ check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
 
   /* If we are targeting Intel L1OM, we must enable it.  */
   if (get_elf_backend_data (stdoutput)->elf_machine_code != EM_L1OM
-      || new.bitfield.cpul1om)
+      || new_flag.bitfield.cpul1om)
     return;
   
   as_bad (_("`%s' is not supported on `%s'"), name, arch);
@@ -6019,28 +6019,28 @@ lex_got (enum bfd_reloc_code_real *reloc,
     const enum bfd_reloc_code_real rel[2];
     const i386_operand_type types64;
   } gotrel[] = {
-    { "PLTOFF",   { 0,
+    { "PLTOFF",   { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_PLTOFF64 },
       OPERAND_TYPE_IMM64 },
     { "PLT",      { BFD_RELOC_386_PLT32,
                    BFD_RELOC_X86_64_PLT32    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
-    { "GOTPLT",   { 0,
+    { "GOTPLT",   { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_GOTPLT64 },
       OPERAND_TYPE_IMM64_DISP64 },
     { "GOTOFF",   { BFD_RELOC_386_GOTOFF,
                    BFD_RELOC_X86_64_GOTOFF64 },
       OPERAND_TYPE_IMM64_DISP64 },
-    { "GOTPCREL", { 0,
+    { "GOTPCREL", { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_GOTPCREL },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSGD",    { BFD_RELOC_386_TLS_GD,
                    BFD_RELOC_X86_64_TLSGD    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "TLSLDM",   { BFD_RELOC_386_TLS_LDM,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
-    { "TLSLD",    { 0,
+    { "TLSLD",    { _dummy_first_bfd_reloc_code_real,
                    BFD_RELOC_X86_64_TLSLD    },
       OPERAND_TYPE_IMM32_32S_DISP32 },
     { "GOTTPOFF", { BFD_RELOC_386_TLS_IE_32,
@@ -6050,17 +6050,17 @@ lex_got (enum bfd_reloc_code_real *reloc,
                    BFD_RELOC_X86_64_TPOFF32  },
       OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "NTPOFF",   { BFD_RELOC_386_TLS_LE,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
     { "DTPOFF",   { BFD_RELOC_386_TLS_LDO_32,
                    BFD_RELOC_X86_64_DTPOFF32 },
 
       OPERAND_TYPE_IMM32_32S_64_DISP32_64 },
     { "GOTNTPOFF",{ BFD_RELOC_386_TLS_GOTIE,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
     { "INDNTPOFF",{ BFD_RELOC_386_TLS_IE,
-                   0                         },
+                   _dummy_first_bfd_reloc_code_real },
       OPERAND_TYPE_NONE },
     { "GOT",      { BFD_RELOC_386_GOT32,
                    BFD_RELOC_X86_64_GOT32    },
@@ -6125,7 +6125,7 @@ lex_got (enum bfd_reloc_code_real *reloc,
 
              /* Allocate and copy string.  The trailing NUL shouldn't
                 be necessary, but be safe.  */
-             tmpbuf = xmalloc (first + second + 2);
+             tmpbuf = (char *) xmalloc (first + second + 2);
              memcpy (tmpbuf, input_line_pointer, first);
              if (second != 0 && *past_reloc != ' ')
                /* Replace the relocation token with ' ', so that
@@ -7104,7 +7104,7 @@ md_estimate_size_before_relax (fragP, segment)
       int old_fr_fix;
 
       if (fragP->fr_var != NO_RELOC)
-       reloc_type = fragP->fr_var;
+       reloc_type = (enum bfd_reloc_code_real) fragP->fr_var;
       else if (size == 2)
        reloc_type = BFD_RELOC_16_PCREL;
       else
@@ -7553,7 +7553,7 @@ parse_real_register (char *reg_string, char **end_op)
              if (*s == ')')
                {
                  *end_op = s + 1;
-                 r = hash_find (reg_hash, "st(0)");
+                 r = (const reg_entry *) hash_find (reg_hash, "st(0)");
                  know (r);
                  return r + fpr;
                }
index 0b4a64fa1497e216632f2d2f5d6f7d9a7409349f..e8ba9163b0614482d01f829049f7f2b29bfdc7ee 100644 (file)
 # define DWARF2_ADDR_SIZE(bfd) (bfd_arch_bits_per_address (bfd) / 8)
 #endif
 
+struct cfi_escape_data {
+  struct cfi_escape_data *next;
+  expressionS exp;
+};
 
 struct cfi_insn_data
 {
@@ -87,10 +91,7 @@ struct cfi_insn_data
       symbolS *lab2;
     } ll;
 
-    struct cfi_escape_data {
-      struct cfi_escape_data *next;
-      expressionS exp;
-    } *esc;
+    struct cfi_escape_data *esc;
 
     struct {
       unsigned reg, encoding;
@@ -155,9 +156,11 @@ struct frch_cfi_data
 static struct fde_entry *
 alloc_fde_entry (void)
 {
-  struct fde_entry *fde = xcalloc (1, sizeof (struct fde_entry));
+  struct fde_entry *fde = (struct fde_entry *)
+      xcalloc (1, sizeof (struct fde_entry));
 
-  frchain_now->frch_cfi_data = xcalloc (1, sizeof (struct frch_cfi_data));
+  frchain_now->frch_cfi_data = (struct frch_cfi_data *)
+      xcalloc (1, sizeof (struct frch_cfi_data));
   frchain_now->frch_cfi_data->cur_fde_data = fde;
   *last_fde_data = fde;
   last_fde_data = &fde->next;
@@ -179,7 +182,8 @@ alloc_fde_entry (void)
 static struct cfi_insn_data *
 alloc_cfi_insn_data (void)
 {
-  struct cfi_insn_data *insn = xcalloc (1, sizeof (struct cfi_insn_data));
+  struct cfi_insn_data *insn = (struct cfi_insn_data *)
+      xcalloc (1, sizeof (struct cfi_insn_data));
   struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
 
   *cur_fde_data->last = insn;
@@ -353,7 +357,7 @@ cfi_add_CFA_remember_state (void)
 
   cfi_add_CFA_insn (DW_CFA_remember_state);
 
-  p = xmalloc (sizeof (*p));
+  p = (struct cfa_save_data *) xmalloc (sizeof (*p));
   p->cfa_offset = frchain_now->frch_cfi_data->cur_cfa_offset;
   p->next = frchain_now->frch_cfi_data->cfa_save_stack;
   frchain_now->frch_cfi_data->cfa_save_stack = p;
@@ -637,7 +641,7 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
   tail = &head;
   do
     {
-      e = xmalloc (sizeof (*e));
+      e = (struct cfi_escape_data *) xmalloc (sizeof (*e));
       do_parse_cons_expression (&e->exp, 1);
       *tail = e;
       tail = &e->next;
@@ -1454,7 +1458,7 @@ select_cie_for_fde (struct fde_entry *fde, struct cfi_insn_data **pfirst)
     fail:;
     }
 
-  cie = xmalloc (sizeof (struct cie_entry));
+  cie = (struct cie_entry *) xmalloc (sizeof (struct cie_entry));
   cie->next = cie_root;
   cie_root = cie;
   cie->return_column = fde->return_column;
index 4d03659ae1afbc69019b51cea4a5328dacb83e11..42d7267ffdfe2242fdbf8bf5c2c3cefdee851d78 100644 (file)
@@ -168,6 +168,10 @@ struct line_seg {
 
 /* Collects data for all line table entries during assembly.  */
 static struct line_seg *all_segs;
+/* Hash used to quickly lookup a segment by name, avoiding the need to search
+   through the all_segs list.  */
+static struct hash_control *all_segs_hash;
+static struct line_seg **last_seg_ptr;
 
 struct file_entry {
   const char *filename;
@@ -230,23 +234,25 @@ get_line_subseg (segT seg, subsegT subseg)
   static subsegT last_subseg;
   static struct line_subseg *last_line_subseg;
 
-  struct line_seg **ps, *s;
+  struct line_seg *s;
   struct line_subseg **pss, *ss;
 
   if (seg == last_seg && subseg == last_subseg)
     return last_line_subseg;
 
-  for (ps = &all_segs; (s = *ps) != NULL; ps = &s->next)
-    if (s->seg == seg)
-      goto found_seg;
-
-  s = (struct line_seg *) 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)
@@ -467,7 +473,7 @@ get_filenum (const char *filename, unsigned int num)
                     xrealloc (dirs, (dir + 32) * sizeof (const char *));
            }
 
-         dirs[dir] = xmalloc (dir_len + 1);
+         dirs[dir] = (char *) xmalloc (dir_len + 1);
          memcpy (dirs[dir], filename, dir_len);
          dirs[dir][dir_len] = '\0';
          dirs_in_use = dir + 1;
@@ -1702,6 +1708,14 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT ranges_seg)
   symbol_set_value_now (info_end);
 }
 
+void
+dwarf2_init (void)
+{
+  all_segs_hash = hash_new ();
+  last_seg_ptr = &all_segs;
+}
+
+
 /* Finish the dwarf2 debug sections.  We emit .debug.line if there
    were any .file/.loc directives, or --gdwarf2 was given, or if the
    file has a non-empty .debug_info section.  If we emit .debug_line,
index b019b289c0c29d1577e25f1622b729a677a8d6fe..fdeac47f01a6717496de8d0d4ee8515ba9876290 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.  */
-bfd_boolean dwarf2_loc_directive_seen;
+extern bfd_boolean dwarf2_loc_directive_seen;
 
 /* True when we're supposed to set the basic block mark whenever a label
    is seen.  Unless the target is doing Something Weird, just call 
    dwarf2_emit_label.  */
 extern bfd_boolean dwarf2_loc_mark_labels;
 
+extern void dwarf2_init (void);
+
 extern void dwarf2_finish (void);
 
 extern int dwarf2dbg_estimate_size_before_relax (fragS *);
index 1c1ac60099a0658b4107e27b4ef4534eecfdb469..c09eb15b4983f86f9884b5590dfafabbf1c2c1ec 100644 (file)
@@ -227,6 +227,19 @@ get_cie_info (struct cie_info *info)
   return 1;
 }
 
+enum frame_state
+{
+  state_idle,
+  state_saw_size,
+  state_saw_cie_offset,
+  state_saw_pc_begin,
+  state_seeing_aug_size,
+  state_skipping_aug,
+  state_wait_loc4,
+  state_saw_loc4,
+  state_error,
+};
+
 /* This function is called from emit_expr.  It looks for cases which
    we can optimize.
 
@@ -245,18 +258,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
 {
   struct frame_data
   {
-    enum frame_state
-    {
-      state_idle,
-      state_saw_size,
-      state_saw_cie_offset,
-      state_saw_pc_begin,
-      state_seeing_aug_size,
-      state_skipping_aug,
-      state_wait_loc4,
-      state_saw_loc4,
-      state_error,
-    } state;
+    enum frame_state state;
 
     int cie_info_ok;
     struct cie_info cie_info;
@@ -324,7 +326,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
     case state_saw_size:
     case state_saw_cie_offset:
       /* Assume whatever form it appears in, it appears atomically.  */
-      d->state += 1;
+      d->state = (enum frame_state) (d->state + 1);
       break;
 
     case state_saw_pc_begin:
index e5496221814590a5ccdf0e703dec17084d65aff9..b9ce5741981d7a0a41f2b91621ed58d77c90a3da 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 operatorT operator (int *);
+static operatorT operatorf (int *);
 
 extern const char EXP_CHARS[], FLT_CHARS[];
 
@@ -1228,9 +1228,9 @@ operand (expressionS *expressionP, enum expr_mode mode)
 
 #ifdef md_operator
          {
-           operatorT operator = md_operator (name, 1, &c);
+           operatorT op = md_operator (name, 1, &c);
 
-           switch (operator)
+           switch (op)
              {
              case O_uminus:
                *input_line_pointer = c;
@@ -1250,14 +1250,14 @@ operand (expressionS *expressionP, enum expr_mode mode)
              default:
                break;
              }
-           if (operator != O_absent && operator != O_illegal)
+           if (op != O_absent && op != O_illegal)
              {
                *input_line_pointer = c;
                expr (9, expressionP, mode);
                expressionP->X_add_symbol = make_expr_symbol (expressionP);
                expressionP->X_op_symbol = NULL;
                expressionP->X_add_number = 0;
-               expressionP->X_op = operator;
+               expressionP->X_op = op;
                break;
              }
          }
@@ -1546,10 +1546,10 @@ expr_set_precedence (void)
 }
 
 void
-expr_set_rank (operatorT operator, operator_rankT rank)
+expr_set_rank (operatorT op, operator_rankT rank)
 {
-  gas_assert (operator >= O_md1 && operator < ARRAY_SIZE (op_rank));
-  op_rank[operator] = rank;
+  gas_assert (op >= O_md1 && op < ARRAY_SIZE (op_rank));
+  op_rank[op] = rank;
 }
 
 /* Initialize the expression parser.  */
@@ -1572,7 +1572,7 @@ expr_begin (void)
    Does not advance INPUT_LINE_POINTER.  */
 
 static inline operatorT
-operator (int *num_chars)
+operatorf (int *num_chars)
 {
   int c;
   operatorT ret;
@@ -1732,7 +1732,7 @@ expr (int rankarg,                /* Larger # is higher rank.  */
   /* operand () gobbles spaces.  */
   know (*input_line_pointer != ' ');
 
-  op_left = operator (&op_chars);
+  op_left = operatorf (&op_chars);
   while (op_left != O_illegal && op_rank[(int) op_left] > rank)
     {
       segT rightseg;
@@ -1763,7 +1763,7 @@ expr (int rankarg,                /* Larger # is higher rank.  */
            }
        }
 
-      op_right = operator (&op_chars);
+      op_right = operatorf (&op_chars);
 
       know (op_right == O_illegal || op_left == O_index
            || op_rank[(int) op_right] <= op_rank[(int) op_left]);
index af9af5c4263262d90c3cb937cdfd07f0db6582ee..fe3b4cced211b2b0716115ab858cf5a84453a5cc 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;
-  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;
index 06fadcbf4d762487c9e5c6ca0fd12776c2fec380..9d71ba8d4e2e2c5c6fc65a7f4222b0ee0276426c 100644 (file)
@@ -113,10 +113,10 @@ hash_new (void)
 
   size = get_gas_hash_table_size ();
 
-  ret = xmalloc (sizeof *ret);
+  ret = (struct hash_control *) xmalloc (sizeof *ret);
   obstack_begin (&ret->memory, chunksize);
   alloc = size * sizeof (struct hash_entry *);
-  ret->table = obstack_alloc (&ret->memory, alloc);
+  ret->table = (struct hash_entry **) obstack_alloc (&ret->memory, alloc);
   memset (ret->table, 0, alloc);
   ret->size = size;
 
@@ -237,7 +237,7 @@ hash_insert (struct hash_control *table, const char *key, void *value)
   ++table->insertions;
 #endif
 
-  p = obstack_alloc (&table->memory, sizeof (*p));
+  p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
   p->string = key;
   p->hash = hash;
   p->data = value;
@@ -274,7 +274,7 @@ hash_jam (struct hash_control *table, const char *key, void *value)
       ++table->insertions;
 #endif
 
-      p = obstack_alloc (&table->memory, sizeof (*p));
+      p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p));
       p->string = key;
       p->hash = hash;
       p->data = value;
index 522b485558caa7efd911ebcebab7ee876dce420f..a2cd31b3f6e4114dd54a8f533109fc5a9fe10d44 100644 (file)
@@ -165,7 +165,8 @@ input_scrub_push (char *saved_position)
   buffer_length = input_file_buffer_size ();
   sb_index = -1;
 
-  buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
+  buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
+                                    + buffer_length + AFTER_SIZE));
   memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
 
   return saved;
@@ -209,7 +210,8 @@ input_scrub_begin (void)
 
   buffer_length = input_file_buffer_size ();
 
-  buffer_start = xmalloc ((BEFORE_SIZE + buffer_length + buffer_length + AFTER_SIZE));
+  buffer_start = (char *) xmalloc ((BEFORE_SIZE + buffer_length
+                                    + buffer_length + AFTER_SIZE));
   memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
 
   /* Line number things.  */
@@ -363,10 +365,10 @@ input_scrub_next_buffer (char **bufp)
 
          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);
 
index d6777f22176139407e6c08c82d410b6d3c5df9de..c8b6d63bc4f1823b4fb4c7751ece80f94ec7488f 100644 (file)
@@ -130,6 +130,18 @@ typedef struct file_info_struct
   int                       at_end;
 } file_info_type;
 
+enum edict_enum
+{
+  EDICT_NONE,
+  EDICT_SBTTL,
+  EDICT_TITLE,
+  EDICT_NOLIST,
+  EDICT_LIST,
+  EDICT_NOLIST_NEXT,
+  EDICT_EJECT
+};
+
+
 /* This structure remembers which line from which file goes into which
    frag.  */
 struct list_info_struct
@@ -160,16 +172,7 @@ struct list_info_struct
   /* Pointer to any error message associated with this line.  */
   char *message;
 
-  enum
-    {
-      EDICT_NONE,
-      EDICT_SBTTL,
-      EDICT_TITLE,
-      EDICT_NOLIST,
-      EDICT_LIST,
-      EDICT_NOLIST_NEXT,
-      EDICT_EJECT
-    } edict;
+  enum edict_enum edict;
   char *edict_arg;
 
   /* Nonzero if this line is to be omitted because it contains
@@ -260,7 +263,7 @@ file_info (const char *file_name)
     }
 
   /* Make new entry.  */
-  p = xmalloc (sizeof (file_info_type));
+  p = (file_info_type *) xmalloc (sizeof (file_info_type));
   p->next = file_info_head;
   file_info_head = p;
   p->filename = xstrdup (file_name);
@@ -352,7 +355,7 @@ listing_newline (char *ps)
 
          len = (copy - input_line_pointer) + 2;
 
-         copy = xmalloc (len);
+         copy = (char *) xmalloc (len);
 
          if (copy != NULL)
            {
@@ -1147,8 +1150,8 @@ listing_listing (char *name ATTRIBUTE_UNUSED)
   int show_listing = 1;
   unsigned int width;
 
-  buffer = xmalloc (listing_rhs_width);
-  data_buffer = xmalloc (MAX_BYTES);
+  buffer = (char *) xmalloc (listing_rhs_width);
+  data_buffer = (char *) xmalloc (MAX_BYTES);
   eject = 1;
   list = head->next;
 
@@ -1509,7 +1512,7 @@ listing_title (int depth)
          if (listing)
            {
              length = input_line_pointer - start;
-             ttl = xmalloc (length + 1);
+             ttl = (char *) xmalloc (length + 1);
              memcpy (ttl, start, length);
              ttl[length] = 0;
              listing_tail->edict = depth ? EDICT_SBTTL : EDICT_TITLE;
index 2c72331f075823bfd034305b187c1b3d18bece3f..dd7f9a2f87a4ebffe03c5a89ca0bf6be036cbe4e 100644 (file)
@@ -393,7 +393,7 @@ get_any_string (int idx, sb *in, sb *out)
        }
       else
        {
-         char *br_buf = xmalloc(1);
+         char *br_buf = (char *) xmalloc(1);
          char *in_br = br_buf;
 
          *in_br = '\0';
@@ -424,7 +424,7 @@ get_any_string (int idx, sb *in, sb *out)
                    --in_br;
                  else
                    {
-                     br_buf = xmalloc(strlen(in_br) + 2);
+                     br_buf = (char *) xmalloc(strlen(in_br) + 2);
                      strcpy(br_buf + 1, in_br);
                      free(in_br);
                      in_br = br_buf;
@@ -457,7 +457,7 @@ new_formal (void)
 {
   formal_entry *formal;
 
-  formal = xmalloc (sizeof (formal_entry));
+  formal = (formal_entry *) xmalloc (sizeof (formal_entry));
 
   sb_new (&formal->name);
   sb_new (&formal->def);
@@ -1273,7 +1273,7 @@ delete_macro (const char *name)
   /* We can only ask hash_delete to free memory if we are deleting
      macros in reverse order to their definition.
      So just clear out the entry.  */
-  if ((macro = hash_find (macro_hash, copy)) != NULL)
+  if ((macro = (macro_entry *) hash_find (macro_hash, copy)) != NULL)
     {
       hash_jam (macro_hash, copy, NULL);
       free_macro (macro);
index 4db8018e1792e20fb8ab5f249e28ff587eb93996..edc1b6bf2fe93e4851ff9be32c4f623de73329a2 100644 (file)
    name and its default value.  Each time the macro is expanded, the
    formals get the actual values attached to them.  */
 
+enum formal_type
+  {
+    FORMAL_OPTIONAL,
+    FORMAL_REQUIRED,
+    FORMAL_VARARG
+  };
+
 /* Describe the formal arguments to a macro.  */
 
 typedef struct formal_struct {
@@ -42,12 +49,7 @@ typedef struct formal_struct {
   sb def;                      /* The default value.  */
   sb actual;                   /* The actual argument (changed on each expansion).  */
   int index;                   /* The index of the formal 0..formal_count - 1.  */
-  enum formal_type
-    {
-      FORMAL_OPTIONAL,
-      FORMAL_REQUIRED,
-      FORMAL_VARARG
-    } type;                    /* The kind of the formal.  */
+  enum formal_type type;       /* The kind of the formal.  */
 } formal_entry;
 
 /* Other values found in the index field of a formal_entry.  */
index 14e3db3c567aecc9911755b38a189f1e3911d7a8..a091ff33afc4227a40a20e721adc44c91481cff7 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:09+0200\n"
+"POT-Creation-Date: 2009-09-07 14:09+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 5a384a655d2eb48e04a2169333c21b80cd6b8b28..5ebe288a9c1e1b3b7eb9ea8f9ce6cb76db3a8e71 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;
-                 tmp_buf = xmalloc (tmp_len + 1);
+                 tmp_buf = (char *) xmalloc (tmp_len + 1);
                  memcpy (tmp_buf, s, tmp_len);
                  do
                    {
@@ -1050,7 +1050,7 @@ read_a_source_file (char *name)
                      else
                        num = buffer_limit - buffer;
 
-                     tmp_buf = xrealloc (tmp_buf, tmp_len + num);
+                     tmp_buf = (char *) xrealloc (tmp_buf, tmp_len + num);
                      memcpy (tmp_buf + tmp_len, buffer, num);
                      tmp_len += num;
                    }
@@ -1087,7 +1087,7 @@ read_a_source_file (char *name)
                      break;
                    }
 
-                 new_buf = xrealloc (new_buf, new_length + 100);
+                 new_buf = (char *) xrealloc (new_buf, new_length + 100);
                  new_tmp = new_buf + new_length;
                  new_length += 100;
                }
@@ -2097,7 +2097,7 @@ s_vendor_attribute (int vendor)
       if (i == 0)
        goto bad;
 
-      name = alloca (i + 1);
+      name = (char *) alloca (i + 1);
       memcpy (name, s, i);
       name[i] = '\0';
 
@@ -3857,7 +3857,7 @@ s_reloc (int ignore ATTRIBUTE_UNUSED)
   int c;
   struct reloc_list *reloc;
 
-  reloc = xmalloc (sizeof (*reloc));
+  reloc = (struct reloc_list *) xmalloc (sizeof (*reloc));
 
   if (flag_mri)
     stop = mri_comment_field (&stopc);
@@ -5407,7 +5407,7 @@ demand_copy_string (int *lenP)
       /* JF this next line is so demand_copy_C_string will return a
         null terminated string.  */
       obstack_1grow (&notes, '\0');
-      retval = obstack_finish (&notes);
+      retval = (char *) obstack_finish (&notes);
     }
   else
     {
@@ -5516,7 +5516,7 @@ s_incbin (int x ATTRIBUTE_UNUSED)
     {
       int i;
 
-      path = xmalloc ((unsigned long) len + include_dir_maxlen + 5);
+      path = (char *) xmalloc ((unsigned long) len + include_dir_maxlen + 5);
 
       for (i = 0; i < include_dir_count; i++)
        {
@@ -5586,7 +5586,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
 {
   char *filename;
   int i;
-  FILE *try;
+  FILE *try_file;
   char *path;
 
   if (!flag_m68k_mri)
@@ -5613,22 +5613,23 @@ s_include (int arg ATTRIBUTE_UNUSED)
        }
 
       obstack_1grow (&notes, '\0');
-      filename = obstack_finish (&notes);
+      filename = (char *) obstack_finish (&notes);
       while (!is_end_of_line[(unsigned char) *input_line_pointer])
        ++input_line_pointer;
     }
 
   demand_empty_rest_of_line ();
-  path = xmalloc ((unsigned long) i + include_dir_maxlen + 5 /* slop */ );
+  path = (char *) xmalloc ((unsigned long) i
+                           + include_dir_maxlen + 5 /* slop */ );
 
   for (i = 0; i < include_dir_count; i++)
     {
       strcpy (path, include_dirs[i]);
       strcat (path, "/");
       strcat (path, filename);
-      if (0 != (try = fopen (path, FOPEN_RT)))
+      if (0 != (try_file = fopen (path, FOPEN_RT)))
        {
-         fclose (try);
+         fclose (try_file);
          goto gotit;
        }
     }
index ae078969eb468683159ba6b8c579232b02b5b465..b334b2c6e2d7bf523f9538d65975517929bdd4d0 100644 (file)
@@ -52,7 +52,7 @@ add_debug_prefix_map (const char *arg)
       as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg);
       return;
     }
-  map = xmalloc (sizeof (debug_prefix_map));
+  map = (struct debug_prefix_map *) xmalloc (sizeof (debug_prefix_map));
   o = xstrdup (arg);
   map->old_prefix = o;
   map->old_len = p - arg;
index 69cca1de4b1ee04ca31c5b1d7ba825213c26f171..da399ad59d80da427e83e47da62a0c6cf4eee823 100644 (file)
@@ -498,7 +498,7 @@ stabs_generate_asm_file (void)
       char *dir2;
 
       dir = remap_debug_filename (getpwd ());
-      dir2 = alloca (strlen (dir) + 2);
+      dir2 = (char *) alloca (strlen (dir) + 2);
       sprintf (dir2, "%s%s", dir, "/");
       generate_asm_file (N_SO, dir2);
     }
@@ -536,7 +536,7 @@ generate_asm_file (int type, char *file)
   /* Allocate enough space for the file name (possibly extended with
      doubled up backslashes), the symbol name, and the other characters
      that make up a stabs file directive.  */
-  bufp = buf = xmalloc (2 * strlen (file) + strlen (sym) + 12);
+  bufp = buf = (char *) xmalloc (2 * strlen (file) + strlen (sym) + 12);
 
   *bufp++ = '"';
 
index 0fcd19cbff346fe3ed6126d26b6f1438934f08a1..30f8704357783ebd11190a61472967acdf0e6fbf 100644 (file)
@@ -65,7 +65,7 @@ subseg_change (register segT seg, register int subseg)
 
   if (! seginfo)
     {
-      seginfo = xcalloc (1, sizeof (*seginfo));
+      seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
       seginfo->bfd_section = seg;
       bfd_set_section_userdata (stdoutput, seg, seginfo);
     }
@@ -103,7 +103,7 @@ subseg_set_rest (segT seg, subsegT subseg)
     {
       /* This should be the only code that creates a frchainS.  */
 
-      newP = obstack_alloc (&frchains, sizeof (frchainS));
+      newP = (frchainS *) obstack_alloc (&frchains, sizeof (frchainS));
       newP->frch_subseg = subseg;
       newP->fix_root = NULL;
       newP->fix_tail = NULL;
@@ -167,7 +167,7 @@ subseg_get (const char *segname, int force_new)
   if (! seginfo)
     {
       secptr->output_section = secptr;
-      seginfo = xcalloc (1, sizeof (*seginfo));
+      seginfo = (segment_info_type *) xcalloc (1, sizeof (*seginfo));
       seginfo->bfd_section = secptr;
       bfd_set_section_userdata (stdoutput, secptr, seginfo);
     }
index 9ce45886fbd2fbe3e2c2b409b88c5511a4a0b705..61623189cbf4ef5ec2ea1c7bdaf33b3123e66ed2 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);
-  ret = obstack_finish (&notes);
+  ret = (char *) obstack_finish (&notes);
 
 #ifdef tc_canonicalize_symbol_name
   ret = tc_canonicalize_symbol_name (ret);
@@ -137,7 +137,7 @@ symbol_create (const char *name, /* It is copied, the caller can destroy/modify.
 
   preserved_copy_of_name = save_symbol_name (name);
 
-  symbolP = obstack_alloc (&notes, sizeof (symbolS));
+  symbolP = (symbolS *) obstack_alloc (&notes, sizeof (symbolS));
 
   /* symbol must be born in some fixed state.  This seems as good as any.  */
   memset (symbolP, 0, sizeof (symbolS));
@@ -197,7 +197,7 @@ local_symbol_make (const char *name, segT section, valueT value, fragS *frag)
 
   name_copy = save_symbol_name (name);
 
-  ret = obstack_alloc (&notes, sizeof *ret);
+  ret = (struct local_symbol *) obstack_alloc (&notes, sizeof *ret);
   ret->lsy_marker = NULL;
   ret->lsy_name = name_copy;
   ret->lsy_section = section;
@@ -563,7 +563,7 @@ symbol_clone (symbolS *orgsymP, int replace)
     orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
   bsymorg = orgsymP->bsym;
 
-  newsymP = obstack_alloc (&notes, sizeof (*newsymP));
+  newsymP = (symbolS *) obstack_alloc (&notes, sizeof (*newsymP));
   *newsymP = *orgsymP;
   bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
   if (bsymnew == NULL)
@@ -1453,7 +1453,7 @@ static void
 resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
 {
   if (value != NULL)
-    resolve_symbol_value (value);
+    resolve_symbol_value ((symbolS *) value);
 }
 
 /* Resolve all local symbols.  */
@@ -1603,7 +1603,7 @@ define_dollar_label (long label)
     {
       dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
       dollar_label_instances = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
-      dollar_label_defines = xmalloc (DOLLAR_LABEL_BUMP_BY);
+      dollar_label_defines = (char *) xmalloc (DOLLAR_LABEL_BUMP_BY);
       dollar_label_max = DOLLAR_LABEL_BUMP_BY;
       dollar_label_count = 0;
     }
@@ -1614,7 +1614,7 @@ define_dollar_label (long label)
                                         dollar_label_max * sizeof (long));
       dollar_label_instances = (long *) xrealloc ((char *) dollar_label_instances,
                                          dollar_label_max * sizeof (long));
-      dollar_label_defines = xrealloc (dollar_label_defines, dollar_label_max);
+      dollar_label_defines = (char *) xrealloc (dollar_label_defines, dollar_label_max);
     }                          /* if we needed to grow  */
 
   dollar_labels[dollar_label_count] = label;
@@ -1887,7 +1887,7 @@ decode_local_label_name (char *s)
     instance_number = (10 * instance_number) + *p - '0';
 
   message_format = _("\"%d\" (instance number %d of a %s label)");
-  symbol_decode = obstack_alloc (&notes, strlen (message_format) + 30);
+  symbol_decode = (char *) obstack_alloc (&notes, strlen (message_format) + 30);
   sprintf (symbol_decode, message_format, label_number, instance_number, type);
 
   return symbol_decode;
index c941ae6cb914c7debc2611c2c0ea1d070c6d7e50..8adb87b94a302c67d7874756e9688203289c70a0 100644 (file)
@@ -156,7 +156,7 @@ fix_new_internal (fragS *frag,              /* Which frag?  */
 
   n_fixups++;
 
-  fixP = obstack_alloc (&notes, sizeof (fixS));
+  fixP = (fixS *) obstack_alloc (&notes, sizeof (fixS));
 
   fixP->fx_frag = frag;
   fixP->fx_where = where;
@@ -1170,7 +1170,7 @@ write_relocs (bfd *abfd, asection *sec, void *xxx ATTRIBUTE_UNUSED)
        rp = &r->next;
     }
 
-  relocs = xcalloc (n, sizeof (arelent *));
+  relocs = (arelent **) xcalloc (n, sizeof (arelent *));
 
   i = 0;
   for (fixp = seginfo->fix_root; fixp != (fixS *) NULL; fixp = fixp->fx_next)
@@ -1398,7 +1398,7 @@ set_symtab (void)
       int i;
       bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
 
-      asympp = bfd_alloc (stdoutput, amt);
+      asympp = (asymbol **) bfd_alloc (stdoutput, amt);
       symp = symbol_rootP;
       for (i = 0; i < nsyms; i++, symp = symbol_next (symp))
        {
index b486aea3bc4bca577e92a1733019df3e26a52318..006a2262f93445f64df41b05633505ad9d83df4e 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.
index 927cae60206d4cb9ba59d8f7b888a56982cf1f5b..a9cedc4315fe84981c793eaaeaea5708eaf93dbd 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.
index bd24d00b8b478f9948130c17410c27f68a9b5a1b..20dd7c3b19dba132915b814c8976fe613425be2e 100644 (file)
@@ -319,7 +319,7 @@ print_exec_counts ()
 static void
 annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
 {
-  Source_File *sf = arg;
+  Source_File *sf = (Source_File *) arg;
   Sym *b;
   unsigned int i;
   static unsigned long last_count;
@@ -328,7 +328,7 @@ annotate_with_count (char *buf, unsigned int width, int line_num, PTR arg)
   b = NULL;
 
   if (line_num <= sf->num_lines)
-    b = sf->line[line_num - 1];
+    b = (Sym *) sf->line[line_num - 1];
 
   if (!b)
     {
@@ -488,7 +488,7 @@ print_annotated_source ()
     {
       if (sf->num_lines > 0)
        {
-         sf->line = (void *) xmalloc (sf->num_lines * sizeof (sf->line[0]));
+         sf->line = (void **) xmalloc (sf->num_lines * sizeof (sf->line[0]));
          memset (sf->line, 0, sf->num_lines * sizeof (sf->line[0]));
        }
     }
@@ -502,7 +502,7 @@ print_annotated_source ()
                  && !sym_lookup (&syms[EXCL_ANNO], sym->addr))))
        {
          sym->file->ncalls += sym->ncalls;
-         line_stats = sym->file->line[sym->line_num - 1];
+         line_stats = (Sym *) sym->file->line[sym->line_num - 1];
 
          if (!line_stats)
            {
@@ -552,7 +552,7 @@ print_annotated_source ()
 
          for (i = 0; i < table_len; ++i)
            {
-             sym = sf->line[i];
+             sym = (Sym *) sf->line[i];
 
              if (!sym || sym->ncalls == 0)
                  break;
index 6d19afcb587a32c4be2620ccbf848b9d50444afd..6ded5564f0a29b1110677e19011ecf33afcaae4e 100644 (file)
@@ -217,7 +217,8 @@ pre_visit (Sym *parent)
   if (dfn_depth >= dfn_maxdepth)
     {
       dfn_maxdepth += DFN_INCR_DEPTH;
-      dfn_stack = xrealloc (dfn_stack, dfn_maxdepth * sizeof *dfn_stack);
+      dfn_stack = (DFN_Stack *) xrealloc (dfn_stack,
+                                          dfn_maxdepth * sizeof *dfn_stack);
     }
 
   dfn_stack[dfn_depth].sym = parent;
index 5c6fe6b51def1e89af5c412f717ba4d51ca3cf75..4cca08085adf45c50f4ce1e0b265f9ae5541c4f2 100644 (file)
@@ -140,7 +140,7 @@ read_function_mappings (const char *filename)
        }
 
       /* dummy has the filename, go ahead and copy it.  */
-      symbol_map[count].file_name = xmalloc (strlen (dummy) + 1);
+      symbol_map[count].file_name = (char *) xmalloc (strlen (dummy) + 1);
       strcpy (symbol_map[count].file_name, dummy);
 
       /* Now we need the function name.  */
@@ -148,7 +148,7 @@ read_function_mappings (const char *filename)
       if (!matches)
        parse_error (filename);
       tmp = strrchr (dummy, ' ') + 1;
-      symbol_map[count].function_name = xmalloc (strlen (tmp) + 1);
+      symbol_map[count].function_name = (char *) xmalloc (strlen (tmp) + 1);
       strcpy (symbol_map[count].function_name, tmp);
       count++;
     }
@@ -227,7 +227,7 @@ core_init (const char * aout_name)
       long i;
 
       new_size = (core_num_syms + synth_count + 1) * sizeof (*core_syms);
-      core_syms = xrealloc (core_syms, new_size);
+      core_syms = (asymbol **) xrealloc (core_syms, new_size);
       symp = core_syms + core_num_syms;
       core_num_syms += synth_count;
       for (i = 0; i < synth_count; i++)
@@ -577,8 +577,10 @@ core_create_function_syms (void)
       /* Don't create a symtab entry for a function that has
         a mapping to a file, unless it's the first function
         in the file.  */
-      found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
-                      sizeof (struct function_map), search_mapped_symbol);
+      found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
+                                               symbol_map_count,
+                                               sizeof (struct function_map),
+                                               search_mapped_symbol);
       if (found == NULL || found->is_first)
        ++symtab.len;
     }
@@ -609,7 +611,8 @@ core_create_function_syms (void)
          continue;
        }
 
-      found = bsearch (core_syms[i]->name, symbol_map, symbol_map_count,
+      found = (struct function_map *) bsearch (core_syms[i]->name, symbol_map,
+                                               symbol_map_count,
                       sizeof (struct function_map), search_mapped_symbol);
       if (found && ! found->is_first)
        continue;
@@ -726,8 +729,8 @@ core_create_line_syms (void)
      BFD would provide an iterator for enumerating all line infos.  */
   prev_name_len = PATH_MAX;
   prev_filename_len = PATH_MAX;
-  prev_name = xmalloc (prev_name_len);
-  prev_filename = xmalloc (prev_filename_len);
+  prev_name = (char *) xmalloc (prev_name_len);
+  prev_filename = (char *) xmalloc (prev_filename_len);
   ltab.len = 0;
   prev_line_num = 0;
 
@@ -751,7 +754,7 @@ core_create_line_syms (void)
        {
          prev_name_len = len + 1024;
          free (prev_name);
-         prev_name = xmalloc (prev_name_len);
+         prev_name = (char *) xmalloc (prev_name_len);
        }
 
       strcpy (prev_name, dummy.name);
@@ -761,7 +764,7 @@ core_create_line_syms (void)
        {
          prev_filename_len = len + 1024;
          free (prev_filename);
-         prev_filename = xmalloc (prev_filename_len);
+         prev_filename = (char *) xmalloc (prev_filename_len);
        }
 
       strcpy (prev_filename, filename);
index bf74c263bd0ee6b1f1e251593a4e466346b79471..f48d3bcc1f0b485425f96ad352b9b83171a902f7 100644 (file)
@@ -493,13 +493,13 @@ gmon_out_read (const char *filename)
       if (!histograms)
        {
          num_histograms = 1;
-         histograms = xmalloc (sizeof (struct histogram));
+         histograms = (struct histogram *) xmalloc (sizeof (struct histogram));
          histograms->lowpc = tmp.low_pc;
          histograms->highpc = tmp.high_pc;
          histograms->num_bins = hist_num_bins;
          hist_scale = (double)((tmp.high_pc - tmp.low_pc) / sizeof (UNIT))
            / hist_num_bins;
-         histograms->sample = xmalloc (hist_num_bins * sizeof (int));
+         histograms->sample = (int *) xmalloc (hist_num_bins * sizeof (int));
          memset (histograms->sample, 0, 
                  hist_num_bins * sizeof (int));
        }
index d0c02d3f0d4bae646bb4e53e4c0fb07fc2c58167..a790fd48ccedaceddc8d25f36c8898031c9b6d0c 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.  */
-      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];      
index 74db7e420c6e9d7dc9cc4d509b9a0b80d9de578e..68a77a12e1fd1bc7957ec8798a842684a536c14e 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:10+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index 7adaaee0b50e716a88ea79c7593cc3ef82610756..d57f27032e5962c9f00277e95211c53a6e7b857b 100644 (file)
@@ -1,18 +1,19 @@
 # Swedish messages for gprof.
-# Copyright (C) 2001, 2002, 2004, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2004, 2006, 2007, 2009 Free Software Foundation, Inc.
+# This file is distributed under the same license as the binutils package.
 # Christian Rose <menthos@menthos.com>, 2001, 2002, 2004.
-# Daniel Nylander <po@danielnylander.se>, 2006, 2007.
+# Daniel Nylander <po@danielnylander.se>, 2006, 2007, 2009.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gprof 2.17.90\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-05-15 16:49+0930\n"
-"PO-Revision-Date: 2007-08-24 13:42+0100\n"
+"Project-Id-Version: gprof 2.19.90\n"
+"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
+"PO-Revision-Date: 2009-09-11 09:46+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
 #: alpha.c:102 mips.c:54
@@ -37,12 +38,12 @@ msgstr "[find_call] 0x%lx: bsr"
 #: basic_blocks.c:128 call_graph.c:89 hist.c:105
 #, c-format
 msgid "%s: %s: unexpected end of file\n"
-msgstr "%s: %s: oväntat filslut\n"
+msgstr "%s: %s: oväntat filslut\n"
 
 #: basic_blocks.c:196
 #, c-format
 msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
-msgstr "%s: varning: ignorerar exekveringsrä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
@@ -52,7 +53,7 @@ msgstr "%s:%d: (%s:0x%lx) %lu exekveringar\n"
 
 #: basic_blocks.c:290 basic_blocks.c:300
 msgid "<unknown>"
-msgstr "<okänd>"
+msgstr "<okänd>"
 
 #: basic_blocks.c:543
 #, c-format
@@ -66,7 +67,7 @@ msgid ""
 msgstr ""
 "\n"
 "\n"
-"Översta %d raderna:\n"
+"Översta %d raderna:\n"
 "\n"
 "     Rad       Antal\n"
 "\n"
@@ -114,18 +115,18 @@ msgstr "%9.2f   Medelexekveringar per rad\n"
 #: call_graph.c:68
 #, c-format
 msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
-msgstr "[cg_tally] bå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 ""
-"\t\t     Angropsgraf (förklaring följer)\n"
+"\t\t     Angropsgraf (förklaring följer)\n"
 "\n"
 
-#: cg_print.c:75
+#: cg_print.c:76
 #, c-format
 msgid ""
 "\t\t\tCall graph\n"
@@ -134,25 +135,25 @@ msgstr ""
 "\t\t\tAnropsgraf\n"
 "\n"
 
-#: cg_print.c:78 hist.c:466
+#: cg_print.c:79 hist.c:466
 #, c-format
 msgid ""
 "\n"
 "granularity: each sample hit covers %ld byte(s)"
 msgstr ""
 "\n"
-"upplö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 ""
-" för %.2f%% på %.2f sekunder\n"
+" för %.2f%% på %.2f sekunder\n"
 "\n"
 
-#: cg_print.c:86
+#: cg_print.c:87
 #, c-format
 msgid ""
 " no time propagated\n"
@@ -161,64 +162,64 @@ msgstr ""
 " ingen tid propagerad\n"
 "\n"
 
-#: cg_print.c:95 cg_print.c:98 cg_print.c:100
+#: cg_print.c:96 cg_print.c:99 cg_print.c:101
 msgid "called"
 msgstr "anropad"
 
-#: cg_print.c:95 cg_print.c:100
+#: cg_print.c:96 cg_print.c:101
 msgid "total"
 msgstr "totalt"
 
-#: cg_print.c:95
+#: cg_print.c:96
 msgid "parents"
-msgstr "fö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"
 
-#: cg_print.c:97
+#: cg_print.c:98
 #, c-format
 msgid "%time"
 msgstr "%tid"
 
-#: cg_print.c:97 cg_print.c:98
+#: cg_print.c:98 cg_print.c:99
 msgid "self"
-msgstr "själv"
+msgstr "själv"
 
-#: cg_print.c:97
+#: cg_print.c:98
 msgid "descendants"
-msgstr "ättlingar"
+msgstr "ättlingar"
 
-#: cg_print.c:98 hist.c:492
+#: cg_print.c:99 hist.c:492
 msgid "name"
 msgstr "namn"
 
-#: cg_print.c:100
+#: cg_print.c:101
 msgid "children"
 msgstr "barn"
 
-#: cg_print.c:105
+#: cg_print.c:106
 #, c-format
 msgid "index %% time    self  children    called     name\n"
-msgstr "index %% tid     själv barn        anropad    namn\n"
+msgstr "index %% tid     själv barn        anropad    namn\n"
 
-#: cg_print.c:128
+#: cg_print.c:129
 #, c-format
 msgid " <cycle %d as a whole> [%d]\n"
 msgstr " <hela cykel %d> [%d]\n"
 
-#: cg_print.c:354
+#: cg_print.c:355
 #, c-format
 msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontaneous>\n"
 msgstr "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s     <spontant>\n"
 
-#: cg_print.c:355
+#: cg_print.c:356
 #, c-format
 msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontaneous>\n"
 msgstr "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s     <spontant>\n"
 
-#: cg_print.c:589
+#: cg_print.c:590
 #, c-format
 msgid ""
 "Index by function name\n"
@@ -227,152 +228,152 @@ msgstr ""
 "Index efter funktionsnamn\n"
 "\n"
 
-#: cg_print.c:646 cg_print.c:655
+#: cg_print.c:647 cg_print.c:656
 #, c-format
 msgid "<cycle %d>"
 msgstr "<cykel %d>"
 
-#: corefile.c:59
+#: corefile.c:60
 #, c-format
 msgid "%s: unable to parse mapping file %s.\n"
 msgstr "%s: kan inte tolka mappfilen %s.\n"
 
-#: corefile.c:72
+#: corefile.c:84 corefile.c:496
 #, c-format
 msgid "%s: could not open %s.\n"
-msgstr "%s: kunde inte öppna %s.\n"
+msgstr "%s: kunde inte öppna %s.\n"
 
-#: corefile.c:166
+#: corefile.c:183
 #, c-format
 msgid "%s: %s: not in executable format\n"
-msgstr "%s: %s: inte i ett körbart format\n"
+msgstr "%s: %s: inte i ett körbart format\n"
 
-#: corefile.c:177
+#: corefile.c:194
 #, c-format
 msgid "%s: can't find .text section in %s\n"
 msgstr "%s: kan inte hitta .text-sektion i %s\n"
 
-#: corefile.c:252
+#: corefile.c:269
 #, c-format
 msgid "%s: ran out room for %lu bytes of text space\n"
-msgstr "%s: slut på 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"
-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"
-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"
 
-#: corefile.c:772
+#: corefile.c:848
 #, 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"
-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"
-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"
 
-#: gmon_io.c:341
+#: gmon_io.c:340
 #, c-format
 msgid "%s: file `%s' has unsupported version %d\n"
-msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
+msgstr "%s: filen \"%s\" har version %d som inte stöds\n"
 
-#: gmon_io.c:371
+#: gmon_io.c:370
 #, c-format
 msgid "%s: %s: found bad tag %d (file corrupted?)\n"
-msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
+msgstr "%s: %s: hittade felaktig tagg %d (är filen skadad?)\n"
 
-#: gmon_io.c:438
+#: gmon_io.c:437
 #, c-format
 msgid "%s: profiling rate incompatible with first gmon file\n"
-msgstr "%s: profileringshastighet ä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"
-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
 #
-#: gmon_io.c:529
+#: gmon_io.c:531
 #, 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"
-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"
 
-#: gmon_io.c:576
+#: gmon_io.c:578
 #, 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"
 
-#: gmon_io.c:580
+#: gmon_io.c:582
 #, c-format
 msgid "\t%d histogram records\n"
 msgstr "\t%d histogramposter\n"
 
-#: gmon_io.c:582
+#: gmon_io.c:584
 #, c-format
 msgid "\t%d call-graph record\n"
 msgstr "\t%d anropsgrafpost\n"
 
-#: gmon_io.c:583
+#: gmon_io.c:585
 #, c-format
 msgid "\t%d call-graph records\n"
 msgstr "\t%d anropsgrafposter\n"
 
-#: gmon_io.c:585
+#: gmon_io.c:587
 #, c-format
 msgid "\t%d basic-block count record\n"
-msgstr "\t%d grundblocksräkningspost\n"
+msgstr "\t%d grundblocksräkningspost\n"
 
-#: gmon_io.c:586
+#: gmon_io.c:588
 #, c-format
 msgid "\t%d basic-block count records\n"
-msgstr "\t%d grundblocksräkningsposter\n"
+msgstr "\t%d grundblocksräkningsposter\n"
 
-#: gprof.c:158
+#: gprof.c:159
 #, c-format
 msgid ""
-"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n"
+"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqSQZ][name]] [-I dirs]\n"
 "\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
 "\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
 "\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
@@ -383,77 +384,77 @@ msgid ""
 "\t[--no-static] [--print-path] [--separate-files]\n"
 "\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
 "\t[--version] [--width=n] [--ignore-non-functions]\n"
-"\t[--demangle[=STYLE]] [--no-demangle] [@FILE]\n"
+"\t[--demangle[=STYLE]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
 "\t[image-file] [profile-file...]\n"
 msgstr ""
-"Anvä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-]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[--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[--demangle[=STIL]] [--no-demangle] [@FIL]\n"
+"\t[--demangle[=STIL]] [--no-demangle] [--external-symbol-table=name] [@FILE]\n"
 "\t[bildfil] [profilfil...]\n"
 
-#: gprof.c:174
+#: gprof.c:175
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 "Rapportera fel till %s,\n"
-"Rapportera synpunkter på ö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"
-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"
-msgstr "%s: okänt filformat %s\n"
+msgstr "%s: okänt filformat %s\n"
 
 #. This output is intended to follow the GNU standards document.
-#: gprof.c:414
+#: gprof.c:419
 #, c-format
 msgid "GNU gprof %s\n"
 msgstr "GNU gprof %s\n"
 
-#: gprof.c:415
+#: gprof.c:420
 #, c-format
 msgid "Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
-msgstr "Baserat på BSD gprof, copyright 1983 Regents of the University of California.\n"
+msgstr "Baserat på BSD gprof, copyright 1983 Regents of the University of California.\n"
 
-#: gprof.c:416
+#: gprof.c:421
 #, c-format
 msgid "This program is free software.  This program has absolutely no warranty.\n"
-msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
+msgstr "Detta program är fri programvara. Detta program har ingen som helst garanti.\n"
 
-#: gprof.c:457
+#: gprof.c:462
 #, c-format
 msgid "%s: unknown demangling style `%s'\n"
-msgstr "%s: okänd avmanglingsstil \"%s\"\n"
+msgstr "%s: okänd avmanglingsstil \"%s\"\n"
 
-#: gprof.c:477
+#: gprof.c:482
 #, c-format
 msgid "%s: Only one of --function-ordering and --file-ordering may be specified.\n"
 msgstr "%s: Endast en av --function-ordering och --file-ordering kan anges.\n"
 
-#: gprof.c:527
+#: gprof.c:534
 #, c-format
 msgid "%s: sorry, file format `prof' is not yet supported\n"
-msgstr "%s: tyvä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"
 
-#: gprof.c:588
+#: gprof.c:595
 #, c-format
 msgid "%s: gmon.out file is missing call-graph data\n"
 msgstr "%s: gmon.out-filen saknar anropsgrafdata\n"
@@ -465,8 +466,8 @@ msgid ""
 "%s: from '%s'\n"
 "%s: to '%s'\n"
 msgstr ""
-"%s: dimensionsenhet ä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
@@ -476,8 +477,8 @@ msgid ""
 "%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
@@ -488,12 +489,12 @@ msgstr "%s: olika skalor i histogramposter"
 #: 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"
-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
@@ -506,7 +507,7 @@ msgid ""
 " 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
@@ -516,7 +517,7 @@ msgid ""
 "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
@@ -533,7 +534,7 @@ msgstr "kumulativ"
 
 #: hist.c:488
 msgid "self  "
-msgstr "själv"
+msgstr "själv"
 
 #: hist.c:488
 msgid "total "
@@ -568,14 +569,14 @@ msgstr "Platt profil:\n"
 #: hist.c:705
 #, c-format
 msgid "%s: found a symbol that covers several histogram records"
-msgstr "%s: hittade en symbol som täcker in flera histogramposter"
+msgstr "%s: hittade en symbol som täcker in flera histogramposter"
 
 #: mips.c:71
 #, c-format
 msgid "[find_call] 0x%lx: jal"
 msgstr "[find_call] 0x%lx: jal"
 
-#: mips.c:96
+#: mips.c:99
 #, c-format
 msgid "[find_call] 0x%lx: jalr\n"
 msgstr "[find_call] 0x%lx: jalr\n"
@@ -596,7 +597,7 @@ msgid " <cycle %d>"
 msgstr " <cykel %d>"
 
 #~ msgid "%s: `%s' is incompatible with first gmon file\n"
-#~ msgstr "%s: \"%s\" ä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"
-#~ 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 3943f33b1969cbdf3053a4d98a0e05c4cc9df470..1a445d3315f3427f1114ffe46cff14e6325fd89b 100644 (file)
@@ -237,7 +237,7 @@ annotate_source (Source_File *sf, unsigned int max_width,
       fprintf (ofp, _("*** File %s:\n"), sf->name);
     }
 
-  annotation = xmalloc (max_width + 1);
+  annotation = (char *) xmalloc (max_width + 1);
   line_num = 1;
   new_line = TRUE;
 
index 657957e8c8a34df0a04897b76a41885450112bec..1b589789dfeadba9c6c2cc82ea58165ae7b9ebb6 100644 (file)
 #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 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 *);
index 721ba253d206df04b5b094be6a83baca1dc03d9b..8d7288266eb45fa17710337a63ecebd2f03a29b0 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.
index 6f285ae3692ce5566c96ef15f18edf20b7e8e1f1..9518714e163b1476b5cad9592148a537c2ea977a 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_elf_set_dyn_lib_class (entry->the_bfd, link_class);
+  bfd_elf_set_dyn_lib_class (entry->the_bfd,
+                             (enum dynamic_lib_link_class) link_class);
 
   /* Continue on with normal load_symbols processing.  */
   return FALSE;
@@ -428,7 +429,7 @@ fragment <<EOF
       && (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
     link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
 
-  bfd_elf_set_dyn_lib_class (abfd, link_class);
+  bfd_elf_set_dyn_lib_class (abfd, (enum dynamic_lib_link_class) link_class);
 
   /* Add this file into the symbol table.  */
   if (! bfd_link_add_symbols (abfd, &link_info))
@@ -930,7 +931,7 @@ static bfd_boolean
 gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
 {
   const struct elf_backend_data *bed = get_elf_backend_data (abfd);
-  struct build_id_info *info =
+  struct build_id_info *info = (struct build_id_info *)
     elf_tdata (abfd)->after_write_object_contents_info;
   asection *asec;
   Elf_Internal_Shdr *i_shdr;
@@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
   if (i_shdr->contents == NULL)
     {
       if (asec->contents == NULL)
-       asec->contents = xmalloc (asec->size);
+       asec->contents = (unsigned char *) xmalloc (asec->size);
       contents = asec->contents;
     }
   else
     contents = i_shdr->contents + asec->output_offset;
 
-  e_note = (void *) contents;
+  e_note = (Elf_External_Note *) contents;
   size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
   size = (size + 3) & -(bfd_size_type) 4;
   id_bits = contents + size;
@@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
              if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
                {
                  struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
-                 struct build_id_info *b = xmalloc (sizeof *b);
+                 struct build_id_info *b =
+                      (struct build_id_info *) xmalloc (sizeof *b);
 
                  b->style = link_info.emit_note_gnu_build_id;
                  b->sec = s;
@@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
          continue;
 
        sz = s->size;
-       msg = xmalloc ((size_t) (sz + 1));
+       msg = (char *) xmalloc ((size_t) (sz + 1));
        if (! bfd_get_section_contents (is->the_bfd, s, msg,
                                        (file_ptr) 0, sz))
          einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
diff --git a/ld/ld.h b/ld/ld.h
index 32a140a34a21e93e65c3188934e4daf268571f14..10d2b3382730e8ff7d871083ba6c69450c5e6bbf 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)
 
+enum endian_enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE };
+
+enum symbolic_enum
+  {
+    symbolic_unset = 0,
+    symbolic,
+    symbolic_functions,
+  };
+
+enum dynamic_list_enum
+  {
+    dynamic_list_unset = 0,
+    dynamic_list_data,
+    dynamic_list
+  };
+
 typedef struct {
   /* 1 => assign space to common symbols even if `relocatable_output'.  */
   bfd_boolean force_common_definition;
@@ -161,24 +177,14 @@ typedef struct {
   bfd_boolean accept_unknown_input_arch;
 
   /* Big or little endian as set on command line.  */
-  enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian;
+  enum endian_enum endian;
 
   /* -Bsymbolic and -Bsymbolic-functions, as set on command line.  */
-  enum
-    {
-      symbolic_unset = 0,
-      symbolic,
-      symbolic_functions,
-    } symbolic;
+  enum symbolic_enum symbolic;
 
   /* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
      and --dynamic-list FILE, as set on command line.  */
-  enum
-    {
-      dynamic_list_unset = 0,
-      dynamic_list_data,
-      dynamic_list
-    } dynamic_list;
+  enum dynamic_list_enum dynamic_list;
 
   /* Name of runtime interpreter to invoke.  */
   char *interpreter;
index 479cac90e2a55e88cefa34072185cb450108e364..c329d7d9646e54e618ec5094b1d667c2bccf029e 100644 (file)
@@ -179,7 +179,7 @@ add_cref (const char *name,
 
   if (r == NULL)
     {
-      r = bfd_hash_allocate (&cref_table.root, sizeof *r);
+      r = (struct cref_ref *) bfd_hash_allocate (&cref_table.root, sizeof *r);
       if (r == NULL)
        einfo (_("%X%P: cref alloc failed: %E\n"));
       r->next = h->refs;
@@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
 static bfd_boolean
 cref_fill_array (struct cref_hash_entry *h, void *data)
 {
-  struct cref_hash_entry ***pph = data;
+  struct cref_hash_entry ***pph = (struct cref_hash_entry ***) data;
 
   ASSERT (h->demangled == NULL);
   h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
@@ -344,8 +344,10 @@ cref_fill_array (struct cref_hash_entry *h, void *data)
 static int
 cref_sort_array (const void *a1, const void *a2)
 {
-  const struct cref_hash_entry * const *p1 = a1;
-  const struct cref_hash_entry * const *p2 = a2;
+  const struct cref_hash_entry * const *p1 =
+      (const struct cref_hash_entry * const *) a1;
+  const struct cref_hash_entry * const *p2 =
+      (const struct cref_hash_entry * const *) a2;
 
   return strcmp ((*p1)->demangled, (*p2)->demangled);
 }
@@ -378,7 +380,7 @@ output_cref (FILE *fp)
       return;
     }
 
-  csyms = xmalloc (cref_symcount * sizeof (*csyms));
+  csyms = (struct cref_hash_entry **) xmalloc (cref_symcount * sizeof (*csyms));
 
   csym_fill = csyms;
   cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
@@ -602,7 +604,7 @@ check_refs (const char *name,
 static void
 check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
 {
-  struct check_refs_info *info = iarg;
+  struct check_refs_info *info = (struct check_refs_info *) iarg;
   asection *outsec;
   const char *outsecname;
   asection *outdefsec;
@@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
   if (relsize == 0)
     return;
 
-  relpp = xmalloc (relsize);
+  relpp = (arelent **) xmalloc (relsize);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
     einfo (_("%B%F: could not read relocs: %E\n"), abfd);
index 636b971c860b9ca3f142ecf6b8f867052aed3cf9..c4fd9e8f720fe65d543ea676ad89474d7aee67fd 100644 (file)
@@ -70,7 +70,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
 
   if (p == NULL)
     {
-      p = xmalloc (sizeof (struct set_info));
+      p = (struct set_info *) xmalloc (sizeof (struct set_info));
       p->next = sets;
       sets = p;
       p->h = h;
@@ -106,7 +106,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
        }
     }
 
-  e = xmalloc (sizeof (struct set_element));
+  e = (struct set_element *) xmalloc (sizeof (struct set_element));
   e->next = NULL;
   e->name = name;
   e->section = section;
@@ -153,8 +153,10 @@ ctor_prio (const char *name)
 static int
 ctor_cmp (const void *p1, const void *p2)
 {
-  const struct set_element * const *pe1 = p1;
-  const struct set_element * const *pe2 = p2;
+  const struct set_element * const *pe1 =
+      (const struct set_element * const *) p1;
+  const struct set_element * const *pe2 =
+      (const struct set_element * const *) p2;
   const char *n1;
   const char *n2;
   int prio1;
@@ -223,7 +225,7 @@ ldctor_build_sets (void)
          for (e = p->elements; e != NULL; e = e->next)
            ++c;
 
-         array = xmalloc (c * sizeof *array);
+         array = (struct set_element **) xmalloc (c * sizeof *array);
 
          i = 0;
          for (e = p->elements; e != NULL; e = e->next)
index 31681382516a5a6d9a734c029ae22ffc3306de35..2d0382815f1e5b333294bb90f1195e2b6f0040eb 100644 (file)
@@ -946,7 +946,7 @@ exp_provide (const char *dst, etree_type *src, bfd_boolean hidden)
 {
   etree_type *n;
 
-  n = stat_alloc (sizeof (n->assign));
+  n = (etree_type *) stat_alloc (sizeof (n->assign));
   n->assign.type.node_code = '=';
   n->assign.type.lineno = src->type.lineno;
   n->assign.type.node_class = etree_provide;
@@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
 {
   etree_type *n;
 
-  n = stat_alloc (sizeof (n->assert_s));
+  n = (etree_type *) stat_alloc (sizeof (n->assert_s));
   n->assert_s.type.node_code = '!';
   n->assert_s.type.lineno = exp->type.lineno;
   n->assert_s.type.node_class = etree_assert;
@@ -1095,7 +1095,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
     {
       unsigned char *dst;
       unsigned char *s;
-      fill = xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
+      fill = (fill_type *) xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
       fill->size = (len + 1) / 2;
       dst = fill->data;
       s = (unsigned char *) expld.result.str;
@@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
     }
   else
     {
-      fill = xmalloc (4 + sizeof (*fill) - 1);
+      fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
       val = expld.result.value;
       fill->data[0] = (val >> 24) & 0xff;
       fill->data[1] = (val >> 16) & 0xff;
index 1e0069dc0222f19e326d4aa2f119e30b9a3eefc6..a15f64a79cfa093f38bb6bfd9f201d464e71bf7f 100644 (file)
@@ -30,21 +30,23 @@ typedef struct {
   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;
-  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 {
@@ -100,6 +102,21 @@ typedef enum {
 
 union lang_statement_union;
 
+enum phase_enum {
+  exp_dataseg_none,
+  exp_dataseg_align_seen,
+  exp_dataseg_relro_seen,
+  exp_dataseg_end_seen,
+  exp_dataseg_relro_adjust,
+  exp_dataseg_adjust
+};
+
+enum relro_enum {
+  exp_dataseg_relro_none,
+  exp_dataseg_relro_start,
+  exp_dataseg_relro_end,
+};
+
 struct ldexp_control {
   /* Modify expression evaluation depending on this.  */
   lang_phase_type phase;
@@ -117,22 +134,11 @@ struct ldexp_control {
 
   /* State machine and results for DATASEG.  */
   struct {
-    enum {
-      exp_dataseg_none,
-      exp_dataseg_align_seen,
-      exp_dataseg_relro_seen,
-      exp_dataseg_end_seen,
-      exp_dataseg_relro_adjust,
-      exp_dataseg_adjust
-    } phase;
+    enum phase_enum phase;
 
     bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
 
-    enum {
-      exp_dataseg_relro_none,
-      exp_dataseg_relro_start,
-      exp_dataseg_relro_end,
-    } relro;
+    enum relro_enum relro;
 
     union lang_statement_union *relro_start_stat;
     union lang_statement_union *relro_end_stat;
index ca18af966ed4d8edfdb3ea1dd03c92947aad4605..e9f032ef359f6810c99f1070aae11c6d450bce21 100644 (file)
@@ -307,7 +307,7 @@ typedef struct
 static bfd_boolean
 section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
 {
-  section_iterator_callback_data *d = data;
+  section_iterator_callback_data *d = (section_iterator_callback_data *) data;
 
   if (d->found_section != NULL)
     {
@@ -452,7 +452,7 @@ output_section_callback_fast (lang_wild_statement_type *ptr,
   if (unique_section_p (section))
     return;
 
-  node = xmalloc (sizeof (lang_section_bst_type));
+  node = (lang_section_bst_type *) xmalloc (sizeof (lang_section_bst_type));
   node->left = 0;
   node->right = 0;
   node->section = section;
@@ -813,7 +813,9 @@ walk_wild_file (lang_wild_statement_type *s,
             lang_input_statement.  */
          if (member->usrdata != NULL)
            {
-             walk_wild_section (s, member->usrdata, callback, data);
+             walk_wild_section (s,
+                                 (lang_input_statement_type *) member->usrdata,
+                                 callback, data);
            }
 
          member = bfd_openr_next_archived_file (f->the_bfd, member);
@@ -1095,7 +1097,8 @@ output_section_statement_newfunc (struct bfd_hash_entry *entry,
 
   if (entry == NULL)
     {
-      entry = bfd_hash_allocate (table, sizeof (*ret));
+      entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
+                                                           sizeof (*ret));
       if (entry == NULL)
        return entry;
     }
@@ -1296,7 +1299,7 @@ lang_memory_region_alias (const char * alias, const char * region_name)
            alias);
 
   /* Add alias to region name list.  */
-  n = stat_alloc (sizeof (lang_memory_region_name));
+  n = (lang_memory_region_name *) stat_alloc (sizeof (lang_memory_region_name));
   n->name = xstrdup (alias);
   n->next = region->name_list.next;
   region->name_list.next = n;
@@ -1717,8 +1720,8 @@ lang_insert_orphan (asection *s,
 
   os_tail = ((lang_output_section_statement_type **)
             lang_output_section_statement.tail);
-  os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
-                                           NULL, constraint);
+  os = lang_enter_output_section_statement (secname, address, normal_section,
+                                            NULL, NULL, NULL, constraint);
 
   ps = NULL;
   if (config.build_constructors && *os_tail == os)
@@ -2012,18 +2015,20 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
       struct fat_user_section_struct *ud;
       struct map_symbol_def *def;
 
-      ud = get_userdata (hash_entry->u.def.section);
+      ud = (struct fat_user_section_struct *)
+          get_userdata (hash_entry->u.def.section);
       if  (! ud)
        {
          /* ??? What do we have to do to initialize this beforehand?  */
          /* The first time we get here is bfd_abs_section...  */
          init_map_userdata (0, hash_entry->u.def.section, 0);
-         ud = get_userdata (hash_entry->u.def.section);
+         ud = (struct fat_user_section_struct *)
+              get_userdata (hash_entry->u.def.section);
        }
       else if  (!ud->map_symbol_def_tail)
        ud->map_symbol_def_tail = &ud->map_symbol_def_head;
 
-      def = obstack_alloc (&map_obstack, sizeof *def);
+      def = (struct map_symbol_def *) obstack_alloc (&map_obstack, sizeof *def);
       def->entry = hash_entry;
       *(ud->map_symbol_def_tail) = def;
       ud->map_symbol_def_tail = &def->next;
@@ -2139,7 +2144,7 @@ exp_init_os (etree_type *exp)
 static void
 section_already_linked (bfd *abfd, asection *sec, void *data)
 {
-  lang_input_statement_type *entry = data;
+  lang_input_statement_type *entry = (lang_input_statement_type *) data;
 
   /* If we are only reading symbols from this object, then we want to
      discard all sections.  */
@@ -2528,9 +2533,9 @@ add_excluded_libs (const char *list)
       end = strpbrk (p, ",:");
       if (end == NULL)
        end = p + strlen (p);
-      entry = xmalloc (sizeof (*entry));
+      entry = (struct excluded_lib *) xmalloc (sizeof (*entry));
       entry->next = excluded_libs;
-      entry->name = xmalloc (end - p + 1);
+      entry->name = (char *) xmalloc (end - p + 1);
       memcpy (entry->name, p, end - p);
       entry->name[end - p] = '\0';
       excluded_libs = entry;
@@ -2751,7 +2756,7 @@ wild (lang_wild_statement_type *s,
 static int
 get_target (const bfd_target *target, void *data)
 {
-  const char *sought = data;
+  const char *sought = (const char *) data;
 
   return strcmp (target->name, sought) == 0;
 }
@@ -2798,8 +2803,8 @@ name_compare (char *first, char *second)
   char *copy2;
   int result;
 
-  copy1 = xmalloc (strlen (first) + 1);
-  copy2 = xmalloc (strlen (second) + 1);
+  copy1 = (char *) xmalloc (strlen (first) + 1);
+  copy2 = (char *) xmalloc (strlen (second) + 1);
 
   /* Convert the names to lower case.  */
   stricpy (copy1, first);
@@ -2837,7 +2842,7 @@ static const bfd_target *winner;
 static int
 closest_target_match (const bfd_target *target, void *data)
 {
-  const bfd_target *original = data;
+  const bfd_target *original = (const bfd_target *) data;
 
   if (command_line.endian == ENDIAN_BIG
       && target->byteorder != BFD_ENDIAN_BIG)
@@ -3932,7 +3937,7 @@ print_input_statement (lang_input_statement_type *statm)
 static bfd_boolean
 print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
 {
-  asection *sec = ptr;
+  asection *sec = (asection *) ptr;
 
   if ((hash_entry->type == bfd_link_hash_defined
        || hash_entry->type == bfd_link_hash_defweak)
@@ -3970,7 +3975,8 @@ hash_entry_addr_cmp (const void *a, const void *b)
 static void
 print_all_symbols (asection *sec)
 {
-  struct fat_user_section_struct *ud = get_userdata (sec);
+  struct fat_user_section_struct *ud =
+      (struct fat_user_section_struct *) get_userdata (sec);
   struct map_symbol_def *def;
   struct bfd_link_hash_entry **entries;
   unsigned int i;
@@ -3981,8 +3987,8 @@ print_all_symbols (asection *sec)
   *ud->map_symbol_def_tail = 0;
   
   /* Sort the symbols by address.  */
-  entries = obstack_alloc (&map_obstack,
-                           ud->map_symbol_def_count * sizeof (*entries));
+  entries = (struct bfd_link_hash_entry **)
+      obstack_alloc (&map_obstack, ud->map_symbol_def_count * sizeof (*entries));
 
   for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
     entries[i] = def->entry;
@@ -4419,7 +4425,8 @@ insert_pad (lang_statement_union_type **ptr,
   else
     {
       /* Make a new padding statement, linked into existing chain.  */
-      pad = stat_alloc (sizeof (lang_padding_statement_type));
+      pad = (lang_statement_union_type *)
+          stat_alloc (sizeof (lang_padding_statement_type));
       pad->header.next = *ptr;
       *ptr = pad;
       pad->header.type = lang_padding_statement_enum;
@@ -4535,7 +4542,7 @@ lang_check_section_addresses (void)
     return;
 
   amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
-  sections = xmalloc (amt);
+  sections = (asection **) xmalloc (amt);
 
   /* Scan all sections in the output list.  */
   count = 0;
@@ -5465,7 +5472,7 @@ lang_set_startof (void)
       struct bfd_link_hash_entry *h;
 
       secname = bfd_get_section_name (link_info.output_bfd, s);
-      buf = xmalloc (10 + strlen (secname));
+      buf = (char *) xmalloc (10 + strlen (secname));
 
       sprintf (buf, ".startof.%s", secname);
       h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
@@ -6762,7 +6769,7 @@ lang_new_phdr (const char *name,
 {
   struct lang_phdr *n, **pp;
 
-  n = stat_alloc (sizeof (struct lang_phdr));
+  n = (struct lang_phdr *) stat_alloc (sizeof (struct lang_phdr));
   n->next = NULL;
   n->name = name;
   n->type = exp_get_value_int (type, 0, "program header type");
@@ -6789,7 +6796,7 @@ lang_record_phdrs (void)
   lang_output_section_statement_type *os;
 
   alc = 10;
-  secs = xmalloc (alc * sizeof (asection *));
+  secs = (asection **) xmalloc (alc * sizeof (asection *));
   last = NULL;
 
   for (l = lang_phdr_list; l != NULL; l = l->next)
@@ -6856,7 +6863,8 @@ lang_record_phdrs (void)
                  if (c >= alc)
                    {
                      alc *= 2;
-                     secs = xrealloc (secs, alc * sizeof (asection *));
+                     secs = (asection **) xrealloc (secs,
+                                                     alc * sizeof (asection *));
                    }
                  secs[c] = os->bfd_section;
                  ++c;
@@ -6910,7 +6918,7 @@ lang_add_nocrossref (lang_nocrossref_type *l)
 {
   struct lang_nocrossrefs *n;
 
-  n = xmalloc (sizeof *n);
+  n = (struct lang_nocrossrefs *) xmalloc (sizeof *n);
   n->next = nocrossref_list;
   n->list = l;
   nocrossref_list = n;
@@ -6972,7 +6980,7 @@ lang_enter_overlay_section (const char *name)
     overlay_vma = exp_nameop (ADDR, name);
 
   /* Remember the section.  */
-  n = xmalloc (sizeof *n);
+  n = (struct overlay_list *) xmalloc (sizeof *n);
   n->os = current_section;
   n->next = overlay_list;
   overlay_list = n;
@@ -7008,20 +7016,20 @@ lang_leave_overlay_section (fill_type *fill,
 
   /* Define the magic symbols.  */
 
-  clean = xmalloc (strlen (name) + 1);
+  clean = (char *) xmalloc (strlen (name) + 1);
   s2 = clean;
   for (s1 = name; *s1 != '\0'; s1++)
     if (ISALNUM (*s1) || *s1 == '_')
       *s2++ = *s1;
   *s2 = '\0';
 
-  buf = xmalloc (strlen (clean) + sizeof "__load_start_");
+  buf = (char *) xmalloc (strlen (clean) + sizeof "__load_start_");
   sprintf (buf, "__load_start_%s", clean);
   lang_add_assignment (exp_provide (buf,
                                    exp_nameop (LOADADDR, name),
                                    FALSE));
 
-  buf = xmalloc (strlen (clean) + sizeof "__load_stop_");
+  buf = (char *) xmalloc (strlen (clean) + sizeof "__load_stop_");
   sprintf (buf, "__load_stop_%s", clean);
   lang_add_assignment (exp_provide (buf,
                                    exp_binop ('+',
@@ -7087,7 +7095,7 @@ lang_leave_overlay (etree_type *lma_expr,
        {
          lang_nocrossref_type *nc;
 
-         nc = xmalloc (sizeof *nc);
+         nc = (lang_nocrossref_type *) xmalloc (sizeof *nc);
          nc->name = l->os->name;
          nc->next = nocrossref;
          nocrossref = nc;
@@ -7148,7 +7156,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
          if (head->mask & BFD_ELF_VERSION_C_TYPE)
            {
              e.pattern = sym;
-             expr = htab_find (head->htab, &e);
+             expr = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) head->htab, &e);
              while (expr && strcmp (expr->pattern, sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_C_TYPE)
                  goto out_ret;
@@ -7160,7 +7169,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
          if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
            {
              e.pattern = cxx_sym;
-             expr = htab_find (head->htab, &e);
+             expr = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) head->htab, &e);
              while (expr && strcmp (expr->pattern, cxx_sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
                  goto out_ret;
@@ -7172,7 +7182,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
          if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
            {
              e.pattern = java_sym;
-             expr = htab_find (head->htab, &e);
+             expr = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) head->htab, &e);
              while (expr && strcmp (expr->pattern, java_sym) == 0)
                if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
                  goto out_ret;
@@ -7226,7 +7237,7 @@ realsymbol (const char *pattern)
 {
   const char *p;
   bfd_boolean changed = FALSE, backslash = FALSE;
-  char *s, *symbol = xmalloc (strlen (pattern) + 1);
+  char *s, *symbol = (char *) xmalloc (strlen (pattern) + 1);
 
   for (p = pattern, s = symbol; *p != '\0'; ++p)
     {
@@ -7313,7 +7324,7 @@ lang_new_vers_node (struct bfd_elf_version_expr *globals,
 {
   struct bfd_elf_version_tree *ret;
 
-  ret = xcalloc (1, sizeof *ret);
+  ret = (struct bfd_elf_version_tree *) xcalloc (1, sizeof *ret);
   ret->globals.list = globals;
   ret->locals.list = locals;
   ret->match = lang_vers_match;
@@ -7328,7 +7339,8 @@ static int version_index;
 static hashval_t
 version_expr_head_hash (const void *p)
 {
-  const struct bfd_elf_version_expr *e = p;
+  const struct bfd_elf_version_expr *e =
+      (const struct bfd_elf_version_expr *) p;
 
   return htab_hash_string (e->pattern);
 }
@@ -7336,8 +7348,10 @@ version_expr_head_hash (const void *p)
 static int
 version_expr_head_eq (const void *p1, const void *p2)
 {
-  const struct bfd_elf_version_expr *e1 = p1;
-  const struct bfd_elf_version_expr *e2 = p2;
+  const struct bfd_elf_version_expr *e1 =
+      (const struct bfd_elf_version_expr *) p1;
+  const struct bfd_elf_version_expr *e2 =
+      (const struct bfd_elf_version_expr *) p2;
 
   return strcmp (e1->pattern, e2->pattern) == 0;
 }
@@ -7372,13 +7386,13 @@ lang_finalize_version_expr_head (struct bfd_elf_version_expr_head *head)
            }
          else
            {
-             void **loc = htab_find_slot (head->htab, e, INSERT);
+             void **loc = htab_find_slot ((htab_t) head->htab, e, INSERT);
 
              if (*loc)
                {
                  struct bfd_elf_version_expr *e1, *last;
 
-                 e1 = *loc;
+                 e1 = (struct bfd_elf_version_expr *) *loc;
                  last = NULL;
                  do
                    {
@@ -7463,7 +7477,8 @@ lang_register_vers_node (const char *name,
 
          if (t->locals.htab && e1->literal)
            {
-             e2 = htab_find (t->locals.htab, e1);
+             e2 = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) t->locals.htab, e1);
              while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
                {
                  if (e1->mask == e2->mask)
@@ -7489,7 +7504,8 @@ lang_register_vers_node (const char *name,
 
          if (t->globals.htab && e1->literal)
            {
-             e2 = htab_find (t->globals.htab, e1);
+             e2 = (struct bfd_elf_version_expr *)
+                  htab_find ((htab_t) t->globals.htab, e1);
              while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
                {
                  if (e1->mask == e2->mask)
@@ -7531,7 +7547,7 @@ lang_add_vers_depend (struct bfd_elf_version_deps *list, const char *name)
   struct bfd_elf_version_deps *ret;
   struct bfd_elf_version_tree *t;
 
-  ret = xmalloc (sizeof *ret);
+  ret = (struct bfd_elf_version_deps *) xmalloc (sizeof *ret);
   ret->next = list;
 
   for (t = lang_elf_version_info; t != NULL; t = t->next)
@@ -7563,7 +7579,7 @@ lang_do_version_exports_section (void)
        continue;
 
       len = sec->size;
-      contents = xmalloc (len);
+      contents = (char *) xmalloc (len);
       if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
        einfo (_("%X%P: unable to read .exports section contents\n"), sec);
 
@@ -7594,7 +7610,7 @@ lang_add_unique (const char *name)
     if (strcmp (ent->name, name) == 0)
       return;
 
-  ent = xmalloc (sizeof *ent);
+  ent = (struct unique_sections *) xmalloc (sizeof *ent);
   ent->name = xstrdup (name);
   ent->next = unique_section_list;
   unique_section_list = ent;
@@ -7617,7 +7633,7 @@ lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic)
     {
       struct bfd_elf_dynamic_list *d;
 
-      d = xcalloc (1, sizeof *d);
+      d = (struct bfd_elf_dynamic_list *) xcalloc (1, sizeof *d);
       d->head.list = dynamic;
       d->match = lang_vers_match;
       link_info.dynamic_list = d;
index a4c3e219379f4f1859caf5f1d6ffb67cf49db881..2a8740818ebf31964876d1037d3a8d4f14cc5ed7 100644 (file)
@@ -66,28 +66,30 @@ typedef struct memory_region_struct
   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;
-  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
index 1771c58f251a3370ba4e62c149dae795cfc4ff0f..aceb5951ed98b58833fb0491b9da41d76bcf5339 100644 (file)
@@ -399,7 +399,7 @@ main (int argc, char **argv)
        {
          static const int ld_bufsz = 8193;
          size_t n;
-         char *buf = xmalloc (ld_bufsz);
+         char *buf = (char *) xmalloc (ld_bufsz);
 
          rewind (saved_script_handle);
          while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
@@ -503,9 +503,9 @@ main (int argc, char **argv)
              FILE *src;
              FILE *dst;
              const int bsize = 4096;
-             char *buf = xmalloc (bsize);
+             char *buf = (char *) xmalloc (bsize);
              int l;
-             char *dst_name = xmalloc (len + 5);
+             char *dst_name = (char *) xmalloc (len + 5);
 
              strcpy (dst_name, output_filename);
              strcat (dst_name, ".exe");
@@ -540,7 +540,7 @@ main (int argc, char **argv)
   if (config.stats)
     {
 #ifdef HAVE_SBRK
-      char *lim = sbrk (0);
+      char *lim = (char *) sbrk (0);
 #endif
       long run_time = get_run_time () - start_time;
 
@@ -672,7 +672,8 @@ add_ysym (const char *name)
 {
   if (link_info.notice_hash == NULL)
     {
-      link_info.notice_hash = xmalloc (sizeof (struct bfd_hash_table));
+      link_info.notice_hash =
+          (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
       if (!bfd_hash_table_init_n (link_info.notice_hash,
                                  bfd_hash_newfunc,
                                  sizeof (struct bfd_hash_entry),
@@ -691,7 +692,8 @@ add_wrap (const char *name)
 {
   if (link_info.wrap_hash == NULL)
     {
-      link_info.wrap_hash = xmalloc (sizeof (struct bfd_hash_table));
+      link_info.wrap_hash =
+          (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
       if (!bfd_hash_table_init_n (link_info.wrap_hash,
                                  bfd_hash_newfunc,
                                  sizeof (struct bfd_hash_entry),
@@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
       return;
     }
 
-  link_info.keep_hash = xmalloc (sizeof (struct bfd_hash_table));
+  link_info.keep_hash = (struct bfd_hash_table *)
+      xmalloc (sizeof (struct bfd_hash_table));
   if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
                            sizeof (struct bfd_hash_entry)))
     einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
 
   bufsize = 100;
-  buf = xmalloc (bufsize);
+  buf = (char *) xmalloc (bufsize);
 
   c = getc (file);
   while (c != EOF)
@@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
              if (len >= bufsize)
                {
                  bufsize *= 2;
-                 buf = xrealloc (buf, bufsize);
+                 buf = (char *) xrealloc (buf, bufsize);
                }
              c = getc (file);
            }
@@ -780,7 +783,8 @@ add_archive_element (struct bfd_link_info *info,
 {
   lang_input_statement_type *input;
 
-  input = xcalloc (1, sizeof (lang_input_statement_type));
+  input = (lang_input_statement_type *)
+      xcalloc (1, sizeof (lang_input_statement_type));
   input->filename = abfd->filename;
   input->local_sym_name = abfd->filename;
   input->the_bfd = abfd;
@@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
 static void
 warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
 {
-  struct warning_callback_info *info = iarg;
+  struct warning_callback_info *info = (struct warning_callback_info *) iarg;
   long relsize;
   arelent **relpp;
   long relcount;
@@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
   if (relsize == 0)
     return;
 
-  relpp = xmalloc (relsize);
+  relpp = (arelent **) xmalloc (relsize);
   relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
   if (relcount < 0)
     einfo (_("%B%F: could not read relocs: %E\n"), abfd);
@@ -1190,7 +1194,8 @@ undefined_symbol (struct bfd_link_info *info ATTRIBUTE_UNUSED,
       /* Only warn once about a particular undefined symbol.  */
       if (hash == NULL)
        {
-         hash = xmalloc (sizeof (struct bfd_hash_table));
+         hash = (struct bfd_hash_table *)
+              xmalloc (sizeof (struct bfd_hash_table));
          if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
                                    sizeof (struct bfd_hash_entry)))
            einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
@@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
   if (name == NULL)
     {
       if (command_line.cref || nocrossref_list != NULL)
-       return handle_asneeded_cref (abfd, value);
+       return handle_asneeded_cref (abfd, (enum notice_asneeded_action) value);
       return TRUE;
     }
 
index 42eb2cc55fd074b53ebbfdbbc80cf846fabba226..2ff95472d63f1baf32aea110daba106bf35aa6bf 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->u.data.contents = xmalloc (QUAD_SIZE);
+       link_order->u.data.contents = (bfd_byte *) xmalloc (QUAD_SIZE);
 
        value = statement->data_statement.value;
 
@@ -198,7 +198,8 @@ build_link_order (lang_statement_union_type *statement)
        link_order->offset = rs->output_offset;
        link_order->size = bfd_get_reloc_size (rs->howto);
 
-       link_order->u.reloc.p = xmalloc (sizeof (struct bfd_link_order_reloc));
+       link_order->u.reloc.p = (struct bfd_link_order_reloc *)
+            xmalloc (sizeof (struct bfd_link_order_reloc));
 
        link_order->u.reloc.p->reloc = rs->reloc;
        link_order->u.reloc.p->addend = rs->addend_value;
@@ -333,7 +334,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
   /* Invent a section name from the section name and a dotted numeric
      suffix.   */
   len = strlen (name);
-  tname = xmalloc (len + 1);
+  tname = (char *) xmalloc (len + 1);
   memcpy (tname, name, len + 1);
   /* Remove a dotted number suffix, from a previous split link. */
   while (len && ISDIGIT (tname[len-1]))
index 95a0403915dd65dbce472505f51e71f1784ca91a..d3d6e569837bd1ecd9057693a3ad7e068a41fe1b 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.  */
 
+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.  */
@@ -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;
-  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[] =
@@ -590,9 +592,11 @@ parse_args (unsigned argc, char **argv)
   int last_optind;
   enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
 
-  shortopts = xmalloc (OPTION_COUNT * 3 + 2);
-  longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
-  really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
+  shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
+  longopts = (struct option *)
+      xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
+  really_longopts = (struct option *)
+      malloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
 
   /* Starting the short option string with '-' is for programs that
      expect options and other ARGV-elements in any order and that care about
@@ -677,7 +681,7 @@ parse_args (unsigned argc, char **argv)
        {
          char *n;
 
-         n = xmalloc (strlen (argv[i]) + 20);
+         n = (char *) xmalloc (strlen (argv[i]) + 20);
          sprintf (n, "--library=%s", argv[i] + 2);
          argv[i] = n;
        }
@@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
        case 'f':
          if (command_line.auxiliary_filters == NULL)
            {
-             command_line.auxiliary_filters = xmalloc (2 * sizeof (char *));
+             command_line.auxiliary_filters = (char **)
+                  xmalloc (2 * sizeof (char *));
              command_line.auxiliary_filters[0] = optarg;
              command_line.auxiliary_filters[1] = NULL;
            }
@@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
              c = 0;
              for (p = command_line.auxiliary_filters; *p != NULL; p++)
                ++c;
-             command_line.auxiliary_filters
-               = xrealloc (command_line.auxiliary_filters,
+             command_line.auxiliary_filters = (char **)
+                  xrealloc (command_line.auxiliary_filters,
                            (c + 2) * sizeof (char *));
              command_line.auxiliary_filters[c] = optarg;
              command_line.auxiliary_filters[c + 1] = NULL;
@@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
 
              if (cp == NULL)
                {
-                 buf = xmalloc (rpath_len + optarg_len + 2);
+                 buf = (char *) xmalloc (rpath_len + optarg_len + 2);
                  sprintf (buf, "%s%c%s", command_line.rpath,
                           config.rpath_separator, optarg);
                  free (command_line.rpath);
@@ -1107,9 +1112,9 @@ parse_args (unsigned argc, char **argv)
            {
              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);
@@ -1224,7 +1229,7 @@ parse_args (unsigned argc, char **argv)
            /* We must copy the section name as set_section_start
               doesn't do it for us.  */
            len = optarg2 - optarg;
-           sec_name = xmalloc (len);
+           sec_name = (char *) xmalloc (len);
            memcpy (sec_name, optarg, len - 1);
            sec_name[len - 1] = 0;
 
@@ -1549,7 +1554,7 @@ set_segment_start (const char *section, char *valstr)
       }
   /* There was no existing value so we must create a new segment
      entry.  */
-  seg = stat_alloc (sizeof (*seg));
+  seg = (segment_type *) stat_alloc (sizeof (*seg));
   seg->name = name;
   seg->value = val;
   seg->used = FALSE;
index 05aed28a58b43d350895ad0e3a4c7b5b301fa754..1932a939ed6d4f61aae4ff77eefa6bc219d38c05 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 = xmalloc (sizeof (struct section_name_struct));
+  *ptr = (struct section_name_struct *)
+      xmalloc (sizeof (struct section_name_struct));
   return ptr;
 }
 
@@ -206,10 +207,10 @@ mri_draw_tree (void)
            base = p->vma ? p->vma : exp_nameop (NAME, ".");
 
          lang_enter_output_section_statement (p->name, base,
-                                              p->ok_to_load ? 0 : noload_section,
+                                              p->ok_to_load ? normal_section : noload_section,
                                               align, subalign, NULL, 0);
          base = 0;
-         tmp = xmalloc (sizeof *tmp);
+         tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
          tmp->next = NULL;
          tmp->spec.name = p->name;
          tmp->spec.exclude_name_list = NULL;
@@ -220,7 +221,7 @@ mri_draw_tree (void)
          for (aptr = alias; aptr; aptr = aptr->next)
            if (strcmp (aptr->alias, p->name) == 0)
              {
-               tmp = xmalloc (sizeof *tmp);
+               tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
                tmp->next = NULL;
                tmp->spec.name = aptr->name;
                tmp->spec.exclude_name_list = NULL;
index 9c7c20968a7e76f00bcc015e301a2da3290c072a..2589743a3640d09d50d6731c1c9971c18eb6b46f 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.
-# Copyright © 2007 Free Software Foundation, Inc.
+# Copyright © 2009 Free Software Foundation, Inc.
 # Jorma Karvonen <karvjorm@users.sf.net>, 2007-2009.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009.
+#
 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"
-"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"
@@ -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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: emultempl/pe.em:343
+#: emultempl/pe.em:401
 #, 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"
 
-#: emultempl/pe.em:345
+#: emultempl/pe.em:403
 #, 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"
 
-#: 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"
 
-#: 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 ""
-"  --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"
@@ -214,12 +233,12 @@ msgstr ""
 "  --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"
 
-#: emultempl/pe.em:354
+#: emultempl/pe.em:412
 #, 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"
 
-#: emultempl/pe.em:357
+#: emultempl/pe.em:415
 #, 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"
 
-#: emultempl/pe.em:359
+#: emultempl/pe.em:417
 #, 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"
 
-#: emultempl/pe.em:362
+#: emultempl/pe.em:420
 #, 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"
 
+#: 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
+#, 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: emultempl/pe.em:752
+#: emultempl/pe.em:870
 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"
 
-#: 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"
-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"
-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"
 
-#: 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"
 
-#: 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"
-"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"
-"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"
 
-#: 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"
 
-#: 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"
 
-#: emultempl/pe.em:1383
+#: emultempl/pe.em:1538
 #, 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"
 
@@ -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"
 
-#: 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"
 
@@ -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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: ldctor.c:337
+#: ldctor.c:335
 msgid ""
 "\n"
 "Set                 Symbol\n"
@@ -417,88 +508,88 @@ msgstr ""
 "Joukko              Symboli\n"
 "\n"
 
-#: ldemul.c:235
+#: ldemul.c:239
 #, 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"
 
-#: ldemul.c:261
+#: ldemul.c:265
 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:"
 
-#: ldemul.c:304
+#: ldemul.c:308
 #, 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"
 
-#: ldexp.c:358
+#: ldexp.c:360
 #, 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: ldexp.c:756
+#: ldexp.c:755
 #, 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"
 
-#: 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"
 
-#: ldexp.c:807
+#: ldexp.c:806
 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"
@@ -552,31 +643,43 @@ msgstr "ei löydy skriptitiedostoa %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"
 
-#: ldfile.c:648
+#: ldfile.c:651
 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"
 
-#: 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"
 
-#: ldlang.c:1799
+#: ldlang.c:1927
 #, c-format
 msgid ""
 "\n"
@@ -587,7 +690,7 @@ msgstr ""
 "Hylätyt syötelohkot\n"
 "\n"
 
-#: ldlang.c:1807
+#: ldlang.c:1935
 msgid ""
 "\n"
 "Memory Configuration\n"
@@ -597,23 +700,23 @@ msgstr ""
 "Muistiasetukset\n"
 "\n"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Name"
 msgstr "Nimi"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Origin"
 msgstr "Alkupiste"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Length"
 msgstr "Pituus"
 
-#: ldlang.c:1809
+#: ldlang.c:1937
 msgid "Attributes"
 msgstr "Attribuutit"
 
-#: ldlang.c:1849
+#: ldlang.c:1977
 #, c-format
 msgid ""
 "\n"
@@ -624,171 +727,189 @@ msgstr ""
 "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"
 
-#: 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"
 
-#: ldlang.c:2473
+#: ldlang.c:2602
 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:"
 
-#: ldlang.c:2481
+#: ldlang.c:2610
 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"
 
-#: 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"
 
-#: 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
-#: ldlang.c:2864
+#: ldlang.c:2990
 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: ldlang.c:3633
+#: ldlang.c:3781
 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"
-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 "
 
-#: ldlang.c:4117
+#: ldlang.c:4296
 #, 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
-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"
 
-#: ldlang.c:5203
+#: ldlang.c:5390
 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
@@ -796,7 +917,7 @@ msgstr ""
 "\n"
 "Varataan muistia yhteissymboleille\n"
 
-#: ldlang.c:5568
+#: ldlang.c:5737
 msgid ""
 "Common symbol       size              file\n"
 "\n"
@@ -804,55 +925,55 @@ msgstr ""
 "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"
 
-#: ldlang.c:6069
+#: ldlang.c:6270
 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: ldlang.c:7100
+#: ldlang.c:7299
 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"
 
-#: ldlang.c:7251
+#: ldlang.c:7450
 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"
 
-#: 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"
 
-#: 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"
 
@@ -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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: ldmain.c:391
+#: ldmain.c:393
 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ä:"
 
-#: ldmain.c:427
+#: ldmain.c:429
 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"
 
-#: 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"
 
-#: 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"
 
-#: ldmain.c:488
+#: ldmain.c:490
 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"
 
-#: 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"
 
-#: ldmain.c:524
+#: ldmain.c:526
 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"
 
-#: ldmain.c:545
+#: ldmain.c:547
 #, 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"
 
-#: ldmain.c:631
+#: ldmain.c:633
 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"
 
-#: 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"
 
-#: ldmain.c:715
+#: ldmain.c:717
 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"
 
-#: 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"
 
-#: ldmain.c:827
+#: ldmain.c:829
 #, 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"
 
-#: ldmain.c:897
+#: ldmain.c:899
 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"
 
-#: 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"
-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"
 
-#: ldmain.c:937
+#: ldmain.c:939
 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"
 
-#: ldmain.c:947
+#: ldmain.c:949
 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"
 
-#: ldmain.c:957
+#: ldmain.c:959
 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"
 
-#: ldmain.c:964
+#: ldmain.c:966
 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"
 
-#: ldmain.c:970
+#: ldmain.c:972
 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
-#: 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.
-#: 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: "
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: ldmain.c:1296
+#: ldmain.c:1298
 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”"
 
-#: 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ä"
 
-#: ldmain.c:1326
+#: ldmain.c:1328
 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"
 
-#: 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"
 
@@ -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"
-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
@@ -1134,8 +1256,8 @@ msgstr "GNU ld-versio %s\n"
 
 #: 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
@@ -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"
 
-#: lexsup.c:206 lexsup.c:344
+#: lexsup.c:209 lexsup.c:349
 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"
 
-#: lexsup.c:209
+#: lexsup.c:212
 msgid "ARCH"
-msgstr "ARCH"
+msgstr "ARKISTO"
 
-#: lexsup.c:209
+#: lexsup.c:212
 msgid "Set architecture"
 msgstr "Aseta arkkitehtuuri"
 
-#: lexsup.c:211 lexsup.c:454
+#: lexsup.c:214 lexsup.c:459
 msgid "TARGET"
 msgstr "KOHDE"
 
-#: lexsup.c:211
+#: lexsup.c:214
 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"
 
-#: lexsup.c:214
+#: lexsup.c:217
 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"
 
-#: 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"
 
-#: lexsup.c:220
+#: lexsup.c:223
 msgid "Set start address"
 msgstr "Aseta alkuosoite"
 
-#: lexsup.c:222
+#: lexsup.c:225
 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"
 
-#: lexsup.c:226
+#: lexsup.c:231
 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"
 
-#: lexsup.c:228
+#: lexsup.c:233
 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"
 
-#: lexsup.c:234
+#: lexsup.c:239
 msgid "Ignored"
 msgstr "Ei oteta huomioon"
 
-#: lexsup.c:236
+#: lexsup.c:241
 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)"
 
-#: lexsup.c:239
+#: lexsup.c:244
 msgid "FILENAME"
 msgstr "TIEDOSTONIMI"
 
-#: lexsup.c:239
+#: lexsup.c:244
 msgid "Set internal name of shared library"
 msgstr "Aseta jaetun kirjaston sisäinen nimi"
 
-#: lexsup.c:241
+#: lexsup.c:246
 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"
 
-#: lexsup.c:244
+#: lexsup.c:249
 msgid "LIBNAME"
-msgstr "LIBNAME"
+msgstr "KIRJASTONIMI"
 
-#: lexsup.c:244
+#: lexsup.c:249
 msgid "Search for library LIBNAME"
-msgstr "Haku kirjastolle LIBNAME"
+msgstr "Haku kirjastolle KIRJASTONIMI"
 
-#: lexsup.c:246
+#: lexsup.c:251
 msgid "DIRECTORY"
 msgstr "HAKEMISTO"
 
-#: lexsup.c:246
+#: lexsup.c:251
 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"
 
-#: lexsup.c:251
+#: lexsup.c:256
 msgid "EMULATION"
 msgstr "EMULOINTI"
 
-#: lexsup.c:251
+#: lexsup.c:256
 msgid "Set emulation"
 msgstr "Aseta emulointi"
 
-#: lexsup.c:253
+#: lexsup.c:258
 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"
 
-#: 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"
 
-#: lexsup.c:260
+#: lexsup.c:265
 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"
 
-#: lexsup.c:265
+#: lexsup.c:270
 msgid "Optimize output file"
 msgstr "Optimoi tulostetiedosto"
 
-#: lexsup.c:267
+#: lexsup.c:272
 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"
 
-#: lexsup.c:275
+#: lexsup.c:280
 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"
 
-#: lexsup.c:280
+#: lexsup.c:285
 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"
 
-#: lexsup.c:284
+#: lexsup.c:289
 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"
 
-#: lexsup.c:288
+#: lexsup.c:293
 msgid "Read linker script"
 msgstr "Lue linkitysskripti"
 
-#: lexsup.c:290
+#: lexsup.c:295
 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"
 
-#: lexsup.c:294
+#: lexsup.c:299
 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]"
 
-#: lexsup.c:298
+#: lexsup.c:303
 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"
 
-#: lexsup.c:302
+#: lexsup.c:307
 msgid "Print version information"
 msgstr "Tulosta versiotiedot"
 
-#: lexsup.c:304
+#: lexsup.c:309
 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"
 
-#: lexsup.c:308
+#: lexsup.c:313
 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"
 
-#: lexsup.c:312
+#: lexsup.c:317
 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"
 
-#: lexsup.c:314
+#: lexsup.c:319
 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ä"
 
-#: lexsup.c:319
+#: lexsup.c:324
 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ä"
 
-#: lexsup.c:327
+#: lexsup.c:332
 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"
@@ -1440,7 +1566,7 @@ msgstr ""
 "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"
@@ -1448,171 +1574,171 @@ msgstr ""
 "Ä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"
 
-#: lexsup.c:341
+#: lexsup.c:346
 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"
 
-#: lexsup.c:346
+#: lexsup.c:351
 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"
 
-#: lexsup.c:360
+#: lexsup.c:365
 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"
 
-#: lexsup.c:364
+#: lexsup.c:369
 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"
 
-#: lexsup.c:370
+#: lexsup.c:375
 msgid "Output cross reference table"
 msgstr "Tulosteristiviitetaulu"
 
-#: lexsup.c:372
+#: lexsup.c:377
 msgid "SYMBOL=EXPRESSION"
 msgstr "SYMBOLI=LAUSEKE"
 
-#: lexsup.c:372
+#: lexsup.c:377
 msgid "Define a symbol"
 msgstr "Määrittele symboli"
 
-#: lexsup.c:374
+#: lexsup.c:379
 msgid "[=STYLE]"
 msgstr "[=TYYLI]"
 
-#: lexsup.c:374
+#: lexsup.c:379
 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"
 
-#: lexsup.c:379
+#: lexsup.c:384
 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)"
 
-#: lexsup.c:385
+#: lexsup.c:390
 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"
 
-#: lexsup.c:389
+#: lexsup.c:394
 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)"
 
-#: lexsup.c:395
+#: lexsup.c:400
 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"
 
-#: lexsup.c:401
+#: lexsup.c:406
 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"
 
-#: lexsup.c:406
+#: lexsup.c:411
 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"
 
-#: lexsup.c:410
+#: lexsup.c:415
 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ä"
 
-#: 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"
 
-#: lexsup.c:416
+#: lexsup.c:421
 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"
-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"
 
-#: lexsup.c:427
+#: lexsup.c:432
 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"
 
-#: lexsup.c:431
+#: lexsup.c:436
 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"
 
-#: lexsup.c:437
+#: lexsup.c:442
 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ä"
 
-#: lexsup.c:443
+#: lexsup.c:448
 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ä"
 
-#: lexsup.c:450
+#: lexsup.c:455
 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ä"
 
-#: lexsup.c:454
+#: lexsup.c:459
 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"
 
-#: lexsup.c:460
+#: lexsup.c:465
 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"
-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"
 
-#: lexsup.c:468
+#: lexsup.c:473
 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"
 
-#: lexsup.c:473
+#: lexsup.c:478
 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"
 
-#: lexsup.c:481
+#: lexsup.c:486
 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"
 
-#: lexsup.c:487
+#: lexsup.c:492
 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"
 
-#: lexsup.c:490
+#: lexsup.c:495
 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"
 
-#: lexsup.c:493
+#: lexsup.c:498
 msgid "[=SIZE]"
 msgstr "[=KOKO]"
 
-#: lexsup.c:493
+#: lexsup.c:498
 msgid "Split output sections every SIZE octets"
 msgstr "Halkaise tulostelohkot kaikkiin KOKO-oktetteihin"
 
-#: lexsup.c:496
+#: lexsup.c:501
 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"
 
-#: lexsup.c:499
+#: lexsup.c:504
 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"
 
-#: lexsup.c:503
+#: lexsup.c:508
 msgid "Do task level linking"
 msgstr "Tee tehtävätason linkitystä"
 
-#: lexsup.c:505
+#: lexsup.c:510
 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"
 
-#: lexsup.c:507
+#: lexsup.c:512
 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"
 
-#: lexsup.c:512
+#: lexsup.c:517
 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"
 
-#: 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"
@@ -1742,15 +1877,15 @@ msgstr ""
 "                                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"
 
-#: lexsup.c:526
+#: lexsup.c:533
 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."
@@ -1758,87 +1893,91 @@ msgstr ""
 "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"
 
-#: lexsup.c:535
+#: lexsup.c:542
 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"
-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"
 
-#: lexsup.c:541
+#: lexsup.c:548
 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"
 
-#: lexsup.c:546
+#: lexsup.c:553
 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"
-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"
 
-#: lexsup.c:553
+#: lexsup.c:560
 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"
 
-#: lexsup.c:560
+#: lexsup.c:570
 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"
 
-#: lexsup.c:565
+#: lexsup.c:575
 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"
 
-#: 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"
 
-#: lexsup.c:734
+#: lexsup.c:744
 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"
 
-#: lexsup.c:790
+#: lexsup.c:800
 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"
 
-#: lexsup.c:950
+#: lexsup.c:964
 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.
-#: lexsup.c:1024
+#: lexsup.c:1038
 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"
 
-#: lexsup.c:1144
+#: lexsup.c:1158
 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"
 
-#: lexsup.c:1154
+#: lexsup.c:1168
 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"
 
-#: lexsup.c:1161
+#: lexsup.c:1175
 msgid "name"
 msgstr "nimi"
 
-#: lexsup.c:1163
+#: lexsup.c:1177
 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: lexsup.c:1556
+#: lexsup.c:1576
 #, 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"
 
-#: lexsup.c:1636
+#: lexsup.c:1656
 #, 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.
-#: lexsup.c:1644
+#: lexsup.c:1664
 #, 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: "
 
-#: lexsup.c:1657
+#: lexsup.c:1677
 #, 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"
-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"
 
-#: pe-dll.c:381
+#: pe-dll.c:415
 #, 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"
 
-#: 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"
 
-#: pe-dll.c:755
+#: pe-dll.c:829
 #, 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"
 
-#: pe-dll.c:848
+#: pe-dll.c:922
 #, 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"
 
-#: 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"
 
-#: 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"
 
-#: 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"
 
-#: pe-dll.c:1609
+#: pe-dll.c:1683
 #, 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"
 
-#: 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"
 
-#: pe-dll.c:2442
+#: pe-dll.c:2635
 #, 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"
index 1198c0a3acaf924cbd465b1f80e576683876ef47..3802df2d3c72ff67c6d3bfe180529fc0e41961d5 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-04 14:36+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
index fa1df197ce9dbdcc6da0da0196896c643bdaf807..56410ff81d4fc4ca7f04a24b9baa424bffc02b7f 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)
            {
-             /* 1 if this match ends in the same string (string1 or string2)
-                as the best previous match.  */
-             boolean same_str_p = (FIRST_STRING_P (match_end)
-                                   == MATCHING_IN_FIRST_STRING);
              /* 1 if this match is the best seen so far.  */
              boolean best_match_p;
 
-             /* AIX compiler got confused when this was combined
-                with the previous declaration.  */
-             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.  */
 
index 14079aa87d52516933a86feba16db96f053abb1f..a7faf35d0565b6811d5b80fbbff1fea038fa9ff1 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'.
index cfc821d9ca173270d7457066c623f4052ca52801..278ea13c53a7117428dc7ef932976a63039cd3fd 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-07 12:08+0200\n"
+"POT-Creation-Date: 2009-09-07 14:08+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"