* emultempl/mmix-elfnmmo.em (mmix_before_allocation): Force linker
[deliverable/binutils-gdb.git] / bfd / genlink.h
index fed0849847e213ed64445fe588b47a8fa9cc24ba..bcdc34b15684d086cf4bbc4aa5350ead03cef2c4 100644 (file)
@@ -1,5 +1,5 @@
 /* genlink.h -- interface to the BFD generic linker
-   Copyright 1993 Free Software Foundation, Inc.
+   Copyright 1993, 1994, 1996, 2002 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -16,7 +16,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #ifndef GENLINK_H
 #define GENLINK_H
@@ -34,14 +34,15 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 /* The generic linker uses a hash table which is a derived class of
    the standard linker hash table, just as the other backend specific
    linkers do.  Do not confuse the generic linker hash table with the
-   standard BFD linker hash table it is built upon.  The generic
-   linker hash table is onl referred to in this file.  */
+   standard BFD linker hash table it is built upon.  */
 
 /* Generic linker hash table entries.  */
 
 struct generic_link_hash_entry
 {
   struct bfd_link_hash_entry root;
+  /* Whether this symbol has been written out.  */
+  bfd_boolean written;
   /* Symbol from input BFD.  */
   asymbol *sym;
 };
@@ -53,18 +54,18 @@ struct generic_link_hash_table
   struct bfd_link_hash_table root;
 };
 
-/* Look up an entry in an generic link hash table.  */
+/* Look up an entry in a generic link hash table.  */
 
 #define _bfd_generic_link_hash_lookup(table, string, create, copy, follow) \
   ((struct generic_link_hash_entry *) \
    bfd_link_hash_lookup (&(table)->root, (string), (create), (copy), (follow)))
 
-/* Traverse an generic link hash table.  */
+/* Traverse a generic link hash table.  */
 
 #define _bfd_generic_link_hash_traverse(table, func, info)             \
   (bfd_link_hash_traverse                                              \
    (&(table)->root,                                                    \
-    (boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
+    (bfd_boolean (*) PARAMS ((struct bfd_link_hash_entry *, PTR))) (func), \
     (info)))
 
 /* Get the generic link hash table from the info structure.  This is
@@ -73,9 +74,15 @@ struct generic_link_hash_table
 #define _bfd_generic_hash_table(p) \
   ((struct generic_link_hash_table *) ((p)->hash))
 
+/* The generic linker reads in the asymbol structures for an input BFD
+   and keeps them in the outsymbol and symcount fields.  */
+
+#define _bfd_generic_link_get_symbols(abfd) ((abfd)->outsymbols)
+#define _bfd_generic_link_get_symcount(abfd) ((abfd)->symcount)
+
 /* Add the symbols of input_bfd to the symbols being built for
    output_bfd.  */
-extern boolean _bfd_generic_link_output_symbols
+extern bfd_boolean _bfd_generic_link_output_symbols
   PARAMS ((bfd *output_bfd, bfd *input_bfd, struct bfd_link_info *,
           size_t *psymalloc));
 
@@ -85,6 +92,7 @@ extern boolean _bfd_generic_link_output_symbols
 
 struct generic_write_global_symbol_info
 {
+  struct bfd_link_info *info;
   bfd *output_bfd;
   size_t *psymalloc;
 };
@@ -92,12 +100,12 @@ struct generic_write_global_symbol_info
 /* Write out a single global symbol.  This is expected to be called
    via _bfd_generic_link_hash_traverse.  The second argument must
    actually be a struct generic_write_global_symbol_info *.  */
-extern boolean _bfd_generic_link_write_global_symbol
+extern bfd_boolean _bfd_generic_link_write_global_symbol
   PARAMS ((struct generic_link_hash_entry *, PTR));
 
-/* Handle a bfd_indirect_link_order.  */
-extern boolean _bfd_generic_indirect_link_order
-  PARAMS ((bfd *, struct bfd_link_info *, asection *,
-          struct bfd_link_order *));
+/* Generic link hash table entry creation routine.  */
+struct bfd_hash_entry *_bfd_generic_link_hash_newfunc
+  PARAMS ((struct bfd_hash_entry *, struct bfd_hash_table *,
+           const char *));
 
 #endif
This page took 0.024601 seconds and 4 git commands to generate.