* elf-bfd.h (struct elf_backend_data): Add
elf_backend_archive_symbol_lookup.
(_bfd_elf_archive_symbol_lookup): Declare.
* elflink.c (_bfd_elf_archive_symbol_lookup): New function..
(elf_link_add_archive_symbols): ..extracted from here. Call the
backend version.
* elfxx-target.h (elf_backend_archive_symbol_lookup): Provide default.
(elfNN_bed): Init new field.
* elf64-ppc.c (elf_backend_check_directives): Define.
(elf_backend_archive_symbol_lookup): Define.
(struct ppc_link_hash_table): Add tls_get_add_fd. Make tls_get_add
a ppc_link_hash_entry pointer.
(get_fdh): Move.
(ppc64_elf_archive_symbol_lookup, opd_entry_value): New functions.
(add_symbol_adjust, ppc64_elf_check_directives): New functions.
(ppc64_elf_check_relocs, ppc64_elf_gc_mark_hook, func_desc_adjust,
ppc64_elf_adjust_dynamic_symbol, ppc64_elf_tls_setup,
ppc64_elf_tls_optimize, allocate_dynrelocs, ppc_type_of_stub,
ppc_build_one_stub, ppc64_elf_size_stubs, ppc64_elf_relocate_section,
ppc64_elf_finish_dynamic_symbol): Handle branch relocs to function
descriptor symbols.