DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(bfd.info) Creating a Linker Hash Table

Info Catalog (bfd.info) Linker Functions (bfd.info) Linker Functions (bfd.info) Adding Symbols to the Hash Table
 
 Creating a linker hash table
 ----------------------------
 
    The linker routines must create a hash table, which must be derived
 from `struct bfd_link_hash_table' described in `bfdlink.c'.   Hash
 Tables, for information on how to create a derived hash table.  This
 entry point is called using the target vector of the linker output file.
 
    The `_bfd_link_hash_table_create' entry point must allocate and
 initialize an instance of the desired hash table.  If the back end does
 not require any additional information to be stored with the entries in
 the hash table, the entry point may simply create a `struct
 bfd_link_hash_table'.  Most likely, however, some additional
 information will be needed.
 
    For example, with each entry in the hash table the a.out linker
 keeps the index the symbol has in the final output file (this index
 number is used so that when doing a relocateable link the symbol index
 used in the output file can be quickly filled in when copying over a
 reloc).  The a.out linker code defines the required structures and
 functions for a hash table derived from `struct bfd_link_hash_table'.
 The a.out linker hash table is created by the function
 `NAME(aout,link_hash_table_create)'; it simply allocates space for the
 hash table, initializes it, and returns a pointer to it.
 
    When writing the linker routines for a new back end, you will
 generally not know exactly which fields will be required until you have
 finished.  You should simply create a new hash table which defines no
 additional fields, and then simply add fields as they become necessary.
 
Info Catalog (bfd.info) Linker Functions (bfd.info) Linker Functions (bfd.info) Adding Symbols to the Hash Table
automatically generated byinfo2html