* 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.
+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
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"
msgid "Relocation `%s' not yet implemented\n"
msgstr ""
-#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5145
+#: coff-i860.c:605 coff-tic54x.c:398 coffcode.h:5143
msgid "%B: warning: illegal symbol index %ld in relocs"
msgstr ""
msgid "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 ""
+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
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"
+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.
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;
}
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,
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;
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;
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. */
if (name_length > strlen (S_GET_NAME (sym)))
{
obstack_grow (¬es, s, name_length + 1);
- S_SET_NAME (sym, obstack_finish (¬es));
+ S_SET_NAME (sym, (const char *) obstack_finish (¬es));
}
else
strcpy ((char *) S_GET_NAME (sym), s);
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
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;
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
if (srcelf->size)
{
if (destelf->size == NULL)
- destelf->size = xmalloc (sizeof (expressionS));
+ destelf->size = (expressionS *) xmalloc (sizeof (expressionS));
*destelf->size = *srcelf->size;
}
else
}
else
{
- symbol_get_obj (sym)->size = xmalloc (sizeof (expressionS));
+ symbol_get_obj (sym)->size =
+ (expressionS *) xmalloc (sizeof (expressionS));
*symbol_get_obj (sym)->size = exp;
}
demand_empty_rest_of_line ();
char *name;
char c;
int type;
- const char *typename;
+ const char *type_name;
symbolS *sym;
elf_symbol_type *elfsym;
|| *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;
}
}
}
- 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;
/* 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;
/* 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;
/* 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);
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);
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,
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
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
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
#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. */
static struct
{
const char *name;
- operatorT operator;
+ operatorT op;
unsigned int operands;
}
const i386_operators[] =
static struct
{
const char *name;
- operatorT operator;
+ operatorT op;
unsigned short sz[3];
}
const i386_types[] =
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)
*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;
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;
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;
static void
check_cpu_arch_compatible (const char *name ATTRIBUTE_UNUSED,
- i386_cpu_flags new ATTRIBUTE_UNUSED)
+ i386_cpu_flags new_flag ATTRIBUTE_UNUSED)
{
#if defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)
static const char *arch;
/* If 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);
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,
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 },
/* 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
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
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;
}
# 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
{
symbolS *lab2;
} ll;
- struct cfi_escape_data {
- struct cfi_escape_data *next;
- expressionS exp;
- } *esc;
+ struct cfi_escape_data *esc;
struct {
unsigned reg, encoding;
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;
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;
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;
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;
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;
/* 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;
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)
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;
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,
/* 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 *);
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.
{
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;
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:
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[];
#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;
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;
}
}
}
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. */
Does not advance INPUT_LINE_POINTER. */
static inline operatorT
-operator (int *num_chars)
+operatorf (int *num_chars)
{
int c;
operatorT ret;
/* 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;
}
}
- 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]);
(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;
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;
++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;
++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;
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;
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. */
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);
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
/* 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
}
/* 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);
len = (copy - input_line_pointer) + 2;
- copy = xmalloc (len);
+ copy = (char *) xmalloc (len);
if (copy != NULL)
{
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;
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;
}
else
{
- char *br_buf = xmalloc(1);
+ char *br_buf = (char *) xmalloc(1);
char *in_br = br_buf;
*in_br = '\0';
--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;
{
formal_entry *formal;
- formal = xmalloc (sizeof (formal_entry));
+ formal = (formal_entry *) xmalloc (sizeof (formal_entry));
sb_new (&formal->name);
sb_new (&formal->def);
/* 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);
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 {
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. */
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"
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
{
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;
}
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;
}
if (i == 0)
goto bad;
- name = alloca (i + 1);
+ name = (char *) alloca (i + 1);
memcpy (name, s, i);
name[i] = '\0';
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);
/* JF this next line is so demand_copy_C_string will return a
null terminated string. */
obstack_1grow (¬es, '\0');
- retval = obstack_finish (¬es);
+ retval = (char *) obstack_finish (¬es);
}
else
{
{
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++)
{
{
char *filename;
int i;
- FILE *try;
+ FILE *try_file;
char *path;
if (!flag_m68k_mri)
}
obstack_1grow (¬es, '\0');
- filename = obstack_finish (¬es);
+ filename = (char *) obstack_finish (¬es);
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;
}
}
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;
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);
}
/* 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++ = '"';
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);
}
{
/* 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;
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);
}
name_length = strlen (name) + 1; /* +1 for \0. */
obstack_grow (¬es, name, name_length);
- ret = obstack_finish (¬es);
+ ret = (char *) obstack_finish (¬es);
#ifdef tc_canonicalize_symbol_name
ret = tc_canonicalize_symbol_name (ret);
preserved_copy_of_name = save_symbol_name (name);
- symbolP = obstack_alloc (¬es, sizeof (symbolS));
+ symbolP = (symbolS *) obstack_alloc (¬es, sizeof (symbolS));
/* symbol must be born in some fixed state. This seems as good as any. */
memset (symbolP, 0, sizeof (symbolS));
name_copy = save_symbol_name (name);
- ret = obstack_alloc (¬es, sizeof *ret);
+ ret = (struct local_symbol *) obstack_alloc (¬es, sizeof *ret);
ret->lsy_marker = NULL;
ret->lsy_name = name_copy;
ret->lsy_section = section;
orgsymP = local_symbol_convert ((struct local_symbol *) orgsymP);
bsymorg = orgsymP->bsym;
- newsymP = obstack_alloc (¬es, sizeof (*newsymP));
+ newsymP = (symbolS *) obstack_alloc (¬es, sizeof (*newsymP));
*newsymP = *orgsymP;
bsymnew = bfd_make_empty_symbol (bfd_asymbol_bfd (bsymorg));
if (bsymnew == NULL)
resolve_local_symbol (const char *key ATTRIBUTE_UNUSED, void *value)
{
if (value != NULL)
- resolve_symbol_value (value);
+ resolve_symbol_value ((symbolS *) value);
}
/* Resolve all local symbols. */
{
dollar_labels = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
dollar_label_instances = (long *) xmalloc (DOLLAR_LABEL_BUMP_BY * sizeof (long));
- dollar_label_defines = xmalloc (DOLLAR_LABEL_BUMP_BY);
+ dollar_label_defines = (char *) xmalloc (DOLLAR_LABEL_BUMP_BY);
dollar_label_max = DOLLAR_LABEL_BUMP_BY;
dollar_label_count = 0;
}
dollar_label_max * 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;
instance_number = (10 * instance_number) + *p - '0';
message_format = _("\"%d\" (instance number %d of a %s label)");
- symbol_decode = obstack_alloc (¬es, strlen (message_format) + 30);
+ symbol_decode = (char *) obstack_alloc (¬es, strlen (message_format) + 30);
sprintf (symbol_decode, message_format, label_number, instance_number, type);
return symbol_decode;
n_fixups++;
- fixP = obstack_alloc (¬es, sizeof (fixS));
+ fixP = (fixS *) obstack_alloc (¬es, sizeof (fixS));
fixP->fx_frag = frag;
fixP->fx_where = where;
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)
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))
{
+2009-09-11 Nick Clifton <nickc@redhat.com>
+
+ * po/gold.pot: Updated by the Translation project.
+
2009-09-08 Cary Coutant <ccoutant@google.com>
* output.cc (Output_file::open): Add execute permission to empty file.
+2009-09-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.
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;
b = NULL;
if (line_num <= sf->num_lines)
- b = sf->line[line_num - 1];
+ b = (Sym *) sf->line[line_num - 1];
if (!b)
{
{
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]));
}
}
&& !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)
{
for (i = 0; i < table_len; ++i)
{
- sym = sf->line[i];
+ sym = (Sym *) sf->line[i];
if (!sym || sym->ncalls == 0)
break;
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;
}
/* 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. */
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++;
}
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++)
/* 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;
}
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;
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;
{
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);
{
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);
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));
}
/* 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];
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"
# 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
#: 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
#: basic_blocks.c:290 basic_blocks.c:300
msgid "<unknown>"
-msgstr "<okänd>"
+msgstr "<okänd>"
#: basic_blocks.c:543
#, c-format
msgstr ""
"\n"
"\n"
-"Översta %d raderna:\n"
+"Översta %d raderna:\n"
"\n"
" Rad Antal\n"
"\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"
"\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"
" 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"
"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"
"\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"
"%s: from '%s'\n"
"%s: to '%s'\n"
msgstr ""
-"%s: dimensionsenhet ändrades mellan histogramposter\n"
-"%s: från \"%s\"\n"
+"%s: dimensionsenhet ändrades mellan histogramposter\n"
+"%s: från \"%s\"\n"
"%s: till \"%s\"\n"
#: hist.c:143
"%s: 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
#: 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
" 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
"Each sample counts as %g %s.\n"
msgstr ""
"\n"
-"Varje stickprov räknas som %g %s.\n"
+"Varje stickprov räknas som %g %s.\n"
#: hist.c:481
#, c-format
#: hist.c:488
msgid "self "
-msgstr "själv"
+msgstr "själv"
#: hist.c:488
msgid "total "
#: 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"
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"
fprintf (ofp, _("*** File %s:\n"), sf->name);
}
- annotation = xmalloc (max_width + 1);
+ annotation = (char *) xmalloc (max_width + 1);
line_num = 1;
new_line = TRUE;
#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 *);
+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.
|| (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;
&& (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))
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;
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;
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;
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",
#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;
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;
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;
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,
static int
cref_sort_array (const void *a1, const void *a2)
{
- const struct cref_hash_entry * const *p1 = a1;
- const struct cref_hash_entry * const *p2 = a2;
+ const struct cref_hash_entry * const *p1 =
+ (const struct cref_hash_entry * const *) a1;
+ const struct cref_hash_entry * const *p2 =
+ (const struct cref_hash_entry * const *) a2;
return strcmp ((*p1)->demangled, (*p2)->demangled);
}
return;
}
- 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);
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;
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);
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;
}
}
- e = xmalloc (sizeof (struct set_element));
+ e = (struct set_element *) xmalloc (sizeof (struct set_element));
e->next = NULL;
e->name = name;
e->section = section;
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;
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)
{
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;
{
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;
{
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;
}
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;
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 {
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;
/* 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;
static bfd_boolean
section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
{
- section_iterator_callback_data *d = data;
+ section_iterator_callback_data *d = (section_iterator_callback_data *) data;
if (d->found_section != NULL)
{
if (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;
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);
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;
}
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;
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)
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;
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. */
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;
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;
}
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);
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)
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)
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;
*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;
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;
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;
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);
{
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");
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)
if (c >= alc)
{
alc *= 2;
- secs = xrealloc (secs, alc * sizeof (asection *));
+ secs = (asection **) xrealloc (secs,
+ alc * sizeof (asection *));
}
secs[c] = os->bfd_section;
++c;
{
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;
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;
/* 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 ('+',
{
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;
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;
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;
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;
{
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)
{
{
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;
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);
}
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;
}
}
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
{
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)
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)
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)
continue;
len = sec->size;
- contents = xmalloc (len);
+ contents = (char *) xmalloc (len);
if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
einfo (_("%X%P: unable to read .exports section contents\n"), sec);
if (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;
{
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;
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
{
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)
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");
if (config.stats)
{
#ifdef HAVE_SBRK
- char *lim = sbrk (0);
+ char *lim = (char *) sbrk (0);
#endif
long run_time = get_run_time () - start_time;
{
if (link_info.notice_hash == NULL)
{
- link_info.notice_hash = xmalloc (sizeof (struct bfd_hash_table));
+ link_info.notice_hash =
+ (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init_n (link_info.notice_hash,
bfd_hash_newfunc,
sizeof (struct bfd_hash_entry),
{
if (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),
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)
if (len >= bufsize)
{
bufsize *= 2;
- buf = xrealloc (buf, bufsize);
+ buf = (char *) xrealloc (buf, bufsize);
}
c = getc (file);
}
{
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;
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;
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);
/* Only warn once about a particular undefined symbol. */
if (hash == NULL)
{
- hash = xmalloc (sizeof (struct bfd_hash_table));
+ hash = (struct bfd_hash_table *)
+ xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry)))
einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
if (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;
}
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;
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;
/* 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]))
/* 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. */
/* 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[] =
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
{
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;
}
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;
}
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;
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);
{
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);
/* 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;
}
/* 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;
ptr = &((*ptr)->next);
}
- *ptr = xmalloc (sizeof (struct section_name_struct));
+ *ptr = (struct section_name_struct *)
+ xmalloc (sizeof (struct section_name_struct));
return ptr;
}
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;
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;
-# 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"
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"
" --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"
" --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"
" --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"
" 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"
" --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"
" --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"
" --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"
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr "%P: puuttuu symboli ”%T” pää-hash-taulusta\n"
-#: ldcref.c:648 ldcref.c:655 ldmain.c:1139 ldmain.c:1146
+#: ldcref.c:648 ldcref.c:655 ldmain.c:1141 ldmain.c:1148
msgid "%B%F: could not read relocs: %E\n"
msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
msgid "%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"
"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"
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"
"Hylätyt syötelohkot\n"
"\n"
-#: ldlang.c:1807
+#: ldlang.c:1935
msgid ""
"\n"
"Memory Configuration\n"
"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"
"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"
"\n"
"Varataan muistia yhteissymboleille\n"
-#: ldlang.c:5568
+#: ldlang.c:5737
msgid ""
"Common symbol size file\n"
"\n"
"Yhteissymboli koko tiedosto\n"
"\n"
-#: ldlang.c:5701
+#: ldlang.c:5878
msgid "%P%F: invalid syntax in flags\n"
msgstr "%P%F: virheellinen syntaksi lipussa\n"
-#: 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"
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"
"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"
#: 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
#: 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
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"
"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"
"Ä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"
"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"
" 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."
"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"
#. 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"
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"
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. */
+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'.
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"