* 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

View File

@ -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>
* aix5ppc-core.c: Define macros for the default architecture and

View File

@ -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. */

View File

@ -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>
* ld-sparc/gotop32.dd: New.

View File

@ -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
#...

View File

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