Arrgh! Revert last change.
This commit is contained in:
parent
ef9d813eaf
commit
648cca2cac
|
@ -1,8 +1,3 @@
|
||||||
2002-01-29 Alan Modra <amodra@bigpond.net.au>
|
|
||||||
|
|
||||||
* elf64-ppc.c (func_desc_adjust): Don't supply missing function
|
|
||||||
descriptor symbols.
|
|
||||||
|
|
||||||
2002-01-29 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
2002-01-29 Martin Schwidefsky <schwidefsky@de.ibm.com>
|
||||||
|
|
||||||
* elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32
|
* elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32
|
||||||
|
|
|
@ -2494,11 +2494,43 @@ func_desc_adjust (h, inf)
|
||||||
struct elf_link_hash_entry *fdh;
|
struct elf_link_hash_entry *fdh;
|
||||||
boolean force_local;
|
boolean force_local;
|
||||||
|
|
||||||
/* Find the corresponding function descriptor symbol. */
|
/* Find the corresponding function descriptor symbol. Create it
|
||||||
|
as undefined if necessary. */
|
||||||
|
|
||||||
fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
|
fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1,
|
||||||
false, false, true);
|
false, false, true);
|
||||||
|
|
||||||
|
if (fdh == NULL && info->shared)
|
||||||
|
{
|
||||||
|
bfd *abfd;
|
||||||
|
asymbol *newsym;
|
||||||
|
|
||||||
|
/* Create it as undefined. */
|
||||||
|
if (h->root.type == bfd_link_hash_undefined
|
||||||
|
|| h->root.type == bfd_link_hash_undefweak)
|
||||||
|
abfd = h->root.u.undef.abfd;
|
||||||
|
else if (h->root.type == bfd_link_hash_defined
|
||||||
|
|| h->root.type == bfd_link_hash_defweak)
|
||||||
|
abfd = h->root.u.def.section->owner;
|
||||||
|
else
|
||||||
|
abort ();
|
||||||
|
newsym = bfd_make_empty_symbol (abfd);
|
||||||
|
newsym->name = h->root.root.string + 1;
|
||||||
|
newsym->section = bfd_und_section_ptr;
|
||||||
|
newsym->value = 0;
|
||||||
|
newsym->flags = BSF_OBJECT;
|
||||||
|
if (h->root.type == bfd_link_hash_undefweak)
|
||||||
|
newsym->flags |= BSF_WEAK;
|
||||||
|
|
||||||
|
if ( !(_bfd_generic_link_add_one_symbol
|
||||||
|
(info, abfd, newsym->name, newsym->flags,
|
||||||
|
newsym->section, newsym->value, NULL, false, false,
|
||||||
|
(struct bfd_link_hash_entry **) &fdh)))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (fdh != NULL
|
if (fdh != NULL
|
||||||
&& (fdh->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
|
&& (fdh->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0
|
||||||
&& (info->shared
|
&& (info->shared
|
||||||
|
|
Loading…
Reference in New Issue