mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-25 21:41:47 +08:00
* elf64-ppc.c (ppc_build_one_stub): Point undefined function syms
at the plt call stub.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2002-05-20 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
|
* elf64-ppc.c (ppc_build_one_stub): Point undefined function syms
|
||||||
|
at the plt call stub.
|
||||||
|
|
||||||
2002-05-19 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
2002-05-19 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
|
||||||
|
|
||||||
* cpu-mips.c (mips_compatible): Don't try to check machine
|
* cpu-mips.c (mips_compatible): Don't try to check machine
|
||||||
|
@ -4153,6 +4153,20 @@ ppc_build_one_stub (gen_entry, in_arg)
|
|||||||
htab->sglink->_cooked_size = p - htab->sglink->contents;
|
htab->sglink->_cooked_size = p - htab->sglink->contents;
|
||||||
htab->sglink->reloc_count += 1;
|
htab->sglink->reloc_count += 1;
|
||||||
|
|
||||||
|
/* Do the best we can for shared libraries built without
|
||||||
|
exporting ".foo" for each "foo". This can happen when symbol
|
||||||
|
versioning scripts strip all bar a subset of symbols. */
|
||||||
|
if (stub_entry->h->oh->root.type != bfd_link_hash_defined
|
||||||
|
&& stub_entry->h->oh->root.type != bfd_link_hash_defweak)
|
||||||
|
{
|
||||||
|
/* Point the symbol at the stub. There may be multiple stubs,
|
||||||
|
we don't really care; The main thing is to make this sym
|
||||||
|
defined somewhere. */
|
||||||
|
stub_entry->h->oh->root.type = bfd_link_hash_defined;
|
||||||
|
stub_entry->h->oh->root.u.def.section = stub_entry->stub_sec;
|
||||||
|
stub_entry->h->oh->root.u.def.value = stub_entry->stub_offset;
|
||||||
|
}
|
||||||
|
|
||||||
/* Now build the stub. */
|
/* Now build the stub. */
|
||||||
off = stub_entry->h->elf.plt.offset;
|
off = stub_entry->h->elf.plt.offset;
|
||||||
if (off >= (bfd_vma) -2)
|
if (off >= (bfd_vma) -2)
|
||||||
|
Reference in New Issue
Block a user