diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 34 |
2 files changed, 6 insertions, 33 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 832bce5..1bff8e9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +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> * elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32 diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index da339bb..855722e 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -2494,43 +2494,11 @@ func_desc_adjust (h, inf) struct elf_link_hash_entry *fdh; boolean force_local; - /* Find the corresponding function descriptor symbol. Create it - as undefined if necessary. */ + /* Find the corresponding function descriptor symbol. */ fdh = elf_link_hash_lookup (&htab->elf, h->root.root.string + 1, 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 && (fdh->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0 && (info->shared |