* h8300-dis.c: Fix formatting.
[binutils-gdb.git] / bfd / elf-bfd.h
index 0a438ef3f163a32768d5c4fcb8edf1fe282fcb04..3978aee26935db5f977b1699ce68f2dc56888807 100644 (file)
@@ -243,12 +243,6 @@ struct elf_link_hash_table
   PTR stab_info;
   /* A linked list of local symbols to be added to .dynsym.  */
   struct elf_link_local_dynamic_entry *dynlocal;
-
-  void (*copy_indirect) PARAMS ((struct elf_link_hash_table *,
-                                struct elf_link_hash_entry *,
-                                struct elf_link_hash_entry *));
-  void (*hide_symbol) PARAMS ((struct elf_link_hash_table *,
-                              struct elf_link_hash_entry *));
 };
 
 /* Look up an entry in an ELF linker hash table.  */
@@ -269,16 +263,6 @@ struct elf_link_hash_table
 /* Get the ELF linker hash table from a link_info structure.  */
 
 #define elf_hash_table(p) ((struct elf_link_hash_table *) ((p)->hash))
-
-/* Call the copy_indirect method.  */
-
-#define elf_link_hash_copy_indirect(TABLE,DIR,IND) \
-  ((*(TABLE)->copy_indirect) ((TABLE), (DIR), (IND)))
-
-/* Call the hide_symbol method.  */
-
-#define elf_link_hash_hide_symbol(TABLE,SYM) \
-  ((*(TABLE)->hide_symbol) ((TABLE), (SYM)))
 \f
 /* Constant information held for an ELF backend.  */
 
@@ -609,6 +593,16 @@ struct elf_backend_data
            boolean (*) PARAMS ((PTR, const char *,
              Elf_Internal_Sym *, asection *))));
 
+  /* Copy any information related to dynamic linking from a pre-existing
+     symbol IND to a newly created symbol DIR.  */
+  void (*elf_backend_copy_indirect_symbol)
+    PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *));
+
+  /* Modify any information related to dynamic linking such that the
+     symbol is not exported.  */
+  void (*elf_backend_hide_symbol)
+    PARAMS ((struct elf_link_hash_entry *));
+
   /* The swapping table to use when dealing with ECOFF information.
      Used for the MIPS ELF .mdebug section.  */
   const struct ecoff_debug_swap *elf_backend_ecoff_debug_swap;
@@ -973,6 +967,10 @@ extern struct bfd_hash_entry *_bfd_elf_link_hash_newfunc
   PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *, const char *));
 extern struct bfd_link_hash_table *_bfd_elf_link_hash_table_create
   PARAMS ((bfd *));
+extern void _bfd_elf_link_hash_copy_indirect
+  PARAMS ((struct elf_link_hash_entry *, struct elf_link_hash_entry *));
+extern void _bfd_elf_link_hash_hide_symbol
+  PARAMS ((struct elf_link_hash_entry *));
 extern boolean _bfd_elf_link_hash_table_init
   PARAMS ((struct elf_link_hash_table *, bfd *,
           struct bfd_hash_entry *(*) (struct bfd_hash_entry *,
@@ -1144,6 +1142,10 @@ extern long bfd_elf32_slurp_symbol_table
 extern boolean bfd_elf32_write_shdrs_and_ehdr PARAMS ((bfd *));
 extern int bfd_elf32_write_out_phdrs
   PARAMS ((bfd *, const Elf_Internal_Phdr *, int));
+extern void bfd_elf32_write_relocs
+  PARAMS ((bfd *, asection *, PTR));
+extern boolean bfd_elf32_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, boolean));
 extern boolean bfd_elf32_add_dynamic_entry
   PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma));
 extern boolean bfd_elf32_link_create_dynamic_sections
@@ -1187,6 +1189,10 @@ extern long bfd_elf64_slurp_symbol_table
 extern boolean bfd_elf64_write_shdrs_and_ehdr PARAMS ((bfd *));
 extern int bfd_elf64_write_out_phdrs
   PARAMS ((bfd *, const Elf_Internal_Phdr *, int));
+extern void bfd_elf64_write_relocs
+  PARAMS ((bfd *, asection *, PTR));
+extern boolean bfd_elf64_slurp_reloc_table
+  PARAMS ((bfd *, asection *, asymbol **, boolean));
 extern boolean bfd_elf64_add_dynamic_entry
   PARAMS ((struct bfd_link_info *, bfd_vma, bfd_vma));
 extern boolean bfd_elf64_link_create_dynamic_sections