+2005-10-26 Alan Modra <amodra@bigpond.net.au>
+
+ PR ld/1540
+ * elf-bfd.h (elf_backend_copy_indirect_symbol): Replace pointer to
+ elf_backend_data with pointer to bfd_link_info.
+ (_bfd_elf_link_hash_copy_indirect): Likewise.
+ * elf.c (_bfd_elf_link_hash_copy_indirect): Likewise. Handle
+ direct and indirect symbols both having dynamic link info.
+ * elf32-arm.c (elf32_arm_copy_indirect_symbol): Likewise.
+ * elf32-hppa.c (elf32_hppa_copy_indirect_symbol): Likewise.
+ * elf32-i386.c (elf_i386_copy_indirect_symbol): Likewise.
+ * elf32-m32r.c (m32r_elf_copy_indirect_symbol): Likewise.
+ * elf32-ppc.c (ppc_elf_copy_indirect_symbol): Likewise.
+ * elf32-s390.c (elf_s390_copy_indirect_symbol): Likewise.
+ * elf32-sh.c (sh_elf_copy_indirect_symbol): Likewise.
+ * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Likewise.
+ * elf64-s390.c (elf_s390_copy_indirect_symbol): Likewise.
+ * elf64-x86-64.c (elf64_x86_64_copy_indirect_symbol): Likewise.
+ * elfxx-ia64.c (elfNN_ia64_hash_copy_indirect): Likewise.
+ * elfxx-mips.c (_bfd_mips_elf_copy_indirect_symbol): Likewise.
+ * elfxx-sparc.c (_bfd_sparc_elf_copy_indirect_symbol): Likewise.
+ * elflink.c: Adjust all calls to bed->elf_backend_copy_indirect_symbol.
+ * elfxx-mips.h (_bfd_mips_elf_copy_indirect_symbol): Update prototype.
+ * elfxx-sparc.h (_bfd_sparc_elf_copy_indirect_symbol): Likewise.
+
2005-10-25 Alan Modra <amodra@bigpond.net.au>
* po/SRC-POTFILES.in: Regenerate.
newly created and plt/got refcounts and dynamic indices should not
be copied. */
void (*elf_backend_copy_indirect_symbol)
- (const struct elf_backend_data *, struct elf_link_hash_entry *,
+ (struct bfd_link_info *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *);
/* Modify any information related to dynamic linking such that the
extern struct bfd_link_hash_table *_bfd_elf_link_hash_table_create
(bfd *);
extern void _bfd_elf_link_hash_copy_indirect
- (const struct elf_backend_data *, struct elf_link_hash_entry *,
+ (struct bfd_link_info *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *);
extern void _bfd_elf_link_hash_hide_symbol
(struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
old indirect symbol. Also used for copying flags to a weakdef. */
void
-_bfd_elf_link_hash_copy_indirect (const struct elf_backend_data *bed,
+_bfd_elf_link_hash_copy_indirect (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
- bfd_signed_vma tmp;
- bfd_signed_vma lowest_valid = bed->can_refcount;
+ struct elf_link_hash_table *htab;
/* Copy down any references that we may have already seen to the
symbol which just became indirect. */
/* Copy over the global and procedure linkage table refcount entries.
These may have been already set up by a check_relocs routine. */
- tmp = dir->got.refcount;
- if (tmp < lowest_valid)
+ htab = elf_hash_table (info);
+ if (ind->got.refcount > htab->init_got_refcount.refcount)
{
- dir->got.refcount = ind->got.refcount;
- ind->got.refcount = tmp;
+ if (dir->got.refcount < 0)
+ dir->got.refcount = 0;
+ dir->got.refcount += ind->got.refcount;
+ ind->got.refcount = htab->init_got_refcount.refcount;
}
- else
- BFD_ASSERT (ind->got.refcount < lowest_valid);
- tmp = dir->plt.refcount;
- if (tmp < lowest_valid)
+ if (ind->plt.refcount > htab->init_plt_refcount.refcount)
{
- dir->plt.refcount = ind->plt.refcount;
- ind->plt.refcount = tmp;
+ if (dir->plt.refcount < 0)
+ dir->plt.refcount = 0;
+ dir->plt.refcount += ind->plt.refcount;
+ ind->plt.refcount = htab->init_plt_refcount.refcount;
}
- else
- BFD_ASSERT (ind->plt.refcount < lowest_valid);
- if (dir->dynindx == -1)
+ if (ind->dynindx != -1)
{
+ if (dir->dynindx != -1)
+ _bfd_elf_strtab_delref (htab->dynstr, dir->dynstr_index);
dir->dynindx = ind->dynindx;
dir->dynstr_index = ind->dynstr_index;
ind->dynindx = -1;
ind->dynstr_index = 0;
}
- else
- BFD_ASSERT (ind->dynindx == -1);
}
void
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf32_arm_copy_indirect_symbol (const struct elf_backend_data *bed,
+elf32_arm_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct elf32_arm_relocs_copied **pp;
struct elf32_arm_relocs_copied *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->relocs_copied; (p = *pp) != NULL; )
{
eind->relocs_copied = NULL;
}
- /* If the direct symbol already has an associated PLT entry, the
- indirect symbol should not. If it doesn't, swap refcount information
- from the indirect symbol. */
- if (edir->plt_thumb_refcount == 0)
- {
- edir->plt_thumb_refcount = eind->plt_thumb_refcount;
- eind->plt_thumb_refcount = 0;
- }
- else
- BFD_ASSERT (eind->plt_thumb_refcount == 0);
+ /* Copy over PLT info. */
+ edir->plt_thumb_refcount += eind->plt_thumb_refcount;
+ eind->plt_thumb_refcount = 0;
if (ind->root.type == bfd_link_hash_indirect
&& dir->got.refcount <= 0)
eind->tls_type = GOT_UNKNOWN;
}
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
/* Create an ARM elf linker hash table. */
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf32_hppa_copy_indirect_symbol (const struct elf_backend_data *bed,
+elf32_hppa_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *eh_dir,
struct elf_link_hash_entry *eh_ind)
{
struct elf32_hppa_dyn_reloc_entry **hdh_pp;
struct elf32_hppa_dyn_reloc_entry *hdh_p;
- if (eh_ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (hdh_pp = &hh_ind->dyn_relocs; (hdh_p = *hdh_pp) != NULL; )
{
struct elf32_hppa_dyn_reloc_entry *hdh_q;
- for (hdh_q = hh_dir->dyn_relocs; hdh_q != NULL; hdh_q = hdh_q->hdh_next)
+ for (hdh_q = hh_dir->dyn_relocs;
+ hdh_q != NULL;
+ hdh_q = hdh_q->hdh_next)
if (hdh_q->sec == hdh_p->sec)
{
#if RELATIVE_DYNRELOCS
eh_dir->needs_plt |= eh_ind->needs_plt;
}
else
- _bfd_elf_link_hash_copy_indirect (bed, eh_dir, eh_ind);
+ _bfd_elf_link_hash_copy_indirect (info, eh_dir, eh_ind);
}
/* Look through the relocs for a section during the first phase, and
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf_i386_copy_indirect_symbol (const struct elf_backend_data *bed,
+elf_i386_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct elf_i386_dyn_relocs **pp;
struct elf_i386_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
dir->pointer_equality_needed |= ind->pointer_equality_needed;
}
else
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
static int
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-m32r_elf_copy_indirect_symbol (const struct elf_backend_data *bed,
+m32r_elf_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct elf_m32r_dyn_relocs **pp;
struct elf_m32r_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL;)
{
eind->dyn_relocs = NULL;
}
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
\f
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-ppc_elf_copy_indirect_symbol (const struct elf_backend_data *bed ATTRIBUTE_UNUSED,
+ppc_elf_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct ppc_elf_link_hash_entry *edir, *eind;
- bfd_signed_vma tmp;
edir = (struct ppc_elf_link_hash_entry *) dir;
eind = (struct ppc_elf_link_hash_entry *) ind;
struct ppc_elf_dyn_relocs **pp;
struct ppc_elf_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
/* Copy over the GOT refcount entries that we may have already seen to
the symbol which just became indirect. */
- tmp = edir->elf.got.refcount;
- if (tmp < 1)
- {
- edir->elf.got.refcount = eind->elf.got.refcount;
- eind->elf.got.refcount = tmp;
- }
- else
- BFD_ASSERT (eind->elf.got.refcount < 1);
+ edir->elf.got.refcount += eind->elf.got.refcount;
+ eind->elf.got.refcount = 0;
/* And plt entries. */
if (eind->elf.plt.plist != NULL)
eind->elf.plt.plist = NULL;
}
- if (edir->elf.dynindx == -1)
+ if (eind->elf.dynindx != -1)
{
+ if (edir->elf.dynindx != -1)
+ _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
+ edir->elf.dynstr_index);
edir->elf.dynindx = eind->elf.dynindx;
edir->elf.dynstr_index = eind->elf.dynstr_index;
eind->elf.dynindx = -1;
eind->elf.dynstr_index = 0;
}
- else
- BFD_ASSERT (eind->elf.dynindx == -1);
}
/* Return 1 if target is one of ours. */
static bfd_boolean elf_s390_create_dynamic_sections
PARAMS((bfd *, struct bfd_link_info *));
static void elf_s390_copy_indirect_symbol
- PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static bfd_boolean elf_s390_check_relocs
PARAMS ((bfd *, struct bfd_link_info *, asection *,
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf_s390_copy_indirect_symbol (bed, dir, ind)
- const struct elf_backend_data *bed;
+elf_s390_copy_indirect_symbol (info, dir, ind)
+ struct bfd_link_info *info;
struct elf_link_hash_entry *dir, *ind;
{
struct elf_s390_link_hash_entry *edir, *eind;
struct elf_s390_dyn_relocs **pp;
struct elf_s390_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
dir->needs_plt |= ind->needs_plt;
}
else
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
static int
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-sh_elf_copy_indirect_symbol (const struct elf_backend_data *bed,
+sh_elf_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct elf_sh_link_hash_entry *edir, *eind;
-#ifdef INCLUDE_SHMEDIA
- bfd_signed_vma tmp;
-#endif
edir = (struct elf_sh_link_hash_entry *) dir;
eind = (struct elf_sh_link_hash_entry *) ind;
struct elf_sh_dyn_relocs **pp;
struct elf_sh_dyn_relocs *p;
- BFD_ASSERT (ind->root.type != bfd_link_hash_indirect);
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
edir->gotplt_refcount = eind->gotplt_refcount;
eind->gotplt_refcount = 0;
#ifdef INCLUDE_SHMEDIA
- tmp = edir->datalabel_got.refcount;
- if (tmp < 1)
- {
- edir->datalabel_got.refcount = eind->datalabel_got.refcount;
- eind->datalabel_got.refcount = tmp;
- }
- else
- BFD_ASSERT (eind->datalabel_got.refcount < 1);
+ edir->datalabel_got.refcount += eind->datalabel_got.refcount;
+ eind->datalabel_got.refcount = 0;
#endif
if (ind->root.type == bfd_link_hash_indirect
dir->needs_plt |= ind->needs_plt;
}
else
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
static int
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-ppc64_elf_copy_indirect_symbol
- (const struct elf_backend_data *bed ATTRIBUTE_UNUSED,
- struct elf_link_hash_entry *dir,
- struct elf_link_hash_entry *ind)
+ppc64_elf_copy_indirect_symbol (struct bfd_link_info *info,
+ struct elf_link_hash_entry *dir,
+ struct elf_link_hash_entry *ind)
{
struct ppc_link_hash_entry *edir, *eind;
struct ppc_dyn_relocs **pp;
struct ppc_dyn_relocs *p;
- if (eind->elf.root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
/* And plt entries. */
move_plt_plist (eind, edir);
- if (edir->elf.dynindx == -1)
+ if (eind->elf.dynindx != -1)
{
+ if (edir->elf.dynindx != -1)
+ _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
+ edir->elf.dynstr_index);
edir->elf.dynindx = eind->elf.dynindx;
edir->elf.dynstr_index = eind->elf.dynstr_index;
eind->elf.dynindx = -1;
eind->elf.dynstr_index = 0;
}
- else
- BFD_ASSERT (eind->elf.dynindx == -1);
}
/* Find the function descriptor hash entry from the given function code
static bfd_boolean elf_s390_create_dynamic_sections
PARAMS((bfd *, struct bfd_link_info *));
static void elf_s390_copy_indirect_symbol
- PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static bfd_boolean elf_s390_check_relocs
PARAMS ((bfd *, struct bfd_link_info *, asection *,
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf_s390_copy_indirect_symbol (bed, dir, ind)
- const struct elf_backend_data *bed;
+elf_s390_copy_indirect_symbol (info, dir, ind)
+ struct bfd_link_info *info;
struct elf_link_hash_entry *dir, *ind;
{
struct elf_s390_link_hash_entry *edir, *eind;
struct elf_s390_dyn_relocs **pp;
struct elf_s390_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
dir->needs_plt |= ind->needs_plt;
}
else
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
static int
/* Copy the extra info we tack onto an elf_link_hash_entry. */
static void
-elf64_x86_64_copy_indirect_symbol (const struct elf_backend_data *bed,
+elf64_x86_64_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct elf64_x86_64_dyn_relocs **pp;
struct elf64_x86_64_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
dir->pointer_equality_needed |= ind->pointer_equality_needed;
}
else
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
static bfd_boolean
flip->root.type = h->root.type;
h->root.type = bfd_link_hash_indirect;
h->root.u.i.link = (struct bfd_link_hash_entry *) flip;
- (*bed->elf_backend_copy_indirect_symbol) (bed, flip, h);
+ (*bed->elf_backend_copy_indirect_symbol) (info, flip, h);
flip->root.u.undef.abfd = h->root.u.undef.abfd;
if (h->def_dynamic)
{
struct elf_link_hash_entry *ht;
ht = (struct elf_link_hash_entry *) hi->root.u.i.link;
- (*bed->elf_backend_copy_indirect_symbol) (bed, ht, hi);
+ (*bed->elf_backend_copy_indirect_symbol) (info, ht, hi);
/* See if the new flags lead us to realize that the symbol must
be dynamic. */
if (hi->root.type == bfd_link_hash_indirect)
{
- (*bed->elf_backend_copy_indirect_symbol) (bed, h, hi);
+ (*bed->elf_backend_copy_indirect_symbol) (info, h, hi);
/* See if the new flags lead us to realize that the symbol
must be dynamic. */
const struct elf_backend_data *bed;
bed = get_elf_backend_data (elf_hash_table (eif->info)->dynobj);
- (*bed->elf_backend_copy_indirect_symbol) (bed, weakdef, h);
+ (*bed->elf_backend_copy_indirect_symbol) (eif->info, weakdef, h);
}
}
(*bed->elf_backend_hide_symbol) (info, hi, TRUE);
hi->root.type = bfd_link_hash_indirect;
hi->root.u.i.link = (struct bfd_link_hash_entry *) h;
- (*bed->elf_backend_copy_indirect_symbol) (bed, h, hi);
+ (*bed->elf_backend_copy_indirect_symbol) (info, h, hi);
sym_hash = elf_sym_hashes (abfd);
if (sym_hash)
for (symidx = 0; symidx < extsymcount; ++symidx)
PARAMS ((struct bfd_hash_entry *entry, struct bfd_hash_table *table,
const char *string));
static void elfNN_ia64_hash_copy_indirect
- PARAMS ((const struct elf_backend_data *, struct elf_link_hash_entry *,
+ PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *));
static void elfNN_ia64_hash_hide_symbol
PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean));
}
static void
-elfNN_ia64_hash_copy_indirect (bed, xdir, xind)
- const struct elf_backend_data *bed ATTRIBUTE_UNUSED;
+elfNN_ia64_hash_copy_indirect (info, xdir, xind)
+ struct bfd_link_info *info;
struct elf_link_hash_entry *xdir, *xind;
{
struct elfNN_ia64_link_hash_entry *dir, *ind;
/* Copy over the got and plt data. This would have been done
by check_relocs. */
- if (dir->info == NULL)
+ if (ind->info != NULL)
{
struct elfNN_ia64_dyn_sym_info *dyn_i;
+ struct elfNN_ia64_dyn_sym_info **pdyn;
- dir->info = dyn_i = ind->info;
+ pdyn = &dir->info;
+ while ((dyn_i = *pdyn) != NULL)
+ pdyn = &dyn_i->next;
+ *pdyn = dyn_i = ind->info;
ind->info = NULL;
/* Fix up the dyn_sym_info pointers to the global symbol. */
for (; dyn_i; dyn_i = dyn_i->next)
dyn_i->h = &dir->root;
}
- BFD_ASSERT (ind->info == NULL);
/* Copy over the dynindx. */
- if (dir->root.dynindx == -1)
+ if (ind->root.dynindx != -1)
{
+ if (dir->root.dynindx != -1)
+ _bfd_elf_strtab_delref (elf_hash_table (info)->dynstr,
+ dir->root.dynstr_index);
dir->root.dynindx = ind->root.dynindx;
dir->root.dynstr_index = ind->root.dynstr_index;
ind->root.dynindx = -1;
ind->root.dynstr_index = 0;
}
- BFD_ASSERT (ind->root.dynindx == -1);
}
static void
_bfd_elf_link_hash_copy_indirect copy the flags for us. */
void
-_bfd_mips_elf_copy_indirect_symbol (const struct elf_backend_data *bed,
+_bfd_mips_elf_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct mips_elf_link_hash_entry *dirmips, *indmips;
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
if (ind->root.type != bfd_link_hash_indirect)
return;
if (dirmips->tls_type == 0)
dirmips->tls_type = indmips->tls_type;
- else
- BFD_ASSERT (indmips->tls_type == 0);
}
void
extern bfd_boolean _bfd_mips_elf_gc_sweep_hook
(bfd *, struct bfd_link_info *, asection *, const Elf_Internal_Rela *);
extern void _bfd_mips_elf_copy_indirect_symbol
- (const struct elf_backend_data *, struct elf_link_hash_entry *,
+ (struct bfd_link_info *, struct elf_link_hash_entry *,
struct elf_link_hash_entry *);
extern void _bfd_mips_elf_hide_symbol
(struct bfd_link_info *, struct elf_link_hash_entry *, bfd_boolean);
/* Copy the extra info we tack onto an elf_link_hash_entry. */
void
-_bfd_sparc_elf_copy_indirect_symbol (const struct elf_backend_data *bed,
+_bfd_sparc_elf_copy_indirect_symbol (struct bfd_link_info *info,
struct elf_link_hash_entry *dir,
struct elf_link_hash_entry *ind)
{
struct _bfd_sparc_elf_dyn_relocs **pp;
struct _bfd_sparc_elf_dyn_relocs *p;
- if (ind->root.type == bfd_link_hash_indirect)
- abort ();
-
- /* Add reloc counts against the weak sym to the strong sym
+ /* Add reloc counts against the indirect sym to the direct sym
list. Merge any entries against the same section. */
for (pp = &eind->dyn_relocs; (p = *pp) != NULL; )
{
edir->tls_type = eind->tls_type;
eind->tls_type = GOT_UNKNOWN;
}
- _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
+ _bfd_elf_link_hash_copy_indirect (info, dir, ind);
}
static int
extern bfd_boolean _bfd_sparc_elf_create_dynamic_sections
(bfd *, struct bfd_link_info *);
extern void _bfd_sparc_elf_copy_indirect_symbol
- (const struct elf_backend_data *,
+ (struct bfd_link_info *,
struct elf_link_hash_entry *,
struct elf_link_hash_entry *);
extern bfd_boolean _bfd_sparc_elf_check_relocs
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-10-25 09:31+0930\n"
+"POT-Creation-Date: 2005-10-25 22:24+0930\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "%B: unsupported relocation: ALPHA_R_GPRELLOW"
msgstr ""
-#: coff-alpha.c:1557 elf32-m32r.c:2474 elf64-alpha.c:3912 elf64-alpha.c:4038
-#: elf32-ia64.c:4103 elf64-ia64.c:4103
+#: coff-alpha.c:1557 elf32-m32r.c:2471 elf64-alpha.c:3912 elf64-alpha.c:4038
+#: elf32-ia64.c:4108 elf64-ia64.c:4108
msgid "%B: unknown relocation type %d"
msgstr ""
-#: coff-arm.c:990 elf32-arm.c:1936
+#: coff-arm.c:990 elf32-arm.c:1926
#, c-format
msgid "%B: unable to find THUMB glue '%s' for `%s'"
msgstr ""
-#: coff-arm.c:1019 elf32-arm.c:1970
+#: coff-arm.c:1019 elf32-arm.c:1960
#, c-format
msgid "%B: unable to find ARM glue '%s' for `%s'"
msgstr ""
-#: coff-arm.c:1319 elf32-arm.c:2693
+#: coff-arm.c:1319 elf32-arm.c:2683
#, c-format
msgid ""
"%B(%s): warning: interworking not enabled.\n"
msgid "ERROR: %B is compiled for APCS-%d, whereas %B is compiled for APCS-%d"
msgstr ""
-#: coff-arm.c:2174 elf32-arm.c:5103
+#: coff-arm.c:2174 elf32-arm.c:5093
#, c-format
msgid ""
"ERROR: %B passes floats in float registers, whereas %B passes them in "
"integer registers"
msgstr ""
-#: coff-arm.c:2177 elf32-arm.c:5107
+#: coff-arm.c:2177 elf32-arm.c:5097
#, c-format
msgid ""
"ERROR: %B passes floats in integer registers, whereas %B passes them in "
"position independent"
msgstr ""
-#: coff-arm.c:2222 elf32-arm.c:5172
+#: coff-arm.c:2222 elf32-arm.c:5162
#, c-format
msgid "Warning: %B supports interworking, whereas %B does not"
msgstr ""
-#: coff-arm.c:2225 elf32-arm.c:5178
+#: coff-arm.c:2225 elf32-arm.c:5168
#, c-format
msgid "Warning: %B does not support interworking, whereas %B does"
msgstr ""
msgid "private flags = %x:"
msgstr ""
-#: coff-arm.c:2257 elf32-arm.c:5229
+#: coff-arm.c:2257 elf32-arm.c:5219
#, c-format
msgid " [floats passed in float registers]"
msgstr ""
msgid " [floats passed in integer registers]"
msgstr ""
-#: coff-arm.c:2262 elf32-arm.c:5232
+#: coff-arm.c:2262 elf32-arm.c:5222
#, c-format
msgid " [position independent]"
msgstr ""
msgid " [interworking not supported]"
msgstr ""
-#: coff-arm.c:2318 elf32-arm.c:4581
+#: coff-arm.c:2318 elf32-arm.c:4571
#, c-format
msgid ""
"Warning: Not setting interworking flag of %B since it has already been "
"specified as non-interworking"
msgstr ""
-#: coff-arm.c:2322 elf32-arm.c:4585
+#: coff-arm.c:2322 elf32-arm.c:4575
#, c-format
msgid "Warning: Clearing the interworking flag of %B due to outside request"
msgstr ""
" Type: %s"
msgstr ""
-#: elf32-arm.c:2325
+#: elf32-arm.c:2315
msgid "%B: BE8 images only valid in big-endian mode."
msgstr ""
-#: elf32-arm.c:2481
+#: elf32-arm.c:2471
#, c-format
msgid "Invalid TARGET2 relocation type '%s'."
msgstr ""
-#: elf32-arm.c:2588
+#: elf32-arm.c:2578
msgid ""
"%B(%s): warning: interworking not enabled.\n"
" first occurrence: %B: thumb call to arm"
msgstr ""
-#: elf32-arm.c:3054
+#: elf32-arm.c:3044
msgid "\\%B: Warning: Arm BLX instruction targets Arm function '%s'."
msgstr ""
-#: elf32-arm.c:3237
+#: elf32-arm.c:3227
msgid "%B: Warning: Thumb BLX instruction targets thumb function '%s'."
msgstr ""
-#: elf32-arm.c:3899
+#: elf32-arm.c:3889
msgid "%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"
msgstr ""
-#: elf32-arm.c:4300 elf32-sh.c:4618 elf64-sh64.c:1537
+#: elf32-arm.c:4290 elf32-sh.c:4618 elf64-sh64.c:1537
msgid "%B(%A+0x%lx): %s relocation against SEC_MERGE section"
msgstr ""
-#: elf32-arm.c:4361 elf64-ppc.c:9675
+#: elf32-arm.c:4351 elf64-ppc.c:9672
msgid "%B(%A+0x%lx): %s used with TLS symbol %s"
msgstr ""
-#: elf32-arm.c:4362 elf64-ppc.c:9676
+#: elf32-arm.c:4352 elf64-ppc.c:9673
msgid "%B(%A+0x%lx): %s used with non-TLS symbol %s"
msgstr ""
-#: elf32-arm.c:4385 elf32-i386.c:3041 elf32-m32r.c:2656 elf32-m68k.c:1737
-#: elf32-ppc.c:6570 elf32-s390.c:3015 elf32-sh.c:4717 elf32-xtensa.c:2311
-#: elf64-ppc.c:10828 elf64-s390.c:3013 elf64-sh64.c:1626 elf64-x86-64.c:2525
-#: elf-hppa.h:1413 elf-m10300.c:1460 elfxx-sparc.c:3140
+#: elf32-arm.c:4375 elf32-i386.c:3038 elf32-m32r.c:2653 elf32-m68k.c:1737
+#: elf32-ppc.c:6561 elf32-s390.c:3012 elf32-sh.c:4717 elf32-xtensa.c:2311
+#: elf64-ppc.c:10825 elf64-s390.c:3010 elf64-sh64.c:1626 elf64-x86-64.c:2522
+#: elf-hppa.h:1413 elf-m10300.c:1460 elfxx-sparc.c:3137
msgid "%B(%A+0x%lx): unresolvable %s relocation against symbol `%s'"
msgstr ""
-#: elf32-arm.c:4421 elf32-avr.c:880 elf32-cr16c.c:773 elf32-cris.c:1502
+#: elf32-arm.c:4411 elf32-avr.c:880 elf32-cr16c.c:773 elf32-cris.c:1502
#: elf32-crx.c:911 elf32-d10v.c:536 elf32-fr30.c:595 elf32-frv.c:4107
#: elf32-h8300.c:494 elf32-i860.c:1189 elf32-ip2k.c:1474 elf32-iq2000.c:616
-#: elf32-m32c.c:465 elf32-m32r.c:3114 elf32-m68hc1x.c:1194 elf32-ms1.c:373
+#: elf32-m32c.c:465 elf32-m32r.c:3111 elf32-m68hc1x.c:1194 elf32-ms1.c:373
#: elf32-msp430.c:508 elf32-openrisc.c:383 elf32-v850.c:1672
#: elf32-xstormy16.c:909 elf64-mmix.c:1517 elf-m10200.c:427 elf-m10300.c:1509
msgid "internal error: out of range error"
msgstr ""
-#: elf32-arm.c:4425 elf32-avr.c:884 elf32-cr16c.c:777 elf32-cris.c:1506
+#: elf32-arm.c:4415 elf32-avr.c:884 elf32-cr16c.c:777 elf32-cris.c:1506
#: elf32-crx.c:915 elf32-d10v.c:540 elf32-fr30.c:599 elf32-frv.c:4111
#: elf32-h8300.c:498 elf32-i860.c:1193 elf32-iq2000.c:620 elf32-m32c.c:469
-#: elf32-m32r.c:3118 elf32-m68hc1x.c:1198 elf32-msp430.c:512
+#: elf32-m32r.c:3115 elf32-m68hc1x.c:1198 elf32-msp430.c:512
#: elf32-openrisc.c:387 elf32-v850.c:1676 elf32-xstormy16.c:913
#: elf64-mmix.c:1521 elf-m10200.c:431 elf-m10300.c:1513 elfxx-mips.c:7212
msgid "internal error: unsupported relocation error"
msgstr ""
-#: elf32-arm.c:4429 elf32-cr16c.c:781 elf32-crx.c:919 elf32-d10v.c:544
-#: elf32-h8300.c:502 elf32-m32r.c:3122 elf32-m68hc1x.c:1202 elf-m10200.c:435
+#: elf32-arm.c:4419 elf32-cr16c.c:781 elf32-crx.c:919 elf32-d10v.c:544
+#: elf32-h8300.c:502 elf32-m32r.c:3119 elf32-m68hc1x.c:1202 elf-m10200.c:435
#: elf-m10300.c:1517
msgid "internal error: dangerous error"
msgstr ""
-#: elf32-arm.c:4433 elf32-avr.c:892 elf32-cr16c.c:785 elf32-cris.c:1514
+#: elf32-arm.c:4423 elf32-avr.c:892 elf32-cr16c.c:785 elf32-cris.c:1514
#: elf32-crx.c:923 elf32-d10v.c:548 elf32-fr30.c:607 elf32-frv.c:4119
#: elf32-h8300.c:506 elf32-i860.c:1201 elf32-ip2k.c:1489 elf32-iq2000.c:628
-#: elf32-m32c.c:477 elf32-m32r.c:3126 elf32-m68hc1x.c:1206 elf32-ms1.c:381
+#: elf32-m32c.c:477 elf32-m32r.c:3123 elf32-m68hc1x.c:1206 elf32-ms1.c:381
#: elf32-msp430.c:520 elf32-openrisc.c:395 elf32-v850.c:1696
#: elf32-xstormy16.c:921 elf64-mmix.c:1529 elf-m10200.c:439 elf-m10300.c:1521
msgid "internal error: unknown error"
msgstr ""
-#: elf32-arm.c:4674
+#: elf32-arm.c:4664
msgid ""
"Warning: Clearing the interworking flag of %B because non-interworking code "
"in %B has been linked with it"
msgstr ""
-#: elf32-arm.c:4761
+#: elf32-arm.c:4751
msgid "ERROR: %B uses VFP register arguments, %B does not"
msgstr ""
-#: elf32-arm.c:4808
+#: elf32-arm.c:4798
msgid "ERROR: %B: Conflicting architecture profiles %c/%c"
msgstr ""
-#: elf32-arm.c:4823
+#: elf32-arm.c:4813
msgid "Warning: %B: Conflicting platform configuration"
msgstr ""
-#: elf32-arm.c:4831
+#: elf32-arm.c:4821
msgid "ERROR: %B: Conflicting use of R9"
msgstr ""
-#: elf32-arm.c:4843
+#: elf32-arm.c:4833
msgid "ERROR: %B: SB relative addressing conflicts with use of R9"
msgstr ""
-#: elf32-arm.c:4865
+#: elf32-arm.c:4855
msgid "ERROR: %B: Conflicting definitions of wchar_t"
msgstr ""
-#: elf32-arm.c:4891
+#: elf32-arm.c:4881
msgid "ERROR: %B: Conflicting enum sizes"
msgstr ""
-#: elf32-arm.c:4902
+#: elf32-arm.c:4892
msgid "ERROR: %B uses iWMMXt register arguments, %B does not"
msgstr ""
-#: elf32-arm.c:4922
+#: elf32-arm.c:4912
msgid "ERROR: %B: Must be processed by '%s' toolchain"
msgstr ""
-#: elf32-arm.c:4942 elf32-arm.c:4961
+#: elf32-arm.c:4932 elf32-arm.c:4951
msgid "ERROR: %B: Incompatible object tag '%s':%d"
msgstr ""
-#: elf32-arm.c:4971
+#: elf32-arm.c:4961
msgid "Warning: %B: Unknown EABI object attribute %d"
msgstr ""
-#: elf32-arm.c:5079
+#: elf32-arm.c:5069
msgid ""
"ERROR: Source object %B has EABI version %d, but target %B has EABI version %"
"d"
msgstr ""
-#: elf32-arm.c:5092
+#: elf32-arm.c:5082
msgid "ERROR: %B is compiled for APCS-%d, whereas target %B uses APCS-%d"
msgstr ""
-#: elf32-arm.c:5117
+#: elf32-arm.c:5107
msgid "ERROR: %B uses VFP instructions, whereas %B does not"
msgstr ""
-#: elf32-arm.c:5121
+#: elf32-arm.c:5111
msgid "ERROR: %B uses FPA instructions, whereas %B does not"
msgstr ""
-#: elf32-arm.c:5131
+#: elf32-arm.c:5121
msgid "ERROR: %B uses Maverick instructions, whereas %B does not"
msgstr ""
-#: elf32-arm.c:5135
+#: elf32-arm.c:5125
msgid "ERROR: %B does not use Maverick instructions, whereas %B does"
msgstr ""
-#: elf32-arm.c:5154
+#: elf32-arm.c:5144
msgid "ERROR: %B uses software FP, whereas %B uses hardware FP"
msgstr ""
-#: elf32-arm.c:5158
+#: elf32-arm.c:5148
msgid "ERROR: %B uses hardware FP, whereas %B uses software FP"
msgstr ""
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-arm.c:5205 elf32-bfin.c:2164 elf32-cris.c:3243 elf32-m68hc1x.c:1338
-#: elf32-m68k.c:428 elf32-vax.c:528 elfxx-mips.c:9935
+#: elf32-arm.c:5195 elf32-bfin.c:2164 elf32-cris.c:3243 elf32-m68hc1x.c:1338
+#: elf32-m68k.c:428 elf32-vax.c:528 elfxx-mips.c:9933
#, c-format
msgid "private flags = %lx:"
msgstr ""
-#: elf32-arm.c:5214
+#: elf32-arm.c:5204
#, c-format
msgid " [interworking enabled]"
msgstr ""
-#: elf32-arm.c:5222
+#: elf32-arm.c:5212
#, c-format
msgid " [VFP float format]"
msgstr ""
-#: elf32-arm.c:5224
+#: elf32-arm.c:5214
#, c-format
msgid " [Maverick float format]"
msgstr ""
-#: elf32-arm.c:5226
+#: elf32-arm.c:5216
#, c-format
msgid " [FPA float format]"
msgstr ""
-#: elf32-arm.c:5235
+#: elf32-arm.c:5225
#, c-format
msgid " [new ABI]"
msgstr ""
-#: elf32-arm.c:5238
+#: elf32-arm.c:5228
#, c-format
msgid " [old ABI]"
msgstr ""
-#: elf32-arm.c:5241
+#: elf32-arm.c:5231
#, c-format
msgid " [software FP]"
msgstr ""
-#: elf32-arm.c:5250
+#: elf32-arm.c:5240
#, c-format
msgid " [Version1 EABI]"
msgstr ""
-#: elf32-arm.c:5253 elf32-arm.c:5264
+#: elf32-arm.c:5243 elf32-arm.c:5254
#, c-format
msgid " [sorted symbol table]"
msgstr ""
-#: elf32-arm.c:5255 elf32-arm.c:5266
+#: elf32-arm.c:5245 elf32-arm.c:5256
#, c-format
msgid " [unsorted symbol table]"
msgstr ""
-#: elf32-arm.c:5261
+#: elf32-arm.c:5251
#, c-format
msgid " [Version2 EABI]"
msgstr ""
-#: elf32-arm.c:5269
+#: elf32-arm.c:5259
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr ""
-#: elf32-arm.c:5272
+#: elf32-arm.c:5262
#, c-format
msgid " [mapping symbols precede others]"
msgstr ""
-#: elf32-arm.c:5279
+#: elf32-arm.c:5269
#, c-format
msgid " [Version3 EABI]"
msgstr ""
-#: elf32-arm.c:5283
+#: elf32-arm.c:5273
#, c-format
msgid " [Version4 EABI]"
msgstr ""
-#: elf32-arm.c:5286
+#: elf32-arm.c:5276
#, c-format
msgid " [BE8]"
msgstr ""
-#: elf32-arm.c:5289
+#: elf32-arm.c:5279
#, c-format
msgid " [LE8]"
msgstr ""
-#: elf32-arm.c:5295
+#: elf32-arm.c:5285
#, c-format
msgid " <EABI version unrecognised>"
msgstr ""
-#: elf32-arm.c:5302
+#: elf32-arm.c:5292
#, c-format
msgid " [relocatable executable]"
msgstr ""
-#: elf32-arm.c:5305
+#: elf32-arm.c:5295
#, c-format
msgid " [has entry point]"
msgstr ""
-#: elf32-arm.c:5310
+#: elf32-arm.c:5300
#, c-format
msgid "<Unrecognised flag bits set>"
msgstr ""
-#: elf32-arm.c:5546 elf32-i386.c:905 elf32-s390.c:992 elf32-xtensa.c:784
-#: elf64-s390.c:945 elf64-x86-64.c:669 elfxx-sparc.c:1019
+#: elf32-arm.c:5536 elf32-i386.c:902 elf32-s390.c:989 elf32-xtensa.c:784
+#: elf64-s390.c:942 elf64-x86-64.c:666 elfxx-sparc.c:1016
msgid "%B: bad symbol index: %d"
msgstr ""
-#: elf32-arm.c:6033 elf32-cris.c:2385 elf32-hppa.c:1814 elf32-i370.c:491
-#: elf32-i386.c:1468 elf32-m32r.c:1916 elf32-m68k.c:1088 elf32-ppc.c:4154
-#: elf32-s390.c:1689 elf32-sh.c:3920 elf32-vax.c:1059 elf64-ppc.c:5720
-#: elf64-s390.c:1662 elf64-sh64.c:3442 elf64-x86-64.c:1255 elf-m10300.c:4107
-#: elfxx-sparc.c:1723
+#: elf32-arm.c:6023 elf32-cris.c:2385 elf32-hppa.c:1813 elf32-i370.c:491
+#: elf32-i386.c:1465 elf32-m32r.c:1913 elf32-m68k.c:1088 elf32-ppc.c:4145
+#: elf32-s390.c:1686 elf32-sh.c:3920 elf32-vax.c:1059 elf64-ppc.c:5717
+#: elf64-s390.c:1659 elf64-sh64.c:3442 elf64-x86-64.c:1252 elf-m10300.c:4107
+#: elfxx-sparc.c:1720
#, c-format
msgid "dynamic variable `%s' is zero size"
msgstr ""
msgid "%B(%A+0x%lx): unresolvable relocation against symbol `%s'"
msgstr ""
-#: elf32-bfin.c:1991 elf32-i386.c:3082 elf32-m68k.c:1778 elf32-s390.c:3067
-#: elf64-s390.c:3065 elf64-x86-64.c:2570
+#: elf32-bfin.c:1991 elf32-i386.c:3079 elf32-m68k.c:1778 elf32-s390.c:3064
+#: elf64-s390.c:3062 elf64-x86-64.c:2567
msgid "%B(%A+0x%lx): reloc against `%s': error %d"
msgstr ""
msgid "%B: cannot create stub entry %s"
msgstr ""
-#: elf32-hppa.c:822 elf32-hppa.c:3412
+#: elf32-hppa.c:822 elf32-hppa.c:3411
msgid "%B(%A+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
-#: elf32-hppa.c:1213
+#: elf32-hppa.c:1212
msgid ""
"%B: relocation %s can not be used when making a shared object; recompile "
"with -fPIC"
msgstr ""
-#: elf32-hppa.c:1406
+#: elf32-hppa.c:1405
#, c-format
msgid "Could not find relocation section for %s"
msgstr ""
-#: elf32-hppa.c:2678
+#: elf32-hppa.c:2677
msgid "%B: duplicate export stub %s"
msgstr ""
-#: elf32-hppa.c:3267
+#: elf32-hppa.c:3266
msgid ""
"%B(%A+0x%lx): %s fixup for insn 0x%x is not supported in a non-shared link"
msgstr ""
-#: elf32-hppa.c:3896
+#: elf32-hppa.c:3895
msgid "%B(%A+0x%lx): cannot handle %s for %s"
msgstr ""
-#: elf32-hppa.c:4190
+#: elf32-hppa.c:4189
msgid ".got section not immediately after .plt section"
msgstr ""
msgid "%B: invalid relocation type %d"
msgstr ""
-#: elf32-i386.c:1018 elf32-s390.c:1174 elf32-sh.c:6400 elf64-s390.c:1136
-#: elfxx-sparc.c:1147
+#: elf32-i386.c:1015 elf32-s390.c:1171 elf32-sh.c:6389 elf64-s390.c:1133
+#: elfxx-sparc.c:1144
msgid "%B: `%s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf32-i386.c:1133 elf32-s390.c:1283 elf64-ppc.c:4734 elf64-s390.c:1248
-#: elf64-x86-64.c:913
+#: elf32-i386.c:1130 elf32-s390.c:1280 elf64-ppc.c:4731 elf64-s390.c:1245
+#: elf64-x86-64.c:910
msgid "%B: bad relocation section name `%s'"
msgstr ""
-#: elf32-i386.c:2152
+#: elf32-i386.c:2149
msgid "%B: unrecognized relocation (0x%x) in section `%A'"
msgstr ""
-#: elf32-i386.c:2412
+#: elf32-i386.c:2409
msgid ""
"%B: relocation R_386_GOTOFF against protected function `%s' can not be used "
"when making a shared object"
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr ""
-#: elf32-m32r.c:3051
+#: elf32-m32r.c:3048
msgid "%B: The target (%s) of an %s relocation is in the wrong section (%A)"
msgstr ""
-#: elf32-m32r.c:3579
+#: elf32-m32r.c:3576
msgid "%B: Instruction set mismatch with previous modules"
msgstr ""
-#: elf32-m32r.c:3600
+#: elf32-m32r.c:3597
#, c-format
msgid "private flags = %lx"
msgstr ""
-#: elf32-m32r.c:3605
+#: elf32-m32r.c:3602
#, c-format
msgid ": m32r instructions"
msgstr ""
-#: elf32-m32r.c:3606
+#: elf32-m32r.c:3603
#, c-format
msgid ": m32rx instructions"
msgstr ""
-#: elf32-m32r.c:3607
+#: elf32-m32r.c:3604
#, c-format
msgid ": m32r2 instructions"
msgstr ""
msgid "%B: linking files compiled for HCS12 with others compiled for HC12"
msgstr ""
-#: elf32-m68hc1x.c:1313 elf32-ppc.c:3585 elf64-sparc.c:696 elfxx-mips.c:9896
+#: elf32-m68hc1x.c:1313 elf32-ppc.c:3576 elf64-sparc.c:696 elfxx-mips.c:9894
msgid "%B: uses different e_flags (0x%lx) fields than previous modules (0x%lx)"
msgstr ""
msgid "failed to install new APUinfo section."
msgstr ""
-#: elf32-ppc.c:2950
+#: elf32-ppc.c:2941
msgid "%B: relocation %s cannot be used when making a shared object"
msgstr ""
#. It does not make sense to have a procedure linkage
#. table entry for a local symbol.
-#: elf32-ppc.c:3220
+#: elf32-ppc.c:3211
msgid "%B(%A+0x%lx): %s reloc against local symbol"
msgstr ""
-#: elf32-ppc.c:3550
+#: elf32-ppc.c:3541
msgid ""
"%B: compiled with -mrelocatable and linked with modules compiled normally"
msgstr ""
-#: elf32-ppc.c:3558
+#: elf32-ppc.c:3549
msgid ""
"%B: compiled normally and linked with modules compiled with -mrelocatable"
msgstr ""
-#: elf32-ppc.c:5777 elf64-ppc.c:10189
+#: elf32-ppc.c:5768 elf64-ppc.c:10186
msgid "%B: unknown relocation type %d for symbol %s"
msgstr ""
-#: elf32-ppc.c:6027
+#: elf32-ppc.c:6018
msgid "%B(%A+0x%lx): non-zero addend on %s reloc against `%s'"
msgstr ""
-#: elf32-ppc.c:6374 elf32-ppc.c:6400 elf32-ppc.c:6459
+#: elf32-ppc.c:6365 elf32-ppc.c:6391 elf32-ppc.c:6450
msgid ""
"%B: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr ""
-#: elf32-ppc.c:6514
+#: elf32-ppc.c:6505
msgid "%B: relocation %s is not yet supported for symbol %s."
msgstr ""
-#: elf32-ppc.c:6619 elf64-ppc.c:10875
+#: elf32-ppc.c:6610 elf64-ppc.c:10872
msgid "%B(%A+0x%lx): %s reloc against `%s': error %d"
msgstr ""
-#: elf32-s390.c:2256 elf64-s390.c:2228
+#: elf32-s390.c:2253 elf64-s390.c:2225
msgid "%B(%A+0x%lx): invalid instruction for TLS relocation %s"
msgstr ""
msgid "%B: 0x%lx: fatal: R_SH_PSHL relocation %d not in range -32..32"
msgstr ""
-#: elf32-sh.c:6612 elf64-alpha.c:4466
+#: elf32-sh.c:6601 elf64-alpha.c:4466
msgid "%B: TLS local exec code cannot be linked into shared objects"
msgstr ""
msgid "%s: warning: %s relocation to 0x%x from %s section"
msgstr ""
-#: elf32-xstormy16.c:425 elf32-ia64.c:2558 elf64-ia64.c:2558
+#: elf32-xstormy16.c:425 elf32-ia64.c:2563 elf64-ia64.c:2563
msgid "non-zero addend in @fptr reloc"
msgstr ""
msgid "%B: compiled for a little endian system and target is big endian"
msgstr ""
-#: elf64-ppc.c:5710
+#: elf64-ppc.c:5707
#, c-format
msgid ""
"copy reloc against `%s' requires lazy plt linking; avoid setting "
"LD_BIND_NOW=1 or upgrade gcc"
msgstr ""
-#: elf64-ppc.c:6158
+#: elf64-ppc.c:6155
msgid "dynreloc miscount for %B, section %A"
msgstr ""
-#: elf64-ppc.c:6260
+#: elf64-ppc.c:6257
msgid "%B: .opd is not a regular array of opd entries"
msgstr ""
-#: elf64-ppc.c:6269
+#: elf64-ppc.c:6266
msgid "%B: unexpected reloc type %u in .opd section"
msgstr ""
-#: elf64-ppc.c:6290
+#: elf64-ppc.c:6287
msgid "%B: undefined sym `%s' in .opd section"
msgstr ""
-#: elf64-ppc.c:6942 elf64-ppc.c:7321
+#: elf64-ppc.c:6939 elf64-ppc.c:7318
#, c-format
msgid "%s defined in removed toc entry"
msgstr ""
-#: elf64-ppc.c:8044
+#: elf64-ppc.c:8041
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr ""
-#: elf64-ppc.c:8119
+#: elf64-ppc.c:8116
#, c-format
msgid "can't find branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:8158 elf64-ppc.c:8234
+#: elf64-ppc.c:8155 elf64-ppc.c:8231
#, c-format
msgid "linkage table error against `%s'"
msgstr ""
-#: elf64-ppc.c:8363
+#: elf64-ppc.c:8360
#, c-format
msgid "can't build branch stub `%s'"
msgstr ""
-#: elf64-ppc.c:8787
+#: elf64-ppc.c:8784
msgid "%B section %A exceeds stub group size"
msgstr ""
-#: elf64-ppc.c:9298
+#: elf64-ppc.c:9295
msgid ".glink and .plt too far apart"
msgstr ""
-#: elf64-ppc.c:9411
+#: elf64-ppc.c:9408
msgid "stubs don't match calculated size"
msgstr ""
-#: elf64-ppc.c:9423
+#: elf64-ppc.c:9420
#, c-format
msgid ""
"linker stubs in %u group%s\n"
" plt call %lu"
msgstr ""
-#: elf64-ppc.c:10078
+#: elf64-ppc.c:10075
msgid ""
"%B(%A+0x%lx): automatic multiple TOCs not supported using your crt files; "
"recompile with -mminimal-toc or upgrade gcc"
msgstr ""
-#: elf64-ppc.c:10086
+#: elf64-ppc.c:10083
msgid ""
"%B(%A+0x%lx): sibling call optimization to `%s' does not allow automatic "
"multiple TOCs; recompile with -mminimal-toc or -fno-optimize-sibling-calls, "
"or make `%s' extern"
msgstr ""
-#: elf64-ppc.c:10730
+#: elf64-ppc.c:10727
msgid "%B: relocation %s is not supported for symbol %s."
msgstr ""
-#: elf64-ppc.c:10809
+#: elf64-ppc.c:10806
msgid "%B: error: relocation %s not a multiple of %d"
msgstr ""
msgid "%B: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf64-x86-64.c:695 elf64-x86-64.c:821 elf64-x86-64.c:2072
+#: elf64-x86-64.c:692 elf64-x86-64.c:818 elf64-x86-64.c:2069
msgid ""
"%B: relocation %s against `%s' can not be used when making a shared object; "
"recompile with -fPIC"
msgstr ""
-#: elf64-x86-64.c:763
+#: elf64-x86-64.c:760
msgid "%B: %s' accessed both as normal and thread local symbol"
msgstr ""
-#: elf64-x86-64.c:2003
+#: elf64-x86-64.c:2000
msgid ""
"%B: relocation R_X86_64_GOTOFF64 against protected function `%s' can not be "
"used when making a shared object"
msgstr ""
-#: elf64-x86-64.c:2068
+#: elf64-x86-64.c:2065
msgid ""
"%B: relocation R_X86_64_PC32 against protected function `%s' can not be used "
"when making a shared object"
msgid "%B: no group info for section %A"
msgstr ""
-#: elf.c:652 elf.c:3093 elflink.c:7588
+#: elf.c:652 elf.c:3091 elflink.c:7588
msgid "%B: warning: sh_link not set for section `%A'"
msgstr ""
msgid " required from %s:\n"
msgstr ""
-#: elf.c:1987
+#: elf.c:1985
msgid "%B: invalid link %lu for reloc section %s (index %u)"
msgstr ""
-#: elf.c:3064
+#: elf.c:3062
msgid "%B: sh_link of section `%A' points to discarded section `%A' of `%B'"
msgstr ""
-#: elf.c:4072
+#: elf.c:4070
msgid "%B: Not enough room for program headers (allocated %u, need %u)"
msgstr ""
-#: elf.c:4175
+#: elf.c:4173
msgid ""
"%B: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr ""
-#: elf.c:4219
+#: elf.c:4217
msgid "%B: Not enough room for program headers, try linking with -N"
msgstr ""
-#: elf.c:4310
+#: elf.c:4308
msgid "%B: section %A lma 0x%lx overlaps previous sections"
msgstr ""
-#: elf.c:4711
+#: elf.c:4709
msgid "%B: warning: allocated section `%s' not in segment"
msgstr ""
-#: elf.c:5004
+#: elf.c:5002
msgid "%B: symbol `%s' required but not present"
msgstr ""
-#: elf.c:5301
+#: elf.c:5299
msgid "%B: warning: Empty loadable segment detected, is this intentional ?\n"
msgstr ""
-#: elf.c:5963
+#: elf.c:5961
#, c-format
msgid ""
"Unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr ""
-#: elf.c:6919
+#: elf.c:6917
msgid "%B: unsupported relocation type %s"
msgstr ""
msgid "%B: CALL16 reloc at 0x%lx not against global symbol"
msgstr ""
-#: elfxx-mips.c:9382
+#: elfxx-mips.c:9380
#, c-format
msgid "%s: illegal section name `%s'"
msgstr ""
-#: elfxx-mips.c:9721
+#: elfxx-mips.c:9719
msgid "%B: endianness incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:9733
+#: elfxx-mips.c:9731
msgid "%B: ABI is incompatible with that of the selected emulation"
msgstr ""
-#: elfxx-mips.c:9805
+#: elfxx-mips.c:9803
msgid "%B: warning: linking PIC files with non-PIC files"
msgstr ""
-#: elfxx-mips.c:9822
+#: elfxx-mips.c:9820
msgid "%B: linking 32-bit code with 64-bit code"
msgstr ""
-#: elfxx-mips.c:9850
+#: elfxx-mips.c:9848
msgid "%B: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:9873
+#: elfxx-mips.c:9871
msgid "%B: ABI mismatch: linking %s module with previous %s modules"
msgstr ""
-#: elfxx-mips.c:9938
+#: elfxx-mips.c:9936
#, c-format
msgid " [abi=O32]"
msgstr ""
-#: elfxx-mips.c:9940
+#: elfxx-mips.c:9938
#, c-format
msgid " [abi=O64]"
msgstr ""
-#: elfxx-mips.c:9942
+#: elfxx-mips.c:9940
#, c-format
msgid " [abi=EABI32]"
msgstr ""
-#: elfxx-mips.c:9944
+#: elfxx-mips.c:9942
#, c-format
msgid " [abi=EABI64]"
msgstr ""
-#: elfxx-mips.c:9946
+#: elfxx-mips.c:9944
#, c-format
msgid " [abi unknown]"
msgstr ""
-#: elfxx-mips.c:9948
+#: elfxx-mips.c:9946
#, c-format
msgid " [abi=N32]"
msgstr ""
-#: elfxx-mips.c:9950
+#: elfxx-mips.c:9948
#, c-format
msgid " [abi=64]"
msgstr ""
-#: elfxx-mips.c:9952
+#: elfxx-mips.c:9950
#, c-format
msgid " [no abi set]"
msgstr ""
-#: elfxx-mips.c:9955
+#: elfxx-mips.c:9953
#, c-format
msgid " [mips1]"
msgstr ""
-#: elfxx-mips.c:9957
+#: elfxx-mips.c:9955
#, c-format
msgid " [mips2]"
msgstr ""
-#: elfxx-mips.c:9959
+#: elfxx-mips.c:9957
#, c-format
msgid " [mips3]"
msgstr ""
-#: elfxx-mips.c:9961
+#: elfxx-mips.c:9959
#, c-format
msgid " [mips4]"
msgstr ""
-#: elfxx-mips.c:9963
+#: elfxx-mips.c:9961
#, c-format
msgid " [mips5]"
msgstr ""
-#: elfxx-mips.c:9965
+#: elfxx-mips.c:9963
#, c-format
msgid " [mips32]"
msgstr ""
-#: elfxx-mips.c:9967
+#: elfxx-mips.c:9965
#, c-format
msgid " [mips64]"
msgstr ""
-#: elfxx-mips.c:9969
+#: elfxx-mips.c:9967
#, c-format
msgid " [mips32r2]"
msgstr ""
-#: elfxx-mips.c:9971
+#: elfxx-mips.c:9969
#, c-format
msgid " [mips64r2]"
msgstr ""
-#: elfxx-mips.c:9973
+#: elfxx-mips.c:9971
#, c-format
msgid " [unknown ISA]"
msgstr ""
-#: elfxx-mips.c:9976
+#: elfxx-mips.c:9974
#, c-format
msgid " [mdmx]"
msgstr ""
-#: elfxx-mips.c:9979
+#: elfxx-mips.c:9977
#, c-format
msgid " [mips16]"
msgstr ""
-#: elfxx-mips.c:9982
+#: elfxx-mips.c:9980
#, c-format
msgid " [32bitmode]"
msgstr ""
-#: elfxx-mips.c:9984
+#: elfxx-mips.c:9982
#, c-format
msgid " [not 32bitmode]"
msgstr ""
msgid "invalid relocation type %d"
msgstr ""
-#: elfxx-sparc.c:2786
+#: elfxx-sparc.c:2783
msgid "%B: probably compiled without -fPIC?"
msgstr ""
"branch."
msgstr ""
-#: elf32-ia64.c:2503 elf64-ia64.c:2503
+#: elf32-ia64.c:2508 elf64-ia64.c:2508
msgid "@pltoff reloc against local symbol"
msgstr ""
-#: elf32-ia64.c:3950 elf64-ia64.c:3950
+#: elf32-ia64.c:3955 elf64-ia64.c:3955
#, c-format
msgid "%s: short data segment overflowed (0x%lx >= 0x400000)"
msgstr ""
-#: elf32-ia64.c:3961 elf64-ia64.c:3961
+#: elf32-ia64.c:3966 elf64-ia64.c:3966
#, c-format
msgid "%s: __gp does not cover short data segment"
msgstr ""
-#: elf32-ia64.c:4208 elf64-ia64.c:4208
+#: elf32-ia64.c:4213 elf64-ia64.c:4213
msgid "%B: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr ""
-#: elf32-ia64.c:4275 elf64-ia64.c:4275
+#: elf32-ia64.c:4280 elf64-ia64.c:4280
msgid "%B: @gprel relocation against dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4338 elf64-ia64.c:4338
+#: elf32-ia64.c:4343 elf64-ia64.c:4343
msgid "%B: linking non-pic code in a position independent executable"
msgstr ""
-#: elf32-ia64.c:4475 elf64-ia64.c:4475
+#: elf32-ia64.c:4480 elf64-ia64.c:4480
msgid "%B: @internal branch to dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4477 elf64-ia64.c:4477
+#: elf32-ia64.c:4482 elf64-ia64.c:4482
msgid "%B: speculation fixup to dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4479 elf64-ia64.c:4479
+#: elf32-ia64.c:4484 elf64-ia64.c:4484
msgid "%B: @pcrel relocation against dynamic symbol %s"
msgstr ""
-#: elf32-ia64.c:4686 elf64-ia64.c:4686
+#: elf32-ia64.c:4691 elf64-ia64.c:4691
msgid "unsupported reloc"
msgstr ""
-#: elf32-ia64.c:4719 elf64-ia64.c:4719
+#: elf32-ia64.c:4724 elf64-ia64.c:4724
msgid ""
"%B: Can't relax br (%s) to `%s' at 0x%lx in section `%A' with size 0x%lx (> "
"0x1000000)."
msgstr ""
-#: elf32-ia64.c:4980 elf64-ia64.c:4980
+#: elf32-ia64.c:4985 elf64-ia64.c:4985
msgid "%B: linking trap-on-NULL-dereference with non-trapping files"
msgstr ""
-#: elf32-ia64.c:4989 elf64-ia64.c:4989
+#: elf32-ia64.c:4994 elf64-ia64.c:4994
msgid "%B: linking big-endian files with little-endian files"
msgstr ""
-#: elf32-ia64.c:4998 elf64-ia64.c:4998
+#: elf32-ia64.c:5003 elf64-ia64.c:5003
msgid "%B: linking 64-bit files with 32-bit files"
msgstr ""
-#: elf32-ia64.c:5007 elf64-ia64.c:5007
+#: elf32-ia64.c:5012 elf64-ia64.c:5012
msgid "%B: linking constant-gp files with non-constant-gp files"
msgstr ""
-#: elf32-ia64.c:5017 elf64-ia64.c:5017
+#: elf32-ia64.c:5022 elf64-ia64.c:5022
msgid "%B: linking auto-pic files with non-auto-pic files"
msgstr ""