aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog23
-rw-r--r--ld/emultempl/elf32.em16
-rw-r--r--ld/ld.h32
-rw-r--r--ld/ldcref.c16
-rw-r--r--ld/ldctor.c12
-rw-r--r--ld/ldexp.c8
-rw-r--r--ld/ldexp.h56
-rw-r--r--ld/ldlang.c114
-rw-r--r--ld/ldlang.h40
-rw-r--r--ld/ldmain.c33
-rw-r--r--ld/ldwrite.c7
-rw-r--r--ld/lexsup.c67
-rw-r--r--ld/mri.c9
-rw-r--r--ld/po/fi.po1062
-rw-r--r--ld/po/ld.pot2
15 files changed, 865 insertions, 632 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 721ba25..8d72882 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,26 @@
+2009-09-11 Nick Clifton <nickc@redhat.com>
+
+ * po/ld.pot: Updated by the Translation project.
+ * po/fi.po: Updated Finnish translation.
+
+2009-09-11 Martin Thuresson <martint@google.com>
+
+ Updated sources to compile cleanly with -Wc++-compat:
+ * ld.h (enum endian_enum,enum symbolic_enum,enum
+ dynamic_list_enum): Move to top level.
+ * ldcref.c: Add casts.
+ * ldctor.c: Add casts.
+ * ldexp.c
+ * ldexp.h (enum node_tree_enum,enum phase_enum): Move to top level.
+ * ldlang.c: Add casts. (lang_insert_orphan): Use enum name instead
+ of integer.
+ * ldlang.h (enum statement_enum): Move to top level.
+ * ldmain.c: Add casts.
+ * ldwrite.c: Add casts.
+ * lexsup.c: Add casts. (enum control_enum): Move to top level.
+ * mri.c: Add casts. (mri_draw_tree): Use enum name instead of
+ integer.
+
2009-09-09 Alan Modra <amodra@bigpond.net.au>
* scripttempl/aix.sc: Only provide ENTRY on final link.
diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em
index 6f285ae..9518714 100644
--- a/ld/emultempl/elf32.em
+++ b/ld/emultempl/elf32.em
@@ -137,7 +137,8 @@ gld${EMULATION_NAME}_load_symbols (lang_input_statement_type *entry)
|| (bfd_get_file_flags (entry->the_bfd) & DYNAMIC) == 0)
return FALSE;
- bfd_elf_set_dyn_lib_class (entry->the_bfd, link_class);
+ bfd_elf_set_dyn_lib_class (entry->the_bfd,
+ (enum dynamic_lib_link_class) link_class);
/* Continue on with normal load_symbols processing. */
return FALSE;
@@ -428,7 +429,7 @@ fragment <<EOF
&& (bfd_elf_get_dyn_lib_class (needed->by) & DYN_NO_ADD_NEEDED) != 0)
link_class |= DYN_NO_NEEDED | DYN_NO_ADD_NEEDED;
- bfd_elf_set_dyn_lib_class (abfd, link_class);
+ bfd_elf_set_dyn_lib_class (abfd, (enum dynamic_lib_link_class) link_class);
/* Add this file into the symbol table. */
if (! bfd_link_add_symbols (abfd, &link_info))
@@ -930,7 +931,7 @@ static bfd_boolean
gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
{
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
- struct build_id_info *info =
+ struct build_id_info *info = (struct build_id_info *)
elf_tdata (abfd)->after_write_object_contents_info;
asection *asec;
Elf_Internal_Shdr *i_shdr;
@@ -950,13 +951,13 @@ gld${EMULATION_NAME}_write_build_id_section (bfd *abfd)
if (i_shdr->contents == NULL)
{
if (asec->contents == NULL)
- asec->contents = xmalloc (asec->size);
+ asec->contents = (unsigned char *) xmalloc (asec->size);
contents = asec->contents;
}
else
contents = i_shdr->contents + asec->output_offset;
- e_note = (void *) contents;
+ e_note = (Elf_External_Note *) contents;
size = offsetof (Elf_External_Note, name[sizeof "GNU"]);
size = (size + 3) & -(bfd_size_type) 4;
id_bits = contents + size;
@@ -1075,7 +1076,8 @@ gld${EMULATION_NAME}_after_open (void)
if (s != NULL && bfd_set_section_alignment (abfd, s, 2))
{
struct elf_obj_tdata *t = elf_tdata (link_info.output_bfd);
- struct build_id_info *b = xmalloc (sizeof *b);
+ struct build_id_info *b =
+ (struct build_id_info *) xmalloc (sizeof *b);
b->style = link_info.emit_note_gnu_build_id;
b->sec = s;
@@ -1453,7 +1455,7 @@ ${ELF_INTERPRETER_SET_DEFAULT}
continue;
sz = s->size;
- msg = xmalloc ((size_t) (sz + 1));
+ msg = (char *) xmalloc ((size_t) (sz + 1));
if (! bfd_get_section_contents (is->the_bfd, s, msg,
(file_ptr) 0, sz))
einfo ("%F%B: Can't read contents of section .gnu.warning: %E\n",
diff --git a/ld/ld.h b/ld/ld.h
index 32a140a..10d2b33 100644
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -124,6 +124,22 @@ typedef struct fat_user_section_struct {
#define LONG_SIZE (4)
#define QUAD_SIZE (8)
+enum endian_enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE };
+
+enum symbolic_enum
+ {
+ symbolic_unset = 0,
+ symbolic,
+ symbolic_functions,
+ };
+
+enum dynamic_list_enum
+ {
+ dynamic_list_unset = 0,
+ dynamic_list_data,
+ dynamic_list
+ };
+
typedef struct {
/* 1 => assign space to common symbols even if `relocatable_output'. */
bfd_boolean force_common_definition;
@@ -161,24 +177,14 @@ typedef struct {
bfd_boolean accept_unknown_input_arch;
/* Big or little endian as set on command line. */
- enum { ENDIAN_UNSET = 0, ENDIAN_BIG, ENDIAN_LITTLE } endian;
+ enum endian_enum endian;
/* -Bsymbolic and -Bsymbolic-functions, as set on command line. */
- enum
- {
- symbolic_unset = 0,
- symbolic,
- symbolic_functions,
- } symbolic;
+ enum symbolic_enum symbolic;
/* --dynamic-list, --dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo
and --dynamic-list FILE, as set on command line. */
- enum
- {
- dynamic_list_unset = 0,
- dynamic_list_data,
- dynamic_list
- } dynamic_list;
+ enum dynamic_list_enum dynamic_list;
/* Name of runtime interpreter to invoke. */
char *interpreter;
diff --git a/ld/ldcref.c b/ld/ldcref.c
index 479cac9..c329d7d 100644
--- a/ld/ldcref.c
+++ b/ld/ldcref.c
@@ -179,7 +179,7 @@ add_cref (const char *name,
if (r == NULL)
{
- r = bfd_hash_allocate (&cref_table.root, sizeof *r);
+ r = (struct cref_ref *) bfd_hash_allocate (&cref_table.root, sizeof *r);
if (r == NULL)
einfo (_("%X%P: cref alloc failed: %E\n"));
r->next = h->refs;
@@ -324,7 +324,7 @@ handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
static bfd_boolean
cref_fill_array (struct cref_hash_entry *h, void *data)
{
- struct cref_hash_entry ***pph = data;
+ struct cref_hash_entry ***pph = (struct cref_hash_entry ***) data;
ASSERT (h->demangled == NULL);
h->demangled = bfd_demangle (link_info.output_bfd, h->root.string,
@@ -344,8 +344,10 @@ cref_fill_array (struct cref_hash_entry *h, void *data)
static int
cref_sort_array (const void *a1, const void *a2)
{
- const struct cref_hash_entry * const *p1 = a1;
- const struct cref_hash_entry * const *p2 = a2;
+ const struct cref_hash_entry * const *p1 =
+ (const struct cref_hash_entry * const *) a1;
+ const struct cref_hash_entry * const *p2 =
+ (const struct cref_hash_entry * const *) a2;
return strcmp ((*p1)->demangled, (*p2)->demangled);
}
@@ -378,7 +380,7 @@ output_cref (FILE *fp)
return;
}
- csyms = xmalloc (cref_symcount * sizeof (*csyms));
+ csyms = (struct cref_hash_entry **) xmalloc (cref_symcount * sizeof (*csyms));
csym_fill = csyms;
cref_hash_traverse (&cref_table, cref_fill_array, &csym_fill);
@@ -602,7 +604,7 @@ check_refs (const char *name,
static void
check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
{
- struct check_refs_info *info = iarg;
+ struct check_refs_info *info = (struct check_refs_info *) iarg;
asection *outsec;
const char *outsecname;
asection *outdefsec;
@@ -649,7 +651,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
if (relsize == 0)
return;
- relpp = xmalloc (relsize);
+ relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0)
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
diff --git a/ld/ldctor.c b/ld/ldctor.c
index 636b971..c4fd9e8 100644
--- a/ld/ldctor.c
+++ b/ld/ldctor.c
@@ -70,7 +70,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
if (p == NULL)
{
- p = xmalloc (sizeof (struct set_info));
+ p = (struct set_info *) xmalloc (sizeof (struct set_info));
p->next = sets;
sets = p;
p->h = h;
@@ -106,7 +106,7 @@ ldctor_add_set_entry (struct bfd_link_hash_entry *h,
}
}
- e = xmalloc (sizeof (struct set_element));
+ e = (struct set_element *) xmalloc (sizeof (struct set_element));
e->next = NULL;
e->name = name;
e->section = section;
@@ -153,8 +153,10 @@ ctor_prio (const char *name)
static int
ctor_cmp (const void *p1, const void *p2)
{
- const struct set_element * const *pe1 = p1;
- const struct set_element * const *pe2 = p2;
+ const struct set_element * const *pe1 =
+ (const struct set_element * const *) p1;
+ const struct set_element * const *pe2 =
+ (const struct set_element * const *) p2;
const char *n1;
const char *n2;
int prio1;
@@ -223,7 +225,7 @@ ldctor_build_sets (void)
for (e = p->elements; e != NULL; e = e->next)
++c;
- array = xmalloc (c * sizeof *array);
+ array = (struct set_element **) xmalloc (c * sizeof *array);
i = 0;
for (e = p->elements; e != NULL; e = e->next)
diff --git a/ld/ldexp.c b/ld/ldexp.c
index 3168138..2d03828 100644
--- a/ld/ldexp.c
+++ b/ld/ldexp.c
@@ -946,7 +946,7 @@ exp_provide (const char *dst, etree_type *src, bfd_boolean hidden)
{
etree_type *n;
- n = stat_alloc (sizeof (n->assign));
+ n = (etree_type *) stat_alloc (sizeof (n->assign));
n->assign.type.node_code = '=';
n->assign.type.lineno = src->type.lineno;
n->assign.type.node_class = etree_provide;
@@ -963,7 +963,7 @@ exp_assert (etree_type *exp, const char *message)
{
etree_type *n;
- n = stat_alloc (sizeof (n->assert_s));
+ n = (etree_type *) stat_alloc (sizeof (n->assert_s));
n->assert_s.type.node_code = '!';
n->assert_s.type.lineno = exp->type.lineno;
n->assert_s.type.node_class = etree_assert;
@@ -1095,7 +1095,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
{
unsigned char *dst;
unsigned char *s;
- fill = xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
+ fill = (fill_type *) xmalloc ((len + 1) / 2 + sizeof (*fill) - 1);
fill->size = (len + 1) / 2;
dst = fill->data;
s = (unsigned char *) expld.result.str;
@@ -1120,7 +1120,7 @@ exp_get_fill (etree_type *tree, fill_type *def, char *name)
}
else
{
- fill = xmalloc (4 + sizeof (*fill) - 1);
+ fill = (fill_type *) xmalloc (4 + sizeof (*fill) - 1);
val = expld.result.value;
fill->data[0] = (val >> 24) & 0xff;
fill->data[1] = (val >> 16) & 0xff;
diff --git a/ld/ldexp.h b/ld/ldexp.h
index 1e0069d..a15f64a 100644
--- a/ld/ldexp.h
+++ b/ld/ldexp.h
@@ -30,21 +30,23 @@ typedef struct {
bfd_boolean valid_p;
} etree_value_type;
+enum node_tree_enum {
+ etree_binary,
+ etree_trinary,
+ etree_unary,
+ etree_name,
+ etree_assign,
+ etree_provide,
+ etree_provided,
+ etree_value,
+ etree_assert,
+ etree_rel
+};
+
typedef struct {
int node_code;
unsigned int lineno;
- enum {
- etree_binary,
- etree_trinary,
- etree_unary,
- etree_name,
- etree_assign,
- etree_provide,
- etree_provided,
- etree_value,
- etree_assert,
- etree_rel
- } node_class;
+ enum node_tree_enum node_class;
} node_type;
typedef union etree_union {
@@ -100,6 +102,21 @@ typedef enum {
union lang_statement_union;
+enum phase_enum {
+ exp_dataseg_none,
+ exp_dataseg_align_seen,
+ exp_dataseg_relro_seen,
+ exp_dataseg_end_seen,
+ exp_dataseg_relro_adjust,
+ exp_dataseg_adjust
+};
+
+enum relro_enum {
+ exp_dataseg_relro_none,
+ exp_dataseg_relro_start,
+ exp_dataseg_relro_end,
+};
+
struct ldexp_control {
/* Modify expression evaluation depending on this. */
lang_phase_type phase;
@@ -117,22 +134,11 @@ struct ldexp_control {
/* State machine and results for DATASEG. */
struct {
- enum {
- exp_dataseg_none,
- exp_dataseg_align_seen,
- exp_dataseg_relro_seen,
- exp_dataseg_end_seen,
- exp_dataseg_relro_adjust,
- exp_dataseg_adjust
- } phase;
+ enum phase_enum phase;
bfd_vma base, min_base, relro_end, end, pagesize, maxpagesize;
- enum {
- exp_dataseg_relro_none,
- exp_dataseg_relro_start,
- exp_dataseg_relro_end,
- } relro;
+ enum relro_enum relro;
union lang_statement_union *relro_start_stat;
union lang_statement_union *relro_end_stat;
diff --git a/ld/ldlang.c b/ld/ldlang.c
index ca18af9..e9f032e 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -307,7 +307,7 @@ typedef struct
static bfd_boolean
section_iterator_callback (bfd *bfd ATTRIBUTE_UNUSED, asection *s, void *data)
{
- section_iterator_callback_data *d = data;
+ section_iterator_callback_data *d = (section_iterator_callback_data *) data;
if (d->found_section != NULL)
{
@@ -452,7 +452,7 @@ output_section_callback_fast (lang_wild_statement_type *ptr,
if (unique_section_p (section))
return;
- node = xmalloc (sizeof (lang_section_bst_type));
+ node = (lang_section_bst_type *) xmalloc (sizeof (lang_section_bst_type));
node->left = 0;
node->right = 0;
node->section = section;
@@ -813,7 +813,9 @@ walk_wild_file (lang_wild_statement_type *s,
lang_input_statement. */
if (member->usrdata != NULL)
{
- walk_wild_section (s, member->usrdata, callback, data);
+ walk_wild_section (s,
+ (lang_input_statement_type *) member->usrdata,
+ callback, data);
}
member = bfd_openr_next_archived_file (f->the_bfd, member);
@@ -1095,7 +1097,8 @@ output_section_statement_newfunc (struct bfd_hash_entry *entry,
if (entry == NULL)
{
- entry = bfd_hash_allocate (table, sizeof (*ret));
+ entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
+ sizeof (*ret));
if (entry == NULL)
return entry;
}
@@ -1296,7 +1299,7 @@ lang_memory_region_alias (const char * alias, const char * region_name)
alias);
/* Add alias to region name list. */
- n = stat_alloc (sizeof (lang_memory_region_name));
+ n = (lang_memory_region_name *) stat_alloc (sizeof (lang_memory_region_name));
n->name = xstrdup (alias);
n->next = region->name_list.next;
region->name_list.next = n;
@@ -1717,8 +1720,8 @@ lang_insert_orphan (asection *s,
os_tail = ((lang_output_section_statement_type **)
lang_output_section_statement.tail);
- os = lang_enter_output_section_statement (secname, address, 0, NULL, NULL,
- NULL, constraint);
+ os = lang_enter_output_section_statement (secname, address, normal_section,
+ NULL, NULL, NULL, constraint);
ps = NULL;
if (config.build_constructors && *os_tail == os)
@@ -2012,18 +2015,20 @@ sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
struct fat_user_section_struct *ud;
struct map_symbol_def *def;
- ud = get_userdata (hash_entry->u.def.section);
+ ud = (struct fat_user_section_struct *)
+ get_userdata (hash_entry->u.def.section);
if (! ud)
{
/* ??? What do we have to do to initialize this beforehand? */
/* The first time we get here is bfd_abs_section... */
init_map_userdata (0, hash_entry->u.def.section, 0);
- ud = get_userdata (hash_entry->u.def.section);
+ ud = (struct fat_user_section_struct *)
+ get_userdata (hash_entry->u.def.section);
}
else if (!ud->map_symbol_def_tail)
ud->map_symbol_def_tail = &ud->map_symbol_def_head;
- def = obstack_alloc (&map_obstack, sizeof *def);
+ def = (struct map_symbol_def *) obstack_alloc (&map_obstack, sizeof *def);
def->entry = hash_entry;
*(ud->map_symbol_def_tail) = def;
ud->map_symbol_def_tail = &def->next;
@@ -2139,7 +2144,7 @@ exp_init_os (etree_type *exp)
static void
section_already_linked (bfd *abfd, asection *sec, void *data)
{
- lang_input_statement_type *entry = data;
+ lang_input_statement_type *entry = (lang_input_statement_type *) data;
/* If we are only reading symbols from this object, then we want to
discard all sections. */
@@ -2528,9 +2533,9 @@ add_excluded_libs (const char *list)
end = strpbrk (p, ",:");
if (end == NULL)
end = p + strlen (p);
- entry = xmalloc (sizeof (*entry));
+ entry = (struct excluded_lib *) xmalloc (sizeof (*entry));
entry->next = excluded_libs;
- entry->name = xmalloc (end - p + 1);
+ entry->name = (char *) xmalloc (end - p + 1);
memcpy (entry->name, p, end - p);
entry->name[end - p] = '\0';
excluded_libs = entry;
@@ -2751,7 +2756,7 @@ wild (lang_wild_statement_type *s,
static int
get_target (const bfd_target *target, void *data)
{
- const char *sought = data;
+ const char *sought = (const char *) data;
return strcmp (target->name, sought) == 0;
}
@@ -2798,8 +2803,8 @@ name_compare (char *first, char *second)
char *copy2;
int result;
- copy1 = xmalloc (strlen (first) + 1);
- copy2 = xmalloc (strlen (second) + 1);
+ copy1 = (char *) xmalloc (strlen (first) + 1);
+ copy2 = (char *) xmalloc (strlen (second) + 1);
/* Convert the names to lower case. */
stricpy (copy1, first);
@@ -2837,7 +2842,7 @@ static const bfd_target *winner;
static int
closest_target_match (const bfd_target *target, void *data)
{
- const bfd_target *original = data;
+ const bfd_target *original = (const bfd_target *) data;
if (command_line.endian == ENDIAN_BIG
&& target->byteorder != BFD_ENDIAN_BIG)
@@ -3932,7 +3937,7 @@ print_input_statement (lang_input_statement_type *statm)
static bfd_boolean
print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
{
- asection *sec = ptr;
+ asection *sec = (asection *) ptr;
if ((hash_entry->type == bfd_link_hash_defined
|| hash_entry->type == bfd_link_hash_defweak)
@@ -3970,7 +3975,8 @@ hash_entry_addr_cmp (const void *a, const void *b)
static void
print_all_symbols (asection *sec)
{
- struct fat_user_section_struct *ud = get_userdata (sec);
+ struct fat_user_section_struct *ud =
+ (struct fat_user_section_struct *) get_userdata (sec);
struct map_symbol_def *def;
struct bfd_link_hash_entry **entries;
unsigned int i;
@@ -3981,8 +3987,8 @@ print_all_symbols (asection *sec)
*ud->map_symbol_def_tail = 0;
/* Sort the symbols by address. */
- entries = obstack_alloc (&map_obstack,
- ud->map_symbol_def_count * sizeof (*entries));
+ entries = (struct bfd_link_hash_entry **)
+ obstack_alloc (&map_obstack, ud->map_symbol_def_count * sizeof (*entries));
for (i = 0, def = ud->map_symbol_def_head; def; def = def->next, i++)
entries[i] = def->entry;
@@ -4419,7 +4425,8 @@ insert_pad (lang_statement_union_type **ptr,
else
{
/* Make a new padding statement, linked into existing chain. */
- pad = stat_alloc (sizeof (lang_padding_statement_type));
+ pad = (lang_statement_union_type *)
+ stat_alloc (sizeof (lang_padding_statement_type));
pad->header.next = *ptr;
*ptr = pad;
pad->header.type = lang_padding_statement_enum;
@@ -4535,7 +4542,7 @@ lang_check_section_addresses (void)
return;
amt = bfd_count_sections (link_info.output_bfd) * sizeof (asection *);
- sections = xmalloc (amt);
+ sections = (asection **) xmalloc (amt);
/* Scan all sections in the output list. */
count = 0;
@@ -5465,7 +5472,7 @@ lang_set_startof (void)
struct bfd_link_hash_entry *h;
secname = bfd_get_section_name (link_info.output_bfd, s);
- buf = xmalloc (10 + strlen (secname));
+ buf = (char *) xmalloc (10 + strlen (secname));
sprintf (buf, ".startof.%s", secname);
h = bfd_link_hash_lookup (link_info.hash, buf, FALSE, FALSE, TRUE);
@@ -6762,7 +6769,7 @@ lang_new_phdr (const char *name,
{
struct lang_phdr *n, **pp;
- n = stat_alloc (sizeof (struct lang_phdr));
+ n = (struct lang_phdr *) stat_alloc (sizeof (struct lang_phdr));
n->next = NULL;
n->name = name;
n->type = exp_get_value_int (type, 0, "program header type");
@@ -6789,7 +6796,7 @@ lang_record_phdrs (void)
lang_output_section_statement_type *os;
alc = 10;
- secs = xmalloc (alc * sizeof (asection *));
+ secs = (asection **) xmalloc (alc * sizeof (asection *));
last = NULL;
for (l = lang_phdr_list; l != NULL; l = l->next)
@@ -6856,7 +6863,8 @@ lang_record_phdrs (void)
if (c >= alc)
{
alc *= 2;
- secs = xrealloc (secs, alc * sizeof (asection *));
+ secs = (asection **) xrealloc (secs,
+ alc * sizeof (asection *));
}
secs[c] = os->bfd_section;
++c;
@@ -6910,7 +6918,7 @@ lang_add_nocrossref (lang_nocrossref_type *l)
{
struct lang_nocrossrefs *n;
- n = xmalloc (sizeof *n);
+ n = (struct lang_nocrossrefs *) xmalloc (sizeof *n);
n->next = nocrossref_list;
n->list = l;
nocrossref_list = n;
@@ -6972,7 +6980,7 @@ lang_enter_overlay_section (const char *name)
overlay_vma = exp_nameop (ADDR, name);
/* Remember the section. */
- n = xmalloc (sizeof *n);
+ n = (struct overlay_list *) xmalloc (sizeof *n);
n->os = current_section;
n->next = overlay_list;
overlay_list = n;
@@ -7008,20 +7016,20 @@ lang_leave_overlay_section (fill_type *fill,
/* Define the magic symbols. */
- clean = xmalloc (strlen (name) + 1);
+ clean = (char *) xmalloc (strlen (name) + 1);
s2 = clean;
for (s1 = name; *s1 != '\0'; s1++)
if (ISALNUM (*s1) || *s1 == '_')
*s2++ = *s1;
*s2 = '\0';
- buf = xmalloc (strlen (clean) + sizeof "__load_start_");
+ buf = (char *) xmalloc (strlen (clean) + sizeof "__load_start_");
sprintf (buf, "__load_start_%s", clean);
lang_add_assignment (exp_provide (buf,
exp_nameop (LOADADDR, name),
FALSE));
- buf = xmalloc (strlen (clean) + sizeof "__load_stop_");
+ buf = (char *) xmalloc (strlen (clean) + sizeof "__load_stop_");
sprintf (buf, "__load_stop_%s", clean);
lang_add_assignment (exp_provide (buf,
exp_binop ('+',
@@ -7087,7 +7095,7 @@ lang_leave_overlay (etree_type *lma_expr,
{
lang_nocrossref_type *nc;
- nc = xmalloc (sizeof *nc);
+ nc = (lang_nocrossref_type *) xmalloc (sizeof *nc);
nc->name = l->os->name;
nc->next = nocrossref;
nocrossref = nc;
@@ -7148,7 +7156,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
if (head->mask & BFD_ELF_VERSION_C_TYPE)
{
e.pattern = sym;
- expr = htab_find (head->htab, &e);
+ expr = (struct bfd_elf_version_expr *)
+ htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, sym) == 0)
if (expr->mask == BFD_ELF_VERSION_C_TYPE)
goto out_ret;
@@ -7160,7 +7169,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
if (head->mask & BFD_ELF_VERSION_CXX_TYPE)
{
e.pattern = cxx_sym;
- expr = htab_find (head->htab, &e);
+ expr = (struct bfd_elf_version_expr *)
+ htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, cxx_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_CXX_TYPE)
goto out_ret;
@@ -7172,7 +7182,8 @@ lang_vers_match (struct bfd_elf_version_expr_head *head,
if (head->mask & BFD_ELF_VERSION_JAVA_TYPE)
{
e.pattern = java_sym;
- expr = htab_find (head->htab, &e);
+ expr = (struct bfd_elf_version_expr *)
+ htab_find ((htab_t) head->htab, &e);
while (expr && strcmp (expr->pattern, java_sym) == 0)
if (expr->mask == BFD_ELF_VERSION_JAVA_TYPE)
goto out_ret;
@@ -7226,7 +7237,7 @@ realsymbol (const char *pattern)
{
const char *p;
bfd_boolean changed = FALSE, backslash = FALSE;
- char *s, *symbol = xmalloc (strlen (pattern) + 1);
+ char *s, *symbol = (char *) xmalloc (strlen (pattern) + 1);
for (p = pattern, s = symbol; *p != '\0'; ++p)
{
@@ -7313,7 +7324,7 @@ lang_new_vers_node (struct bfd_elf_version_expr *globals,
{
struct bfd_elf_version_tree *ret;
- ret = xcalloc (1, sizeof *ret);
+ ret = (struct bfd_elf_version_tree *) xcalloc (1, sizeof *ret);
ret->globals.list = globals;
ret->locals.list = locals;
ret->match = lang_vers_match;
@@ -7328,7 +7339,8 @@ static int version_index;
static hashval_t
version_expr_head_hash (const void *p)
{
- const struct bfd_elf_version_expr *e = p;
+ const struct bfd_elf_version_expr *e =
+ (const struct bfd_elf_version_expr *) p;
return htab_hash_string (e->pattern);
}
@@ -7336,8 +7348,10 @@ version_expr_head_hash (const void *p)
static int
version_expr_head_eq (const void *p1, const void *p2)
{
- const struct bfd_elf_version_expr *e1 = p1;
- const struct bfd_elf_version_expr *e2 = p2;
+ const struct bfd_elf_version_expr *e1 =
+ (const struct bfd_elf_version_expr *) p1;
+ const struct bfd_elf_version_expr *e2 =
+ (const struct bfd_elf_version_expr *) p2;
return strcmp (e1->pattern, e2->pattern) == 0;
}
@@ -7372,13 +7386,13 @@ lang_finalize_version_expr_head (struct bfd_elf_version_expr_head *head)
}
else
{
- void **loc = htab_find_slot (head->htab, e, INSERT);
+ void **loc = htab_find_slot ((htab_t) head->htab, e, INSERT);
if (*loc)
{
struct bfd_elf_version_expr *e1, *last;
- e1 = *loc;
+ e1 = (struct bfd_elf_version_expr *) *loc;
last = NULL;
do
{
@@ -7463,7 +7477,8 @@ lang_register_vers_node (const char *name,
if (t->locals.htab && e1->literal)
{
- e2 = htab_find (t->locals.htab, e1);
+ e2 = (struct bfd_elf_version_expr *)
+ htab_find ((htab_t) t->locals.htab, e1);
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
{
if (e1->mask == e2->mask)
@@ -7489,7 +7504,8 @@ lang_register_vers_node (const char *name,
if (t->globals.htab && e1->literal)
{
- e2 = htab_find (t->globals.htab, e1);
+ e2 = (struct bfd_elf_version_expr *)
+ htab_find ((htab_t) t->globals.htab, e1);
while (e2 && strcmp (e1->pattern, e2->pattern) == 0)
{
if (e1->mask == e2->mask)
@@ -7531,7 +7547,7 @@ lang_add_vers_depend (struct bfd_elf_version_deps *list, const char *name)
struct bfd_elf_version_deps *ret;
struct bfd_elf_version_tree *t;
- ret = xmalloc (sizeof *ret);
+ ret = (struct bfd_elf_version_deps *) xmalloc (sizeof *ret);
ret->next = list;
for (t = lang_elf_version_info; t != NULL; t = t->next)
@@ -7563,7 +7579,7 @@ lang_do_version_exports_section (void)
continue;
len = sec->size;
- contents = xmalloc (len);
+ contents = (char *) xmalloc (len);
if (!bfd_get_section_contents (is->the_bfd, sec, contents, 0, len))
einfo (_("%X%P: unable to read .exports section contents\n"), sec);
@@ -7594,7 +7610,7 @@ lang_add_unique (const char *name)
if (strcmp (ent->name, name) == 0)
return;
- ent = xmalloc (sizeof *ent);
+ ent = (struct unique_sections *) xmalloc (sizeof *ent);
ent->name = xstrdup (name);
ent->next = unique_section_list;
unique_section_list = ent;
@@ -7617,7 +7633,7 @@ lang_append_dynamic_list (struct bfd_elf_version_expr *dynamic)
{
struct bfd_elf_dynamic_list *d;
- d = xcalloc (1, sizeof *d);
+ d = (struct bfd_elf_dynamic_list *) xcalloc (1, sizeof *d);
d->head.list = dynamic;
d->match = lang_vers_match;
link_info.dynamic_list = d;
diff --git a/ld/ldlang.h b/ld/ldlang.h
index a4c3e21..2a87408 100644
--- a/ld/ldlang.h
+++ b/ld/ldlang.h
@@ -66,28 +66,30 @@ typedef struct memory_region_struct
bfd_boolean had_full_message;
} lang_memory_region_type;
+enum statement_enum
+{
+ lang_output_section_statement_enum,
+ lang_assignment_statement_enum,
+ lang_input_statement_enum,
+ lang_address_statement_enum,
+ lang_wild_statement_enum,
+ lang_input_section_enum,
+ lang_object_symbols_statement_enum,
+ lang_fill_statement_enum,
+ lang_data_statement_enum,
+ lang_reloc_statement_enum,
+ lang_target_statement_enum,
+ lang_output_statement_enum,
+ lang_padding_statement_enum,
+ lang_group_statement_enum,
+ lang_insert_statement_enum,
+ lang_constructors_statement_enum
+};
+
typedef struct lang_statement_header_struct
{
union lang_statement_union *next;
- enum statement_enum
- {
- lang_output_section_statement_enum,
- lang_assignment_statement_enum,
- lang_input_statement_enum,
- lang_address_statement_enum,
- lang_wild_statement_enum,
- lang_input_section_enum,
- lang_object_symbols_statement_enum,
- lang_fill_statement_enum,
- lang_data_statement_enum,
- lang_reloc_statement_enum,
- lang_target_statement_enum,
- lang_output_statement_enum,
- lang_padding_statement_enum,
- lang_group_statement_enum,
- lang_insert_statement_enum,
- lang_constructors_statement_enum
- } type;
+ enum statement_enum type;
} lang_statement_header_type;
typedef struct
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 1771c58..aceb595 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -399,7 +399,7 @@ main (int argc, char **argv)
{
static const int ld_bufsz = 8193;
size_t n;
- char *buf = xmalloc (ld_bufsz);
+ char *buf = (char *) xmalloc (ld_bufsz);
rewind (saved_script_handle);
while ((n = fread (buf, 1, ld_bufsz - 1, saved_script_handle)) > 0)
@@ -503,9 +503,9 @@ main (int argc, char **argv)
FILE *src;
FILE *dst;
const int bsize = 4096;
- char *buf = xmalloc (bsize);
+ char *buf = (char *) xmalloc (bsize);
int l;
- char *dst_name = xmalloc (len + 5);
+ char *dst_name = (char *) xmalloc (len + 5);
strcpy (dst_name, output_filename);
strcat (dst_name, ".exe");
@@ -540,7 +540,7 @@ main (int argc, char **argv)
if (config.stats)
{
#ifdef HAVE_SBRK
- char *lim = sbrk (0);
+ char *lim = (char *) sbrk (0);
#endif
long run_time = get_run_time () - start_time;
@@ -672,7 +672,8 @@ add_ysym (const char *name)
{
if (link_info.notice_hash == NULL)
{
- link_info.notice_hash = xmalloc (sizeof (struct bfd_hash_table));
+ link_info.notice_hash =
+ (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init_n (link_info.notice_hash,
bfd_hash_newfunc,
sizeof (struct bfd_hash_entry),
@@ -691,7 +692,8 @@ add_wrap (const char *name)
{
if (link_info.wrap_hash == NULL)
{
- link_info.wrap_hash = xmalloc (sizeof (struct bfd_hash_table));
+ link_info.wrap_hash =
+ (struct bfd_hash_table *) xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init_n (link_info.wrap_hash,
bfd_hash_newfunc,
sizeof (struct bfd_hash_entry),
@@ -724,13 +726,14 @@ add_keepsyms_file (const char *filename)
return;
}
- link_info.keep_hash = xmalloc (sizeof (struct bfd_hash_table));
+ link_info.keep_hash = (struct bfd_hash_table *)
+ xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init (link_info.keep_hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry)))
einfo (_("%P%F: bfd_hash_table_init failed: %E\n"));
bufsize = 100;
- buf = xmalloc (bufsize);
+ buf = (char *) xmalloc (bufsize);
c = getc (file);
while (c != EOF)
@@ -749,7 +752,7 @@ add_keepsyms_file (const char *filename)
if (len >= bufsize)
{
bufsize *= 2;
- buf = xrealloc (buf, bufsize);
+ buf = (char *) xrealloc (buf, bufsize);
}
c = getc (file);
}
@@ -780,7 +783,8 @@ add_archive_element (struct bfd_link_info *info,
{
lang_input_statement_type *input;
- input = xcalloc (1, sizeof (lang_input_statement_type));
+ input = (lang_input_statement_type *)
+ xcalloc (1, sizeof (lang_input_statement_type));
input->filename = abfd->filename;
input->local_sym_name = abfd->filename;
input->the_bfd = abfd;
@@ -1127,7 +1131,7 @@ warning_callback (struct bfd_link_info *info ATTRIBUTE_UNUSED,
static void
warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
{
- struct warning_callback_info *info = iarg;
+ struct warning_callback_info *info = (struct warning_callback_info *) iarg;
long relsize;
arelent **relpp;
long relcount;
@@ -1142,7 +1146,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
if (relsize == 0)
return;
- relpp = xmalloc (relsize);
+ relpp = (arelent **) xmalloc (relsize);
relcount = bfd_canonicalize_reloc (abfd, sec, relpp, info->asymbols);
if (relcount < 0)
einfo (_("%B%F: could not read relocs: %E\n"), abfd);
@@ -1190,7 +1194,8 @@ undefined_symbol (struct bfd_link_info *info ATTRIBUTE_UNUSED,
/* Only warn once about a particular undefined symbol. */
if (hash == NULL)
{
- hash = xmalloc (sizeof (struct bfd_hash_table));
+ hash = (struct bfd_hash_table *)
+ xmalloc (sizeof (struct bfd_hash_table));
if (!bfd_hash_table_init (hash, bfd_hash_newfunc,
sizeof (struct bfd_hash_entry)))
einfo (_("%F%P: bfd_hash_table_init failed: %E\n"));
@@ -1376,7 +1381,7 @@ notice (struct bfd_link_info *info,
if (name == NULL)
{
if (command_line.cref || nocrossref_list != NULL)
- return handle_asneeded_cref (abfd, value);
+ return handle_asneeded_cref (abfd, (enum notice_asneeded_action) value);
return TRUE;
}
diff --git a/ld/ldwrite.c b/ld/ldwrite.c
index 42eb2cc..2ff9547 100644
--- a/ld/ldwrite.c
+++ b/ld/ldwrite.c
@@ -57,7 +57,7 @@ build_link_order (lang_statement_union_type *statement)
link_order->type = bfd_data_link_order;
link_order->offset = statement->data_statement.output_offset;
- link_order->u.data.contents = xmalloc (QUAD_SIZE);
+ link_order->u.data.contents = (bfd_byte *) xmalloc (QUAD_SIZE);
value = statement->data_statement.value;
@@ -198,7 +198,8 @@ build_link_order (lang_statement_union_type *statement)
link_order->offset = rs->output_offset;
link_order->size = bfd_get_reloc_size (rs->howto);
- link_order->u.reloc.p = xmalloc (sizeof (struct bfd_link_order_reloc));
+ link_order->u.reloc.p = (struct bfd_link_order_reloc *)
+ xmalloc (sizeof (struct bfd_link_order_reloc));
link_order->u.reloc.p->reloc = rs->reloc;
link_order->u.reloc.p->addend = rs->addend_value;
@@ -333,7 +334,7 @@ clone_section (bfd *abfd, asection *s, const char *name, int *count)
/* Invent a section name from the section name and a dotted numeric
suffix. */
len = strlen (name);
- tname = xmalloc (len + 1);
+ tname = (char *) xmalloc (len + 1);
memcpy (tname, name, len + 1);
/* Remove a dotted number suffix, from a previous split link. */
while (len && ISDIGIT (tname[len-1]))
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 95a0403..d3d6e56 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -172,6 +172,25 @@ enum option_values
/* The long options. This structure is used for both the option
parsing and the help text. */
+enum control_enum {
+ /* Use one dash before long option name. */
+ ONE_DASH,
+ /* Use two dashes before long option name. */
+ TWO_DASHES,
+ /* Only accept two dashes before the long option name.
+ This is an overloading of the use of this enum, since originally it
+ was only intended to tell the --help display function how to display
+ the long option name. This feature was added in order to resolve
+ the confusion about the -omagic command line switch. Is it setting
+ the output file name to "magic" or is it setting the NMAGIC flag on
+ the output ? It has been decided that it is setting the output file
+ name, and that if you want to set the NMAGIC flag you should use -N
+ or --omagic. */
+ EXACTLY_TWO_DASHES,
+ /* Don't mention this option in --help output. */
+ NO_HELP
+};
+
struct ld_option
{
/* The long option information. */
@@ -183,24 +202,7 @@ struct ld_option
/* The documentation string. If this is NULL, this is a synonym for
the previous option. */
const char *doc;
- enum {
- /* Use one dash before long option name. */
- ONE_DASH,
- /* Use two dashes before long option name. */
- TWO_DASHES,
- /* Only accept two dashes before the long option name.
- This is an overloading of the use of this enum, since originally it
- was only intended to tell the --help display function how to display
- the long option name. This feature was added in order to resolve
- the confusion about the -omagic command line switch. Is it setting
- the output file name to "magic" or is it setting the NMAGIC flag on
- the output ? It has been decided that it is setting the output file
- name, and that if you want to set the NMAGIC flag you should use -N
- or --omagic. */
- EXACTLY_TWO_DASHES,
- /* Don't mention this option in --help output. */
- NO_HELP
- } control;
+ enum control_enum control;
};
static const struct ld_option ld_options[] =
@@ -590,9 +592,11 @@ parse_args (unsigned argc, char **argv)
int last_optind;
enum report_method how_to_report_unresolved_symbols = RM_GENERATE_ERROR;
- shortopts = xmalloc (OPTION_COUNT * 3 + 2);
- longopts = xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
- really_longopts = xmalloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
+ shortopts = (char *) xmalloc (OPTION_COUNT * 3 + 2);
+ longopts = (struct option *)
+ xmalloc (sizeof (*longopts) * (OPTION_COUNT + 1));
+ really_longopts = (struct option *)
+ malloc (sizeof (*really_longopts) * (OPTION_COUNT + 1));
/* Starting the short option string with '-' is for programs that
expect options and other ARGV-elements in any order and that care about
@@ -677,7 +681,7 @@ parse_args (unsigned argc, char **argv)
{
char *n;
- n = xmalloc (strlen (argv[i]) + 20);
+ n = (char *) xmalloc (strlen (argv[i]) + 20);
sprintf (n, "--library=%s", argv[i] + 2);
argv[i] = n;
}
@@ -833,7 +837,8 @@ parse_args (unsigned argc, char **argv)
case 'f':
if (command_line.auxiliary_filters == NULL)
{
- command_line.auxiliary_filters = xmalloc (2 * sizeof (char *));
+ command_line.auxiliary_filters = (char **)
+ xmalloc (2 * sizeof (char *));
command_line.auxiliary_filters[0] = optarg;
command_line.auxiliary_filters[1] = NULL;
}
@@ -845,8 +850,8 @@ parse_args (unsigned argc, char **argv)
c = 0;
for (p = command_line.auxiliary_filters; *p != NULL; p++)
++c;
- command_line.auxiliary_filters
- = xrealloc (command_line.auxiliary_filters,
+ command_line.auxiliary_filters = (char **)
+ xrealloc (command_line.auxiliary_filters,
(c + 2) * sizeof (char *));
command_line.auxiliary_filters[c] = optarg;
command_line.auxiliary_filters[c + 1] = NULL;
@@ -1092,7 +1097,7 @@ parse_args (unsigned argc, char **argv)
if (cp == NULL)
{
- buf = xmalloc (rpath_len + optarg_len + 2);
+ buf = (char *) xmalloc (rpath_len + optarg_len + 2);
sprintf (buf, "%s%c%s", command_line.rpath,
config.rpath_separator, optarg);
free (command_line.rpath);
@@ -1107,9 +1112,9 @@ parse_args (unsigned argc, char **argv)
{
char *buf;
- buf = xmalloc (strlen (command_line.rpath_link)
- + strlen (optarg)
- + 2);
+ buf = (char *) xmalloc (strlen (command_line.rpath_link)
+ + strlen (optarg)
+ + 2);
sprintf (buf, "%s%c%s", command_line.rpath_link,
config.rpath_separator, optarg);
free (command_line.rpath_link);
@@ -1224,7 +1229,7 @@ parse_args (unsigned argc, char **argv)
/* We must copy the section name as set_section_start
doesn't do it for us. */
len = optarg2 - optarg;
- sec_name = xmalloc (len);
+ sec_name = (char *) xmalloc (len);
memcpy (sec_name, optarg, len - 1);
sec_name[len - 1] = 0;
@@ -1549,7 +1554,7 @@ set_segment_start (const char *section, char *valstr)
}
/* There was no existing value so we must create a new segment
entry. */
- seg = stat_alloc (sizeof (*seg));
+ seg = (segment_type *) stat_alloc (sizeof (*seg));
seg->name = name;
seg->value = val;
seg->used = FALSE;
diff --git a/ld/mri.c b/ld/mri.c
index 05aed28..1932a93 100644
--- a/ld/mri.c
+++ b/ld/mri.c
@@ -68,7 +68,8 @@ lookup (const char *name, struct section_name_struct **list)
ptr = &((*ptr)->next);
}
- *ptr = xmalloc (sizeof (struct section_name_struct));
+ *ptr = (struct section_name_struct *)
+ xmalloc (sizeof (struct section_name_struct));
return ptr;
}
@@ -206,10 +207,10 @@ mri_draw_tree (void)
base = p->vma ? p->vma : exp_nameop (NAME, ".");
lang_enter_output_section_statement (p->name, base,
- p->ok_to_load ? 0 : noload_section,
+ p->ok_to_load ? normal_section : noload_section,
align, subalign, NULL, 0);
base = 0;
- tmp = xmalloc (sizeof *tmp);
+ tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = NULL;
tmp->spec.name = p->name;
tmp->spec.exclude_name_list = NULL;
@@ -220,7 +221,7 @@ mri_draw_tree (void)
for (aptr = alias; aptr; aptr = aptr->next)
if (strcmp (aptr->alias, p->name) == 0)
{
- tmp = xmalloc (sizeof *tmp);
+ tmp = (struct wildcard_list *) xmalloc (sizeof *tmp);
tmp->next = NULL;
tmp->spec.name = aptr->name;
tmp->spec.exclude_name_list = NULL;
diff --git a/ld/po/fi.po b/ld/po/fi.po
index 9c7c209..2589743 100644
--- a/ld/po/fi.po
+++ b/ld/po/fi.po
@@ -1,13 +1,15 @@
-# translation of ld-2.19.1.po to Finnish
+# translation of ld-2.19.90.po to Finnish
# This file is distributed under the same license as the binutils package.
-# Copyright © 2007 Free Software Foundation, Inc.
+# Copyright © 2009 Free Software Foundation, Inc.
# Jorma Karvonen <karvjorm@users.sf.net>, 2007-2009.
+# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009.
+#
msgid ""
msgstr ""
-"Project-Id-Version: ld 2.19.1\n"
+"Project-Id-Version: ld 2.19.90\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2008-09-09 15:56+0930\n"
-"PO-Revision-Date: 2009-06-21 23:39+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
+"PO-Revision-Date: 2009-09-11 12:10+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"MIME-Version: 1.0\n"
@@ -33,145 +35,162 @@ msgstr " --thumb-entry=<sym> Aseta tulokohta Thumb-symboliksi <sym>\n"
msgid "Errors encountered processing file %s"
msgstr "Löydettiin virheitä käsiteltäessä tiedostoa %s"
-#: emultempl/armcoff.em:190 emultempl/pe.em:1555
+#: emultempl/armcoff.em:190 emultempl/pe.em:1710
msgid "%P: warning: '--thumb-entry %s' is overriding '-e %s'\n"
msgstr "%P: varoitus: ”--thumb-entry %s” korvaa argumentin ”-e %s”\n"
-#: emultempl/armcoff.em:195 emultempl/pe.em:1560
+#: emultempl/armcoff.em:195 emultempl/pe.em:1715
msgid "%P: warning: cannot find thumb start symbol %s\n"
msgstr "%P: varoitus: thumb-aloitussymbolia ”%s” ei löydy\n"
-#: emultempl/pe.em:316
+#: emultempl/pe.em:371
#, c-format
msgid " --base_file <basefile> Generate a base file for relocatable DLLs\n"
msgstr " --base_file <kantatiedosto> Luo uudelleensijoitettavien DLL:ien kantatiedosto\n"
-#: emultempl/pe.em:317
+#: emultempl/pe.em:372
#, c-format
msgid " --dll Set image base to the default for DLLs\n"
msgstr " --dll Aseta vedoskanta DLL:ien oletukseksi\n"
-#: emultempl/pe.em:318
+#: emultempl/pe.em:373
#, c-format
msgid " --file-alignment <size> Set file alignment\n"
msgstr " --file-alignment <koko> Aseta tiedostotasaus\n"
-#: emultempl/pe.em:319
+#: emultempl/pe.em:374
#, c-format
msgid " --heap <size> Set initial size of the heap\n"
msgstr " --heap <koko> Aseta keon aloituskoko\n"
-#: emultempl/pe.em:320
+#: emultempl/pe.em:375
#, c-format
msgid " --image-base <address> Set start address of the executable\n"
msgstr " --image-base <osoite> Aseta suoritettavien tiedostojen aloitusosoite\n"
-#: emultempl/pe.em:321
+#: emultempl/pe.em:376
#, c-format
msgid " --major-image-version <number> Set version number of the executable\n"
msgstr " --major-image-version <numero> Aseta suoritettavien tiedostojen versionumero\n"
-#: emultempl/pe.em:322
+#: emultempl/pe.em:377
#, c-format
msgid " --major-os-version <number> Set minimum required OS version\n"
msgstr " --major-os-version <numero> Aseta pienin vaadittu käyttöjärjestelmäversio\n"
-#: emultempl/pe.em:323
+#: emultempl/pe.em:378
#, c-format
msgid " --major-subsystem-version <number> Set minimum required OS subsystem version\n"
msgstr " --major-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän versio\n"
-#: emultempl/pe.em:324
+#: emultempl/pe.em:379
#, c-format
msgid " --minor-image-version <number> Set revision number of the executable\n"
msgstr " --minor-image-version <numero> Asettaa suoritettavan tiedoston revisionumeron\n"
-#: emultempl/pe.em:325
+#: emultempl/pe.em:380
#, c-format
msgid " --minor-os-version <number> Set minimum required OS revision\n"
msgstr " --minor-os-version <numero> Aseta pienin vaadittu käyttöjärjestelmän revisionumero\n"
-#: emultempl/pe.em:326
+#: emultempl/pe.em:381
#, c-format
msgid " --minor-subsystem-version <number> Set minimum required OS subsystem revision\n"
msgstr " --minor-subsystem-version <numero> Aseta pienin vaadittu käyttöjärjestelmän alijärjestelmän revisionumero\n"
-#: emultempl/pe.em:327
+#: emultempl/pe.em:382
#, c-format
msgid " --section-alignment <size> Set section alignment\n"
msgstr " --section-alignment <koko> Aseta lohkotasaus\n"
-#: emultempl/pe.em:328
+#: emultempl/pe.em:383
#, c-format
msgid " --stack <size> Set size of the initial stack\n"
msgstr " --stack <koko> Aseta pinon aloituskoko\n"
-#: emultempl/pe.em:329
+#: emultempl/pe.em:384
#, c-format
msgid " --subsystem <name>[:<version>] Set required OS subsystem [& version]\n"
msgstr " --subsystem <nimi>[:<versio>] Aseta vaadittu käyttöjärjestelmän alijärjestelmä [& versio]\n"
-#: emultempl/pe.em:330
+#: emultempl/pe.em:385
#, c-format
msgid " --support-old-code Support interworking with old code\n"
msgstr " --support-old-code Tue yhteistoimivuutta vanhan koodin kanssa\n"
-#: emultempl/pe.em:331
+#: emultempl/pe.em:386
#, c-format
msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
msgstr " --thumb-entry=<symboli> Aseta tulokohdaksi ”Thumb <symboli>”\n"
-#: emultempl/pe.em:333
+#: emultempl/pe.em:388
#, c-format
msgid " --add-stdcall-alias Export symbols with and without @nn\n"
msgstr " --add-stdcall-alias Vie symbolit ilman @nn:ää ja sen kanssa\n"
-#: emultempl/pe.em:334
+#: emultempl/pe.em:389
#, c-format
msgid " --disable-stdcall-fixup Don't link _sym to _sym@nn\n"
msgstr " --disable-stdcall-fixup Älä linkitä symbolia _sym symboliin _sym@nn\n"
-#: emultempl/pe.em:335
+#: emultempl/pe.em:390
#, c-format
msgid " --enable-stdcall-fixup Link _sym to _sym@nn without warnings\n"
msgstr " --enable-stdcall-fixup Linkitä symboli _sym symboliin _sym@nn ilman varoituksia\n"
-#: emultempl/pe.em:336
+#: emultempl/pe.em:391
#, c-format
msgid " --exclude-symbols sym,sym,... Exclude symbols from automatic export\n"
msgstr " --exclude-symbols sym,sym,... Jätä symbolit pois automaattisesta viennistä\n"
-#: emultempl/pe.em:337
+#: emultempl/pe.em:392
#, c-format
msgid " --exclude-libs lib,lib,... Exclude libraries from automatic export\n"
msgstr " --exclude-libs lib,lib,... Jätä kirjastot pois automaattisesta viennistä\n"
-#: emultempl/pe.em:338
+#: emultempl/pe.em:393
+#, c-format
+msgid " --exclude-modules-for-implib mod,mod,...\n"
+msgstr " --exclude-modules-for-implib moduli,moduli,...\n"
+
+# Tämä teksti jatkuu seuraavassa merkkijonossa
+#: emultempl/pe.em:394
+#, c-format
+msgid " Exclude objects, archive members from auto\n"
+msgstr " Jätä pois objektit, arkistojäsenet automaattisesta\n"
+
+# Tämä teksti on jatkoa edelliselle merkkijonolle
+#: emultempl/pe.em:395
+#, c-format
+msgid " export, place into import library instead.\n"
+msgstr " viennistä, sijoita ne sen sijaan tuontikirjastoon.\n"
+
+#: emultempl/pe.em:396
#, c-format
msgid " --export-all-symbols Automatically export all globals to DLL\n"
msgstr " --export-all-symbols Vie kaikki yleismuuttujat automaattisesti DLL:ään\n"
-#: emultempl/pe.em:339
+#: emultempl/pe.em:397
#, c-format
msgid " --kill-at Remove @nn from exported symbols\n"
msgstr " --kill-at Poista @nn viedyistä symboleista\n"
-#: emultempl/pe.em:340
+#: emultempl/pe.em:398
#, c-format
msgid " --out-implib <file> Generate import library\n"
msgstr " --out-implib <tiedosto> Luo tuontikirjasto\n"
-#: emultempl/pe.em:341
+#: emultempl/pe.em:399
#, c-format
msgid " --output-def <file> Generate a .DEF file for the built DLL\n"
msgstr " --output-def <tiedosto> Luo .DEF-tiedosto DLL:n rakentamiseen\n"
-#: emultempl/pe.em:342
+#: emultempl/pe.em:400
#, c-format
msgid " --warn-duplicate-exports Warn about duplicate exports.\n"
msgstr " --warn-duplicate-exports Varoita kaksoiskappalevienneistä.\n"
-#: emultempl/pe.em:343
+#: emultempl/pe.em:401
#, c-format
msgid ""
" --compat-implib Create backward compatible import libs;\n"
@@ -180,7 +199,7 @@ msgstr ""
" --compat-implib Luo taaksepäin yhteensopivat tuontikirjastot;\n"
" luo myös __imp_<SYMBOLI>.\n"
-#: emultempl/pe.em:345
+#: emultempl/pe.em:403
#, c-format
msgid ""
" --enable-auto-image-base Automatically choose image base for DLLs\n"
@@ -189,23 +208,23 @@ msgstr ""
" --enable-auto-image-base Valitse automaattisesti vedoskanta DLL:ille\n"
" jollei käyttäjä määrittele sellaista\n"
-#: emultempl/pe.em:347
+#: emultempl/pe.em:405
#, c-format
msgid " --disable-auto-image-base Do not auto-choose image base. (default)\n"
msgstr " --disable-auto-image-base Älä valitse automaattisesti vedoskantaa. (oletus)\n"
-#: emultempl/pe.em:348
+#: emultempl/pe.em:406
#, c-format
msgid ""
" --dll-search-prefix=<string> When linking dynamically to a dll without\n"
" an importlib, use <string><basename>.dll\n"
" in preference to lib<basename>.dll \n"
msgstr ""
-" --dll-search-prefix=<string> Kun linkitetään dynaamisesti dll:ään ilman\n"
-" tuontikirjastoa, käytä ”<string><kantanimi>.dll”\n"
-" mieluimmin kuin ”lib<basename>.dll” \n"
+" --dll-search-prefix=<merkkijono> Kun linkitetään dynaamisesti dll:ään ilman\n"
+" tuontikirjastoa, käytä ”<merkkijono><kantanimi>.dll”\n"
+" mieluimmin kuin ”lib<kantanimi>.dll” \n"
-#: emultempl/pe.em:351
+#: emultempl/pe.em:409
#, c-format
msgid ""
" --enable-auto-import Do sophistcated linking of _sym to\n"
@@ -214,12 +233,12 @@ msgstr ""
" --enable-auto-import Linkitä symboli _sym edistyksellisesti\n"
" symboliin __imp_sym DATA-viitteille\n"
-#: emultempl/pe.em:353
+#: emultempl/pe.em:411
#, c-format
msgid " --disable-auto-import Do not auto-import DATA items from DLLs\n"
msgstr " --disable-auto-import Älä tuo DATA-alkioita DLL:stä automaattisesti\n"
-#: emultempl/pe.em:354
+#: emultempl/pe.em:412
#, c-format
msgid ""
" --enable-runtime-pseudo-reloc Work around auto-import limitations by\n"
@@ -230,7 +249,7 @@ msgstr ""
" lisäämällä ajoaikaisesti ratkaistavia pseudo-\n"
" uudelleensijoitusalkioita.\n"
-#: emultempl/pe.em:357
+#: emultempl/pe.em:415
#, c-format
msgid ""
" --disable-runtime-pseudo-reloc Do not add runtime pseudo-relocations for\n"
@@ -239,7 +258,7 @@ msgstr ""
" --disable-runtime-pseudo-reloc Älä lisää ajoaikaisia pseudo-uudelleensijoitusalkioita\n"
" automaattisesti tuotuun DATA:an.\n"
-#: emultempl/pe.em:359
+#: emultempl/pe.em:417
#, c-format
msgid ""
" --enable-extra-pe-debug Enable verbose debug output when building\n"
@@ -248,7 +267,7 @@ msgstr ""
" --enable-extra-pe-debug Salli lavea debug-tulostus kun muodostetaan\n"
" tai linkitetään DLL:ään (erityisesti automaattisessa tuonnissa)\n"
-#: emultempl/pe.em:362
+#: emultempl/pe.em:420
#, c-format
msgid ""
" --large-address-aware Executable supports virtual addresses\n"
@@ -257,84 +276,156 @@ msgstr ""
" --large-address-aware Suoritettava tiedosto tukee virtuaaliosoitteita,\n"
" jotka ovat suurempia kuin 2 gigatavua\n"
+#: emultempl/pe.em:422
+#, c-format
+msgid ""
+" --enable-long-section-names Use long COFF section names even in\n"
+" executable image files\n"
+msgstr ""
+" --enable-long-section-names Käytä pitkiä COFF-lohkonimiä myös suoritettavissa\n"
+" vedostiedostoissa\n"
+
+#: emultempl/pe.em:424
+#, c-format
+msgid ""
+" --disable-long-section-names Never use long COFF section names, even\n"
+" in object files\n"
+msgstr ""
+" --disable-long-section-names Älä koskaan käytä pitkiä COFF-lohkonimiä, ei edes\n"
+" objektitiedostoissa\n"
+
+#: emultempl/pe.em:426
+#, c-format
+msgid ""
+" --dynamicbase\t\t\t Image base address may be relocated using\n"
+"\t\t\t\t address space layout randomization (ASLR)\n"
+msgstr ""
+" --dynamicbase\t\t\t Vedoksen perusosoite voidaan sijoittaa uudelleen\n"
+"\t\t\t\t käyttäen osoitetilan asettelun satunnaislukuhajautusta (ASLR)\n"
+
+#: emultempl/pe.em:428
+#, c-format
+msgid " --forceinteg\t\t Code integrity checks are enforced\n"
+msgstr " --forceinteg\t\t Koodin eheystarkistukset ovat valvottuja\n"
+
+#: emultempl/pe.em:429
+#, c-format
+msgid " --nxcompat\t\t Image is compatible with data execution prevention\n"
+msgstr " --nxcompat\t\t Vedos on yhteneväinen datasuorituseston kanssa\n"
+
+#: emultempl/pe.em:430
+#, c-format
+msgid " --no-isolation\t\t Image understands isolation but do not isolate the image\n"
+msgstr " --no-isolation\t\t Vedos ymmärtää eristyksen, mutta ei eristä vedosta\n"
+
+# SEH on lyhenne sanoista "SE Handler"
#: emultempl/pe.em:431
+#, c-format
+msgid ""
+" --no-seh\t\t\t Image does not use SEH. No SE handler may\n"
+"\t\t\t\t be called in this image\n"
+msgstr ""
+" --no-seh\t\t\t Vedos ei käytä SE-käsittelijää. SE-käsittelijää ei\n"
+"\t\t\t\t saa kutsua tässä vedoksessa\n"
+
+#: emultempl/pe.em:433
+#, c-format
+msgid " --no-bind\t\t\t Do not bind this image\n"
+msgstr " --no-bind\t\t\t Älä sido tätä vedosta\n"
+
+#: emultempl/pe.em:434
+#, c-format
+msgid " --wdmdriver\t\t Driver uses the WDM model\n"
+msgstr " --wdmdriver\t\t Ajuri käyttää WDM-mallia\n"
+
+#: emultempl/pe.em:435
+#, c-format
+msgid " --tsaware \t\t Image is Terminal Server aware\n"
+msgstr " --tsaware \t\t Vedos on tietoinen pääteikkunapalvelimesta\n"
+
+#: emultempl/pe.em:503
msgid "%P: warning: bad version number in -subsystem option\n"
msgstr "%P: varoitus: virheellinen versionumero ”-subsystem”-valitsimessa\n"
-#: emultempl/pe.em:462
+#: emultempl/pe.em:534
msgid "%P%F: invalid subsystem type %s\n"
msgstr "%P%F: Virheellinen alijärjestelmätyyppi %s\n"
-#: emultempl/pe.em:501
+#: emultempl/pe.em:573
msgid "%P%F: invalid hex number for PE parameter '%s'\n"
msgstr "%P%F: virheellinen heksadesimaalinumero PE-parametrille ”%s”\n"
-#: emultempl/pe.em:518
+#: emultempl/pe.em:590
msgid "%P%F: strange hex info for PE parameter '%s'\n"
msgstr "%P%F: outo heksadesimaalinumerotieto PE-parameterílle ”%s”\n"
-#: emultempl/pe.em:535
+#: emultempl/pe.em:607
#, c-format
msgid "%s: Can't open base file %s\n"
msgstr "%s: Ei voi avata kantatiedostoa %s\n"
-#: emultempl/pe.em:752
+#: emultempl/pe.em:870
msgid "%P: warning, file alignment > section alignment.\n"
msgstr "%P: varoitus, tiedostotasaus > lohkotasaus.\n"
-#: emultempl/pe.em:839 emultempl/pe.em:866
+#: emultempl/pe.em:899
+msgid "%P: warning: --export-dynamic is not supported for PE targets, did you mean --export-all-symbols?\n"
+msgstr "%P: varoitus: --export-dynamic ei tueta PE-kohteille, tarkoititko --export-all-symbols?\n"
+
+#: emultempl/pe.em:963 emultempl/pe.em:990
#, c-format
msgid "Warning: resolving %s by linking to %s\n"
msgstr "Varoitus: ratkaistaan %s linkittämällä kohteeseen %s\n"
-#: emultempl/pe.em:844 emultempl/pe.em:871
+# enable -> disable ???
+#: emultempl/pe.em:968 emultempl/pe.em:995
msgid "Use --enable-stdcall-fixup to disable these warnings\n"
-msgstr "Käytä --enable-stdcall-fixup disabloimaan nämä varoitukset\n"
+msgstr "Käytä --enable-stdcall-fixup poistamaan nämä varoitukset käytöstä\n"
-#: emultempl/pe.em:845 emultempl/pe.em:872
+#: emultempl/pe.em:969 emultempl/pe.em:996
msgid "Use --disable-stdcall-fixup to disable these fixups\n"
-msgstr "Käytä --disable-stdcall-fixup-valitsinta näiden korjauksien disabloimiseksi\n"
+msgstr "Käytä --disable-stdcall-fixup poistamaan nämä korjaukset käytöstä\n"
-#: emultempl/pe.em:891
+#: emultempl/pe.em:1015
#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr "%C: Lohkosisältöä ei saada - automaattituonnin poikkeus\n"
-#: emultempl/pe.em:931
+#: emultempl/pe.em:1055
#, c-format
msgid "Info: resolving %s by linking to %s (auto-import)\n"
msgstr "Tieto: ratkaistaan %s linkittämällä kohteeseen %s (automaattituonti)\n"
-#: emultempl/pe.em:938
+#: emultempl/pe.em:1062
msgid ""
"%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line.\n"
-"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs."
+"This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.\n"
msgstr ""
"%P: varoitus: automaattinen tuonti on aktivoitu määrittelemättä ”--enable-auto-import”-argumenttia komentorivillä.\n"
-"Tämän pitäisi toimia ellei se sisällä vakiodatarakenteita, jotka viittaavat automaattisesti tuotujen DLL:ien symboleihin."
+"Tämän pitäisi toimia ellei se sisällä vakiodatarakenteita, jotka viittaavat automaattisesti tuotujen DLL:ien symboleihin.\n"
-#: emultempl/pe.em:945 emultempl/pe.em:1113 emultempl/pe.em:1319 ldcref.c:488
-#: ldcref.c:586 ldmain.c:1105 ldmisc.c:285 pe-dll.c:622 pe-dll.c:1153
-#: pe-dll.c:1250
+#: emultempl/pe.em:1069 emultempl/pe.em:1268 emultempl/pe.em:1474 ldcref.c:488
+#: ldcref.c:586 ldmain.c:1107 ldmisc.c:285 pe-dll.c:683 pe-dll.c:1227
+#: pe-dll.c:1324
msgid "%B%F: could not read symbols: %E\n"
msgstr "%B%F: ei voinut lukea symboleja: %E\n"
-#: emultempl/pe.em:1018
+#: emultempl/pe.em:1149
msgid "%F%P: cannot perform PE operations on non PE output file '%B'.\n"
msgstr "%F%P: ei voi suorittaa PE-toimintoja ei-PE-tulostetiedostossa ”%B”.\n"
-#: emultempl/pe.em:1360
+#: emultempl/pe.em:1515
#, c-format
msgid "Errors encountered processing file %s\n"
msgstr "Tiedostoa %s käsitellessä syntyi virheitä\n"
-#: emultempl/pe.em:1383
+#: emultempl/pe.em:1538
#, c-format
-msgid "Errors encountered processing file %s for interworking"
-msgstr "Virheitä syntyi käsiteltäessä tiedostoa %s yhteistoimivuutta varten"
+msgid "Errors encountered processing file %s for interworking\n"
+msgstr "Virheitä syntyi käsiteltäessä tiedostoa %s yhteistoimivuutta varten\n"
-#: emultempl/pe.em:1444 ldexp.c:540 ldlang.c:3131 ldlang.c:6448 ldlang.c:6479
-#: ldmain.c:1050
+#: emultempl/pe.em:1599 ldexp.c:539 ldlang.c:3276 ldlang.c:6636 ldlang.c:6667
+#: ldmain.c:1052
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_link_hash_lookup epäonnistui: %E\n"
@@ -379,7 +470,7 @@ msgstr "Ei symboleja\n"
msgid "%P: symbol `%T' missing from main hash table\n"
msgstr "%P: puuttuu symboli ”%T” pää-hash-taulusta\n"
-#: ldcref.c:648 ldcref.c:655 ldmain.c:1139 ldmain.c:1146
+#: ldcref.c:648 ldcref.c:655 ldmain.c:1141 ldmain.c:1148
msgid "%B%F: could not read relocs: %E\n"
msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
@@ -391,23 +482,23 @@ msgstr "%B%F: ei voitu lukea reloc-alkioita: %E\n"
msgid "%X%C: prohibited cross reference from %s to `%T' in %s\n"
msgstr "%X%C: kielletyt ristiviitteet lohkosta %s lohkoon ”%T” kohteessa %s\n"
-#: ldctor.c:84
+#: ldctor.c:85
msgid "%P%X: Different relocs used in set %s\n"
msgstr "%P%X: Erilaisia reloc-alkioita käytetty joukossa %s\n"
-#: ldctor.c:102
+#: ldctor.c:103
msgid "%P%X: Different object file formats composing set %s\n"
msgstr "%P%X: Erilaisia objektitiedostomuotoja koottaessa joukkoa %s\n"
-#: ldctor.c:281 ldctor.c:295
+#: ldctor.c:279 ldctor.c:293
msgid "%P%X: %s does not support reloc %s for set %s\n"
msgstr "%P%X: %s ei tue reloc-alkiota %s joukolle %s\n"
-#: ldctor.c:316
+#: ldctor.c:314
msgid "%P%X: Unsupported size %d for set %s\n"
msgstr "%P%X: Kokoa %d ei tueta joukolle %s\n"
-#: ldctor.c:337
+#: ldctor.c:335
msgid ""
"\n"
"Set Symbol\n"
@@ -417,88 +508,88 @@ msgstr ""
"Joukko Symboli\n"
"\n"
-#: ldemul.c:235
+#: ldemul.c:239
#, c-format
msgid "%S SYSLIB ignored\n"
msgstr "%S SYSLIB:ä ei oteta huomioon\n"
-#: ldemul.c:241
+#: ldemul.c:245
#, c-format
msgid "%S HLL ignored\n"
msgstr "%S HLL:ä ei oteta huomioon\n"
-#: ldemul.c:261
+#: ldemul.c:265
msgid "%P: unrecognised emulation mode: %s\n"
msgstr "%P: tunnistamaton emulointitila: %s\n"
-#: ldemul.c:262
+#: ldemul.c:266
msgid "Supported emulations: "
msgstr "Tuetut emuloinnit:"
-#: ldemul.c:304
+#: ldemul.c:308
#, c-format
msgid " no emulation specific options.\n"
msgstr " ei emulointikohtaisia valitsimia.\n"
-#: ldexp.c:350
+#: ldexp.c:352
#, c-format
msgid "%F%S %% by zero\n"
msgstr "%F%S %% nollalla\n"
-#: ldexp.c:358
+#: ldexp.c:360
#, c-format
msgid "%F%S / by zero\n"
msgstr "%F%S / nollalla\n"
-#: ldexp.c:554
+#: ldexp.c:553
#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr "%X%S: lausekkeessa viitattu ratkaisemattomaan symboliin ”%s”\n"
-#: ldexp.c:565
+#: ldexp.c:564
#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu ratkaisemattomaan symboliin ”%s”\n"
-#: ldexp.c:586 ldexp.c:603 ldexp.c:630
+#: ldexp.c:585 ldexp.c:602 ldexp.c:629
#, c-format
msgid "%F%S: undefined section `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu määrittelemättömään lohkoon ”%s”\n"
-#: ldexp.c:657 ldexp.c:670
+#: ldexp.c:656 ldexp.c:669
#, c-format
msgid "%F%S: undefined MEMORY region `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu määrittelemättömään MEMORY-alueeseen ”%s”\n"
-#: ldexp.c:681
+#: ldexp.c:680
#, c-format
msgid "%F%S: unknown constant `%s' referenced in expression\n"
msgstr "%F%S: lausekkeessa viitattu tuntemattomaan vakioon ”%s”\n"
-#: ldexp.c:742
+#: ldexp.c:741
#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr "%F%S ei voi ANTAA sijoitusta sijoituslaskuriin\n"
-#: ldexp.c:756
+#: ldexp.c:755
#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr "%F%S virheellinen sijoitus sijoituslaskuriin\n"
-#: ldexp.c:759
+#: ldexp.c:758
#, c-format
msgid "%F%S assignment to location counter invalid outside of SECTION\n"
msgstr "%F%S sijoitus sijoituslaskuriin virheellinen SECTION-lohkon ulkopuolella\n"
-#: ldexp.c:768
+#: ldexp.c:767
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr "%F%S ei voi siirtää sijoituslaskuria taaksepäin (arvosta %V arvoon %V)\n"
-#: ldexp.c:807
+#: ldexp.c:806
msgid "%P%F:%s: hash creation failed\n"
msgstr "%P%F:%s: hash-luonti ei onnistunut\n"
-#: ldexp.c:1066 ldexp.c:1091 ldexp.c:1150
+#: ldexp.c:1065 ldexp.c:1090 ldexp.c:1149
#, c-format
msgid "%F%S: nonconstant expression for %s\n"
msgstr "%F%S: ei-vakio lauseke kohteelle %s\n"
@@ -552,31 +643,43 @@ msgstr "ei löydy skriptitiedostoa %s\n"
msgid "opened script file %s\n"
msgstr "avattiin skriptitiedosto %s\n"
-#: ldfile.c:601
+#: ldfile.c:586
msgid "%P%F: cannot open linker script file %s: %E\n"
msgstr "%P%F: ei voi avata linkkerin skriptitiedostoa %s: %E\n"
-#: ldfile.c:648
+#: ldfile.c:651
msgid "%P%F: cannot represent machine `%s'\n"
msgstr "%P%F: ei voi edustaa konetta ”%s”\n"
-#: ldlang.c:1124 ldlang.c:1166 ldlang.c:2880
+#: ldlang.c:1142 ldlang.c:1184 ldlang.c:3006
msgid "%P%F: can not create hash table: %E\n"
msgstr "%P%F: ei voida luoda hash-taulua: %E\n"
-#: ldlang.c:1209
-msgid "%P:%S: warning: redeclaration of memory region '%s'\n"
-msgstr "%P:%S: varoitus: muistialueen ”%s” uudelleenmäärittely\n"
+#: ldlang.c:1235
+msgid "%P:%S: warning: redeclaration of memory region `%s'\n"
+msgstr "%P:%S: varoitus: uudelleenesitelty muistialue ”%s”\n"
+
+#: ldlang.c:1241
+msgid "%P:%S: warning: memory region `%s' not declared\n"
+msgstr "%P:%S: varoitus: muistialuetta ”%s” ei ole esitelty\n"
+
+#: ldlang.c:1275
+msgid "%F%P:%S: error: alias for default memory region\n"
+msgstr "%F%P:%S: virhe: alias oletusmuistialueelle\n"
+
+#: ldlang.c:1286
+msgid "%F%P:%S: error: redefinition of memory region alias `%s'\n"
+msgstr "%F%P:%S: virhe: uudelleenmäärittely muistialuealiakselle ”%s”\n"
-#: ldlang.c:1215
-msgid "%P:%S: warning: memory region %s not declared\n"
-msgstr "%P:%S: varoitus: muistialuetta %s ei ole määritelty\n"
+#: ldlang.c:1293
+msgid "%F%P:%S: error: memory region `%s' for alias `%s' does not exist\n"
+msgstr "%F%P:%S: virhe: muistialuetta ”%s” aliakselle ”%s” ei ole olemassa\n"
-#: ldlang.c:1270 ldlang.c:1305
+#: ldlang.c:1345 ldlang.c:1384
msgid "%P%F: failed creating section `%s': %E\n"
msgstr "%P%F: ei onnistuttu luomaan lohkoa ”%s”: %E\n"
-#: ldlang.c:1799
+#: ldlang.c:1927
#, c-format
msgid ""
"\n"
@@ -587,7 +690,7 @@ msgstr ""
"Hylätyt syötelohkot\n"
"\n"
-#: ldlang.c:1807
+#: ldlang.c:1935
msgid ""
"\n"
"Memory Configuration\n"
@@ -597,23 +700,23 @@ msgstr ""
"Muistiasetukset\n"
"\n"
-#: ldlang.c:1809
+#: ldlang.c:1937
msgid "Name"
msgstr "Nimi"
-#: ldlang.c:1809
+#: ldlang.c:1937
msgid "Origin"
msgstr "Alkupiste"
-#: ldlang.c:1809
+#: ldlang.c:1937
msgid "Length"
msgstr "Pituus"
-#: ldlang.c:1809
+#: ldlang.c:1937
msgid "Attributes"
msgstr "Attribuutit"
-#: ldlang.c:1849
+#: ldlang.c:1977
#, c-format
msgid ""
"\n"
@@ -624,171 +727,189 @@ msgstr ""
"Linkitysskripti ja muistikartta\n"
"\n"
-#: ldlang.c:1915
+#: ldlang.c:2045
msgid "%P%F: Illegal use of `%s' section\n"
msgstr "%P%F: ”%s”-lohkon virheellinen käyttö\n"
-#: ldlang.c:1923
+#: ldlang.c:2054
msgid "%P%F: output format %s cannot represent section called %s\n"
msgstr "%P%F: tulostemuoto %s ei voi edustaa lohkoa, jonka nimi on %s\n"
-#: ldlang.c:2473
+#: ldlang.c:2602
msgid "%B: file not recognized: %E\n"
msgstr "%B: tiedostoa ei ole tunnistettu: %E\n"
-#: ldlang.c:2474
+#: ldlang.c:2603
msgid "%B: matching formats:"
msgstr "%B: täsmäävät muodot:"
-#: ldlang.c:2481
+#: ldlang.c:2610
msgid "%F%B: file not recognized: %E\n"
msgstr "%F%B: tiedostoa ei ole tunnistettu: %E\n"
-#: ldlang.c:2551
+#: ldlang.c:2677
msgid "%F%B: member %B in archive is not an object\n"
msgstr "%F%B: arkiston jäsen %B ei ole objekti\n"
-#: ldlang.c:2562 ldlang.c:2576
+#: ldlang.c:2688 ldlang.c:2702
msgid "%F%B: could not read symbols: %E\n"
msgstr "%F%B: ei voitu lukea symboleja: %E\n"
-#: ldlang.c:2850
+#: ldlang.c:2976
msgid "%P: warning: could not find any targets that match endianness requirement\n"
msgstr "%P: varoitus: ei löytynyt yhtään kohdetta, joka olisi täsmännyt tavujärjestysvaatimuksen kanssa\n"
# Binary File Descriptor -kohde
-#: ldlang.c:2864
+#: ldlang.c:2990
msgid "%P%F: target %s not found\n"
msgstr "%P%F: bfd-kohdetta %s ei löytynyt\n"
-#: ldlang.c:2866
+#: ldlang.c:2992
msgid "%P%F: cannot open output file %s: %E\n"
msgstr "%P%F: ei voi avata tulostetiedostoa %s: %E\n"
-#: ldlang.c:2872
+#: ldlang.c:2998
msgid "%P%F:%s: can not make object file: %E\n"
msgstr "%P%F:%s: ei voi tehdä objektitiedostoa: %E\n"
-#: ldlang.c:2876
+#: ldlang.c:3002
msgid "%P%F:%s: can not set architecture: %E\n"
msgstr "%P%F:%s: ei voi asettaa arkkitehtuuria: %E\n"
-#: ldlang.c:3024
+#: ldlang.c:3143
+msgid "%P: warning: %s contains output sections; did you forget -T?\n"
+msgstr "%P: varoitus: %s sisältää tulostelohkoja; unohditko valitsimen -T?\n"
+
+#: ldlang.c:3169
msgid "%P%F: bfd_hash_lookup failed creating symbol %s\n"
msgstr "%P%F: bfd_hash_lookup ei onnistunut luomaan symbolia %s\n"
-#: ldlang.c:3042
+#: ldlang.c:3187
msgid "%P%F: bfd_hash_allocate failed creating symbol %s\n"
msgstr "%P%F: bfd_hash_allocate ei onnistunut luomaan symbolia %s\n"
-#: ldlang.c:3418
+#: ldlang.c:3566
msgid "%F%P: %s not found for insert\n"
msgstr "%F%P: kohdetta %s ei löydy sijoitusta varten\n"
-#: ldlang.c:3633
+#: ldlang.c:3781
msgid " load address 0x%V"
msgstr " latausosoite 0x%V"
-#: ldlang.c:3873
+# Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+# assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+# Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+# haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+# rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: ldlang.c:4052
msgid "%W (size before relaxing)\n"
-msgstr "%W (koko ennen relaxing)\n"
+msgstr "%W (koko ennen avartamista)\n"
-#: ldlang.c:3964
+#: ldlang.c:4143
#, c-format
msgid "Address of section %s set to "
msgstr "Lohkon %s osoitteeksi asetetaan "
-#: ldlang.c:4117
+#: ldlang.c:4296
#, c-format
msgid "Fail with %d\n"
msgstr "Ei onnistuttu kohteella %d\n"
-#: ldlang.c:4397
-msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
-msgstr "%X%P: lohko %s [%V -> %V] menee päällekkäin lohkon %s [%V -> %V] kanssa\n"
+#: ldlang.c:4579
+msgid "%X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V]\n"
+msgstr "%X%P: lohko %s, joka on ladattu osoitteesta [%V,%V] menee päällekkäin lohkon %s, joka on ladattu osoitteesta [%V,%V]\n"
-#: ldlang.c:4413
-msgid "%X%P: region %s overflowed by %ld bytes\n"
-msgstr "%X%P: alueen %s ylitys on %ld tavua\n"
+#: ldlang.c:4595
+msgid "%X%P: region `%s' overflowed by %ld bytes\n"
+msgstr "%X%P: alueen ”%s” ylitys on %ld tavua\n"
-#: ldlang.c:4436
-msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
-msgstr "%X%P: osoite 0x%v kohteen %B lohkossa %s ei ole alueen %s sisällä\n"
+#: ldlang.c:4618
+msgid "%X%P: address 0x%v of %B section `%s' is not within region `%s'\n"
+msgstr "%X%P: osoite 0x%v kohteen %B lohkossa ”%s” ei ole alueen ”%s” sisällä\n"
-#: ldlang.c:4447
-msgid "%X%P: %B section %s will not fit in region %s\n"
-msgstr "%X%P: kohteen %B lohko %s ei ole alueen %s sisällä\n"
+#: ldlang.c:4629
+msgid "%X%P: %B section `%s' will not fit in region `%s'\n"
+msgstr "%X%P: kohteen %B lohko ”%s” ei mahdu alueen ”%s” sisälle\n"
-#: ldlang.c:4487
+#: ldlang.c:4669
#, c-format
msgid "%F%S: non constant or forward reference address expression for section %s\n"
msgstr "%F%S: ei-vakio tai edelleenviiteosoitelauseke lohkolle %s\n"
-#: ldlang.c:4512
+#: ldlang.c:4694
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr "%P%X: Sisäinen virhe COFF-tiedoston jaetussa kirjastolohkossa %s\n"
-#: ldlang.c:4571
+#: ldlang.c:4753
msgid "%P%F: error: no memory region specified for loadable section `%s'\n"
msgstr "%P%F: virhe: ladattavalle lohkolle ”%s” ei ole määritelty muistialuetta\n"
-#: ldlang.c:4576
+#: ldlang.c:4758
msgid "%P: warning: no memory region specified for loadable section `%s'\n"
msgstr "%P: varoitus: ladattavalle lohkolle ”%s” ei ole määritelty muistialuetta\n"
-#: ldlang.c:4598
+#: ldlang.c:4780
msgid "%P: warning: changing start of section %s by %lu bytes\n"
msgstr "%P: varoitus: vaihdetaan lohkon %s alkua %lu tavulla\n"
-#: ldlang.c:4675
+#: ldlang.c:4862
msgid "%P: warning: dot moved backwards before `%s'\n"
msgstr "%P: varoitus: pistettä siirretty taaksepäin ennen kohdetta ”%s”\n"
-#: ldlang.c:4848
+# Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+# assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+# Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+# haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+# rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: ldlang.c:5035
msgid "%P%F: can't relax section: %E\n"
-msgstr "%P%F: ei voi vapauttaa lohkoa: %E\n"
+msgstr "%P%F: ei voi avartaa lohkoa: %E\n"
-#: ldlang.c:5170
+#: ldlang.c:5357
msgid "%F%P: invalid data statement\n"
msgstr "%F%P: virheellinen data-lause\n"
-#: ldlang.c:5203
+#: ldlang.c:5390
msgid "%F%P: invalid reloc statement\n"
msgstr "%F%P: virheellinen reloc-lause\n"
-#: ldlang.c:5322
+#: ldlang.c:5509
msgid "%P%F: gc-sections requires either an entry or an undefined symbol\n"
msgstr "%P%F: gc-lohkot vaativat joko alkion tai määrittelemättömän symbolin\n"
-#: ldlang.c:5347
+#: ldlang.c:5534
msgid "%P%F:%s: can't set start address\n"
msgstr "%P%F:%s: ei voi asettaa aloitusosoitetta\n"
-#: ldlang.c:5360 ldlang.c:5379
+#: ldlang.c:5547 ldlang.c:5566
msgid "%P%F: can't set start address\n"
msgstr "%P%F: ei voi asettaa aloitusosoitetta\n"
-#: ldlang.c:5372
+#: ldlang.c:5559
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr "%P: varoitus: tulosymbolia %s ei löydy, asetaan oletukseksi %V\n"
-#: ldlang.c:5384
+#: ldlang.c:5571
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr "%P: varoitus: tulosymbolia %s ei löydy, ei aseta aloitusosoitetta\n"
-#: ldlang.c:5434
+#: ldlang.c:5621
msgid "%P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported\n"
msgstr "%P%F: Uudelleensijoituslinkitystä uudelleensijoituksilla muodosta %s (%B) muotoon %s (%B) ei tueta\n"
-#: ldlang.c:5444
+#: ldlang.c:5631
msgid "%P%X: %s architecture of input file `%B' is incompatible with %s output\n"
msgstr "%P%X: %s syötetiedoston ”%B” arkkitehtuuri ei täsmää tulosteen %s kanssa\n"
-#: ldlang.c:5466
+#: ldlang.c:5653
msgid "%P%X: failed to merge target specific data of file %B\n"
msgstr "%P%X: ei onnistuttu yhdistää kohdekohtaista tiedostodataa %B\n"
-#: ldlang.c:5567
+#: ldlang.c:5724
+msgid "%P%F: Could not define common symbol `%T': %E\n"
+msgstr "%B%F: Ei voitu määritellä yhteissymbolia ”%T”: %E\n"
+
+#: ldlang.c:5736
msgid ""
"\n"
"Allocating common symbols\n"
@@ -796,7 +917,7 @@ msgstr ""
"\n"
"Varataan muistia yhteissymboleille\n"
-#: ldlang.c:5568
+#: ldlang.c:5737
msgid ""
"Common symbol size file\n"
"\n"
@@ -804,55 +925,55 @@ msgstr ""
"Yhteissymboli koko tiedosto\n"
"\n"
-#: ldlang.c:5701
+#: ldlang.c:5878
msgid "%P%F: invalid syntax in flags\n"
msgstr "%P%F: virheellinen syntaksi lipussa\n"
-#: ldlang.c:6069
+#: ldlang.c:6270
msgid "%P%F: Failed to create hash table\n"
msgstr "%P%F: ei onnistuttu luomaan hash-taulua\n"
-#: ldlang.c:6370
+#: ldlang.c:6549
msgid "%P%F: multiple STARTUP files\n"
msgstr "%P%F: useita STARTUP-tiedostoja\n"
-#: ldlang.c:6418
+#: ldlang.c:6597
msgid "%X%P:%S: section has both a load address and a load region\n"
msgstr "%X%P:%S: lohkossa on sekä latausosoite että latausalue\n"
-#: ldlang.c:6652
+#: ldlang.c:6844
msgid "%F%P: no sections assigned to phdrs\n"
msgstr "%F%P: kohteeseen ”phdrs” ei ole liitetty lohkoja\n"
-#: ldlang.c:6689
+#: ldlang.c:6881
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr "%F%P: bfd_record_phdr ei onnistunut: %E\n"
-#: ldlang.c:6709
+#: ldlang.c:6901
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr "%X%P: lohko ”%s” liitetty phdr-kohteeseen ”%s”, joka ei ole olemassa\n"
-#: ldlang.c:7100
+#: ldlang.c:7299
msgid "%X%P: unknown language `%s' in version information\n"
msgstr "%X%P: tuntematon kieli ”%s” versiotiedoissa\n"
-#: ldlang.c:7242
+#: ldlang.c:7441
msgid "%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr "%X%P: nimetöntä versiotunnistetta ei voi yhdistää muihin versiotunnisteisiin\n"
-#: ldlang.c:7251
+#: ldlang.c:7450
msgid "%X%P: duplicate version tag `%s'\n"
msgstr "%X%P: kaksoiskappaleversiotunniste ”%s”\n"
-#: ldlang.c:7271 ldlang.c:7280 ldlang.c:7297 ldlang.c:7307
+#: ldlang.c:7470 ldlang.c:7479 ldlang.c:7496 ldlang.c:7506
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr "%X%P: kaksoiskappalelauseke ”%s” versiotiedoissa\n"
-#: ldlang.c:7347
+#: ldlang.c:7546
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr "%X%P: ei voi löytää versioriippuvuutta ”%s”\n"
-#: ldlang.c:7369
+#: ldlang.c:7568
msgid "%X%P: unable to read .exports section contents\n"
msgstr "%X%P: ei voi lukea .exports-lohkon sisältöä\n"
@@ -861,102 +982,98 @@ msgstr "%X%P: ei voi lukea .exports-lohkon sisältöä\n"
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr "%X%P: ei voi asettaa BFD-oletuskohteeksi arvoa ”%s”: %E\n"
-#: ldmain.c:296
-msgid "%P%F: --relax and -r may not be used together\n"
-msgstr "%P%F: argumentteja --relax ja -r ei saa käyttää yhdessä\n"
-
-#: ldmain.c:298
+#: ldmain.c:300
msgid "%P%F: -r and -shared may not be used together\n"
msgstr "%P%F: argumentteja -r ja -shared ei saa käyttää yhdessä\n"
-#: ldmain.c:341
+#: ldmain.c:343
msgid "%P%F: -F may not be used without -shared\n"
msgstr "%P%F: argumenttia -F ei saa käyttää ilman argumenttia -shared\n"
-#: ldmain.c:343
+#: ldmain.c:345
msgid "%P%F: -f may not be used without -shared\n"
msgstr "%P%F: argumenttia -f ei saa käyttää ilman argumenttia -shared\n"
-#: ldmain.c:391
+#: ldmain.c:393
msgid "using external linker script:"
msgstr "käytetään ulkoista linkitysskriptiä:"
-#: ldmain.c:393
+#: ldmain.c:395
msgid "using internal linker script:"
msgstr "käytetään sisäistä linkitysskriptiä:"
-#: ldmain.c:427
+#: ldmain.c:429
msgid "%P%F: no input files\n"
msgstr "%P%F: ei syötetiedostoja\n"
-#: ldmain.c:431
+#: ldmain.c:433
msgid "%P: mode %s\n"
msgstr "%P: tila %s\n"
-#: ldmain.c:447
+#: ldmain.c:449
msgid "%P%F: cannot open map file %s: %E\n"
msgstr "%P%F: ei voi avata map-tiedostoa %s: %E\n"
-#: ldmain.c:479
+#: ldmain.c:481
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr "%P: linkitysvirheitä löytyi, poistetaan suoritettava tiedosto ”%s”\n"
-#: ldmain.c:488
+#: ldmain.c:490
msgid "%F%B: final close failed: %E\n"
msgstr "%F%B: loppusulkeminen ei onnistunut: %E\n"
-#: ldmain.c:514
+#: ldmain.c:516
msgid "%X%P: unable to open for source of copy `%s'\n"
msgstr "%X%P: ei voitu avata kopion ”%s” lähdekoodia\n"
-#: ldmain.c:517
+#: ldmain.c:519
msgid "%X%P: unable to open for destination of copy `%s'\n"
msgstr "%X%P: ei voitu avata kopion ”%s” kohdetta\n"
-#: ldmain.c:524
+#: ldmain.c:526
msgid "%P: Error writing file `%s'\n"
msgstr "%P: Virhe kirjoitettaessa tiedostoa ”%s”\n"
-#: ldmain.c:529 pe-dll.c:1613
+#: ldmain.c:531 pe-dll.c:1687
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr "%P: Virhe suljettaessa tiedostoa ”%s”\n"
-#: ldmain.c:545
+#: ldmain.c:547
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr "%s: kokonaisaika linkityksessä: %ld.%06ld\n"
-#: ldmain.c:548
+#: ldmain.c:550
#, c-format
msgid "%s: data size %ld\n"
msgstr "%s: data-koko %ld\n"
-#: ldmain.c:631
+#: ldmain.c:633
msgid "%P%F: missing argument to -m\n"
msgstr "%P%F: puuttuva argumentti kohteelle -m\n"
-#: ldmain.c:678 ldmain.c:697 ldmain.c:728
+#: ldmain.c:680 ldmain.c:699 ldmain.c:730
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr "%P%F: bfd_hash_table_init ei onnistunut: %E\n"
-#: ldmain.c:682 ldmain.c:701
+#: ldmain.c:684 ldmain.c:703
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr "%P%F: bfd_hash_lookup ei onnistunut: %E\n"
-#: ldmain.c:715
+#: ldmain.c:717
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr "%X%P: virhe: retain-symbols-file-kaksoiskappale\n"
-#: ldmain.c:758
+#: ldmain.c:760
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr "%P%F: bfd_hash_lookup-lisäys ei onnistunut: %E\n"
-#: ldmain.c:763
+#: ldmain.c:765
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr "%P: ”-retain-symbols-file” korvaa argumentit ”-s” ja ”-S”\n"
-#: ldmain.c:827
+#: ldmain.c:829
#, c-format
msgid ""
"Archive member included because of file (symbol)\n"
@@ -965,134 +1082,139 @@ msgstr ""
"Arkistojäsen sisällytetty tiedoston vuoksi (symboli)\n"
"\n"
-#: ldmain.c:897
+#: ldmain.c:899
msgid "%X%C: multiple definition of `%T'\n"
msgstr "%X%C: useita ”%T”-määrittelyjä\n"
-#: ldmain.c:900
+#: ldmain.c:902
msgid "%D: first defined here\n"
msgstr "%D: ensimmäinen määritelty täällä\n"
-#: ldmain.c:904
+# Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+# assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+# Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+# haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+# rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: ldmain.c:906
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
-msgstr "%P: Disabloidaan relaxation: se ei toimi useiden määrittelyjen kanssa\n"
+msgstr "%P: Otetaan avartaminen pois käytöstä: se ei toimi kun määrittelyjä on useita\n"
-#: ldmain.c:934
+#: ldmain.c:936
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr "%B: varoitus: ”%T”-määrittely korvaa yhteisen\n"
-#: ldmain.c:937
+#: ldmain.c:939
msgid "%B: warning: common is here\n"
msgstr "%B: varoitus: yhteinen on täällä\n"
-#: ldmain.c:944
+#: ldmain.c:946
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr "%B: varoitus: ”%T”-yhteinen korvattu määrittelyllä\n"
-#: ldmain.c:947
+#: ldmain.c:949
msgid "%B: warning: defined here\n"
msgstr "%B: varoitus: määritelty täällä\n"
-#: ldmain.c:954
+#: ldmain.c:956
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr "%B: varoitus: ”%T”-yhteinen korvattu laajemmalla yhteisellä\n"
-#: ldmain.c:957
+#: ldmain.c:959
msgid "%B: warning: larger common is here\n"
msgstr "%B: varoitus: laajempi yhteinen on täällä\n"
-#: ldmain.c:961
+#: ldmain.c:963
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr "%B: varoitus: ”%T”-yhteinen korvaa pienemmän yhteisen\n"
-#: ldmain.c:964
+#: ldmain.c:966
msgid "%B: warning: smaller common is here\n"
msgstr "%B: varoitus: pienempi yhteinen on täällä\n"
-#: ldmain.c:968
+#: ldmain.c:970
msgid "%B: warning: multiple common of `%T'\n"
msgstr "%B: varoitus: useita ”%T”-yhteisiä\n"
-#: ldmain.c:970
+#: ldmain.c:972
msgid "%B: warning: previous common is here\n"
msgstr "%B: varoitus: edellinen yhteinen on täällä\n"
-#: ldmain.c:990 ldmain.c:1028
+#: ldmain.c:992 ldmain.c:1030
msgid "%P: warning: global constructor %s used\n"
msgstr "%P: varoitus: yleiskonstruktoria %s käytetty\n"
# Binary File Descriptor
-#: ldmain.c:1038
+#: ldmain.c:1040
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr "%P%F: BFD-taustavirhe: kohdetta BFD_RELOC_CTOR ei ole tuettu\n"
#. We found a reloc for the symbol we are looking for.
-#: ldmain.c:1092 ldmain.c:1094 ldmain.c:1096 ldmain.c:1114 ldmain.c:1159
+#: ldmain.c:1094 ldmain.c:1096 ldmain.c:1098 ldmain.c:1116 ldmain.c:1161
msgid "warning: "
msgstr "varoitus: "
-#: ldmain.c:1194
+#: ldmain.c:1196
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr "%F%P: bfd_hash_table_init ei onnistunut: %E\n"
-#: ldmain.c:1201
+#: ldmain.c:1203
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr "%F%P: bfd_hash_lookup ei onnistunut: %E\n"
-#: ldmain.c:1222
+#: ldmain.c:1224
msgid "%X%C: undefined reference to `%T'\n"
msgstr "%X%C: määrittelemätön viite kohteeseen ”%T”\n"
-#: ldmain.c:1225
+#: ldmain.c:1227
msgid "%C: warning: undefined reference to `%T'\n"
msgstr "%C: varoitus: määrittelemätön viite kohteeseen ”%T”\n"
-#: ldmain.c:1231
+#: ldmain.c:1233
msgid "%X%D: more undefined references to `%T' follow\n"
msgstr "%X%D: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
-#: ldmain.c:1234
+#: ldmain.c:1236
msgid "%D: warning: more undefined references to `%T' follow\n"
msgstr "%D: varoitus: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
-#: ldmain.c:1245
+#: ldmain.c:1247
msgid "%X%B: undefined reference to `%T'\n"
msgstr "%X%B: määrittelemätön viite kohteeseen ”%T”\n"
-#: ldmain.c:1248
+#: ldmain.c:1250
msgid "%B: warning: undefined reference to `%T'\n"
msgstr "%B: varoitus: määrittelemätön viite kohteeseen ”%T”\n"
-#: ldmain.c:1254
+#: ldmain.c:1256
msgid "%X%B: more undefined references to `%T' follow\n"
msgstr "%X%B: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
-#: ldmain.c:1257
+#: ldmain.c:1259
msgid "%B: warning: more undefined references to `%T' follow\n"
msgstr "%B: varoitus: lisää määrittelemättömiä viitteitä kohteeseen ”%T” seuraa\n"
-#: ldmain.c:1296
+#: ldmain.c:1298
msgid " additional relocation overflows omitted from the output\n"
msgstr " lisäuudelleensijoituskorvauksia ei lisätä tulosteeseen\n"
-#: ldmain.c:1309
+#: ldmain.c:1311
msgid " relocation truncated to fit: %s against undefined symbol `%T'"
msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan määrittelemätön symboli ”%T”"
-#: ldmain.c:1314
+#: ldmain.c:1316
msgid " relocation truncated to fit: %s against symbol `%T' defined in %A section in %B"
msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan symboli ”%T” määritelty %A-lohkossa %B:ssä"
-#: ldmain.c:1326
+#: ldmain.c:1328
msgid " relocation truncated to fit: %s against `%T'"
msgstr " uudelleensijoituksia typistetty sopimaan: %s vastaan ”%T”"
-#: ldmain.c:1343
+#: ldmain.c:1345
#, c-format
msgid "%X%C: dangerous relocation: %s\n"
msgstr "%X%C: vaarallinen uudelleensijoitus: %s\n"
-#: ldmain.c:1358
+#: ldmain.c:1360
msgid "%X%C: reloc refers to symbol `%T' which is not being output\n"
msgstr "%X%C: reloc viitaa symboliin ”%T”, jota ei tulosteta\n"
@@ -1124,7 +1246,7 @@ msgstr "%P: sisäinen virhe: hylätään %s rivillä %d\n"
#: ldmisc.c:499
msgid "%P%F: please report this bug\n"
-msgstr "%P%F: raportoi tästä virheestä\n"
+msgstr "%P%F: ilmoita tästä virheestä\n"
#. Output for noisy == 2 is intended to follow the GNU standards.
#: ldver.c:38
@@ -1134,8 +1256,8 @@ msgstr "GNU ld-versio %s\n"
#: ldver.c:42
#, c-format
-msgid "Copyright 2007 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2007 Free Software Foundation, Inc.\n"
+msgid "Copyright 2009 Free Software Foundation, Inc.\n"
+msgstr "Copyright 2009 Free Software Foundation, Inc.\n"
#: ldver.c:43
#, c-format
@@ -1174,265 +1296,269 @@ msgstr "%8x jotain muuta\n"
msgid "%F%P: final link failed: %E\n"
msgstr "%F%P: loppulinkitys ei onnistunut: %E\n"
-#: lexsup.c:206 lexsup.c:344
+#: lexsup.c:209 lexsup.c:349
msgid "KEYWORD"
msgstr "AVAINSANA"
-#: lexsup.c:206
+#: lexsup.c:209
msgid "Shared library control for HP/UX compatibility"
msgstr "Jaettu kirjasto-ohjain HP/UX-yhteensopivuutta varten"
-#: lexsup.c:209
+#: lexsup.c:212
msgid "ARCH"
-msgstr "ARCH"
+msgstr "ARKISTO"
-#: lexsup.c:209
+#: lexsup.c:212
msgid "Set architecture"
msgstr "Aseta arkkitehtuuri"
-#: lexsup.c:211 lexsup.c:454
+#: lexsup.c:214 lexsup.c:459
msgid "TARGET"
msgstr "KOHDE"
-#: lexsup.c:211
+#: lexsup.c:214
msgid "Specify target for following input files"
msgstr "Määrittele kohde seuraaville syötetiedostoille"
-#: lexsup.c:214 lexsup.c:263 lexsup.c:275 lexsup.c:288 lexsup.c:290
-#: lexsup.c:408 lexsup.c:466 lexsup.c:526 lexsup.c:539
+#: lexsup.c:217 lexsup.c:268 lexsup.c:280 lexsup.c:293 lexsup.c:295
+#: lexsup.c:413 lexsup.c:471 lexsup.c:533 lexsup.c:546
msgid "FILE"
msgstr "TIEDOSTO"
-#: lexsup.c:214
+#: lexsup.c:217
msgid "Read MRI format linker script"
msgstr "Lue MRI-muotoinen linkitysskripti"
-#: lexsup.c:216
+#: lexsup.c:219
msgid "Force common symbols to be defined"
msgstr "Pakota yhteissymbolit määriteltäviksi"
-#: lexsup.c:220 lexsup.c:510 lexsup.c:512 lexsup.c:514
+#: lexsup.c:223 lexsup.c:515 lexsup.c:517 lexsup.c:519 lexsup.c:521
msgid "ADDRESS"
msgstr "OSOITE"
-#: lexsup.c:220
+#: lexsup.c:223
msgid "Set start address"
msgstr "Aseta alkuosoite"
-#: lexsup.c:222
+#: lexsup.c:225
msgid "Export all dynamic symbols"
msgstr "Vie kaikki dynaamiset symbolit"
-#: lexsup.c:224
+#: lexsup.c:227
+msgid "Undo the effect of --export-dynamic"
+msgstr "Peru valitsimen --export-dynamic vaikutus"
+
+#: lexsup.c:229
msgid "Link big-endian objects"
msgstr "Linkitä big-endian-objektit"
-#: lexsup.c:226
+#: lexsup.c:231
msgid "Link little-endian objects"
msgstr "Linkitä little-endian-objektit"
-#: lexsup.c:228 lexsup.c:231
+#: lexsup.c:233 lexsup.c:236
msgid "SHLIB"
msgstr "SHLIB"
-#: lexsup.c:228
+#: lexsup.c:233
msgid "Auxiliary filter for shared object symbol table"
msgstr "Lisäsuodatin jaetulle objektisymbolitaululle"
-#: lexsup.c:231
+#: lexsup.c:236
msgid "Filter for shared object symbol table"
msgstr "Suodatin jaetulle objektisymbolitaululle"
-#: lexsup.c:234
+#: lexsup.c:239
msgid "Ignored"
msgstr "Ei oteta huomioon"
-#: lexsup.c:236
+#: lexsup.c:241
msgid "SIZE"
msgstr "KOKO"
-#: lexsup.c:236
+#: lexsup.c:241
msgid "Small data size (if no size, same as --shared)"
msgstr "Pieni datakoko (jos kokoa ei ole, sama kuin --shared)"
-#: lexsup.c:239
+#: lexsup.c:244
msgid "FILENAME"
msgstr "TIEDOSTONIMI"
-#: lexsup.c:239
+#: lexsup.c:244
msgid "Set internal name of shared library"
msgstr "Aseta jaetun kirjaston sisäinen nimi"
-#: lexsup.c:241
+#: lexsup.c:246
msgid "PROGRAM"
msgstr "OHJELMA"
-#: lexsup.c:241
+#: lexsup.c:246
msgid "Set PROGRAM as the dynamic linker to use"
msgstr "Aseta OHJELMA dynaamisena linkkerinä käytettäväksi"
-#: lexsup.c:244
+#: lexsup.c:249
msgid "LIBNAME"
-msgstr "LIBNAME"
+msgstr "KIRJASTONIMI"
-#: lexsup.c:244
+#: lexsup.c:249
msgid "Search for library LIBNAME"
-msgstr "Haku kirjastolle LIBNAME"
+msgstr "Haku kirjastolle KIRJASTONIMI"
-#: lexsup.c:246
+#: lexsup.c:251
msgid "DIRECTORY"
msgstr "HAKEMISTO"
-#: lexsup.c:246
+#: lexsup.c:251
msgid "Add DIRECTORY to library search path"
msgstr "Lisää HAKEMISTO kirjaston hakupolkuun"
-#: lexsup.c:249
+#: lexsup.c:254
msgid "Override the default sysroot location"
msgstr "Korvaa oletus sysroot-sijainti"
-#: lexsup.c:251
+#: lexsup.c:256
msgid "EMULATION"
msgstr "EMULOINTI"
-#: lexsup.c:251
+#: lexsup.c:256
msgid "Set emulation"
msgstr "Aseta emulointi"
-#: lexsup.c:253
+#: lexsup.c:258
msgid "Print map file on standard output"
msgstr "Tulosta map-tiedosto vakiotulosteessa"
-#: lexsup.c:255
+#: lexsup.c:260
msgid "Do not page align data"
msgstr "Älä sivuta tasausdataa"
-#: lexsup.c:257
+#: lexsup.c:262
msgid "Do not page align data, do not make text readonly"
msgstr "Älä sivuta tasausdataa, älä tee tekstistä kirjoitussuojattua"
-#: lexsup.c:260
+#: lexsup.c:265
msgid "Page align data, make text readonly"
msgstr "Sivuta tasausdataa, tee tekstistä kirjoitussuojattua"
-#: lexsup.c:263
+#: lexsup.c:268
msgid "Set output file name"
msgstr "Aseta tulostetiedoston nimi"
-#: lexsup.c:265
+#: lexsup.c:270
msgid "Optimize output file"
msgstr "Optimoi tulostetiedosto"
-#: lexsup.c:267
+#: lexsup.c:272
msgid "Ignored for SVR4 compatibility"
msgstr "Ei oteta huomioon SVR4-yhteensopivuutta"
-#: lexsup.c:271
+#: lexsup.c:276
msgid "Generate relocatable output"
msgstr "Luo uudelleensijoitettava tuloste"
-#: lexsup.c:275
+#: lexsup.c:280
msgid "Just link symbols (if directory, same as --rpath)"
msgstr "Linkitä vain symbolit (jos hakemisto, sama kuin --rpath)"
-#: lexsup.c:278
+#: lexsup.c:283
msgid "Strip all symbols"
msgstr "Riisu kaikki symbolit"
-#: lexsup.c:280
+#: lexsup.c:285
msgid "Strip debugging symbols"
msgstr "Riisu debuggaussymbolit"
-#: lexsup.c:282
+#: lexsup.c:287
msgid "Strip symbols in discarded sections"
msgstr "Riisu symbolit hylätyissä lohkoissa"
-#: lexsup.c:284
+#: lexsup.c:289
msgid "Do not strip symbols in discarded sections"
msgstr "Älä riisu symboleja hylätyistä lohkoista"
-#: lexsup.c:286
+#: lexsup.c:291
msgid "Trace file opens"
msgstr "Jäljitä tiedoston avaukset"
-#: lexsup.c:288
+#: lexsup.c:293
msgid "Read linker script"
msgstr "Lue linkitysskripti"
-#: lexsup.c:290
+#: lexsup.c:295
msgid "Read default linker script"
msgstr "Lue oletus linkitysskripti"
-#: lexsup.c:294 lexsup.c:312 lexsup.c:385 lexsup.c:406 lexsup.c:503
-#: lexsup.c:529 lexsup.c:565
+#: lexsup.c:299 lexsup.c:317 lexsup.c:390 lexsup.c:411 lexsup.c:508
+#: lexsup.c:536 lexsup.c:575
msgid "SYMBOL"
msgstr "SYMBOLI"
-#: lexsup.c:294
+#: lexsup.c:299
msgid "Start with undefined reference to SYMBOL"
msgstr "Aloita määrittelemättömällä viitteellä kohteeseen SYMBOLI"
-#: lexsup.c:297
+#: lexsup.c:302
msgid "[=SECTION]"
msgstr "[=LOHKO]"
-#: lexsup.c:298
+#: lexsup.c:303
msgid "Don't merge input [SECTION | orphan] sections"
msgstr "Älä yhdistä syöte[LOHKO | orpo]lohkoja"
-#: lexsup.c:300
+#: lexsup.c:305
msgid "Build global constructor/destructor tables"
msgstr "Muodosta yleiset konstruktori/destruktoritaulut"
-#: lexsup.c:302
+#: lexsup.c:307
msgid "Print version information"
msgstr "Tulosta versiotiedot"
-#: lexsup.c:304
+#: lexsup.c:309
msgid "Print version and emulation information"
msgstr "Tulosta versio- ja emulointitiedot"
-#: lexsup.c:306
+#: lexsup.c:311
msgid "Discard all local symbols"
msgstr "Hylkää kaikki paikalliset symbolit"
-#: lexsup.c:308
+#: lexsup.c:313
msgid "Discard temporary local symbols (default)"
msgstr "Hylkää tilapäiset paikalliset symbolit (oletus)"
-#: lexsup.c:310
+#: lexsup.c:315
msgid "Don't discard any local symbols"
msgstr "Älä hylkää mitään paikallisia symboleja"
-#: lexsup.c:312
+#: lexsup.c:317
msgid "Trace mentions of SYMBOL"
msgstr "Jäljitä SYMBOLIn maininnat"
-#: lexsup.c:314 lexsup.c:468 lexsup.c:470
+#: lexsup.c:319 lexsup.c:473 lexsup.c:475
msgid "PATH"
msgstr "POLKU"
-#: lexsup.c:314
+#: lexsup.c:319
msgid "Default search path for Solaris compatibility"
msgstr "Oletushakupolku Solaris-yhteensopivuutta varten"
-#: lexsup.c:317
+#: lexsup.c:322
msgid "Start a group"
msgstr "Käynnistä ryhmä"
-#: lexsup.c:319
+#: lexsup.c:324
msgid "End a group"
msgstr "Lopeta ryhmä"
-#: lexsup.c:323
+#: lexsup.c:328
msgid "Accept input files whose architecture cannot be determined"
msgstr "Hyväksy syötetiedostot, joiden arkkitehtuuria ei voida määritellä"
-#: lexsup.c:327
+#: lexsup.c:332
msgid "Reject input files whose architecture is unknown"
msgstr "Hylkää syötetiedostot, joiden arkkitehtuuri on tuntematon"
-#: lexsup.c:330
+#: lexsup.c:335
msgid ""
"Set DT_NEEDED tags for DT_NEEDED entries in\n"
" following dynamic libs"
@@ -1440,7 +1566,7 @@ msgstr ""
"Aseta DT_NEEDED-tunnisteet DT_NEEDED-alkioille\n"
" seuraavissa dynaamisissa kirjastoissa"
-#: lexsup.c:334
+#: lexsup.c:339
msgid ""
"Do not set DT_NEEDED tags for DT_NEEDED entries\n"
" in following dynamic libs"
@@ -1448,171 +1574,171 @@ msgstr ""
"Älä aseta DT_NEEDED-tunnisteita DT_NEEDED-alkioille\n"
" seuraavissa dynaamisissa kirjastoissa"
-#: lexsup.c:338
+#: lexsup.c:343
msgid "Only set DT_NEEDED for following dynamic libs if used"
msgstr "Aseta DT_NEEDED vain seuraavissa dynaamisissa kirjastoissa, jos niitä käytetään"
-#: lexsup.c:341
+#: lexsup.c:346
msgid "Always set DT_NEEDED for following dynamic libs"
msgstr "Aseta DT_NEEDED aina seuraavissa dynaamisissa kirjastoissa"
-#: lexsup.c:344
+#: lexsup.c:349
msgid "Ignored for SunOS compatibility"
msgstr "Ei oteta huomioon SunOS-yhteensopivuutta"
-#: lexsup.c:346
+#: lexsup.c:351
msgid "Link against shared libraries"
msgstr "Linkitä käyttäen jaettuja kirjastoja"
-#: lexsup.c:352
+#: lexsup.c:357
msgid "Do not link against shared libraries"
msgstr "Älä linkitä käyttäen jaettuja kirjastoja"
-#: lexsup.c:360
+#: lexsup.c:365
msgid "Bind global references locally"
msgstr "Sido yleisviitteet paikallisesti"
-#: lexsup.c:362
+#: lexsup.c:367
msgid "Bind global function references locally"
msgstr "Sido yleisfunktioviitteet paikallisesti"
-#: lexsup.c:364
+#: lexsup.c:369
msgid "Check section addresses for overlaps (default)"
msgstr "Tarkista lohko-osoitteet päällekkäisyyksien varalta (oletus)"
-#: lexsup.c:367
+#: lexsup.c:372
msgid "Do not check section addresses for overlaps"
msgstr "Älä tarkista lohko-osoitteita päällekkäisyyksien varalta"
-#: lexsup.c:370
+#: lexsup.c:375
msgid "Output cross reference table"
msgstr "Tulosteristiviitetaulu"
-#: lexsup.c:372
+#: lexsup.c:377
msgid "SYMBOL=EXPRESSION"
msgstr "SYMBOLI=LAUSEKE"
-#: lexsup.c:372
+#: lexsup.c:377
msgid "Define a symbol"
msgstr "Määrittele symboli"
-#: lexsup.c:374
+#: lexsup.c:379
msgid "[=STYLE]"
msgstr "[=TYYLI]"
-#: lexsup.c:374
+#: lexsup.c:379
msgid "Demangle symbol names [using STYLE]"
msgstr "Eheytä symbolinnimet [käyttäen TYYLIä]"
-#: lexsup.c:377
+#: lexsup.c:382
msgid "Generate embedded relocs"
msgstr "luo upotettuja relocs-lohkoja"
-#: lexsup.c:379
+#: lexsup.c:384
msgid "Treat warnings as errors"
msgstr "Kohtele varoituksia virheinä"
-#: lexsup.c:382
+#: lexsup.c:387
msgid "Do not treat warnings as errors (default)"
msgstr "Älä kohtele varoituksia virheinä (oletus)"
-#: lexsup.c:385
+#: lexsup.c:390
msgid "Call SYMBOL at unload-time"
msgstr "Kutsu SYMBOLIa vapautushetkellä"
-#: lexsup.c:387
+#: lexsup.c:392
msgid "Force generation of file with .exe suffix"
msgstr "Pakota .exe-suffiksitiedoston luominen"
-#: lexsup.c:389
+#: lexsup.c:394
msgid "Remove unused sections (on some targets)"
msgstr "Poista käyttämättömät lohkot (joissakin kohteissa)"
-#: lexsup.c:392
+#: lexsup.c:397
msgid "Don't remove unused sections (default)"
msgstr "Älä poista käyttämättömiä lohkoja (oletus)"
-#: lexsup.c:395
+#: lexsup.c:400
msgid "List removed unused sections on stderr"
msgstr "Luettele poistetut käyttämättömät lohkot vakiovirheessä"
-#: lexsup.c:398
+#: lexsup.c:403
msgid "Do not list removed unused sections"
msgstr "Älä luettele poistettuja käyttämättömiä lohkoja"
-#: lexsup.c:401
+#: lexsup.c:406
msgid "Set default hash table size close to <NUMBER>"
msgstr "Aseta oletus-hash-taulukoko lähelle <NUMERO>"
-#: lexsup.c:404
+#: lexsup.c:409
msgid "Print option help"
msgstr "Tulosta valitsinopaste"
-#: lexsup.c:406
+#: lexsup.c:411
msgid "Call SYMBOL at load-time"
msgstr "Kutsu SYMBOLIa lataushetkellä"
-#: lexsup.c:408
+#: lexsup.c:413
msgid "Write a map file"
msgstr "Kirjoita map-tiedosto"
-#: lexsup.c:410
+#: lexsup.c:415
msgid "Do not define Common storage"
msgstr "Älä määrittele Yhteinen-varastoa"
-#: lexsup.c:412
+#: lexsup.c:417
msgid "Do not demangle symbol names"
msgstr "Älä eheytä symbolinimiä"
-#: lexsup.c:414
+#: lexsup.c:419
msgid "Use less memory and more disk I/O"
msgstr "Käytä vähemmän muistia ja enemmän levyn I/O-toimintoja"
-#: lexsup.c:416
+#: lexsup.c:421
msgid "Do not allow unresolved references in object files"
msgstr "Älä salli ratkaisemattomia viitteitä objektitiedostoissa"
-#: lexsup.c:419
+#: lexsup.c:424
msgid "Allow unresolved references in shared libaries"
-msgstr "Salli ratkaismattomia viitteitä jaetuissa kirjastoissa"
+msgstr "Salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
-#: lexsup.c:423
+#: lexsup.c:428
msgid "Do not allow unresolved references in shared libs"
msgstr "Älä salli ratkaisemattomia viitteitä jaetuissa kirjastoissa"
-#: lexsup.c:427
+#: lexsup.c:432
msgid "Allow multiple definitions"
msgstr "Salli useita määrittelyjä"
-#: lexsup.c:429
+#: lexsup.c:434
msgid "Disallow undefined version"
msgstr "Älä salli määrittelemätöntä versiota"
-#: lexsup.c:431
+#: lexsup.c:436
msgid "Create default symbol version"
msgstr "Luo oletussymboliversio"
-#: lexsup.c:434
+#: lexsup.c:439
msgid "Create default symbol version for imported symbols"
msgstr "Luo oletussymboliversio tuontisymboleille"
-#: lexsup.c:437
+#: lexsup.c:442
msgid "Don't warn about mismatched input files"
msgstr "Älä varoita täsmäämättömistä syötetiedostoista"
-#: lexsup.c:440
+#: lexsup.c:445
msgid "Don't warn on finding an incompatible library"
msgstr "Älä varoita yhteensopimattoman kirjaston löytymisestä"
-#: lexsup.c:443
+#: lexsup.c:448
msgid "Turn off --whole-archive"
msgstr "Käännä pois --whole-archive"
-#: lexsup.c:445
+#: lexsup.c:450
msgid "Create an output file even if errors occur"
msgstr "Luo tulostetiedosto myös silloin kun syntyy virheitä"
-#: lexsup.c:450
+#: lexsup.c:455
msgid ""
"Only use library directories specified on\n"
" the command line"
@@ -1620,119 +1746,128 @@ msgstr ""
"Käytä vain kirjastohakemistoja, jotka on määritelty\n"
" komentorivillä"
-#: lexsup.c:454
+#: lexsup.c:459
msgid "Specify target of output file"
msgstr "Määrittele tulostetiedoston kohde"
-#: lexsup.c:457
+#: lexsup.c:462
msgid "Ignored for Linux compatibility"
msgstr "Ei oteta huomioon Linux-yhteensopivuutta"
-#: lexsup.c:460
+#: lexsup.c:465
msgid "Reduce memory overheads, possibly taking much longer"
msgstr "Pienennä muistiyleisrasite, mahdollisesti ottamalla paljon pitemmän"
-#: lexsup.c:463
+# Kun käskykohdemuuttuja on sen lukualueen ulkopuolella, joka sallitaan kullekin käskykentälle,
+# assembler voi muuntaa koodin käyttämään toiminnallisesti samanlaista käskyä tai käskysekvenssiä.
+# Tämä prosessi tunnetaan nimellä relaxation. Tätä tehdään tyypillisesti haarautumiskäskyissä, koska
+# haarautumiskohteen etäisyyttä ei tunneta ennen linkitystä. Tavallaan tällä tavalla kumotaan lukualueen
+# rajoitteet (constraints). Siksi olen suomentanut sen termillä avartaminen.
+#: lexsup.c:468
msgid "Relax branches on certain targets"
-msgstr "Relax branches tietyissä kohteissa"
+msgstr "Avarra haarautumiskäskyjä tietyissä kohteissa"
-#: lexsup.c:466
+#: lexsup.c:471
msgid "Keep only symbols listed in FILE"
msgstr "Pidä vain symbolit, jotka on lueteltu TIEDOSTOssa"
-#: lexsup.c:468
+#: lexsup.c:473
msgid "Set runtime shared library search path"
msgstr "Aseta ajoaikaisen jaetun kirjaston hakupolku"
-#: lexsup.c:470
+#: lexsup.c:475
msgid "Set link time shared library search path"
msgstr "Aseta linkkausaikaisen jaetun kirjaston hakupolku"
-#: lexsup.c:473
+#: lexsup.c:478
msgid "Create a shared library"
msgstr "Luo jaettu kirjasto"
-#: lexsup.c:477
+#: lexsup.c:482
msgid "Create a position independent executable"
msgstr "Luo paikkariippumaton suoritettava tiedosto"
-#: lexsup.c:481
+#: lexsup.c:486
msgid "[=ascending|descending]"
msgstr "[=nouseva|laskeva]"
-#: lexsup.c:482
+#: lexsup.c:487
msgid "Sort common symbols by alignment [in specified order]"
msgstr "Lajittele yhteissymbolit [määritellyn järjestyksen] mukaan"
-#: lexsup.c:487
+#: lexsup.c:492
msgid "name|alignment"
msgstr "nimi|tasaus"
-#: lexsup.c:488
+#: lexsup.c:493
msgid "Sort sections by name or maximum alignment"
msgstr "Lajittele lohkot nimen tai maksimitasauksen mukaan"
-#: lexsup.c:490
+#: lexsup.c:495
msgid "COUNT"
msgstr "LUKUMÄÄRÄ"
-#: lexsup.c:490
+#: lexsup.c:495
msgid "How many tags to reserve in .dynamic section"
msgstr "Kuinka monta tunnistetta ”.dynamic”-lohkon varaamiseen"
-#: lexsup.c:493
+#: lexsup.c:498
msgid "[=SIZE]"
msgstr "[=KOKO]"
-#: lexsup.c:493
+#: lexsup.c:498
msgid "Split output sections every SIZE octets"
msgstr "Halkaise tulostelohkot kaikkiin KOKO-oktetteihin"
-#: lexsup.c:496
+#: lexsup.c:501
msgid "[=COUNT]"
msgstr "[=LUKUMÄÄRÄ]"
-#: lexsup.c:496
+#: lexsup.c:501
msgid "Split output sections every COUNT relocs"
msgstr "Halkaise tulostelohkot kaikkiin COUNT-reloc-alkioihin"
-#: lexsup.c:499
+#: lexsup.c:504
msgid "Print memory usage statistics"
msgstr "Tulosta muistikäyttötilastot"
-#: lexsup.c:501
+#: lexsup.c:506
msgid "Display target specific options"
msgstr "Näytä kohdekohtaiset valitsimet"
-#: lexsup.c:503
+#: lexsup.c:508
msgid "Do task level linking"
msgstr "Tee tehtävätason linkitystä"
-#: lexsup.c:505
+#: lexsup.c:510
msgid "Use same format as native linker"
-msgstr "Käytä samaa muotoa kuin native-linkkeri"
+msgstr "Käytä samaa muotoa kuin kotoperäinen linkkeri"
-#: lexsup.c:507
+#: lexsup.c:512
msgid "SECTION=ADDRESS"
msgstr "LOHKO=OSOITE"
-#: lexsup.c:507
+#: lexsup.c:512
msgid "Set address of named section"
msgstr "Aseta nimetyn lohkon osoite"
-#: lexsup.c:510
+#: lexsup.c:515
msgid "Set address of .bss section"
msgstr "Aseta ”.bss”-lohkon osoite"
-#: lexsup.c:512
+#: lexsup.c:517
msgid "Set address of .data section"
msgstr "Aseta ”.data”-lohkon osoite"
-#: lexsup.c:514
+#: lexsup.c:519
msgid "Set address of .text section"
msgstr "Aseta ”.text”-lohkon osoite"
-#: lexsup.c:517
+#: lexsup.c:521
+msgid "Set address of text segment"
+msgstr "Aseta text-lohkon osoite"
+
+#: lexsup.c:524
msgid ""
"How to handle unresolved symbols. <method> is:\n"
" ignore-all, report-all, ignore-in-object-files,\n"
@@ -1742,15 +1877,15 @@ msgstr ""
" ei-oteta-huomioon-kaikissa, raportoi-kaikki, ei-oteta-huomioon-objektitiedostoista,\n"
" ei-oteta-huomioon-jaetuissa-kirjastoissa"
-#: lexsup.c:522
+#: lexsup.c:529
msgid "Output lots of information during link"
msgstr "Tulosta paljon tietoja linkityksen aikana"
-#: lexsup.c:526
+#: lexsup.c:533
msgid "Read version information script"
msgstr "Lue versiotietoskripti"
-#: lexsup.c:529
+#: lexsup.c:536
msgid ""
"Take export symbols list from .exports, using\n"
" SYMBOL as the version."
@@ -1758,87 +1893,91 @@ msgstr ""
"Ota vientisymbolit ”.exports”-luettelosta, käytä\n"
" SYMBOLIa versiona."
-#: lexsup.c:533
+#: lexsup.c:540
msgid "Add data symbols to dynamic list"
msgstr "Lisää datasymboleja dynaamiseen luetteloon"
-#: lexsup.c:535
+#: lexsup.c:542
msgid "Use C++ operator new/delete dynamic list"
msgstr "Käytä C++-operaattoria ”new/delete” dynaamiseen luetteloon"
-#: lexsup.c:537
+#: lexsup.c:544
msgid "Use C++ typeinfo dynamic list"
-msgstr "Käytä C++ typeinfo dynaamiseen luetteloon"
+msgstr "Käytä C++ typeinfo-luokkaa dynaamiseen luetteloon"
-#: lexsup.c:539
+#: lexsup.c:546
msgid "Read dynamic list"
msgstr "Lue dynaamista luetteloa"
-#: lexsup.c:541
+#: lexsup.c:548
msgid "Warn about duplicate common symbols"
msgstr "Varoita yhteissymbolien kaksoiskappaleista"
-#: lexsup.c:543
+#: lexsup.c:550
msgid "Warn if global constructors/destructors are seen"
msgstr "Varoita, jos nähdään yleisiä konstruktoreja/destruktoreja"
-#: lexsup.c:546
+#: lexsup.c:553
msgid "Warn if the multiple GP values are used"
msgstr "Varoita, jos käytetään useita GP-arvoja"
-#: lexsup.c:548
+#: lexsup.c:555
msgid "Warn only once per undefined symbol"
-msgstr "Varoita vain kerran per määrittämätön symboli"
+msgstr "Varoita vain kerran määrittämättömästä symbolista"
-#: lexsup.c:550
+#: lexsup.c:557
msgid "Warn if start of section changes due to alignment"
msgstr "Varoita, jos lohkon alku muuttuu tasauksen vuoksi"
-#: lexsup.c:553
+#: lexsup.c:560
msgid "Warn if shared object has DT_TEXTREL"
msgstr "Varoita, jos jaetuilla objekteilla on DT_TEXTREL"
-#: lexsup.c:557
+#: lexsup.c:563
+msgid "Warn if an object has alternate ELF machine code"
+msgstr "Varoita, jos objektissa on vaihtoehtoisen ELF-koneen koodia"
+
+#: lexsup.c:567
msgid "Report unresolved symbols as warnings"
msgstr "Raportoi ratkaisemattomat symbolit varoituksina"
-#: lexsup.c:560
+#: lexsup.c:570
msgid "Report unresolved symbols as errors"
msgstr "Raportoi ratkaisemattomat symbolit virheinä"
-#: lexsup.c:562
+#: lexsup.c:572
msgid "Include all objects from following archives"
msgstr "Sisällytä kaikki objektit seuraavista arkistoista"
-#: lexsup.c:565
+#: lexsup.c:575
msgid "Use wrapper functions for SYMBOL"
msgstr "Käytä wrapper-toimintoja SYMBOLille"
-#: lexsup.c:712
+#: lexsup.c:722
msgid "%P: unrecognized option '%s'\n"
msgstr "%P: tunnistamaton valitsin ”%s”\n"
-#: lexsup.c:716
+#: lexsup.c:726
msgid "%P%F: use the --help option for usage information\n"
msgstr "%P%F: käytä ”--help”-valitsinta käyttötietojen saamiseksi\n"
-#: lexsup.c:734
+#: lexsup.c:744
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr "%P%F: tunnistamaton ”-a”-valitsin ”%s”\n"
-#: lexsup.c:747
+#: lexsup.c:757
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr "%P%F: tunnistamaton ”-assert”-valitsin ”%s”\n"
-#: lexsup.c:790
+#: lexsup.c:800
msgid "%F%P: unknown demangling style `%s'"
msgstr "%F%P: tuntematon eheytystyyli ”%s”"
-#: lexsup.c:852
+#: lexsup.c:866
msgid "%P%F: invalid number `%s'\n"
msgstr "%P%F: virheellinen numero ”%s”\n"
-#: lexsup.c:950
+#: lexsup.c:964
msgid "%P%F: bad --unresolved-symbols option: %s\n"
msgstr "%P%F: virheellinen ”--unresolved-symbols”-valitsin: %s\n"
@@ -1850,180 +1989,203 @@ msgstr "%P%F: virheellinen ”--unresolved-symbols”-valitsin: %s\n"
#. an error message here. We cannot just make this a warning,
#. increment optind, and continue because getopt is too confused
#. and will seg-fault the next time around.
-#: lexsup.c:1024
+#: lexsup.c:1038
msgid "%P%F: bad -rpath option\n"
msgstr "%P%F: virheellinen ”-rpath”-valitsin\n"
-#: lexsup.c:1135
+#: lexsup.c:1149
msgid "%P%F: -shared not supported\n"
msgstr "%P%F: ”-shared” ei ole tuettu\n"
-#: lexsup.c:1144
+#: lexsup.c:1158
msgid "%P%F: -pie not supported\n"
msgstr "%P%F: ”-pie” ei ole tuettu\n"
-#: lexsup.c:1152
+#: lexsup.c:1166
msgid "descending"
msgstr "laskeva"
-#: lexsup.c:1154
+#: lexsup.c:1168
msgid "ascending"
msgstr "nouseva"
-#: lexsup.c:1157
+#: lexsup.c:1171
msgid "%P%F: invalid common section sorting option: %s\n"
msgstr "%P%F: virheellinen yhteisen lohkon lajitteluvalitsin: %s\n"
-#: lexsup.c:1161
+#: lexsup.c:1175
msgid "name"
msgstr "nimi"
-#: lexsup.c:1163
+#: lexsup.c:1177
msgid "alignment"
msgstr "tasaus"
-#: lexsup.c:1166
+#: lexsup.c:1180
msgid "%P%F: invalid section sorting option: %s\n"
msgstr "%P%F: virheellinen lohkolajitteluvalitsin: %s\n"
-#: lexsup.c:1200
+#: lexsup.c:1214
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr "%P%F: virheellinen argumentti valitsimelle ”--section-start”\n"
-#: lexsup.c:1207
+#: lexsup.c:1221
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr "%P%F: argumentteja puuttuu valitsimelle ”--section-start”\n"
-#: lexsup.c:1421
+#: lexsup.c:1441
msgid "%P%F: may not nest groups (--help for usage)\n"
msgstr "%P%F: ryhmiä ei saa ketjuttaa (--help opasteeksi)\n"
-#: lexsup.c:1428
+#: lexsup.c:1448
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr "%P%F: ryhmä loppui ennen alkamista (--help opasteeksi)\n"
-#: lexsup.c:1456
+#: lexsup.c:1476
msgid "%P%X: --hash-size needs a numeric argument\n"
msgstr "%P%X: ”--hash-size” tarvitsee numeerisen argumentin\n"
-#: lexsup.c:1507 lexsup.c:1520
+#: lexsup.c:1527 lexsup.c:1540
msgid "%P%F: invalid hex number `%s'\n"
msgstr "%P%F: virheellinen heksadesimaalinumero ”%s”\n"
-#: lexsup.c:1556
+#: lexsup.c:1576
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr "Käyttö: %s [valitsimet] tiedosto...\n"
-#: lexsup.c:1558
+#: lexsup.c:1578
#, c-format
msgid "Options:\n"
msgstr "Valitsimet:\n"
-#: lexsup.c:1636
+#: lexsup.c:1656
#, c-format
msgid " @FILE"
msgstr " @TIEDOSTO"
-#: lexsup.c:1639
+#: lexsup.c:1659
#, c-format
msgid "Read options from FILE\n"
msgstr "Lue valitsimet tiedostosta TIEDOSTO\n"
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1644
+#: lexsup.c:1664
#, c-format
msgid "%s: supported targets:"
msgstr "%s: tuetut kohteet:"
-#: lexsup.c:1652
+#: lexsup.c:1672
#, c-format
msgid "%s: supported emulations: "
msgstr "%s: tuetut emuloinnit: "
-#: lexsup.c:1657
+#: lexsup.c:1677
#, c-format
msgid "%s: emulation specific options:\n"
msgstr "%s: emulointikohtaiset valitsimet:\n"
-#: lexsup.c:1662
+#: lexsup.c:1682
#, c-format
msgid "Report bugs to %s\n"
-msgstr "Raportoi virheet osoitteeseen %s\n"
+msgstr "Ilmoita virheet osoitteeseen %s\n"
#: mri.c:291
msgid "%P%F: unknown format type %s\n"
msgstr "%P%F: tuntematon muototyyppi %s\n"
-#: pe-dll.c:381
+#: pe-dll.c:415
#, c-format
msgid "%XUnsupported PEI architecture: %s\n"
msgstr "%XEi-tuettu PEI-arkkitehtuuri: %s\n"
-#: pe-dll.c:692
+#: pe-dll.c:766
#, c-format
msgid "%XCannot export %s: invalid export name\n"
msgstr "%XEi voi viedä %s: virheellinen vientinimi\n"
-#: pe-dll.c:748
+#: pe-dll.c:822
#, c-format
msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr "%XVirhe, EXPORT-kaksoiskappale järjestysnumeroilla: %s (%d vs %d)\n"
-#: pe-dll.c:755
+#: pe-dll.c:829
#, c-format
msgid "Warning, duplicate EXPORT: %s\n"
msgstr "Varoitus, EXPORT-kaksoiskappale: %s\n"
-#: pe-dll.c:842
+#: pe-dll.c:916
#, c-format
msgid "%XCannot export %s: symbol not defined\n"
msgstr "%XEi voi viedä symbolia %s: symbolia ei ole määritelty\n"
-#: pe-dll.c:848
+#: pe-dll.c:922
#, c-format
msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
-msgstr "%XEi voi viedä symbolia %s: symbolia väärän tyyppinen (%d vs %d)\n"
+msgstr "%XEi voi viedä symbolia %s: symboli on väärän tyyppinen (%d vs %d)\n"
-#: pe-dll.c:855
+#: pe-dll.c:929
#, c-format
msgid "%XCannot export %s: symbol not found\n"
msgstr "%XEi voi viedä symbolia %s: symbolia ei löydy\n"
-#: pe-dll.c:969
+#: pe-dll.c:1043
#, c-format
msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
msgstr "%XVirhe, järjestyslukua käytetty kahdesti: %d (%s vs %s)\n"
-#: pe-dll.c:1336
+#: pe-dll.c:1410
#, c-format
msgid "%XError: %d-bit reloc in dll\n"
msgstr "%XVirhe: %d-bittinen reloc dll:ssä\n"
-#: pe-dll.c:1464
+#: pe-dll.c:1538
#, c-format
msgid "%s: Can't open output def file %s\n"
msgstr "%s: Ei voi avata def-tulostetiedostoa %s\n"
-#: pe-dll.c:1609
+#: pe-dll.c:1683
#, c-format
msgid "; no contents available\n"
msgstr "; sisältö ei ole saatavilla\n"
-#: pe-dll.c:2407
+#: pe-dll.c:2600
msgid "%C: variable '%T' can't be auto-imported. Please read the documentation for ld's --enable-auto-import for details.\n"
msgstr "%C: muuttujaa ”%T” ei voi tuoda automaattisesti. Lue yksityiskohtaiset dokumentit ld-ohjelman --enable-auto-import-valitsimesta.\n"
-#: pe-dll.c:2437
+#: pe-dll.c:2630
#, c-format
msgid "%XCan't open .lib file: %s\n"
msgstr "%XEi voi avata .lib-tiedostoa: %s\n"
-#: pe-dll.c:2442
+#: pe-dll.c:2635
#, c-format
msgid "Creating library file: %s\n"
msgstr "Luodaan kirjastotiedosto: %s\n"
+#: pe-dll.c:2664
+#, c-format
+msgid "%Xbfd_openr %s: %E\n"
+msgstr "%Xbfd_openr %s: %E\n"
+
+#: pe-dll.c:2676
+#, c-format
+msgid "%X%s(%s): can't find member in non-archive file"
+msgstr "%X%s(%s): ei voi löytää jäsentä ei-arkistotiedostossa"
+
+#: pe-dll.c:2688
+#, c-format
+msgid "%X%s(%s): can't find member in archive"
+msgstr "%X%s(%s): ei voi löytää jäsentä arkistossa"
+
+#: pe-dll.c:3078
+#, c-format
+msgid "%XError: can't use long section names on this arch\n"
+msgstr "%XError: ei voi käyttää pitkiä lohkonimiä tähän arkistoon\n"
+
+#~ msgid "%P%F: --relax and -r may not be used together\n"
+#~ msgstr "%P%F: argumentteja --relax ja -r ei saa käyttää yhdessä\n"
+
#~ msgid " --support-old-code Support interworking with old code\n"
#~ msgstr " --support-old-code Tukee yhteistoimivuutta vanhan koodin kanssa\n"
diff --git a/ld/po/ld.pot b/ld/po/ld.pot
index 1198c0a..3802df2 100644
--- a/ld/po/ld.pot
+++ b/ld/po/ld.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2009-09-04 14:36+0200\n"
+"POT-Creation-Date: 2009-09-07 14:10+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"