* 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.
This commit is contained in:
Nathan Sidwell 2008-04-21 17:54:25 +00:00
parent 550512b831
commit 131eb6b75e
5 changed files with 28 additions and 6 deletions

@ -1,3 +1,10 @@
2008-04-21 Nathan Sidwell <nathan@codesourcery.com>
* 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.
2008-04-18 Dennis Roberts <dennis.roberts@sunquestinfo.com> 2008-04-18 Dennis Roberts <dennis.roberts@sunquestinfo.com>
* aix5ppc-core.c: Define macros for the default architecture and * aix5ppc-core.c: Define macros for the default architecture and

@ -7466,15 +7466,14 @@ _bfd_mips_vxworks_adjust_dynamic_symbol (struct bfd_link_info *info,
htab->splt->size += htab->plt_entry_size; htab->splt->size += htab->plt_entry_size;
/* If the output file has no definition of the symbol, set the /* If the output file has no definition of the symbol, set the
symbol's value to the address of the stub. For executables, symbol's value to the address of the stub. Point at the PLT
point at the PLT load stub rather than the lazy resolution stub; load stub rather than the lazy resolution stub; this stub
this stub will become the canonical function address. */ will become the canonical function address. */
if (!h->def_regular) if (!info->shared && !h->def_regular)
{ {
h->root.u.def.section = htab->splt; h->root.u.def.section = htab->splt;
h->root.u.def.value = h->plt.offset; 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. */ /* Make room for the .got.plt entry and the R_JUMP_SLOT relocation. */

@ -1,3 +1,8 @@
2008-04-21 Nathan Sidwell <nathan@codesourcery.com>
* ld-vxworks/plt-mips1.s: New.
* ld-vxworks/plt-mips1.d: New.
2008-04-16 David S. Miller <davem@davemloft.net> 2008-04-16 David S. Miller <davem@davemloft.net>
* ld-sparc/gotop32.dd: New. * ld-sparc/gotop32.dd: New.

@ -0,0 +1,10 @@
# target: mips*-*-*
# source: plt-mips1.s
# ld: -shared -z now
# readelf: -s
#...
[0-9]*: 00000000 0 FUNC GLOBAL DEFAULT UND Foo
#...
[0-9]*: 00000000 0 FUNC GLOBAL DEFAULT UND Foo
#...

@ -0,0 +1 @@
lw $25,%call16(Foo)($28)