+extern int _bfd_elf_symbol_from_bfd_symbol
+ PARAMS ((bfd *, asymbol **));
+
+extern asection *bfd_section_from_r_symndx
+ PARAMS ((bfd *, struct sym_sec_cache *, asection *, unsigned long));
+extern asection *bfd_section_from_elf_index
+ PARAMS ((bfd *, unsigned int));
+extern struct bfd_strtab_hash *_bfd_elf_stringtab_init
+ PARAMS ((void));
+
+extern struct elf_strtab_hash * _bfd_elf_strtab_init
+ PARAMS ((void));
+extern void _bfd_elf_strtab_free
+ PARAMS ((struct elf_strtab_hash *));
+extern bfd_size_type _bfd_elf_strtab_add
+ PARAMS ((struct elf_strtab_hash *, const char *, bfd_boolean));
+extern void _bfd_elf_strtab_addref
+ PARAMS ((struct elf_strtab_hash *, bfd_size_type));
+extern void _bfd_elf_strtab_delref
+ PARAMS ((struct elf_strtab_hash *, bfd_size_type));
+extern void _bfd_elf_strtab_clear_all_refs
+ PARAMS ((struct elf_strtab_hash *));
+extern bfd_size_type _bfd_elf_strtab_size
+ PARAMS ((struct elf_strtab_hash *));
+extern bfd_size_type _bfd_elf_strtab_offset
+ PARAMS ((struct elf_strtab_hash *, bfd_size_type));
+extern bfd_boolean _bfd_elf_strtab_emit
+ PARAMS ((bfd *, struct elf_strtab_hash *));
+extern void _bfd_elf_strtab_finalize
+ PARAMS ((struct elf_strtab_hash *));
+
+extern bfd_boolean _bfd_elf_discard_section_eh_frame
+ PARAMS ((bfd *, struct bfd_link_info *, asection *,
+ bfd_boolean (*) (bfd_vma, PTR), struct elf_reloc_cookie *));
+extern bfd_boolean _bfd_elf_discard_section_eh_frame_hdr
+ PARAMS ((bfd *, struct bfd_link_info *));
+extern bfd_vma _bfd_elf_eh_frame_section_offset
+ PARAMS ((bfd *, asection *, bfd_vma));
+extern bfd_boolean _bfd_elf_write_section_eh_frame
+ PARAMS ((bfd *, struct bfd_link_info *, asection *, bfd_byte *));
+extern bfd_boolean _bfd_elf_write_section_eh_frame_hdr
+ PARAMS ((bfd *, struct bfd_link_info *));
+extern bfd_boolean _bfd_elf_maybe_strip_eh_frame_hdr
+ PARAMS ((struct bfd_link_info *));
+
+extern bfd_boolean _bfd_elf_merge_symbol
+ PARAMS ((bfd *, struct bfd_link_info *, const char *,
+ Elf_Internal_Sym *, asection **, bfd_vma *,
+ struct elf_link_hash_entry **, bfd_boolean *, bfd_boolean *,
+ bfd_boolean *, bfd_boolean *, bfd_boolean));
+
+extern bfd_boolean _bfd_elf_add_default_symbol
+ PARAMS ((bfd *, struct bfd_link_info *, struct elf_link_hash_entry *,
+ const char *, Elf_Internal_Sym *, asection **, bfd_vma *,
+ bfd_boolean *, bfd_boolean, bfd_boolean));
+
+extern bfd_boolean _bfd_elf_export_symbol
+ PARAMS ((struct elf_link_hash_entry *, PTR));
+
+extern bfd_boolean _bfd_elf_link_find_version_dependencies
+ PARAMS ((struct elf_link_hash_entry *, PTR));
+
+extern bfd_boolean _bfd_elf_link_assign_sym_version
+ PARAMS ((struct elf_link_hash_entry *, PTR));
+
+extern bfd_boolean _bfd_elf_link_record_dynamic_symbol
+ PARAMS ((struct bfd_link_info *, struct elf_link_hash_entry *));
+extern long _bfd_elf_link_lookup_local_dynindx
+ PARAMS ((struct bfd_link_info *, bfd *, long));
+extern bfd_boolean _bfd_elf_compute_section_file_positions
+ PARAMS ((bfd *, struct bfd_link_info *));
+extern void _bfd_elf_assign_file_positions_for_relocs
+ PARAMS ((bfd *));
+extern file_ptr _bfd_elf_assign_file_position_for_section
+ PARAMS ((Elf_Internal_Shdr *, file_ptr, bfd_boolean));
+
+extern bfd_boolean _bfd_elf_validate_reloc
+ PARAMS ((bfd *, arelent *));
+
+extern bfd_boolean _bfd_elf_link_create_dynamic_sections
+ PARAMS ((bfd *, struct bfd_link_info *));
+extern bfd_boolean _bfd_elf_create_dynamic_sections
+ PARAMS ((bfd *, struct bfd_link_info *));
+extern bfd_boolean _bfd_elf_create_got_section
+ PARAMS ((bfd *, struct bfd_link_info *));
+extern unsigned long _bfd_elf_link_renumber_dynsyms
+ PARAMS ((bfd *, struct bfd_link_info *));
+
+extern bfd_boolean _bfd_elfcore_make_pseudosection
+ PARAMS ((bfd *, char *, size_t, ufile_ptr));
+extern char *_bfd_elfcore_strndup
+ PARAMS ((bfd *, char *, size_t));
+
+extern elf_linker_section_t *_bfd_elf_create_linker_section
+ PARAMS ((bfd *, struct bfd_link_info *, enum elf_linker_section_enum,
+ elf_linker_section_t *));
+
+extern elf_linker_section_pointers_t *_bfd_elf_find_pointer_linker_section
+ PARAMS ((elf_linker_section_pointers_t *, bfd_vma,
+ elf_linker_section_enum_t));
+
+extern bfd_boolean bfd_elf32_create_pointer_linker_section
+ PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *,
+ struct elf_link_hash_entry *, const Elf_Internal_Rela *));
+
+extern bfd_vma bfd_elf32_finish_pointer_linker_section
+ PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *,
+ struct elf_link_hash_entry *, bfd_vma,
+ const Elf_Internal_Rela *, int));
+
+extern bfd_boolean bfd_elf64_create_pointer_linker_section
+ PARAMS ((bfd *, struct bfd_link_info *, elf_linker_section_t *,
+ struct elf_link_hash_entry *, const Elf_Internal_Rela *));
+
+extern bfd_vma bfd_elf64_finish_pointer_linker_section
+ PARAMS ((bfd *, bfd *, struct bfd_link_info *, elf_linker_section_t *,
+ struct elf_link_hash_entry *, bfd_vma,
+ const Elf_Internal_Rela *, int));
+
+extern bfd_boolean _bfd_elf_make_linker_section_rela
+ PARAMS ((bfd *, elf_linker_section_t *, int));
+
+extern Elf_Internal_Rela *_bfd_elf_link_read_relocs
+ PARAMS ((bfd *, asection *, PTR, Elf_Internal_Rela *, bfd_boolean));
+
+extern bfd_boolean _bfd_elf_link_size_reloc_section
+ PARAMS ((bfd *, Elf_Internal_Shdr *, asection *));
+
+extern bfd_boolean _bfd_elf_link_output_relocs
+ PARAMS ((bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *));
+
+extern bfd_boolean _bfd_elf_fix_symbol_flags
+ PARAMS ((struct elf_link_hash_entry *, struct elf_info_failed *));