aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-mips.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2008-04-21 17:54:25 +0000
committerNathan Sidwell <nathan@codesourcery.com>2008-04-21 17:54:25 +0000
commit131eb6b75e45eec24860ff6972f23b0e723db75c (patch)
treef8f82ef6d68275987a3b6466a2dc37ef2ff4be8b /bfd/elfxx-mips.c
parent550512b831f018f3c1ceec7abb42f7123b03d77c (diff)
downloadfsf-binutils-gdb-131eb6b75e45eec24860ff6972f23b0e723db75c.zip
fsf-binutils-gdb-131eb6b75e45eec24860ff6972f23b0e723db75c.tar.gz
fsf-binutils-gdb-131eb6b75e45eec24860ff6972f23b0e723db75c.tar.bz2
bfd/
* elfxx-mips.c (_bfd_mips_vxworks_adjust_dynamic_symbol): Don't set the value of undefined symbols in shared objects. (_bfd_mips_vxworks_finish_dynamic_symbol): Clear value for undefined symbols unless pointer equality is needed. ld/testsuite/ * ld-vxworks/plt-mips1.s: New. * ld-vxworks/plt-mips1.d: New.
Diffstat (limited to 'bfd/elfxx-mips.c')
-rw-r--r--bfd/elfxx-mips.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index 396e578..5173c0a 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -7466,15 +7466,14 @@ _bfd_mips_vxworks_adjust_dynamic_symbol (struct bfd_link_info *info,
htab->splt->size += htab->plt_entry_size;
/* If the output file has no definition of the symbol, set the
- symbol's value to the address of the stub. For executables,
- point at the PLT load stub rather than the lazy resolution stub;
- this stub will become the canonical function address. */
- if (!h->def_regular)
+ symbol's value to the address of the stub. Point at the PLT
+ load stub rather than the lazy resolution stub; this stub
+ will become the canonical function address. */
+ if (!info->shared && !h->def_regular)
{
h->root.u.def.section = htab->splt;
h->root.u.def.value = h->plt.offset;
- if (!info->shared)
- h->root.u.def.value += 8;
+ h->root.u.def.value += 8;
}
/* Make room for the .got.plt entry and the R_JUMP_SLOT relocation. */