diff options
author | Thiemo Seufer <ths@networkno.de> | 2005-11-03 11:45:14 +0000 |
---|---|---|
committer | Thiemo Seufer <ths@networkno.de> | 2005-11-03 11:45:14 +0000 |
commit | 6ece8836a6da593ddc29e0e9a9d79a39bb784206 (patch) | |
tree | 7613c924a43794d71a6f257889f12807881a37d4 /bfd/elfxx-mips.c | |
parent | 7fabd0295e49acb53d88c31a73719ec78d7f03a4 (diff) | |
download | gdb-6ece8836a6da593ddc29e0e9a9d79a39bb784206.zip gdb-6ece8836a6da593ddc29e0e9a9d79a39bb784206.tar.gz gdb-6ece8836a6da593ddc29e0e9a9d79a39bb784206.tar.bz2 |
* elfxx-mips.c (mips_elf_calculate_relocation): Handle only
forced local symbols here.
(mips_elf_create_dynamic_relocation): Likewise.
(_bfd_mips_elf_finish_dynamic_symbol): Fix typo in comment.
Diffstat (limited to 'bfd/elfxx-mips.c')
-rw-r--r-- | bfd/elfxx-mips.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c index 685f1d2..a344849 100644 --- a/bfd/elfxx-mips.c +++ b/bfd/elfxx-mips.c @@ -3918,7 +3918,7 @@ mips_elf_calculate_relocation (bfd *abfd, bfd *input_bfd, if (h->tls_type == GOT_NORMAL && (! elf_hash_table(info)->dynamic_sections_created || (info->shared - && (info->symbolic || h->root.dynindx == -1) + && (info->symbolic || h->root.forced_local) && h->root.def_regular))) { /* This is a static link or a -Bsymbolic link. The @@ -4483,10 +4483,8 @@ mips_elf_create_dynamic_relocation (bfd *output_bfd, /* We must now calculate the dynamic symbol table index to use in the relocation. */ if (h != NULL - && (! info->symbolic || !h->root.def_regular) - /* h->root.dynindx may be -1 if this symbol was marked to - become local. */ - && h->root.dynindx != -1) + && (!h->root.def_regular + || (info->shared && !info->symbolic && !h->root.forced_local))) { indx = h->root.dynindx; if (SGI_COMPAT (output_bfd)) @@ -7379,7 +7377,7 @@ _bfd_mips_elf_finish_dynamic_symbol (bfd *output_bfd, MIPS_ELF_STUB_SECTION_NAME (dynobj)); BFD_ASSERT (s != NULL); - /* FIXME: Can h->dynindex be more than 64K? */ + /* FIXME: Can h->dynindx be more than 64K? */ if (h->dynindx & 0xffff0000) return FALSE; |